diff options
author | Treeston <treeston.mmoc@gmail.com> | 2019-08-02 21:26:32 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2019-08-02 21:27:23 +0200 |
commit | 1faa54fe8b2690507e4177a9a7373c0b24855291 (patch) | |
tree | 635d39f1ecbbb9123eb655e14eeda250966db892 /src | |
parent | 161d60c4f699f65f02770ebb053dbeb1178d9e54 (diff) |
Core/SmartAI: SmartAI creatures no longer process health-based hooks after death.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 04507e95467..9dd7f4dbb15 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -274,6 +274,13 @@ void SmartAI::ReturnToLastOOCPos() void SmartAI::UpdateAI(uint32 diff) { + if (!me->IsAlive()) + { + if (IsEngaged()) + EngagementOver(); + return; + } + CheckConditions(diff); GetScript()->OnUpdate(diff); diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 6d708476b96..5731e3a7437 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2296,7 +2296,7 @@ void Creature::CallAssistance() void Creature::CallForHelp(float radius) { - if (radius <= 0.0f || !IsEngaged() || IsPet() || IsCharmed()) + if (radius <= 0.0f || !IsEngaged() || !IsAlive() || IsPet() || IsCharmed()) return; Unit* target = GetThreatManager().GetCurrentVictim(); @@ -2307,7 +2307,7 @@ void Creature::CallForHelp(float radius) if (!target) { - TC_LOG_ERROR("entities.unit", "Creature %u (%s) is engaged without threat list", GetEntry(), GetName().c_str()); + TC_LOG_ERROR("entities.unit", "Creature %u (%s) trying to call for help without being in combat.", GetEntry(), GetName().c_str()); return; } |