Difference between revisions of "LlGiveInventoryList"

From Second Life Wiki
Jump to navigation Jump to search
(added example)
Line 11: Line 11:
|caveats=*Does not create a folder when '''avatar''' is a prim [[UUID]].
|caveats=*Does not create a folder when '''avatar''' is a prim [[UUID]].
**The prim must be in the same sim.
**The prim must be in the same sim.
|examples
|examples=<pre>
// When a user clicks this object, this script will give a folder containing everything in the objects inventory
// This can serve as a unpacker script for boxed objects
 
default {
 
    touch_start(integer total_number) {
 
        list        inventory;
        string      name;
        integer    num = llGetInventoryNumber(INVENTORY_ALL);
        integer    i;
       
        for (i = 0; i < num; ++i) {
            name = llGetInventoryName(INVENTORY_ALL, i);
            if(llGetInventoryPermMask(name, MASK_NEXT) & PERM_COPY)
                inventory += name;
            else
                llSay(0, "Don't have permissions to give you \""+name+"\".");
        }
       
       
        //we don't want to give them this script
        i = llListFindList(inventory, [llGetScriptName()]);
        inventory = llDeleteSubList(inventory, i, i);
       
        if (llGetListLength(inventory) < 1) {
            llSay(0, "No items to offer.");
        } else {
            // give folder to agent, use name of object as name of folder we are giving
            llGiveInventoryList(llDetectedKey(0), llGetObjectName(), inventory);
        }
     
    }
 
}
</pre>
|helpers
|helpers
|also_functions=*{{LSLG|llGiveInventory}}
|also_functions=*{{LSLG|llGiveInventory}}

Revision as of 07:51, 9 May 2007

Summary

Function: llGiveInventoryList( key avatar, string folder, list inventory );
3.0 Forced Delay
10.0 Energy

Gives inventory items to avatar in a folder

• key avatar
• string folder
• list inventory a list of items in the inventory of the prim this script is in

Caveats

  • This function causes the script to sleep for 3.0 seconds.
  • If inventory is missing from the prim's inventory or it is not a list of items then an error is shouted on DEBUG_CHANNEL.
  • Does not create a folder when avatar is a prim UUID.
    • The prim must be in the same sim.

Examples

// When a user clicks this object, this script will give a folder containing everything in the objects inventory
// This can serve as a unpacker script for boxed objects

default {

    touch_start(integer total_number) {

        list        inventory;
        string      name;
        integer     num = llGetInventoryNumber(INVENTORY_ALL);
        integer     i;
        
        for (i = 0; i < num; ++i) {
            name = llGetInventoryName(INVENTORY_ALL, i);
            if(llGetInventoryPermMask(name, MASK_NEXT) & PERM_COPY)
                inventory += name;
            else
                llSay(0, "Don't have permissions to give you \""+name+"\".");
        }
        
        
        //we don't want to give them this script
        i = llListFindList(inventory, [llGetScriptName()]);
        inventory = llDeleteSubList(inventory, i, i);
        
        if (llGetListLength(inventory) < 1) {
            llSay(0, "No items to offer."); 
        } else {
            // give folder to agent, use name of object as name of folder we are giving
            llGiveInventoryList(llDetectedKey(0), llGetObjectName(), inventory);
        }
       
    }

}

See Also

Events

Functions

Deep Notes

Signature

function void llGiveInventoryList( key avatar, string folder, list inventory );