diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index b991cb204cc..70360d82ea7 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -5816,9 +5816,8 @@ bool Player::UpdateSkillPro(uint16 SkillId, int32 Chance, uint32 step) void Player::UpdateWeaponSkill(WeaponAttackType attType) { - // no skill gain in pvp Unit* victim = GetVictim(); - if (victim && victim->GetTypeId() == TYPEID_PLAYER) + if (!victim) return; if (IsInFeralForm()) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e2e6f564505..a7495b4e9e6 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9995,7 +9995,12 @@ void Unit::ProcSkillsAndReactives(bool isVictim, Unit* procTarget, uint32 typeMa if (typeMask & MELEE_BASED_TRIGGER_MASK && procTarget) { // Update skills here for players - if (GetTypeId() == TYPEID_PLAYER) + // only when you are not fighting other players or their pets/totems (pvp) + if (GetTypeId() == TYPEID_PLAYER && + procTarget->GetTypeId() != TYPEID_PLAYER && + !(procTarget->IsTotem() && procTarget->ToTotem()->GetOwner()->IsPlayer()) && + !procTarget->IsPet() + ) { // On melee based hit/miss/resist need update skill (for victim and attacker) if (hitMask & (PROC_HIT_NORMAL | PROC_HIT_MISS | PROC_HIT_FULL_RESIST)) |