User:Toy Wylie/RLV Documentation/detachme
Jump to navigation
Jump to search
@detachme
Type
General
Implemented
Implemented since RLV version 1.16.2
Usage
@detachme=force
Purpose
Detaches the object issuing this command. This is a useful function to work around a race condition when clearing restrictions before detaching the object. If you use @clear and then detach the object by using llDetachFromAvatar(), the object might get detached before the RLV command has reached the user's viewer. This might result in RLV re-attaching the object, because it was still locked on. Using the command sequence @clear,detachme=force will make sure that @clear is executed first, and only then @detachall will be executed.
Example
<lsl>lock()
{
llOwnerSay("@detach=n");
llOwnerSay("This attachment is now locked on. Click on it to unlock and detach it.");
}
default {
on_rez(integer num)
{
llResetScript();
}
state_entry()
{
if(llGetAttached()==0)
{
llOwnerSay("@acceptpermission=add");
llOwnerSay("Please attach me to your avatar.");
llRequestPermissions(llGetOwner(),PERMISSION_ATTACH);
return;
}
lock();
}
attach(key k)
{
if(k!=NULL_KEY)
{
lock();
}
}
touch_start(integer num)
{
if(llDetectedKey(0)==llGetOwner())
{
llOwnerSay("Unlocking the attachment and detaching.");
llOwnerSay("@clear,detachme=force");
}
}
run_time_permissions(integer perms)
{
if(perms & PERMISSION_ATTACH)
{
llAttachToAvatar(ATTACH_RHAND);
}
}
}
</lsl>