aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Drosdo.www <g1ran1q@gmail.com>2020-07-06 19:34:42 +0300
committerGitHub <noreply@github.com>2020-07-06 18:34:42 +0200
commite20e51a3855595817df89ac69494b9fd41e1acb3 (patch)
tree7d40ca5feb2d576a2b39236a685a36dbbd92fb5d /src
parentbf62901053d20da790e78394cd9b2a3129d28afa (diff)
Core/Unit: Prevent gaining weapon and defense skillups in pvp (#24895)
Diffstat (limited to 'src')
-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))