aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2017-07-03 19:40:04 -0300
committerShauren <shauren.trinity@gmail.com>2020-08-18 18:53:13 +0200
commit67ffe7bcf02bc03061ae06285ea55b7eeeb76eff (patch)
tree8573050f7101ded75e16f5fa8415828037d74207
parentdaf9c703c45dd102d57b527a78529152819ec67d (diff)
Core/Combat: Fixed issues with creatures sometimes entering combat with friendly targets
Close #19980 (cherry picked from commit 07593f6c3488666423093c2c32514a0a378da942)
-rw-r--r--src/server/game/Combat/ThreatManager.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp
index 65d177fddaf..652c5cffb5c 100644
--- a/src/server/game/Combat/ThreatManager.cpp
+++ b/src/server/game/Combat/ThreatManager.cpp
@@ -407,6 +407,15 @@ void ThreatManager::AddThreat(Unit* victim, float amount, SpellInfo const* spell
(void)ignoreModifiers; (void)ignoreRedirection;
if (!iOwner->CanHaveThreatList() || iOwner->HasUnitState(UNIT_STATE_EVADE))
return;
+
+ if (iOwner->IsControlledByPlayer() || victim->IsControlledByPlayer())
+ {
+ if (iOwner->IsFriendlyTo(victim) || victim->IsFriendlyTo(iOwner))
+ return;
+ }
+ else if (!iOwner->IsHostileTo(victim) && !victim->IsHostileTo(iOwner))
+ return;
+
iOwner->SetInCombatWith(victim);
victim->SetInCombatWith(iOwner);
addThreat(victim, amount, spell ? spell->GetSchoolMask() : victim->GetMeleeDamageSchoolMask(), spell);