llDetachFromAvatar()
Detaches the scripted object from the avatar it's attached to. Requires
PERMISSION_ATTACH (via
llRequestPermissions).
After detaching, the
attach() event hander is called with the value
NULL_KEY.
Calling this function from a child-prim will fail silently.
Clicking on an object in-world that calls
llAttachToAvatar moves that object into your inventory (also highlights it and labels it 'worn'). You can see it there as soon as it's attached. Calling this function will leave the item in your inventory. This can make for a novel version of 'take' that only relies on the left mouse button and provides a confirmation dialog via the
permissions request.
Q: Is there a way to delete an attachment instead of just detaching it?
A: Not directly. llDie is the function used to delete objects, but it doesn't work on attachments.
Instead of simply calling llDetachFromAvatar on its own, your best option is to switch states to a "dead" state -- one where the attach() event handler calls llDetachFromAvatar, causing the attachment to automatically detach, (with PERMISSION_ATTACH granted, of course) and where on_rez() contains llDie. This will cause the object to be deleted, should it be rezzed on the ground. You can also stick llSetObjectName in the "dead" state's state_entry(). This would rename it to something like "Expired Attachment - Delete Me", indicating to the inventory's owner that they're free to get rid of it.
Functions |
Agent and Avatar |
Attachment |
Constants