Changed folder name.

Changed folder name.
This commit is contained in:
Jaysyn904
2022-10-07 21:08:37 -04:00
parent 1c33c2843e
commit 8d97886c3f
7060 changed files with 0 additions and 0 deletions

119
_module/nss/exitarena.nss Normal file
View File

@@ -0,0 +1,119 @@
//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<NUM_INVENTORY_SLOTS; nSlot++)
{
oItem=GetItemInSlot(nSlot, oPC);
//unequip if valid
if (GetIsObjectValid(oItem))
{
//Unequip all arena items instantly!
if(GetTag(oItem)=="arena")
DelayCommand(5.0, AssignCommand(oPC, ActionUnequipItem(oItem)));
}
}
oItem = GetFirstItemInInventory(oPC);
//Remove the arena token from the exiting PC
while (GetIsObjectValid(oItem))
{
if (GetTag(oItem)=="arenatoken") DestroyObject(oItem);
oItem = GetNextItemInInventory(oPC);
}
if (GetLocalInt(oArea, "CleanArea") != 1)
{
DelayCommand(fDelayTime, CleanArea(oArea));
SetLocalInt(oArea, "CleanArea", 1);
}
}