Files
dsrc/sku.0/sys.server/compiled/game/script/theme_park/controller_initialize.script
T
2013-09-10 23:17:15 -07:00

91 lines
2.2 KiB
Plaintext

include library.utils;
const string CONTROLLER = "object/tangible/ground_spawning/patrol_waypoint.iff";
trigger OnInitialize()
{
location selfLoc = getLocation(self);
obj_id objects[] = getObjectsInRange(selfLoc, .1f);
boolean exists = false;
if (objects != null || objects.length > 0)
{
for (int i =0;i<objects.length;i++)
{
if (getTemplateName(objects[i]).equals(CONTROLLER))
exists = true;
}
}
if (!exists)
createController(self);
return SCRIPT_CONTINUE;
}
messageHandler createController()
{
createController(self);
return SCRIPT_CONTINUE;
}
void createController(obj_id self)
{
obj_id object = createObject(CONTROLLER, getLocation(self));
persistObject(object);
string objVarString = null;
if (hasObjVar(self, "objVarString"))
objVarString = getStringObjVar(self, "objVarString");
string scriptString = null;
if (hasObjVar(self, "scriptString"))
scriptString = getStringObjVar(self, "scriptString");
setObjVarString(object, objVarString);
setScriptString(object, scriptString);
}
void setScriptString(obj_id subject, string scriptString)
{
if (scriptString == null)
return;
string[] scripts = split(scriptString,';');
for (int q=0;q<scripts.length;q++)
{
attachScript(subject, scripts[q]);
}
}
void setObjVarString(obj_id newObject, string objVarString)
{
if (objVarString == null || objVarString.equals("none"))
return;
string[] parse = split(objVarString, ';');
if (parse == null || parse.length == 0)
return;
for (int i=0;i<parse.length;i++)
{
string[] typeDataSplit = split(parse[i], ':');
string type = typeDataSplit[0];
string data = typeDataSplit[1];
string[] nameValueSplit = split(data, '=');
string name = nameValueSplit[0];
string value = nameValueSplit[1];
if (type.equals("int"))
setObjVar(newObject, name, utils.stringToInt(value));
if (type.equals("float"))
setObjVar(newObject, name, utils.stringToFloat(value));
if (type.equals("string"))
setObjVar(newObject, name, value);
if (type.equals("boolean") && (value.equals("true")|| value.equals("1")))
setObjVar(newObject, name, true);
if (type.equals("boolean") && (value.equals("false") || value.equals("0")))
setObjVar(newObject, name, false);
}
}