diff options
author | Discover- <amort11@hotmail.com> | 2012-05-29 12:29:10 +0200 |
---|---|---|
committer | Discover- <amort11@hotmail.com> | 2012-05-29 12:29:10 +0200 |
commit | 154a030a68672ab8ec22a78f2a91d63ef3607b32 (patch) | |
tree | 0095d5eff23bb15500d92e49fef674a9d31797ca | |
parent | 013fe44b9229469e142bd152b43e80841dc9cb0e (diff) |
Core/SAI: Fix previous commit. Thanks Shauren for notifying.
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index bb5b54829b8..9a562e3f6c4 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1536,11 +1536,23 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u break; case SMART_ACTION_SET_RANGED_MOVEMENT: { + if (!IsSmart()) + break; + float attackDistance = (float)e.action.setRangedMovement.distance; float attackAngle = e.action.setRangedMovement.angle / 180.0f * M_PI; - if (CAST_AI(SmartAI, me->AI())->CanCombatMove()) - me->GetMotionMaster()->MoveChase(me->getVictim(), attackDistance, attackAngle); + ObjectList* targets = GetTargets(e, unit); + if (targets) + { + for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); ++itr) + if (Creature* target = (*itr)->ToCreature()) + if (IsSmart(target) && target->getVictim()) + if (CAST_AI(SmartAI, target->AI())->CanCombatMove()) + target->GetMotionMaster()->MoveChase(target->getVictim(), attackDistance, attackAngle); + + delete targets; + } break; } case SMART_ACTION_CALL_TIMED_ACTIONLIST: |