*Some small fixes in dbscript command 17 (SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT).
--HG-- branch : trunk
This commit is contained in:
+25
-18
@@ -2308,6 +2308,7 @@ void World::ScriptsProcess()
|
|||||||
sLog.outError("SCRIPT_COMMAND_CALLSCRIPT calls invallid db_script_id or lowguid not present: skipping.");
|
sLog.outError("SCRIPT_COMMAND_CALLSCRIPT calls invallid db_script_id or lowguid not present: skipping.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
//our target
|
||||||
Creature* target = NULL;
|
Creature* target = NULL;
|
||||||
|
|
||||||
if(source) //using grid searcher
|
if(source) //using grid searcher
|
||||||
@@ -2329,40 +2330,46 @@ void World::ScriptsProcess()
|
|||||||
if(CreatureData const* data = objmgr.GetCreatureData(step.script->datalong))
|
if(CreatureData const* data = objmgr.GetCreatureData(step.script->datalong))
|
||||||
target = ObjectAccessor::GetObjectInWorld<Creature>(data->mapid, data->posX, data->posY, MAKE_NEW_GUID(step.script->datalong, data->id, HIGHGUID_UNIT), target);
|
target = ObjectAccessor::GetObjectInWorld<Creature>(data->mapid, data->posX, data->posY, MAKE_NEW_GUID(step.script->datalong, data->id, HIGHGUID_UNIT), target);
|
||||||
}
|
}
|
||||||
|
//sLog.outDebug("attempting to pass target...");
|
||||||
if(!target)
|
if(!target)
|
||||||
break;
|
break;
|
||||||
|
//sLog.outDebug("target passed");
|
||||||
//Lets choose our ScriptMap map
|
//Lets choose our ScriptMap map
|
||||||
ScriptMapMap datamap;
|
ScriptMapMap *datamap = NULL;
|
||||||
switch(step.script->dataint)
|
switch(step.script->dataint)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1://QUEST END SCRIPTMAP
|
||||||
datamap = sQuestEndScripts;
|
datamap = &sQuestEndScripts;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2://QUEST START SCRIPTMAP
|
||||||
datamap = sQuestStartScripts;
|
datamap = &sQuestStartScripts;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3://SPELLS SCRIPTMAP
|
||||||
datamap = sSpellScripts;
|
datamap = &sSpellScripts;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4://GAMEOBJECTS SCRIPTMAP
|
||||||
datamap = sGameObjectScripts;
|
datamap = &sGameObjectScripts;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5://EVENTS SCRIPTMAP
|
||||||
datamap = sEventScripts;
|
datamap = &sEventScripts;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6://WAYPOINTS SCRIPTMAP
|
||||||
datamap = sWaypointScripts;
|
datamap = &sWaypointScripts;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sLog.outError("SCRIPT_COMMAND_CALLSCRIPT ERROR: no scriptmap present... ignoring");
|
sLog.outError("SCRIPT_COMMAND_CALLSCRIPT ERROR: no scriptmap present... ignoring");
|
||||||
m_scriptSchedule.erase(iter);
|
break;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
//if no scriptmap present...
|
||||||
|
if(!datamap)
|
||||||
|
break;
|
||||||
|
|
||||||
uint32 script_id = step.script->datalong2;
|
uint32 script_id = step.script->datalong2;
|
||||||
|
//delete iter and return it to begin pos(next one)
|
||||||
m_scriptSchedule.erase(iter);
|
m_scriptSchedule.erase(iter);
|
||||||
ScriptsStart(datamap, script_id, target, NULL);
|
iter = m_scriptSchedule.begin();
|
||||||
|
|
||||||
|
ScriptsStart(*datamap, script_id, target, NULL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user