generated from Jaysyn/ModuleTemplate
52 lines
1.5 KiB
Plaintext
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;
|
|
}
|