Difference between revisions of "LlGetInventoryName"

From Second Life Wiki
Jump to navigation Jump to search
m
m (Replaced <source> with <syntaxhighlight>)
 
(12 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{LSL Function/negative_index|false|number}}
{{LSL_Function
{{LSL_Function
|inject-3={{LSL Function/negative_index|false|number}}
|func_id=147|func_sleep=0.0|func_energy=10.0
|func_id=147|func_sleep=0.0|func_energy=10.0
|func=llGetInventoryName|return_type=string
|func=llGetInventoryName|return_type=string
|p1_type=integer|p1_name=type|p1_desc=INVENTORY_* flag
|p1_type=integer|p1_name=type|p1_desc=INVENTORY_* flag
|p2_type=integer|p2_name=number
|p2_type=integer|p2_name=number|p2_desc=Beginning from 0
|func_footnote=Inventory items are sorted in alphabetical order (not chronological order).
|func_footnote=
Inventory items are sorted in alphabetical order (not chronological order).
|func_desc
|func_desc
|return_text=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 (or there are less than or equal to '''number''' items of the type).
|return_text=that is the name of the inventory item {{LSLP|number}} of {{LSLP|type}}. Returns an empty string if no item of the specified type is found in the prim's inventory (or there are less than or equal to {{LSLP|number}} items of the type).
|spec
|spec
|caveats
|caveats
|constants={{LSL Constants Inventory}}
|constants={{LSL Constants Inventory}}
|examples======Box Unpacker=====
|examples======Box Unpacker=====
<lsl>
<syntaxhighlight lang="lsl2">
// script created by SpiritWolf Chikuwa
// Give all prim contents to anyone touching this object,
// minor changes by Strife Onizuka to speed things up
// But don't give this script itself.
//
// /!\ 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);
 
    while(n)
        result = llGetInventoryName(INVENTORY_ALL, --n) + result;
   
    return result;
}


default
default
{
{
     state_entry()
     touch_start(integer num_detected)
     {
     {
         gInventoryList = getInventoryList();
         list    InventoryList;
    }
         integer count = llGetInventoryNumber(INVENTORY_ALL); // Count of all items in prim's contents
 
         string ItemName;
    touch_start( integer n )
         while (count--)
    {
         integer i = 0;
         string folder = llGetObjectName();
 
         while(i < n)
         {
         {
             llGiveInventoryList(llDetectedKey(i), folder, gInventoryList );
             ItemName = llGetInventoryName(INVENTORY_ALL, count);
             ++i;
             if (ItemName != llGetScriptName() ) 
                InventoryList += ItemName;   // add all contents except this script, to a list
         }
         }
    }
        // Give all the items to the toucher, in a folder named as per this prim's name
 
        llGiveInventoryList(llDetectedKey(0), llGetObjectName(), InventoryList);
    changed( integer change )
    {
      if ( change == CHANGED_INVENTORY )
          gInventoryList = getInventoryList();
     }
     }
}
}
 
</syntaxhighlight>
// 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.
</lsl>
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llGetInventoryAcquireTime]]|Returns the time the item was added to the prim's inventory}}
{{LSL DefineRow||[[llGetInventoryNumber]]|Returns the number of items of a specific type in inventory}}
{{LSL DefineRow||[[llGetInventoryNumber]]|Returns the number of items of a specific type in inventory}}
{{LSL DefineRow||[[llGetInventoryType]]|Tests to see if an inventory item exists and returns its type.}}
{{LSL DefineRow||[[llGetInventoryType]]|Tests to see if an inventory item exists and returns its type.}}
Line 79: Line 47:
{{LSL DefineRow||[[llGiveInventory_All_Test]]|}}
{{LSL DefineRow||[[llGiveInventory_All_Test]]|}}
|also_articles
|also_articles
|notes
|notes=The maximum number of characters for an object inventory item is currently 63 characters.
|permission
|permission
|sort=GetInventoryName
|sort=GetInventoryName

Latest revision as of 10:03, 9 March 2023

Summary

Function: string llGetInventoryName( integer type, integer number );
0.0 Forced Delay
10.0 Energy

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 (or there are less than or equal to number items of the type).

• integer type INVENTORY_* flag
• integer number Beginning from 0

number does not support negative indexes. Inventory items are sorted in alphabetical order (not chronological order).

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
INVENTORY_OBJECT 6 object
Flag Inventory Type
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
INVENTORY_MATERIAL 57 material

Caveats

  • If number is out of bounds the script continues to execute without an error message.

Examples

Box Unpacker
// Give all prim contents to anyone touching this object,
// But don't give this script itself.

default
{
    touch_start(integer num_detected)
    {
        list    InventoryList;
        integer count = llGetInventoryNumber(INVENTORY_ALL);  // Count of all items in prim's contents
        string  ItemName;
        while (count--)
        {
            ItemName = llGetInventoryName(INVENTORY_ALL, count);
            if (ItemName != llGetScriptName() )  
                InventoryList += ItemName;   // add all contents except this script, to a list
        }
        // Give all the items to the toucher, in a folder named as per this prim's name
        llGiveInventoryList(llDetectedKey(0), llGetObjectName(), InventoryList);
    }
}

Notes

The maximum number of characters for an object inventory item is currently 63 characters.

See Also

Functions

•  llGetInventoryAcquireTime Returns the time the item was added to the prim's inventory
•  llGetInventoryNumber Returns the number of items of a specific type in inventory
•  llGetInventoryType Tests to see if an inventory item exists and returns its type.
•  llGetInventoryCreator Returns the inventory item's creator
•  llGetInventoryPermMask Returns the inventory item's permissions
•  llGetInventoryKey Returns the inventory item's UUID (if full perm)

Deep Notes

Tests

•  llGiveInventory_All_Test

Signature

function string llGetInventoryName( integer type, integer number );