diff options
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 501bc35b77a..799102aa4bd 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -422,6 +422,9 @@ void SmartAI::MovepointReached(uint32 id) void SmartAI::MovementInform(uint32 MovementType, uint32 Data) { + if ((MovementType == POINT_MOTION_TYPE && Data == SMART_ESCORT_LAST_OOC_POINT) || MovementType == FOLLOW_MOTION_TYPE) + me->ClearUnitState(UNIT_STATE_EVADE); + GetScript()->ProcessEventsFor(SMART_EVENT_MOVEMENTINFORM, NULL, MovementType, Data); if (MovementType != POINT_MOTION_TYPE || !HasEscortState(SMART_ESCORT_ESCORTING)) return; @@ -443,11 +446,12 @@ void SmartAI::RemoveAuras() void SmartAI::EnterEvadeMode() { - if (!me->isAlive()) + if (!me->isAlive() || me->IsInEvadeMode()) return; RemoveAuras(); + me->AddUnitState(UNIT_STATE_EVADE); me->DeleteThreatList(); me->CombatStop(true); me->LoadCreaturesAddon(); |