mirror of
https://bitbucket.org/seefoe/dsrc.git
synced 2026-07-31 01:15:55 -04:00
113 lines
3.4 KiB
Plaintext
113 lines
3.4 KiB
Plaintext
include library.chat;
|
|
|
|
trigger OnAttach()
|
|
{
|
|
//messageTo (self, "bark", null, 10, true);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnObjectMenuRequest(obj_id player, menu_info mi)
|
|
{
|
|
int mnu = mi.addRootMenu (menu_info_types.SELF_DESTRUCT, new string_id("self_destruct","self_destruct"));
|
|
mi.addSubMenu(mnu, menu_info_types.THIRTY_SEC, new string_id("self_destruct","thirty"));
|
|
mi.addSubMenu(mnu, menu_info_types.FIFTEEN_SEC, new string_id("self_destruct","fifteen"));
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnObjectMenuSelect(obj_id player, int item)
|
|
{
|
|
|
|
if (item == menu_info_types.THIRTY_SEC)
|
|
{
|
|
obj_id bldg = getTopMostContainer (self);
|
|
if (bldg == self)
|
|
{
|
|
bldg = getObjIdObjVar (self, "bldg");
|
|
}
|
|
playMusic (player, "sound/music_darth_vader_theme.snd");
|
|
chat.chat (self, new string_id ("self_destruct", "thirty_seconds"));
|
|
dictionary destroyer = new dictionary();
|
|
destroyer.put ("player", player);
|
|
destroyer.put ("bldg", bldg);
|
|
messageTo (self, "firstPop", destroyer, 10, true);
|
|
messageTo (self, "firstPop", destroyer, 20, true);
|
|
messageTo (self, "blowUp", destroyer, 30, true);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
else if ( item == menu_info_types.FIFTEEN_SEC)
|
|
{
|
|
obj_id bldg = getTopMostContainer (self);
|
|
if (bldg == self)
|
|
{
|
|
bldg = getObjIdObjVar (self, "bldg");
|
|
}
|
|
chat.chat (self, new string_id ("self_destruct", "fifteen_seconds"));
|
|
dictionary destroyer = new dictionary();
|
|
destroyer.put ("player", player);
|
|
destroyer.put ("bldg", bldg);
|
|
messageTo (self, "firstPop", destroyer, 5, true);
|
|
messageTo (self, "blowUp", destroyer, 15, true);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler blowUp()
|
|
{
|
|
obj_id viewer = params.getObjId("player");
|
|
obj_id bldg = params.getObjId ("bldg");
|
|
location death = getLocation (bldg);
|
|
playClientEffectLoc(viewer, "clienteffect/combat_explosion_lair_large.cef", death, 10f);
|
|
death.x = death.x + 5;
|
|
playClientEffectLoc(viewer, "clienteffect/combat_explosion_lair_large.cef", death, 10f);
|
|
death.z = death.z + 5;
|
|
playClientEffectLoc(viewer, "clienteffect/combat_explosion_lair_large.cef", death, 10f);
|
|
death.x = death.x - 10;
|
|
playClientEffectLoc(viewer, "clienteffect/combat_explosion_lair_large.cef", death, 10f);
|
|
death.z = death.z - 10;
|
|
playClientEffectLoc(viewer, "clienteffect/combat_explosion_lair_large.cef", death, 10f);
|
|
boolean blowUp = destroyObject (bldg);
|
|
dictionary destroyer = new dictionary();
|
|
destroyer.put ("player", viewer);
|
|
destroyer.put ("bldg", bldg);
|
|
messageTo (self, "bldgCheck", destroyer, 1, true);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler firstPop()
|
|
{
|
|
obj_id viewer = params.getObjId("player");
|
|
obj_id bldg = getTopMostContainer (self);
|
|
location death = getLocation (bldg);
|
|
playClientEffectLoc(viewer, "clienteffect/combat_explosion_lair_large.cef", death, 10f);
|
|
obj_id player = getObjIdObjVar (bldg, "player");
|
|
if (!hasObjVar (self, "sentMsgToPlayer"))
|
|
{
|
|
messageTo (player, "finishQuest", null, 0, true);
|
|
setObjVar (self, "sentMsgToPlayer", 1);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler bark()
|
|
{
|
|
debugSpeakMsg (self, "I'm right here at " + getLocation(self));
|
|
messageTo (self, "bark", null, 10, true);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler bldgCheck()
|
|
{
|
|
obj_id viewer = params.getObjId("player");
|
|
obj_id bldg = params.getObjId ("bldg");
|
|
|
|
if (exists (bldg))
|
|
{
|
|
sendSystemMessage (viewer, "System detects lifeforms inside building, shutting down self destruct", null);
|
|
}
|
|
else
|
|
{
|
|
destroyObject (self);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
} |