Auto equip torch

What It Does
Guard equips / unequips a torch based on day/night check.

In the onHeartBeat event the guard (or any NPC) will do a GetIsDay / GetIsDawn check. If day then they will unequip the torch (if they are currently using one) and reequip what they were using before the torch (if they were using something in their offhand).

Similarily if it is dark then they will unequip the item in their offhand and equip a torch and also remember what they were using in their offhand for when day break comes.

Note
I have not figured out how to make the little scrolly window appear with the code inside yet. Will update when I figure it out.

Any probs with the script let me know. To test it (other then waiting) I created two levers: one for day and one for night.

The Script
/* Created By: Sean Bradbury Created On: July 27 2002 Definition: Have guard equip and unequip a torch based on time of day. Synopsis: The guard checks to see what the time of day is. If nighttime then store the item in the off hand and equip a torch. If daytime then unequip the torch and reequip the item that was being used before we equipped the torch.

void main { object oItem; object oldObject; int noTorch = 0; /* Check to see if it is day or night and the equip or unequip a torch as necessary.

if(GetIsDay || GetIsDawn) { // Put torch away if we are holding one oItem = GetItemInSlot (INVENTORY_SLOT_LEFTHAND); if (GetLocalInt (OBJECT_SELF, "torchReady")) { ActionUnequipItem (oItem); SetLocalInt (OBJECT_SELF, "torchReady", 0); // Get the item we were holding in the left hand before we started // using the torch and the equip it. oldObject = GetLocalObject(OBJECT_SELF, "oldObject"); ActionEquipItem (oldObject, INVENTORY_SLOT_LEFTHAND); } } else { // check to see if we already have one going noTorch = GetLocalInt (OBJECT_SELF, "torchReady"); if (!noTorch) { oItem = CreateItemOnObject("seantorch"); if (oItem != OBJECT_INVALID) { // Get the current item in the left hand and store it for later use oldObject = GetItemInSlot (INVENTORY_SLOT_LEFTHAND); SetLocalObject (OBJECT_SELF,"oldObject", oldObject); ActionEquipItem (oItem, INVENTORY_SLOT_LEFTHAND); SetLocalInt (OBJECT_SELF, "torchReady", 1); } } } // END TORCH routine }