diff options
| author | malcromdev@gmail.com> <none@none> | 2010-05-17 21:24:21 -0230 | 
|---|---|---|
| committer | malcromdev@gmail.com> <none@none> | 2010-05-17 21:24:21 -0230 | 
| commit | b5342fe7542caea020a89112a93bb963aae132e2 (patch) | |
| tree | 543173575444f54960d254fa574948d23e4077b8 | |
| parent | 4077f525f04109e098c53eccde319b96f3335295 (diff) | |
Add ablility to select closest creature of entry (dataint), range (x) as target for spell (datalong) SCRIPT_COMMAND_CAST_SPELL.
--HG--
branch : trunk
| -rw-r--r-- | src/game/Map.cpp | 23 | 
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)                  {  | 
