Difference between revisions of "LlGiveInventory"

From Second Life Wiki
Jump to: navigation, search
m (Added caveat about "no copy" items.)
Line 12: Line 12:
 
*Scripts reach '''destination''' disabled (not running, and cannot be made to run unless the destination object is taken to inventory and rezzed again, or the script is recompiled). To send a running script to a prim use [[llSetRemoteScriptAccessPin]].
 
*Scripts reach '''destination''' disabled (not running, and cannot be made to run unless the destination object is taken to inventory and rezzed again, or the script is recompiled). To send a running script to a prim use [[llSetRemoteScriptAccessPin]].
 
*If '''destination''' is locked then '''inventory''' cannot be transferred and a '''Blocked by permissions''' error is shouted on the [[DEBUG_CHANNEL]].
 
*If '''destination''' is locked then '''inventory''' cannot be transferred and a '''Blocked by permissions''' error is shouted on the [[DEBUG_CHANNEL]].
 +
*If destination is an avatar that refuses to accept the item, and which the owner did not have copy permission, the item is not returned to the objects contents, or lost and found. (It is lost in space and time)
 
|constants
 
|constants
 
|examples=
 
|examples=

Revision as of 23:12, 12 January 2010

Summary

Function: llGiveInventory( key destination, string inventory );

Give inventory to destination.

• key destination group, avatar or prim UUID
• string inventory an item in the inventory of the prim this script is in

If destination is an object then it must be in the same region.
If destination is an avatar they do not have to be in the same region.

Caveats

  • If destination is an avatar the script sleeps for 2.0 seconds. (Giving to objects or attachments has no delay)
  • If destination is not the owner nor shares the same owner, and inventory does not have transfer permissions, an error is shouted on DEBUG_CHANNEL.
  • If inventory permissions do not allow copy, the transfer fails and an error is shouted on DEBUG_CHANNEL.
  • If destination is a prim that is not in the same region an error is shouted on DEBUG_CHANNEL.
  • When scripts are copied or moved between inventories, their state does not survive the transfer. Memory, event queue and execution position are all discarded.
  • If inventory is missing from the prim's inventory then an error is shouted on DEBUG_CHANNEL.
  • There is no way to know if the transaction failed.
  • Scripts reach destination disabled (not running, and cannot be made to run unless the destination object is taken to inventory and rezzed again, or the script is recompiled). To send a running script to a prim use llSetRemoteScriptAccessPin.
  • If destination is locked then inventory cannot be transferred and a Blocked by permissions error is shouted on the DEBUG_CHANNEL.
  • If destination is an avatar that refuses to accept the item, and which the owner did not have copy permission, the item is not returned to the objects contents, or lost and found. (It is lost in space and time)
All Issues ~ Search JIRA for related Bugs

Examples

<lsl>default {

   touch_start(integer n)
   {
       //Gives this script to whoever touches the object.
       llGiveInventory(llDetectedKey(0), llGetScriptName());
   }
}</lsl>

See Also

Deep Notes

Search JIRA for related Issues

Tests

•  llGiveInventory Test

Signature

function void llGiveInventory( key destination, string inventory );