From b5342fe7542caea020a89112a93bb963aae132e2 Mon Sep 17 00:00:00 2001 From: "malcromdev@gmail.com>" Date: Mon, 17 May 2010 21:24:21 -0230 Subject: Add ablility to select closest creature of entry (dataint), range (x) as target for spell (datalong) SCRIPT_COMMAND_CAST_SPELL. --HG-- branch : trunk --- src/game/Map.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/game') 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) { -- cgit v1.2.3