aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp3
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
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))