NWScript:
void MovePCItemsToHolder(object oPC, object oHolder);
void main()
{
object oPC;
object oHolder;
oPC = GetEnteringObject();
oHolder = GetObjectByTag("it_pcItemChest");
MovePCItemsToHolder(oPC, oHolder);
}
void MovePCItemsToHolder(object oPC, object oHolder)
{
int nStackSize;
int nCount;
object oPCItem;
object oHolderItem;
if(!GetIsObjectValid(oPC) || !GetIsObjectValid(oHolder))
return;
if(GetIsPC(oPC) && GetHasInventory(oHolder))
{
oPCItem = GetFirstItemInInventory(oPC);
while(oPCItem != OBJECT_INVALID)
{
nStackSize = GetNumStackedItems(oPCItem);
for(nCount = 0; nCount < nStackSize; nCount++)
{
oHolderItem = CreateItemOnObject(GetTag(oPCItem), oHolder);
SetPlotFlag(oHolderItem, GetPlotFlag(oPCItem));
SetIdentified(oHolderItem, GetIdentified(oPCItem));
}
DestroyObject(oPCItem);
oPCItem = GetNextItemInInventory(oPC);
}
for(nCount = 0; nCount < NUM_INVENTORY_SLOTS; nCount++)
{
oPCItem = GetItemInSlot(nCount, oPC);
if(oPCItem != OBJECT_INVALID)
{
oHolderItem = CreateItemOnObject(GetTag(oPCItem), oHolder);
SetPlotFlag(oHolderItem, GetPlotFlag(oPCItem));
SetIdentified(oHolderItem, GetIdentified(oPCItem));
DestroyObject(oPCItem);
}
}
}
}