/********************************* ** Table Top Variant ruleset ** ** On Client Enter event ** ** This is used with the death-code and the ** rest code. ** ** Written by Jay Barnson, 2002 ** *************************************/ #include "horse_include" #include "enterinc" #include "pqj_inc" void main() { object oPC = GetEnteringObject(); GPA_HorseOCL(oPC); SetLocalInt(oPC,"stables",1); object oAmulet; object oCorpse; int hp; int hpOffset; int inCombat = 0; location oPCLoc = GetLocation(oPC); //KillSpells (oPC,oPCLoc); RebuildJournalQuestEntries(GetEnteringObject()); if (GetIsPC(oPC)) { // if hitpoints < 1, bring them up to 1, and kick them back down again // to fire off their "on dying" script. // I THINK this only occurs with server-vault characters. hp = GetCurrentHitPoints(oPC); if (hp<1) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(1-hp),oPC); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(-(hp-1)),oPC); } else { hpOffset = GetLocalInt(GetModule(),"HPOff_"+GetName(oPC)); if (hpOffset>0) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(hpOffset),oPC); } } // If they were in-combat, do some ADDITIONAL damage to them // (1d4 damage per level of the character). inCombat = GetLocalInt(GetModule(),"CMBT_"+GetName(oPC)); if (inCombat) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(d4(GetHitDice(oPC))),oPC); } } // Set LastTimeRested = current time - 9 minutes // (give them 1 minute of "wait time", to limit the exploits // with exiting & returning...) if (!inCombat) SetLocalInt(oPC,"LastTimeRested",GetLocalInt(GetModule(),"SecondCount")-540); else // They have to wait the full amount if they left in mid-combat. SetLocalInt(oPC,"LastTimeRested",GetLocalInt(GetModule(),"SecondCount")); }