llAttachToAvatarTemp
Revision as of 07:26, 31 July 2012 by Strife Onizuka (talk | contribs)
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: llAttachToAvatarTemp( integer attach_point );Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.
• integer | attach_point | – | ATTACH_* constant or valid value (see the tables below) |
It should be noted that when an object is attached temporarily, a user cannot 'take' or 'drop' the object that is attached to them. Additionally, the user MUST be the owner of the object for it to attach properly.
Note: Constants in italic require a viewer compatible with the Project Bento skeleton. |
|
|
Caveats
- Attach points can be occupied by multiple attachments.[1]
- This was not always the case, previously if attach_point was occupied, the existing object was detached and the new attachment took it's place.
- Objects attached to the head (and any attachment position within the head) will not be visible in First Person view (aka Mouselook) if "show attachments in mouselook" is disabled.
- If attach_point is zero but the object was never previously attached, it defaults to the right hand (ATTACH_RHAND).
- If the object is already attached the function fails silently, regardless if the attach_point is a different attach point.
Examples
<lsl>//-- rez object on ground, drop in this script, it will request permissions to attach, //-- and then attach to the left hand if permission is granted. if permission is denied, //-- then the script complains. default {
state_entry() { llRequestPermissions( llGetOwner(), PERMISSION_ATTACH ); }
run_time_permissions( integer vBitPermissions ) { if( vBitPermissions & PERMISSION_ATTACH ) { llAttachToAvatarTemp( ATTACH_LHAND ); } else { llOwnerSay( "Permission to attach denied" ); } }
on_rez(integer rez) { if(!llGetAttached()) { //reset the script if it's not attached. llResetScript(); } }
attach(key AvatarKey) { if(AvatarKey) {//event is called on both attach and detach, but Key is only valid on attach integer test = llGetAttached(); if (test) { llOwnerSay( "The object is attached" ); } else { llOwnerSay( "The object is not attached"); } } }}</lsl>
See Also
Functions
• | llDetachFromAvatar | – | Detaches the object from the avatar | |
• | llGetAttached | – | Gets the attach point number |