diff options
Diffstat (limited to 'src/game/MotionMaster.cpp')
| -rw-r--r-- | src/game/MotionMaster.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/game/MotionMaster.cpp b/src/game/MotionMaster.cpp index 39260362212..551383d985a 100644 --- a/src/game/MotionMaster.cpp +++ b/src/game/MotionMaster.cpp @@ -230,8 +230,6 @@ MotionMaster::MoveChase(Unit* target, float dist, float angle) void MotionMaster::MoveFollow(Unit* target, float dist, float angle) { - Clear(); - // ignore movement request if target not exist if(!target) return; @@ -276,6 +274,9 @@ MotionMaster::MoveFleeing(Unit* enemy) if(!enemy) return; + if(i_owner->HasAuraType(SPELL_AURA_PREVENTS_FLEEING)) + return; + if(i_owner->GetTypeId()==TYPEID_PLAYER) { DEBUG_LOG("Player (GUID: %u) flee from %s (GUID: %u)", i_owner->GetGUIDLow(), @@ -312,6 +313,9 @@ MotionMaster::MoveTaxiFlight(uint32 path, uint32 pathnode) void MotionMaster::MoveDistract(uint32 timer) { + if(Impl[MOTION_SLOT_CONTROLLED]) + return; + if(i_owner->GetTypeId()==TYPEID_PLAYER) { DEBUG_LOG("Player (GUID: %u) distracted (timer: %u)", i_owner->GetGUIDLow(), timer); |
