Changed folder name.
Changed folder name.
This commit is contained in:
681
_module/nss/inv_system_old.nss
Normal file
681
_module/nss/inv_system_old.nss
Normal file
@@ -0,0 +1,681 @@
|
||||
//Script Name: inv_system_ou
|
||||
//////////////////////////////////////////
|
||||
//Created By: Genisys (Guile)
|
||||
//Created On: 8/05/08
|
||||
/////////////////////////////////////////
|
||||
/*
|
||||
This goes in the OnUsed event of any
|
||||
useable placeable object without an
|
||||
inventory, it seperates all of the PC's
|
||||
items into bags, destroy all previous
|
||||
bags they had, nobody can use this
|
||||
system while another is using it!
|
||||
*/
|
||||
////////////////////////////////////////
|
||||
|
||||
//Redundant Variable
|
||||
object oPC;
|
||||
|
||||
////////////////////////////////////////
|
||||
//PROTOTYPES DECLARED
|
||||
int GetNum(object oTarget);
|
||||
void Seperate(object oTarget);
|
||||
void Disperse(object oTarget);
|
||||
void TakeAll(object oTarget);
|
||||
void ReturnUndroppables(object oTarget);
|
||||
void SortContainer(object oTarget);
|
||||
void SortBox(object oTarget);
|
||||
void GiveAll(object oTarget);
|
||||
|
||||
//NO INCLUDES required (It's all required to be in this script!)
|
||||
|
||||
//////////////////////////////////////////////////////////
|
||||
//Main Script
|
||||
void main()
|
||||
{
|
||||
|
||||
//Declare All Major Variables
|
||||
|
||||
oPC = GetLastUsedBy();
|
||||
object oSelf = OBJECT_SELF;
|
||||
object oItem;
|
||||
|
||||
//This is an important conditional fix to Module Events
|
||||
//We don't want the aquire / unaquire Events firing on the PC!
|
||||
//Otherwise it could cause some MAJOR Problems!
|
||||
if(GetLocalInt(GetModule(), "ORGANIZING")==1)
|
||||
{
|
||||
FloatingTextStringOnCreature("This system is busy, try again later", oPC, FALSE);
|
||||
//Stop the script here!
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
//This is a fix to Module Event Scripts (Prevents them from firing on PC)
|
||||
SetLocalInt(GetModule(), "ORGANIZING", 1);
|
||||
//Allow the system to be useable again after some time..
|
||||
DelayCommand(24.1, SetLocalInt(GetModule(), "ORGANIZING", 0));
|
||||
}
|
||||
|
||||
//The holding tank!
|
||||
object oNPC = GetObjectByTag("ihold4u");
|
||||
|
||||
object oBox;
|
||||
oBox = GetObjectByTag("ibox");
|
||||
object oBox1;
|
||||
oBox1 = GetObjectByTag("plotbox");
|
||||
object oBox2;
|
||||
oBox2 = GetObjectByTag("potbox");
|
||||
object oBox3;
|
||||
oBox3 = GetObjectByTag("wepbox");
|
||||
object oBox4;
|
||||
oBox4 = GetObjectByTag("armbox");
|
||||
object oBox5;
|
||||
oBox5 = GetObjectByTag("obox");
|
||||
object oBox6;
|
||||
oBox6 = GetObjectByTag("ammobox");
|
||||
object oBox7;
|
||||
oBox7= GetObjectByTag("rswbox");
|
||||
object oBox8;
|
||||
oBox8= GetObjectByTag("ihold4u");
|
||||
|
||||
//If this system is in use, tell them to try later..
|
||||
if(GetLocalInt(oSelf, "INUSENOW")==1)
|
||||
{
|
||||
FloatingTextStringOnCreature("System in use, try again later.", oPC, FALSE);
|
||||
//Stop here!
|
||||
return;
|
||||
}
|
||||
//Otherwise allow them to use it and set that it's in use
|
||||
else
|
||||
{
|
||||
SetLocalInt(oSelf, "INUSENOW", 1);
|
||||
}
|
||||
|
||||
//First, take all items from inside of bags first!
|
||||
oItem = GetFirstItemInInventory(oPC);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
if(GetHasInventory(oItem))
|
||||
{
|
||||
//Have the proper container take the item.
|
||||
DelayCommand(1.0, Seperate(oItem));
|
||||
}
|
||||
|
||||
//continue the loop..
|
||||
oItem = GetNextItemInInventory(oPC);
|
||||
}
|
||||
|
||||
|
||||
//After Bags have been emptied, take the rest of the items and
|
||||
//destroy all remaining bags..
|
||||
DelayCommand(10.5, TakeAll(oPC));
|
||||
|
||||
//Now put the items into the proper sorting box..
|
||||
DelayCommand(18.0, ReturnUndroppables(oBox));
|
||||
|
||||
//Sort the Boxes now holding the copied items
|
||||
DelayCommand(20.1, SortBox(oBox1));
|
||||
DelayCommand(21.2, SortBox(oBox2));
|
||||
DelayCommand(22.3, SortBox(oBox3));
|
||||
DelayCommand(23.4, SortBox(oBox4));
|
||||
DelayCommand(24.5, SortBox(oBox5));
|
||||
DelayCommand(25.6, SortBox(oBox6));
|
||||
DelayCommand(26.7, SortBox(oBox7));
|
||||
DelayCommand(27.8, SortBox(oBox));
|
||||
|
||||
//Return ALL Items in ALL Boxes (Safe Guard!)
|
||||
DelayCommand(28.1, GiveAll(oBox1));
|
||||
DelayCommand(28.2, GiveAll(oBox2));
|
||||
DelayCommand(28.3, GiveAll(oBox3));
|
||||
DelayCommand(28.4, GiveAll(oBox4));
|
||||
DelayCommand(28.5, GiveAll(oBox5));
|
||||
DelayCommand(28.6, GiveAll(oBox6));
|
||||
DelayCommand(28.7, GiveAll(oBox7));
|
||||
DelayCommand(28.8, GiveAll(oBox8));
|
||||
DelayCommand(28.9, GiveAll(oBox));
|
||||
|
||||
DelayCommand(30.0, FloatingTextStringOnCreature(
|
||||
"Organizing Complete.", oPC, TRUE));
|
||||
|
||||
DelayCommand(30.1, SetLocalInt(oSelf, "INUSENOW", 0));
|
||||
|
||||
//Main Script End
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
//DEFINE ALL PROTOTYPES//////////////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
//PROTOTYPE DEFINED
|
||||
// Return the number of items oTarget possesses in thier inventory
|
||||
int GetNum(object oTarget)
|
||||
{
|
||||
int nNum = 0;
|
||||
object oItem = GetFirstItemInInventory(oTarget);
|
||||
|
||||
while (GetIsObjectValid(oItem) == TRUE)
|
||||
{
|
||||
nNum = nNum +1;
|
||||
oItem = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
return nNum;
|
||||
|
||||
//END PROTOTYPE
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//PROTOTYPE DEFINED
|
||||
void Seperate(object oTarget)
|
||||
{
|
||||
|
||||
object oPC = oTarget;
|
||||
object oBox;
|
||||
oBox = GetObjectByTag("ibox");
|
||||
object oBox1;
|
||||
oBox1 = GetObjectByTag("plotbox");
|
||||
object oBox2;
|
||||
oBox2 = GetObjectByTag("potbox");
|
||||
object oBox3;
|
||||
oBox3 = GetObjectByTag("wepbox");
|
||||
object oBox4;
|
||||
oBox4 = GetObjectByTag("armbox");
|
||||
object oBox5;
|
||||
oBox5 = GetObjectByTag("obox");
|
||||
object oBox6;
|
||||
oBox6 = GetObjectByTag("ammobox");
|
||||
object oBox7;
|
||||
oBox7= GetObjectByTag("rswbox");
|
||||
object oItem;
|
||||
|
||||
|
||||
//Now lets deal with the items in the box now..
|
||||
oItem = GetFirstItemInInventory(oTarget);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
|
||||
//If in fact the item in Undroppable, then give it back to the PC
|
||||
if(GetItemCursedFlag(oItem))
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Otherwise assign the item to the proper box!
|
||||
else
|
||||
{
|
||||
|
||||
//Put all weapons in the weapon box..
|
||||
if(GetBaseItemType(oItem)== BASE_ITEM_BASTARDSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_BATTLEAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_CLUB ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DAGGER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DIREMACE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DOUBLEAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DWARVENWARAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_GREATAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_GREATSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HALBERD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HANDAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HEAVYFLAIL ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_KAMA ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_KATANA ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_KUKRI ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTFLAIL ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTHAMMER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTMACE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LONGSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_MORNINGSTAR ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_QUARTERSTAFF ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_RAPIER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SCIMITAR ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SCYTHE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHORTSPEAR ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHORTSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SICKLE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_TRIDENT ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_TWOBLADEDSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_WARHAMMER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_WHIP ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HEAVYCROSSBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTCROSSBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LONGBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHORTBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SLING)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox3, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Put all ammunitions in the ammobox
|
||||
else if(GetBaseItemType(oItem)== BASE_ITEM_ARROW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_BOLT ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_BULLET ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DART ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHURIKEN ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_THROWINGAXE)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox6, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Serpate ALL Potions, Scrolls, & Healer's Kits into the potbox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_POTIONS ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_ENCHANTED_POTION ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_ENCHANTED_SCROLL ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_HEALERSKIT ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_SPELLSCROLL)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox2, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Seperate the Armor & Worn Items into the armbox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_AMULET ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_ARMOR ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_BELT ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_BOOTS ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_BRACER ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_CLOAK ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_GLOVES ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_HELMET ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_LARGESHIELD ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_RING ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_SMALLSHIELD ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_TOWERSHIELD)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox4, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Now let's seperate plot items next before we do the other seperations
|
||||
else if(GetPlotFlag(oItem)==TRUE)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox1, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Seperate all Rods / Staves / Wands into the srwbox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_MAGICROD ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MAGICSTAFF ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MAGICWAND)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox7, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//now let's seperate all the miscellaneous items
|
||||
//Grenades, Trapkits, and Thieving Tools into the oBox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_MISCSMALL ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCMEDIUM ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCLARGE ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCTHIN ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCWIDE ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCTALL ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_GRENADE ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_THIEVESTOOLS ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_TRAPKIT)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox5, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Otherwise put the item in the ibox!
|
||||
else
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Else statement end..
|
||||
}
|
||||
|
||||
|
||||
//Continue the loop
|
||||
oItem = GetNextItemInInventory(oTarget);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//PROTOTYPE END
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
//PROTOTYPE DEFINED
|
||||
void Disperse(object oTarget)
|
||||
{
|
||||
|
||||
oPC = GetLastUsedBy();
|
||||
object oBox;
|
||||
oBox = GetObjectByTag("ibox");
|
||||
object oBox1;
|
||||
oBox1 = GetObjectByTag("plotbox");
|
||||
object oBox2;
|
||||
oBox2 = GetObjectByTag("potbox");
|
||||
object oBox3;
|
||||
oBox3 = GetObjectByTag("wepbox");
|
||||
object oBox4;
|
||||
oBox4 = GetObjectByTag("armbox");
|
||||
object oBox5;
|
||||
oBox5 = GetObjectByTag("obox");
|
||||
object oBox6;
|
||||
oBox6 = GetObjectByTag("ammobox");
|
||||
object oBox7;
|
||||
oBox7= GetObjectByTag("rswbox");
|
||||
object oItem = oTarget;
|
||||
|
||||
|
||||
//If in fact the item in Undroppable, then give it back to the PC
|
||||
if(GetItemCursedFlag(oItem)==TRUE)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Otherwise assign the item to the proper box!
|
||||
else
|
||||
{
|
||||
|
||||
//Put all weapons in the weapon box..
|
||||
if(GetBaseItemType(oItem)== BASE_ITEM_BASTARDSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_BATTLEAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_CLUB ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DAGGER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DIREMACE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DOUBLEAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DWARVENWARAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_GREATAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_GREATSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HALBERD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HANDAXE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HEAVYFLAIL ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_KAMA ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_KATANA ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_KUKRI ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTFLAIL ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTHAMMER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTMACE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LONGSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_MORNINGSTAR ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_QUARTERSTAFF ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_RAPIER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SCIMITAR ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SCYTHE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHORTSPEAR ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHORTSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SICKLE ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_TRIDENT ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_TWOBLADEDSWORD ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_WARHAMMER ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_WHIP ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_HEAVYCROSSBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LIGHTCROSSBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_LONGBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHORTBOW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SLING)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox3, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Put all ammunitions in the ammobox
|
||||
else if(GetBaseItemType(oItem)== BASE_ITEM_ARROW ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_BOLT ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_BULLET ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_DART ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_SHURIKEN ||
|
||||
GetBaseItemType(oItem)== BASE_ITEM_THROWINGAXE)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox6, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Serpate ALL Potions, Scrolls, & Healer's Kits into the potbox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_POTIONS ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_ENCHANTED_POTION ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_ENCHANTED_SCROLL ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_HEALERSKIT ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_SPELLSCROLL)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox2, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Seperate the Armor & Worn Items into the armbox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_AMULET ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_ARMOR ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_BELT ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_BOOTS ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_BRACER ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_CLOAK ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_GLOVES ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_HELMET ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_LARGESHIELD ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_RING ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_SMALLSHIELD ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_TOWERSHIELD)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox4, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Now let's seperate plot items next before we do the other seperations
|
||||
else if(GetPlotFlag(oItem)==TRUE)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox1, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Seperate all Rods / Staves / Wands into the srwbox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_MAGICROD ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MAGICSTAFF ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MAGICWAND)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox7, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//now let's seperate all the miscellaneous items
|
||||
//Grenades, Trapkits, and Thieving Tools into the oBox
|
||||
else if(GetBaseItemType(oItem)==BASE_ITEM_MISCSMALL ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCMEDIUM ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCLARGE ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCTHIN ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCWIDE ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_MISCTALL ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_GRENADE ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_THIEVESTOOLS ||
|
||||
GetBaseItemType(oItem)==BASE_ITEM_TRAPKIT)
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox5, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Otherwise put the item in the ibox!
|
||||
else
|
||||
{
|
||||
DelayCommand(0.2, AssignCommand(oBox, ActionTakeItem(oItem, oPC)));
|
||||
}
|
||||
|
||||
//Else statement end
|
||||
}
|
||||
|
||||
//PROTOTYPE END
|
||||
}
|
||||
//////////////////////////////////////////////////////////////
|
||||
void TakeAll(object oTarget)
|
||||
{
|
||||
object oBox = GetObjectByTag("ihold4u");
|
||||
object oItem;
|
||||
|
||||
|
||||
//Copy all Non-Bags in the PC's inventory into the box
|
||||
//Then destroy the originals and then the bags.
|
||||
oItem = GetFirstItemInInventory(oTarget);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
//If it's not a container..
|
||||
if(!GetHasInventory(oItem))
|
||||
{
|
||||
//Have the proper container take it!
|
||||
Disperse(oItem);
|
||||
}
|
||||
|
||||
//if It's a Container, then remove it's contents!
|
||||
if(GetHasInventory(oItem))
|
||||
{
|
||||
DelayCommand(7.0, DestroyObject(oItem, 0.0f));
|
||||
}
|
||||
|
||||
//continue the loop..
|
||||
oItem = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
//END PROTOTYPE
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////
|
||||
void ReturnUndroppables(object oTarget)
|
||||
{
|
||||
|
||||
object oItem;
|
||||
oPC = GetLastUsedBy();
|
||||
|
||||
oItem = GetFirstItemInInventory(oTarget);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
//return all containers to the PC!
|
||||
if(GetItemCursedFlag(oItem))
|
||||
{
|
||||
//Give everything to the PC..
|
||||
AssignCommand(oTarget, ActionGiveItem(oItem, oPC));
|
||||
}
|
||||
|
||||
oItem = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
//PROTOTYPE END
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
//PROTOTYPE DEFINED
|
||||
void SortContainer(object oTarget)
|
||||
{
|
||||
|
||||
|
||||
//Declare Major Variables
|
||||
object oPC = GetLastUsedBy();
|
||||
object oNPC = GetObjectByTag("ihold4u");
|
||||
object oBox = GetObjectByTag(GetTag(oTarget));
|
||||
object oMine;
|
||||
object oBag = GetItemPossessedBy(oNPC, GetTag(oTarget));
|
||||
|
||||
//Determine what script fired this function!
|
||||
if(GetLocalInt(oNPC, "iFired")==1)
|
||||
{
|
||||
oPC = GetItemActivator();
|
||||
}
|
||||
else
|
||||
{
|
||||
oPC = GetLastUsedBy();
|
||||
}
|
||||
|
||||
|
||||
//First Put all the items that will fit into the bag
|
||||
//on the NPC into the bag..
|
||||
oMine = GetFirstItemInInventory(oTarget);
|
||||
while(GetIsObjectValid(oMine)==TRUE)
|
||||
{
|
||||
AssignCommand(oTarget, ActionGiveItem(oMine, oBag));
|
||||
|
||||
oMine = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
//Make the bags unsellable and undroppable!!
|
||||
SetItemCursedFlag(oBag, TRUE);
|
||||
SetPlotFlag(oBag, TRUE);
|
||||
|
||||
|
||||
string sName;
|
||||
|
||||
if(GetTag(oTarget) == "ibox")
|
||||
{
|
||||
sName = "<cr<63> >Other Items";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "plotbox")
|
||||
{
|
||||
sName = "<c<><63> >Plot Items";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "potbox")
|
||||
{
|
||||
sName = "<c <20><>>Potions & Scrolls";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "wepbox")
|
||||
{
|
||||
sName = "<c<> >Weapons";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "armbox")
|
||||
{
|
||||
sName = "<c=w<>>Armor & Clothing";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "obox")
|
||||
{
|
||||
sName = "<c<><63>~>Miscellaneous Items";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "ammobox")
|
||||
{
|
||||
sName = "<c<><63> >Ammunition";
|
||||
}
|
||||
|
||||
if(GetTag(oTarget) == "rswbox")
|
||||
{
|
||||
sName = "<c<><63> >Rods/Staves/Wands";
|
||||
}
|
||||
|
||||
//Give the bag a the proper name with color :)
|
||||
DelayCommand(0.1,SetName(oBag, sName));
|
||||
|
||||
//Give the PC the bag now that it has items in it!
|
||||
DelayCommand(0.4, AssignCommand(oNPC, ActionGiveItem(oBag, oPC)));
|
||||
|
||||
//PROTOTYPE END
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
//PROTOTYPE DEFINED
|
||||
void SortBox(object oTarget)
|
||||
{
|
||||
|
||||
//Declare Major Variables
|
||||
object oPC = GetLastUsedBy();
|
||||
object oBox = GetObjectByTag(GetTag(oTarget));
|
||||
object oItem;
|
||||
object oNPC = GetObjectByTag("ihold4u");
|
||||
|
||||
//We only continue if the box has items!
|
||||
if(GetNum(oBox)>0)
|
||||
{
|
||||
//Give the NPC a Bag to store items in!
|
||||
//Give the bag the tagname of the box!
|
||||
CreateItemOnObject("NW_IT_CONTAIN006", oNPC, 1, GetTag(oBox));
|
||||
|
||||
//Start putting items in the bag on the NPC
|
||||
DelayCommand(0.1, SortContainer(oTarget));
|
||||
|
||||
//Continue to sort the box till nothing is left!
|
||||
DelayCommand(0.5, SortBox(oTarget));
|
||||
}
|
||||
|
||||
//NOTE: If the box has 0 items, no need to continue!
|
||||
|
||||
//PROTOTYPES End
|
||||
}
|
||||
///////////////////////////////////////////////////////
|
||||
void GiveAll(object oTarget)
|
||||
{
|
||||
|
||||
object oItem;
|
||||
oPC = GetLastUsedBy();
|
||||
|
||||
oItem = GetFirstItemInInventory(oTarget);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
//Give everything to the PC..
|
||||
AssignCommand(oTarget, ActionGiveItem(oItem, oPC));
|
||||
|
||||
oItem = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
//PROTOTYPE END
|
||||
}
|
||||
|
Reference in New Issue
Block a user