aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/Spell.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 1c0042b06dc..d475620a4c9 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2322,7 +2322,8 @@ void Spell::TargetInfo::PreprocessTarget(Spell* spell)
if (_spellHitTarget)
{
// if target is flagged for pvp also flag caster if a player
- if (unit->IsPvP() && spell->m_caster->GetTypeId() == TYPEID_PLAYER)
+ // but respect current pvp rules (buffing/healing npcs flagged for pvp only flags you if they are in combat)
+ if (unit->IsPvP() && (unit->IsInCombat() || unit->IsCharmedOwnedByPlayerOrPlayer()) && spell->m_caster->GetTypeId() == TYPEID_PLAYER)
_enablePVP = true; // Decide on PvP flagging now, but act on it later.
SpellMissInfo missInfo = spell->PreprocessSpellHit(_spellHitTarget, ScaleAura, *this);