From 84996901ccb22e2a82745d469f3560f7574a64c5 Mon Sep 17 00:00:00 2001 From: Jinnaix <37972361+Jinnaix@users.noreply.github.com> Date: Thu, 9 Jun 2022 11:33:30 +0200 Subject: Core/Spells: Correct flagging spell caster for pvp when healing/buffing friendly creatures - it should only happen if target is in combat (#27977) (cherry picked from commit b155209ec40f867fc90d64eb207f3d3e7f633c2b) --- src/server/game/Spells/Spell.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 81fcf8aa784..ea90562b469 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2579,8 +2579,9 @@ void Spell::TargetInfo::PreprocessTarget(Spell* spell) unit->SetInCombatWith(spell->m_caster->ToPlayer()); // if target is flagged for pvp also flag caster if a player + // but respect current pvp rules (buffing/healing npcs flagged for pvp only flags you if they are in combat) _enablePVP = (MissCondition == SPELL_MISS_NONE || spell->m_spellInfo->HasAttribute(SPELL_ATTR3_PVP_ENABLING)) - && unit->IsPvP() && spell->m_caster->GetTypeId() == TYPEID_PLAYER; // need to check PvP state before spell effects, but act on it afterwards + && unit->IsPvP() && (unit->IsInCombat() || unit->IsCharmedOwnedByPlayerOrPlayer()) && spell->m_caster->GetTypeId() == TYPEID_PLAYER; // need to check PvP state before spell effects, but act on it afterwards if (_spellHitTarget) { -- cgit v1.2.3