Difference between revisions of "LlRemoveInventory"

From Second Life Wiki
Jump to navigation Jump to search
m
m (added another example script)
Line 11: Line 11:
|constants
|constants
|examples=
|examples=
<lsl>// Remove the current script from the object
<lsl>
// Remove the current script from the object


default
default
Line 19: Line 20:
         llRemoveInventory(llGetScriptName());
         llRemoveInventory(llGetScriptName());
     }
     }
}</lsl>
}
</lsl>
<lsl>
// user-function to include in your script
// deletes all other contents of any type except the script itself
delete_all_other_contents()
{
    string thisScript = llGetScriptName();
 
    // while loops are faster
    // --index; faster than index--;
 
    integer index = llGetInventoryNumber(INVENTORY_ALL);
    while (index)
    {
        --index;
 
        string inventoryItemName = llGetInventoryName(INVENTORY_ALL, index);
 
        if (inventoryItemName != thisScript)
        {
            llRemoveInventory(inventoryItemName);
            index = llGetInventoryNumber(INVENTORY_ALL);
        }
    }
}
</lsl>
|helpers
|helpers
|also_functions
|also_functions

Revision as of 09:44, 24 September 2012

Summary

Function: llRemoveInventory( string item );

Remove the named inventory item

• string item an item in the inventory of the prim this script is in

Caveats

  • If item is missing from the prim's inventory then an error is shouted on DEBUG_CHANNEL.
  • If the current script is removed it will continue to run for a short period of time after this call.
  • With multiple executions an llSleep(0.1) after llRemoveInventory will allow edit window contents to refresh correctly and avoid errors on phantom contents.

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   CHANGED_INVENTORY not triggered by llRemoveInventory()

Examples

<lsl> // Remove the current script from the object

default {

   state_entry()
   {
       llRemoveInventory(llGetScriptName());
   }

} </lsl> <lsl> // user-function to include in your script // deletes all other contents of any type except the script itself delete_all_other_contents() {

   string thisScript = llGetScriptName();
   // while loops are faster
   // --index; faster than index--;
   integer index = llGetInventoryNumber(INVENTORY_ALL);
   while (index)
   {
       --index;
       string inventoryItemName = llGetInventoryName(INVENTORY_ALL, index);
       if (inventoryItemName != thisScript)
       {
           llRemoveInventory(inventoryItemName);
           index = llGetInventoryNumber(INVENTORY_ALL);
       }
   }

}

</lsl>

Deep Notes

All Issues

~ Search JIRA for related Issues
   CHANGED_INVENTORY not triggered by llRemoveInventory()

Signature

function void llRemoveInventory( string item );