LlBreakLink

来自人工智能助力教育知识百科
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llBreakLink( integer link );
参数:integer link – Link number (0: unlinked, 1: root prim, >1: child prims and seated avatars)
返回值:将prim与被链接对象集中给定的链接号断开连接
注意事项
这个函数从对象中删除坐着的化身,即使不是坐在未链接的prim上。

如果从附件中的脚本调用此函数,则此函数将无声地失败。

如果所有者对包含脚本的对象没有编辑权限,则此函数将失败,系统消息“Delink失败,因为您没有编辑权限”将由所有者接收。

PERMISSION_CHANGE_LINKS的prim可以断开被链接对象集中的任何prim,甚至是它自己或根link当前唯一支持的LINK_*标志是LINK_ROOTsvc - 3510

 使用llGetLinkNumber()作为参数来解除脚本的prim的链接,而不是LINK_THIS。
 使用llBreakAllLinks()代替使用LINK_SETLINK_ALL_CHILDRENLINK_ALL_OTHERS作为llBreakLink的参数。


要运行此函数,脚本必须使用llRequestPermissions请求PERMISSION_CHANGE_LINKS权限,并且必须由所有者授予该权限。

 Permissions
 不要依赖于权限的自动授予状态。始终使用run_time_permissions事件。
 如果脚本缺少权限PERMISSION_CHANGE_LINKS,脚本将在DEBUG_CHANNEL上报错,操作失败(但是脚本继续运行)。
 如果PERMISSION_CHANGE_LINKS是由所有者以外的任何人授予的,那么当调用该函数时,将在DEBUG_CHANNEL上显示一个错误。
 一旦PERMISSION_CHANGE_LINKS权限被授予,除了从脚本内部(例如,使用一个新的llRequestPermissions调用)或脚本被重置或删除外,就没有其他方法来撤销它。
示例
//-- requests permission to change links, then breaks the link
//-- between the prim and the rest of the object, on touch.
default{
  touch_start( integer vIntTouched ) {
    llRequestPermissions( llGetOwner(), PERMISSION_CHANGE_LINKS );
  }
 
  run_time_permissions( integer perm ) {
    if(perm & PERMISSION_CHANGE_LINKS) {
      llBreakLink( llGetLinkNumber() );
    }
  }
}
相关函数
llGetLinkNumber – 返回脚本所在的prim的链接

llGetPermissions – 获得授予的权限

llGetPermissionsKey – 获取授予权限的代理

llRequestPermissions – 请求权限

llBreakAllLinks – 打破所有的链接

llCreateLink – 链接到另一个对象

相关事件
run_time_permissions – 允许接收事件

changed – CHANGED_LINK