aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiscover- <amort11@hotmail.com>2012-05-29 12:29:10 +0200
committerDiscover- <amort11@hotmail.com>2012-05-29 12:29:10 +0200
commit154a030a68672ab8ec22a78f2a91d63ef3607b32 (patch)
tree0095d5eff23bb15500d92e49fef674a9d31797ca /src
parent013fe44b9229469e142bd152b43e80841dc9cb0e (diff)
Core/SAI: Fix previous commit. Thanks Shauren for notifying.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp16
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: