Files
HeroesStone_PRC8/_module/nss/torch_timer.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

52 lines
1.5 KiB
Plaintext

/*Original author: Elidrin, to whom I am most grateful
My own contributions are minimal:
Customized torch life by changing the int on line 15; added a
warning of impending darkness when only 30 seconds remain;
added string-check function "TorchCheck" to apply limited life
to any item with tag containing the word "torch."
*/
int TorchCheck (object oPC);
void main()
{
object oPC = GetFirstPC();
int iTorch = GetLocalInt(oPC,"Torch");
object oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND ,oPC);
int nLife = 5; //Enter the number of minutes of torch life
while (oPC != OBJECT_INVALID)
{
if (TorchCheck(oPC) >= 0)
{
if (GetLastRestEventType() == REST_EVENTTYPE_REST_STARTED)
iTorch = 1000;
else
iTorch = iTorch+1;
//Send a warning at 30 seconds to go...
if (iTorch == ((nLife * 10) - 5))
SendMessageToPC(oPC,"Your torch is beginning to flicker and fade.");
//Make it go out
if (iTorch >= (nLife * 10))
{
AssignCommand(oPC,ActionUnequipItem(oItem));
DestroyObject(oItem);
SendMessageToPC(oPC,"Your torch has burned out.");
SetLocalInt(oPC,"Torch",0);
}
else
SetLocalInt(oPC,"Torch",iTorch);
}
oPC = GetNextPC();
}
}
int TorchCheck (object oPC)
{
int nTCheck;
string sTag = GetTag(GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC));
string sTagLow = GetStringLowerCase(sTag);
nTCheck = FindSubString(sTagLow,"torch");
return nTCheck;
}