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

99 lines
2.0 KiB
Plaintext

include library.sui;
include library.utils;
include library.buff;
trigger OnInitialize()
{
detachScript(self, sui.COUNTDOWNTIMER_PLAYER_SCRIPT);
return SCRIPT_CONTINUE;
}
trigger OnDetach()
{
removeObjVar(self, sui.COUNTDOWNTIMER_SUI_VAR);
utils.removeScriptVarTree(self, sui.COUNTDOWNTIMER_VAR);
//group 2 in buff.tab, this shuts down all channeled buffs
int channelBuff = buff.getBuffOnTargetFromGroup(self, "channeled");
if(channelBuff !=0)
buff.removeBuff(self, channelBuff);
return SCRIPT_CONTINUE;
}
trigger OnEnteredCombat()
{
if(sui.hasEventFlag(self, sui.CD_EVENT_COMBAT))
{
sui.cancelCountdownTimer(self, sui.CD_EVENT_COMBAT);
}
return SCRIPT_CONTINUE;
}
trigger OnLocomotionChanged(int newLocomotion, int oldLocomotion)
{
if(newLocomotion != LOCOMOTION_STANDING && newLocomotion != LOCOMOTION_KNEELING && newLocomotion != LOCOMOTION_PRONE)
{
if(sui.hasEventFlag(self, sui.CD_EVENT_LOCOMOTION))
{
sui.cancelCountdownTimer(self, sui.CD_EVENT_LOCOMOTION);
}
}
return SCRIPT_CONTINUE;
}
trigger OnChangedPosture(int before, int after)
{
if(sui.hasEventFlag(self, sui.CD_EVENT_POSTURE))
{
sui.cancelCountdownTimer(self, sui.CD_EVENT_POSTURE);
}
return SCRIPT_CONTINUE;
}
trigger OnIncapacitated(obj_id killer)
{
if(sui.hasEventFlag(self, sui.CD_EVENT_INCAPACITATE))
{
sui.cancelCountdownTimer(self, sui.CD_EVENT_INCAPACITATE);
}
return SCRIPT_CONTINUE;
}
trigger OnCreatureDamaged(obj_id attacker, obj_id weapon, int[] damage)
{
if(sui.hasEventFlag(self, sui.CD_EVENT_DAMAGED))
{
sui.cancelCountdownTimer(self, sui.CD_EVENT_DAMAGED);
}
return SCRIPT_CONTINUE;
}
messageHandler handleCountdownTimerCleanup()
{
if(!hasObjVar(self, sui.COUNTDOWNTIMER_SUI_VAR))
{
detachScript(self, sui.COUNTDOWNTIMER_PLAYER_SCRIPT);
return SCRIPT_CONTINUE;
}
int pid = params.getInt("id");
int test_pid = getIntObjVar(self, sui.COUNTDOWNTIMER_SUI_VAR);
if(pid == test_pid)
{
detachScript(self, sui.COUNTDOWNTIMER_PLAYER_SCRIPT);
forceCloseSUIPage(pid);
}
return SCRIPT_CONTINUE;
}