Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- integer items_contained;
- list inv_types = [0, 1, 3, 5, 6, 7, 10, 13, 20, 21];
- list inv_names = ["Textures", "Sounds", "Landmarks", "Clothings", "Objects", "Notecards", "Scripts", "Bodyparts", "Animations", "Gestures"];
- CountItems()
- {
- items_contained = llGetInventoryNumber( INVENTORY_ALL );
- --items_contained; //minus 1, the script itself isn't counted, since its used with the INVENTORY_ALL flag
- }
- processCountInventory()
- {
- list objDesc = llParseString2List(llGetObjectDesc(), [";"], []);
- list showList = llParseString2List(llList2String(objDesc, 0), [","], []);
- list excludeFromCount = llParseString2List(llList2String(objDesc, 1), [","], []);
- string counted = "ITEM COUNTER";
- integer i = ~llGetListLength(showList);
- while (++i)
- {
- integer showItem = (integer)llList2String(showList, i);
- integer sIndex = llListFindList(inv_types, [showItem]);
- if (~sIndex)
- counted += "\n" + llList2String(inv_names, sIndex) + ": " + (string)llGetInventoryNumber(showItem);
- }
- integer totalCount = llGetInventoryNumber(INVENTORY_ALL);
- for (i = ~llGetListLength(excludeFromCount); ++i;)
- {
- integer exclItem = (integer)llList2String(excludeFromCount, i);
- integer cIndex = llListFindList(inv_types, [(string)exclItem]);
- if (~cIndex)
- totalCount = totalCount - llGetInventoryNumber(exclItem);
- }
- counted += "\n \n" + "Total: " + (string)totalCount;
- llSetText(counted, <1,1,0>, 1);
- }
- default
- {
- state_entry()
- {
- CountItems();
- }
- touch_start(integer total_number)
- {
- CountItems();
- }
- changed(integer change)
- {
- if (change & CHANGED_INVENTORY)
- {
- processCountInventory();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement