Jump to content

LlDetachFromAvatar

From OSgrid Wiki

Function: llDetachFromAvatar( );

Detach object from avatar.

Requires the PERMISSION_ATTACH permission, granted by the owner, to run. The detached object remains in the user's inventory.

Caveats
• Do not depend upon the auto-grant status of permissions. Always use the run_time_permissions event.
• If the script lacks the permission PERMISSION_ATTACH, the script will shout an error on DEBUG_CHANNEL and the operation fails (but the script continues to run).
• If PERMISSION_ATTACH is granted by anyone other than the owner, then when the function is called an error will be shouted on DEBUG_CHANNEL.
• Once the PERMISSION_ATTACH permission is granted there is no way to revoke it. The script will only lose the permission if it is reset or the object derezzed (deleted, detached, or taken).

Examples

<source lang="lsl">

default {

   attach(key AvatarKey)
   {//give instructions for use and prevent item from being attached to avatar
       if(AvatarKey)
       {//event is called on both attach and detatch, but Key is only valid on attach
           llOwnerSay ("
           We hope you will enjoy your purchase, 
           but if you really want to use this item properly, you should: 
           1) drag it from your inventory to the ground 
           2) Right click on it and select \"open\"
           3) copy its contents to inventory.");

           llRequestPermissions(AvatarKey, PERMISSION_ATTACH );
       }
   }
   run_time_permissions(integer perm)
   {
       if(perm & PERMISSION_ATTACH)
       {
           llDetachFromAvatar( );
       }
   }

} </source>


Notes
There is no way to delete an attachment with a script or to drop it to the ground.

See Also
Events
• run_time_permissions – Permission receiving event
• attach
Functions
• llGetPermissions – Get the permissions granted
• llGetPermissionsKey – Get the agent who granted permissions
• llRequestPermissions – Request permissions
• llAttachToAvatar
• llGetAttached