mirror of
https://bitbucket.org/seefoe/dsrc.git
synced 2026-07-31 01:15:55 -04:00
91 lines
2.2 KiB
Plaintext
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);
|
|
}
|
|
|
|
} |