“LlBreakLink”的版本间的差异
(未显示同一用户的2个中间版本) | |||
第5行: | 第5行: | ||
|函数名 = Function: llBreakLink( integer link ); | |函数名 = Function: llBreakLink( integer link ); | ||
|参数= 参数:integer link – Link number (0: unlinked, 1: root prim, >1: child prims and seated avatars) | |参数= 参数: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_ROOT]]。[[svc - 3510]] | |
− | + | 使用[[llGetLinkNumber]]()作为参数来解除脚本的prim的链接,而不是[[LINK_THIS]]。 | |
− | + | 使用[[llBreakAllLinks]]()代替使用[[LINK_SET]]、[[LINK_ALL_CHILDREN]]或[[LINK_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]]调用)或脚本被重置或删除外,就没有其他方法来撤销它。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|示例= | |示例= | ||
第52行: | 第46行: | ||
</pre> | </pre> | ||
− | |相关函数= [[llGetLinkNumber]] – | + | |相关函数= [[llGetLinkNumber]] – 返回脚本所在的[[prim]]的链接 |
− | [[llGetPermissions]] – | + | [[llGetPermissions]] – 获得授予的权限 |
− | [[llGetPermissionsKey]] – | + | [[llGetPermissionsKey]] – 获取授予权限的代理 |
− | [[llRequestPermissions]] – | + | [[llRequestPermissions]] – 请求权限 |
− | [[llBreakAllLinks]] – | + | [[llBreakAllLinks]] – 打破所有的链接 |
− | [[llCreateLink]] – | + | [[llCreateLink]] – 链接到另一个对象 |
− | |相关事件= run_time_permissions – | + | |相关事件= run_time_permissions – 允许接收事件 |
− | changed – CHANGED_LINK | + | changed – [[CHANGED_LINK]] |
}} | }} |
2020年4月14日 (二) 15:23的最新版本
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
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_ROOT。svc - 3510 使用llGetLinkNumber()作为参数来解除脚本的prim的链接,而不是LINK_THIS。 使用llBreakAllLinks()代替使用LINK_SET、LINK_ALL_CHILDREN或LINK_ALL_OTHERS作为llBreakLink的参数。
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 |