aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r--src/game/Map.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index a78176506cc..610f5bb63d4 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -3509,7 +3509,21 @@ void Map::ScriptsProcess()
break;
}
- Object* cmdTarget = step.script->datalong2 & 0x01 ? source : target;
+ Object* cmdTarget = NULL;
+ Object* cmdSource = NULL;
+ Unit* spellTarget = NULL;
+
+ if (step.script->datalong2 == 4)
+ {
+ Unit* pTarget = (Unit*)target;
+ if (Creature* victim = GetClosestCreatureWithEntry(pTarget,step.script->dataint,step.script->x))
+ Unit* spellTarget = (Unit*)victim->GetGUID();
+ }
+ else
+ {
+ Object* cmdTarget = step.script->datalong2 & 0x01 ? source : target;
+ Unit* spellTarget = (Unit*)cmdTarget;
+ }
if (cmdTarget && !cmdTarget->isType(TYPEMASK_UNIT))
{
@@ -3517,9 +3531,10 @@ void Map::ScriptsProcess()
break;
}
- Unit* spellTarget = (Unit*)cmdTarget;
-
- Object* cmdSource = step.script->datalong2 & 0x02 ? target : source;
+ if (step.script->datalong2 == 4)
+ Object* cmdSource = target;
+ else
+ Object* cmdSource = step.script->datalong2 & 0x02 ? target : source;
if (!cmdSource)
{