diff options
| author | treeston <treeston.mmoc@gmail.com> | 2017-07-03 19:40:04 -0300 |
|---|---|---|
| committer | Keader <keader.android@gmail.com> | 2017-07-03 19:40:56 -0300 |
| commit | 07593f6c3488666423093c2c32514a0a378da942 (patch) | |
| tree | 8e9fe5d528208260246bc31b0da3f15db9983d3c /src | |
| parent | 0d27fee6f45217c07cb7abbabbca0e9f5cff3961 (diff) | |
Core/Combat: Fixed issues with creatures sometimes entering combat with friendly targets
Close #19980
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index 5a1207b82ca..e9744008e6e 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -406,6 +406,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); |
