//Place on exit of an area //Note: This is a very important script, it should go on the exit event of //all area you create. (with some exceptions) This reduces lagg too! // Set this to FALSE if you do not want placeable inventories cleared int nClearPlaceInv = FALSE; // Set the amount of time to wait for cleaning here in seconds float fDelayTime = 5.0; void CleanArea(object oArea) { object oTrash = GetFirstObjectInArea(oArea); object oInvItem; //Check for PCs object oPC = GetFirstPC(); while (GetIsObjectValid(oPC)) { if (GetArea(oPC) == oArea) { DeleteLocalInt(oArea, "CleanArea"); return; } oPC = GetNextPC(); } while(GetIsObjectValid(oTrash)) { string sTagPrefix = GetStringLeft(GetTag(oTrash), 15); // Clear remains, dropped items if(GetObjectType(oTrash)==OBJECT_TYPE_ITEM || GetStringLowerCase(GetName(oTrash)) == "remains") { AssignCommand(oTrash, SetIsDestroyable(TRUE)); if (GetHasInventory(oTrash)) { oInvItem = GetFirstItemInInventory(oTrash); while(GetIsObjectValid(oInvItem)) { DestroyObject(oInvItem,0.0); oInvItem = GetNextItemInInventory(oTrash); } } else DestroyObject(oTrash, 0.0); } // Clear placeable inventories if(GetObjectType(oTrash)==OBJECT_TYPE_PLACEABLE && nClearPlaceInv == TRUE) { if (GetHasInventory(oTrash)) { object oInvItem = GetFirstItemInInventory(oTrash); while(GetIsObjectValid(oInvItem)) { DestroyObject(oInvItem,0.0); oInvItem = GetNextItemInInventory(oTrash); } } } // Clear encounters else if (GetIsEncounterCreature(oTrash) || sTagPrefix == "PWFSE_SPAWNERID") { AssignCommand(oTrash, SetIsDestroyable(TRUE)); DestroyObject(oTrash, 0.0); } else if (GetTag(oTrash) == "ZEP_PONY_005") { AssignCommand(oTrash, SetIsDestroyable(TRUE)); DestroyObject(oTrash, 0.0); } else if (GetTag(oTrash) == "Pack_Pony") { AssignCommand(oTrash, SetIsDestroyable(TRUE)); DestroyObject(oTrash, 0.0); } oTrash = GetNextObjectInArea(oArea); } DeleteLocalInt(oArea, "CleanArea"); } void main() { object oArea = OBJECT_SELF; object oPC = GetExitingObject(); if (!GetIsPC(oPC)) return; object oItem; int nSlot; //Unequip all items when the player exits the arena. for (nSlot=0; nSlot