84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
//*****************************************************************************
|
|
/*
|
|
Filename: pcnt_close
|
|
|
|
To Use:
|
|
attach this script to the OnClose event of a container
|
|
|
|
you can customize several parameters:
|
|
|
|
choose object TAG for ID generation (ReflexSafe != 2)
|
|
!! use this to share inventories
|
|
!! use this for moving inventories (like creatures)
|
|
|
|
use player for ID generation (ReflexSafe = 2)
|
|
!! use this for player vaults. each player gets his own inventory
|
|
!! from a single container
|
|
|
|
|
|
Created By: Unknown??
|
|
Modified By: Gregg Anderson
|
|
|
|
10/9/2006
|
|
*/
|
|
//*****************************************************************************
|
|
#include "horse_include"
|
|
|
|
void main()
|
|
{
|
|
string sTag = GetTag(OBJECT_SELF);
|
|
int nType = GetReflexSavingThrow(OBJECT_SELF);
|
|
if(nType == 2)
|
|
sTag = GetPCPlayerName(GetLastOpenedBy());
|
|
|
|
string sVarName;
|
|
int i = 0;
|
|
|
|
object obj = GetFirstItemInInventory();
|
|
object bag;
|
|
|
|
while( obj != OBJECT_INVALID )
|
|
{
|
|
if( GetHasInventory( obj ) )
|
|
{
|
|
bag = obj;
|
|
|
|
obj = GetFirstItemInInventory(bag);
|
|
while( obj != OBJECT_INVALID )
|
|
{
|
|
SetLocalInt(obj, "bagged", TRUE);
|
|
obj = GetNextItemInInventory(bag);
|
|
}
|
|
}
|
|
|
|
obj = GetNextItemInInventory();
|
|
}
|
|
|
|
int iMax = 0;
|
|
object oItem = GetFirstItemInInventory();
|
|
|
|
while (oItem != OBJECT_INVALID)
|
|
{
|
|
sVarName = sTag + "_" + IntToString(i);
|
|
if ((GetLocalObject(OBJECT_SELF, sVarName) != oItem) && (!GetLocalInt(oItem, "bagged")))
|
|
{
|
|
StoreCampaignObject(CAMPAIGN_DATABASE, sVarName, oItem);
|
|
SetLocalObject(OBJECT_SELF, sVarName, oItem);
|
|
}
|
|
|
|
if (!GetLocalInt(oItem, "bagged"))
|
|
{
|
|
iMax++;
|
|
i++;
|
|
}
|
|
else
|
|
{
|
|
DeleteLocalInt(oItem, "bagged");
|
|
}
|
|
|
|
oItem = GetNextItemInInventory();
|
|
}
|
|
|
|
SetCampaignInt(CAMPAIGN_DATABASE, sTag + "_n", iMax);
|
|
}
|