74 lines
3.2 KiB
Plaintext
74 lines
3.2 KiB
Plaintext
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
* Created By: Astaroth
|
|
* Created On: 6/22/2002
|
|
* Clears a PC's inventory when he/she first enters the trigger.
|
|
* Only runs once, when CLEAR_INV_SCENE variable equals 0.
|
|
* After running, CLEAR_INV_SCENE is set to 1 so PC's
|
|
* inventory isn't cleared again should he/she walk back into
|
|
* the trigger for whatever reason.
|
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
void main()
|
|
{
|
|
object oEnteringPC;
|
|
object oInvItem;
|
|
// Get the object that last entered this area
|
|
oEnteringPC = GetEnteringObject();
|
|
// Make sure the object is a PC
|
|
if (GetIsPC(oEnteringPC))
|
|
{
|
|
// Only clear inventory if we haven't already done it before
|
|
if (GetLocalInt(oEnteringPC, "CLEAR_INV_SCENE1") == 0)
|
|
{
|
|
oInvItem = GetFirstItemInInventory(oEnteringPC);
|
|
while (oInvItem != OBJECT_INVALID)
|
|
{
|
|
//ActionTakeItem(oInvItem, oEnteringPC);
|
|
DestroyObject(oInvItem);
|
|
oInvItem = GetNextItemInInventory(oEnteringPC);
|
|
}
|
|
// Since GetNextItemInInvetory() seems to not return equipped items,
|
|
// we need to manually remove them one by one.
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_ARROWS, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_BELT, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_BOLTS, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_BOOTS, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_BULLETS, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_CLOAK, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_HEAD, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_NECK, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
if ( OBJECT_INVALID != (oInvItem = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oEnteringPC)) )
|
|
DestroyObject(oInvItem);
|
|
// Make sure this script doesn't run anymore for the current PC
|
|
SetLocalInt(oEnteringPC, "CLEAR_INV_SCENE1", 1);
|
|
}
|
|
}
|
|
}
|
|
|
|
|