Difference between revisions of "LlGetInventoryName"

From Second Life Wiki
Jump to: navigation, search
(added empty string return info)
Line 14: Line 14:
 
<pre>
 
<pre>
 
// script created by SpiritWolf Chikuwa
 
// script created by SpiritWolf Chikuwa
 +
// minor changes by Strife Onizuka to speed things up
 
//
 
//
 
// /!\ PUBLIC DOMAIN /!\
 
// /!\ PUBLIC DOMAIN /!\
Line 28: Line 29:
 
list getInventoryList()
 
list getInventoryList()
 
{
 
{
     integer    i;
+
     list      result = [];
 
     integer    n = llGetInventoryNumber(INVENTORY_ALL);
 
     integer    n = llGetInventoryNumber(INVENTORY_ALL);
     list          result = [];
+
     integer    i = 0;
  
     for( i = 0; i < n; i++ )
+
     while(i < n)
 
     {
 
     {
         result += [ llGetInventoryName(INVENTORY_ALL, i) ];
+
         result += llGetInventoryName(INVENTORY_ALL, i);
 +
        ++i;
 
     }
 
     }
 
     return result;
 
     return result;
Line 48: Line 50:
 
     touch_start( integer n )
 
     touch_start( integer n )
 
     {
 
     {
       
+
         integer i = 0;
         integer i;
+
        string folder = llGetObjectName();
  
         for( i = 0; i < n; i++ )
+
         while(i < n)
 
         {
 
         {
             llGiveInventoryList(llDetectedKey(i), llGetObjectName(), gInventoryList );
+
             llGiveInventoryList(llDetectedKey(i), folder, gInventoryList );
       
+
            ++i;
 
         }
 
         }
 
     }
 
     }

Revision as of 04:59, 18 March 2007

Summary

Function: string llGetInventoryName( integer type, integer number );

Returns a string that is the name of the inventory item number of type. Returns an empty string if no item of the specified type is found in the prim's inventory.

• integer type INVENTORY_* flag
• integer number

number does not support negative indexes.

Flag Inventory Type
INVENTORY_NONE -1 Item does not exist.
INVENTORY_ALL Any inventory type.
INVENTORY_TEXTURE 0 texture
INVENTORY_SOUND 1 sound
INVENTORY_LANDMARK 3 landmark
INVENTORY_CLOTHING 5 clothing
Flag Inventory Type
INVENTORY_OBJECT 6 object
INVENTORY_NOTECARD 7 notecard
INVENTORY_SCRIPT 10 script
INVENTORY_BODYPART 13 body part
INVENTORY_ANIMATION 20 animation
INVENTORY_GESTURE 21 gesture
INVENTORY_SETTING 56 setting

Caveats

  • If number is out of bounds the script continues to execute without an error message.
All Issues ~ Search JIRA for related Bugs

Examples

Will Unpack all items of a box
// script created by SpiritWolf Chikuwa
// minor changes by Strife Onizuka to speed things up
//
// /!\ PUBLIC DOMAIN /!\
// You can Copy/Mod/Trans 
// Please, do not resell this script and give it full perm
// Just please leave this header intact
//
// Minor changes: (insert your name here and delete this comment if you do any mod of this script, thank you)
//
// Script start here:

list    gInventoryList;

list getInventoryList()
{
    list       result = [];
    integer    n = llGetInventoryNumber(INVENTORY_ALL);
    integer    i = 0;

    while(i < n)
    {
        result += llGetInventoryName(INVENTORY_ALL, i);
        ++i;
    }
    return result;
}

default
{
    state_entry()
    {
        gInventoryList = getInventoryList();
    }

    touch_start( integer n )
    {
        integer i = 0;
        string folder = llGetObjectName();

        while(i < n)
        {
            llGiveInventoryList(llDetectedKey(i), folder, gInventoryList );
            ++i;
        }
    }

    changed( integer change )
    {
       if ( change == CHANGED_INVENTORY )
           gInventoryList = getInventoryList();
    }
}

// llGetInventory number and name will scan all objects on the box.
// llGiveInventory will give you the content.
// See also llGetInventory and llGiveInventory on LSL Wiki for further informations.

Deep Notes

Search JIRA for related Issues

Signature

function string llGetInventoryName( integer type, integer number );