killswitch()
{
for(i=1;i<5;i++)
thread monitorKillswitch(getent("killswitch_" + i, "targetname"), i);
level.kw = [];
level.kw[1] = false;
level.kw[2] = false;
level.kw[3] = false;
level.kw[4] = false;
}
monitorKillswitch(trigger, i)
{
while(1)
{
trigger waittill("trigger", player);
prevnum = i-1 + "";
currentnum = i + "";
if(isDefined(level.kw[i-1]) && !level.kw[i-1]) // if there is a trigger before this one and it's not yet triggered
player iprintlnbold("Activate killswitch ^1" + prevnum + "^7 first");
else if(level.kw[i]) // else if the current trigger is already triggered
player iprintlnbold("Killswitch ^1" + currentnum + "^7 is already activated");
else if((!isDefined(level.kw[i-1]) || level.kw[i-1]) && !level.kw[i]) // else if the previous trigger is triggered and this one isn't
{
player iprintlnbold("Killswitch ^1" + currentnum + "^7 Engaged");
level.kw[i] = true;
break;
}
if(!isDefined(level.kw[i+1]) && level.kw[i]) // if there is no next trigger and the current one is activated
{
thread doKill();
break;
}
}
}