//////////////////////////////////////////////////////////////////////////////// // it_rh_bag - Random House Bag // By Deva B. Winblood. November 12th, 2008 //////////////////////////////////////////////////////////////////////////////// #include "x3_inc_string" //////////////////////////////////// // FUNCTIONS //////////////////////////////////// void fnTransferGoods(object oSource,object oDestination,int bDestroy=FALSE) { // PURPOSE: Transfer goods object oItem; object oCopy; oItem=GetFirstItemInInventory(oSource); while(GetIsObjectValid(oItem)) { // transfer oCopy=CopyItem(oItem,oDestination,TRUE); DelayCommand(0.5,DestroyObject(oItem)); oItem=GetNextItemInInventory(oSource); } // transfer if (bDestroy) DelayCommand(1.0,DestroyObject(oSource)); } // fnTransferGoods() //////////////////////////////////////////////////////////////////////[ MAIN ]// void main() { object oPC=GetItemActivator(); string sName=GetName(oPC); string sKey=StringReplace(sName," ","_"); string sPlayer=GetPCPlayerName(oPC); string sTag="RH_"+GetStringLeft(sPlayer,2)+sKey+GetStringRight(sPlayer,2); object oTemp; object oWP=GetWaypointByTag("PC_CUSTOMIZATION"); sTag=StringReplace(sTag," ",""); object oStore=GetObjectByTag(sTag); if (GetLocalInt(oPC,"bBagOpening")) { // already opened SendMessageToPC(oPC,"Already opening that... please wait."); } // already opened if (!GetIsObjectValid(oStore)) { // create SendMessageToPC(oPC,"Create storage '"+sTag+"'"); oStore=CreateObject(OBJECT_TYPE_PLACEABLE,"rh_pl_bagstore",GetLocation(oWP),FALSE,sTag); SetLocalObject(oStore,"oOwner",oPC); if (GetTag(oStore)!=sTag) SendMessageToPC(oPC,"ERROR it_rh_bag: Could not give placeable the tag '"+sTag+"' Strlen:"+IntToString(GetStringLength(sTag))+" Actual Tag '"+GetTag(oStore)+"'"); } // create oTemp=CreateObject(OBJECT_TYPE_PLACEABLE,"rh_pl_bag",GetLocation(oPC)); SetLocalObject(oTemp,"oOwner",oPC); SetLocalObject(oTemp,"oStorage",oStore); fnTransferGoods(oStore,oTemp); FloatingTextStringOnCreature("** Please wait while opening bag. **",oPC,FALSE); AssignCommand(oPC,ClearAllActions(TRUE)); //AssignCommand(oPC,ActionOpenDoor(oTemp)); //AssignCommand(oPC,ActionMoveAwayFromObject(oTemp,TRUE,2.0)); AssignCommand(oPC,ActionInteractObject(oTemp)); } //////////////////////////////////////////////////////////////////////[ MAIN ]//