mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-13 22:01:04 -04:00
73 lines
2.6 KiB
Java
Executable File
73 lines
2.6 KiB
Java
Executable File
package script.systems.spawning;
|
|
|
|
import script.dictionary;
|
|
import script.library.utils;
|
|
import script.location;
|
|
import script.obj_id;
|
|
|
|
public class spawned_tracker extends script.base_script
|
|
{
|
|
public spawned_tracker()
|
|
{
|
|
}
|
|
public int OnIncapacitated(obj_id self, obj_id objAttacker) throws InterruptedException
|
|
{
|
|
if (!utils.hasScriptVar(self, "intCleanedUp"))
|
|
{
|
|
utils.setScriptVar(self, "intCleanedUp", 1);
|
|
obj_id objParent = getObjIdObjVar(self, "objParent");
|
|
float fltRespawnTime = getFloatObjVar(self, "fltRespawnTime");
|
|
if (utils.hasScriptVar(self, "deathTracker"))
|
|
{
|
|
location loc = utils.getLocationScriptVar(self, "deathTracker");
|
|
dictionary params = new dictionary();
|
|
params.put("loc", loc);
|
|
messageTo(objParent, "spawnDestroyed", params, fltRespawnTime, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
messageTo(objParent, "spawnDestroyed", null, fltRespawnTime, false);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnDestroy(obj_id self) throws InterruptedException
|
|
{
|
|
if (hasObjVar(self, "dontCountDeath"))
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
if (!utils.hasScriptVar(self, "intCleanedUp"))
|
|
{
|
|
utils.setScriptVar(self, "intCleanedUp", 1);
|
|
obj_id objParent = getObjIdObjVar(self, "objParent");
|
|
if (!isIdValid(objParent))
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
float fltRespawnTime = getFloatObjVar(self, "fltRespawnTime");
|
|
if (utils.hasScriptVar(self, "deathTracker"))
|
|
{
|
|
location loc = utils.getLocationScriptVar(self, "deathTracker");
|
|
dictionary params = new dictionary();
|
|
params.put("loc", loc);
|
|
messageTo(objParent, "spawnDestroyed", params, fltRespawnTime, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
messageTo(objParent, "spawnDestroyed", null, fltRespawnTime, false);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int selfDestruct(obj_id self, dictionary params) throws InterruptedException
|
|
{
|
|
if (hasObjVar(self, "force_cleanup"))
|
|
{
|
|
setPosture(self, POSTURE_INCAPACITATED);
|
|
}
|
|
destroyObject(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
public int OnRemovingFromWorld(obj_id self) throws InterruptedException
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
}
|