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

109 lines
2.7 KiB
Plaintext

const string STF_FILE = "event_perk";
trigger OnAttach()
{
float lifeSpan = getFloatObjVar(self, "event_perk.lifeSpan");
float timeStamp = getFloatObjVar(self, "event_perk.timeStamp");
float deathStamp = timeStamp + lifeSpan;
float rightNow = getGameTime();
float dieTime = deathStamp - rightNow;
messageTo(self, "cleanUp", null, dieTime, true);
return SCRIPT_CONTINUE;
}
messageHandler landShuttle()
{
int shuttleType = getIntObjVar(self, "event_perk.shuttle.shuttleType");
setObjVar(self, "event_perk.shuttle.readyTakeOff", 0);
messageTo(self, "readyTakeOff", null, 40, false);
if(shuttleType == 1)
{
queueCommand(self, ##"stand", self, "", COMMAND_PRIORITY_FRONT);
setPosture(self, POSTURE_UPRIGHT);
}
if(shuttleType == 0 || shuttleType == 2)
{
queueCommand(self, ##"prone", self, "", COMMAND_PRIORITY_FRONT);
setPosture(self, POSTURE_PRONE);
}
if(shuttleType == 3)
{
queueCommand(self, ##"kneel", self, "", COMMAND_PRIORITY_FRONT);
setPosture(self, POSTURE_CROUCHED);
}
obj_id owner = getObjIdObjVar(self, "event_perk.owner");
sendSystemMessage(owner, new string_id(STF_FILE, "shuttle_is_landing"));
return SCRIPT_CONTINUE;
}
messageHandler readyTakeOff()
{
setObjVar(self, "event_perk.shuttle.readyTakeOff", 1);
return SCRIPT_CONTINUE;
}
messageHandler takeOff()
{
int shuttleType = getIntObjVar(self, "event_perk.shuttle.shuttleType");
int readyTakeOff = getIntObjVar(self, "event_perk.shuttle.readyTakeOff");
obj_id owner = getObjIdObjVar(self, "event_perk.owner");
if(readyTakeOff == 0)
{
sendSystemMessage(owner, new string_id(STF_FILE, "shuttle_not_take_off"));
return SCRIPT_CONTINUE;
}
if(shuttleType == 1)
{
queueCommand(self, ##"prone", self, "", COMMAND_PRIORITY_FRONT);
setPosture(self, POSTURE_PRONE);
}
if(shuttleType == 0 || shuttleType > 1)
{
queueCommand(self, ##"stand", self, "", COMMAND_PRIORITY_FRONT);
setPosture(self, POSTURE_UPRIGHT);
}
messageTo(self, "cleanUp", null, 20, false);
sendSystemMessage(owner, new string_id(STF_FILE, "shuttle_is_leaving"));
return SCRIPT_CONTINUE;
}
messageHandler cleanUp()
{
obj_id owner = getObjIdObjVar(self, "event_perk.owner");
obj_id beacon = getObjIdObjVar(self, "event_perk.shuttle.owner");
messageTo(beacon, "getRidOfShuttle", null, 0, true);
sendSystemMessage(owner, new string_id(STF_FILE, "shuttle_next_is_ready"));
destroyObject(self);
return SCRIPT_CONTINUE;
}
void checkTimeLimit(obj_id self)
{
float lifeSpan = getFloatObjVar(self, "event_perk.lifeSpan");
float timeStamp = getFloatObjVar(self, "event_perk.timeStamp");
float rightNow = getGameTime();
float delta = rightNow - timeStamp;
if(delta > lifeSpan)
destroyObject(self);
return;
}
trigger OnAddedToWorld()
{
checkTimeLimit(self);
return SCRIPT_CONTINUE;
}