*Some small fixes in dbscript command 17 (SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT).

--HG--
branch : trunk
This commit is contained in:
TrullyONE
2009-01-06 15:46:18 +02:00
parent be6dddc4d5
commit 8b78bea73d
+25 -18
View File
@@ -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;
} }