diff options
| author | Discover- <amort11@hotmail.com> | 2013-12-17 09:44:06 +0100 |
|---|---|---|
| committer | Discover- <amort11@hotmail.com> | 2013-12-17 09:44:06 +0100 |
| commit | 54b7162f1def59387ecf3c031705f56fa1b10b02 (patch) | |
| tree | bd7e58f0787afda55dbbc7a078d3e9ad085893e2 /src | |
| parent | 1339d38d4c7e1c356d7a36734deb557db18acaf9 (diff) | |
Core/SAI: Make SMART_ACTION_SET_INGAME_PHASE_MASK set the phasemask of the target_type instead of always the source calling the action type.
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index a272cb79f51..164ace2eb44 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1046,8 +1046,18 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u } case SMART_ACTION_SET_INGAME_PHASE_MASK: { - if (WorldObject* baseObj = GetBaseObject()) - baseObj->SetPhaseMask(e.action.ingamePhaseMask.mask, true); + ObjectList* targets = GetTargets(e, unit); + + if (!targets) + break; + + for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) + { + if (!IsUnit(*itr)) + continue; + + (*itr)->ToUnit()->SetPhaseMask(e.action.ingamePhaseMask.mask, true); + } break; } |
