49 lines
1.4 KiB
Plaintext
49 lines
1.4 KiB
Plaintext
void RecursiveChestRestore(object oStore, int iFirst=TRUE)
|
|
{
|
|
object oItem = GetFirstItemInInventory(oStore);
|
|
while(oItem!=OBJECT_INVALID)
|
|
{
|
|
if(!iFirst || GetHasInventory(oItem))
|
|
{
|
|
ActionTakeItem(oItem, oStore);
|
|
}
|
|
oItem = GetNextItemInInventory(oStore);
|
|
}
|
|
if(iFirst)
|
|
{
|
|
AssignCommand(
|
|
OBJECT_SELF,
|
|
ActionDoCommand(
|
|
RecursiveChestRestore(
|
|
oStore, FALSE
|
|
)
|
|
)
|
|
);
|
|
return;
|
|
}
|
|
AssignCommand(OBJECT_SELF,
|
|
ActionDoCommand(
|
|
DestroyObject(oStore)
|
|
)
|
|
);
|
|
}
|
|
void main()
|
|
{
|
|
object oPC = GetLastOpenedBy();
|
|
SendMessageToPC(oPC, "Saving items is expensive in script time use on the server"+
|
|
"\n You must therefore wait 60 seconds between transactions"+
|
|
"\n The chest will be locked for that period after you close"
|
|
);
|
|
|
|
|
|
string sName = GetName(oPC);
|
|
string sLeft = GetStringLeft(sName,4);
|
|
string sCampName = "BankVaults_" + sLeft;
|
|
object oStore = RetrieveCampaignObject(sCampName,"Chest", GetLocation(OBJECT_SELF), OBJECT_INVALID,oPC);
|
|
|
|
// Override the existing campaign object for this
|
|
// player
|
|
StoreCampaignObject(sCampName,"Chest", OBJECT_INVALID,oPC);
|
|
AssignCommand(OBJECT_SELF, ActionDoCommand(RecursiveChestRestore(oStore)));
|
|
}
|