“LlAttachToAvatar”的版本间的差异

来自人工智能助力教育知识百科
跳转至: 导航搜索
(以“{| border="1" cellspacing="0" cellpadding="5" align="center" ! 这 ! 是 |- | 个 | 表格 |- |}”替换内容)
1个标签替换
Wzc讨论 | 贡献
第1行: 第1行:
 +
{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}}
 +
 +
 +
{{函数详情
 +
|函数名=Function: llAttachToAvatar( integer attach_point );
 +
|参数= 将对象附加到已授予脚本权限的化身。对象将被带入用户资源清册并附加到附加点。
 +
|返回值= •整数附加点-附加常数或有效值(见下表)
 +
要运行此函数,脚本必须使用llRequestPermissions请求权限附加权限,并且必须由所有者授予该权限。
 +
如果附加点为零,则对象将附加到它最近附加到的附加点。
 +
 
{| border="1" cellspacing="0" cellpadding="5" align="center"
 
{| border="1" cellspacing="0" cellpadding="5" align="center"
!
+
!  
!
+
!  
 
|-  
 
|-  
|
+
|  
| 表格
+
|  
 
|-
 
|-
 
|}
 
|}
 +
 +
 +
|注意事项=权限
 +
不依赖于权限的自动授予状态。始终使用运行时权限事件。
 +
如果脚本缺少权限附加,则脚本将在调试通道上喊出错误,操作将失败(但脚本将继续运行)。
 +
如果所有者以外的任何人授予了权限附加,则当调用该函数时,将在调试通道上大喊错误。
 +
一旦授予了权限附加权限,除了从脚本内部(例如,使用新的llRequestPermissions调用)或脚本被重置或删除之外,无法撤消该权限。
 +
多个附件可以占用连接点。[1]
 +
这并不总是这样,以前如果attach_point被占用,则现有对象被分离,而新的附件取代了它。
 +
如果禁用“在Mouselook中显示附件”,则附加到头部的对象(以及头部内的任何附件位置)在第一人称视图(也称为Mouselook)中将不可见。
 +
如果attach_point为零,但对象以前从未附加过,则默认为右手(attach_RHAND)。
 +
如果对象已附加,则无论附加点是否是不同的附加点,函数都会自动失败。--可控硅-137
 +
 +
 +
|示例=
 +
示例1
 +
<pre>
 +
//-- 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 )   
 +
            llAttachToAvatar( 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 id)
 +
    {
 +
        // The attach event is called on both attach and detach, but 'id' is only valid on attach
 +
        if (id)
 +
            llOwnerSay( "The object is attached to " + llKey2Name(id) );
 +
        else
 +
            llOwnerSay( "The object is not attached");
 +
    }
 +
}
 +
</pre>
 +
 +
 +
 +
|相关函数=
 +
[[llGetPermissions]]– Get the permissions granted
 +
 +
[[llGetPermissionsKey]] – Get the agent who granted permissions
 +
 +
[[llRequestPermissions]]– Request permissions
 +
 +
[[llAttachToAvatarTemp]]– Attach an object to any avatar but only temporarily
 +
 +
[[llDetachFromAvatar]] – Detaches the object from the avatar
 +
 +
[[llGetAttached]]– Gets the attach point number (that the object is attached to)
 +
 +
 +
文献:
 +
[[Script permissions]]

2020年5月18日 (一) 11:11的版本

Template:Needs Translation/


{{函数详情 |函数名=Function: llAttachToAvatar( integer attach_point ); |参数= 将对象附加到已授予脚本权限的化身。对象将被带入用户资源清册并附加到附加点。 |返回值= •整数附加点-附加常数或有效值(见下表) 要运行此函数,脚本必须使用llRequestPermissions请求权限附加权限,并且必须由所有者授予该权限。 如果附加点为零,则对象将附加到它最近附加到的附加点。


|注意事项=权限 不依赖于权限的自动授予状态。始终使用运行时权限事件。 如果脚本缺少权限附加,则脚本将在调试通道上喊出错误,操作将失败(但脚本将继续运行)。 如果所有者以外的任何人授予了权限附加,则当调用该函数时,将在调试通道上大喊错误。 一旦授予了权限附加权限,除了从脚本内部(例如,使用新的llRequestPermissions调用)或脚本被重置或删除之外,无法撤消该权限。 多个附件可以占用连接点。[1] 这并不总是这样,以前如果attach_point被占用,则现有对象被分离,而新的附件取代了它。 如果禁用“在Mouselook中显示附件”,则附加到头部的对象(以及头部内的任何附件位置)在第一人称视图(也称为Mouselook)中将不可见。 如果attach_point为零,但对象以前从未附加过,则默认为右手(attach_RHAND)。 如果对象已附加,则无论附加点是否是不同的附加点,函数都会自动失败。--可控硅-137


|示例= 示例1

 
//-- 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 )     
            llAttachToAvatar( 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 id)
    {
        // The attach event is called on both attach and detach, but 'id' is only valid on attach
        if (id)
            llOwnerSay( "The object is attached to " + llKey2Name(id) );
        else 
            llOwnerSay( "The object is not attached");
    }
}


|相关函数= llGetPermissions– Get the permissions granted

llGetPermissionsKey – Get the agent who granted permissions

llRequestPermissions– Request permissions

llAttachToAvatarTemp– Attach an object to any avatar but only temporarily

llDetachFromAvatar – Detaches the object from the avatar

llGetAttached– Gets the attach point number (that the object is attached to)


文献: Script permissions