查看“LlRequestPermissions”的源代码
←
LlRequestPermissions
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llRequestPermissions( key agent, integer permissions ); |参数= 参数:• key agent – 在同一区域的化身UUID • integer permissions – 权限掩码(包含请求权限的位域) |返回值= 返回值:向代理请求运行某些类函数的权限。 脚本继续执行,不等待响应。当给出响应时,将在事件队列中放置一个[[run_time_permissions]]事件。 |注意事项= 一个对话框将显示给代理,以授予这些权限,除非自动授予,如附录所示。 如果对象附加到代理,“自动”权限被授予请求而不通知。 权限可以跨状态更改持久化。 不管授予是否是自动的,您都应该始终使用[[run_time_permissions]]事件。授予权限需要时间,在调用[[run_time_permissions]]处理程序之前,不应该假定它已经完成。 菜单选项“停止动画我”将释放某些权限(PERMISSION_TRIGGER_ANIMATION和PERMISSION_OVERRIDE_ANIMATIONS),如果拥有这些权限的脚本与代理在同一区域,并且脚本没有附加到权限授予者。 权限不会累积。 如果在之前对该函数的调用中请求了权限并授予了该权限,那么在随后的调用中没有请求,该权限将被释放(丢失)。 要同时请求两个或多个权限,请使用位或操作符,例如: llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS (PERMISSION_TRIGGER_ANIMATION)) 对每个脚本分别请求和授予权限,即使它们位于相同的对象中。 目前根本不可能请求没有权限(见下面的问题);作为一种解决方案,[[llResetScript]]可以使用。 脚本一次只能持有一个代理的权限。要拥有多个代理的权限,您必须使用多个脚本。 授予权限的结果会立即影响[[llGetPermissions]]和[[llGetPermissionsKey]]的返回,尽管[[run_time_permissions]]事件正在排队,或者如果对象的事件队列已满,则会删除该事件。 权限请求对话框永远不会超时。 如果一个脚本发出两个权限请求,最后一个响应将被视为已授予的权限。 查看器将任何代理对任何其他代理的权限请求限制为10秒内5个对话框。 权限请求和改变状态… 请求处于一种状态的权限,然后在代理响应之前更改状态,将导致在代理响应之后以新状态触发run_time_permissions。 只请求在一种状态下自动授予的权限,然后立即更改状态,将永远不会触发run_time_permissions。 |示例= 请求允许动画化身 <pre> default { touch_start(integer detected) { llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION); } run_time_permissions(integer perm) { if (perm & PERMISSION_TRIGGER_ANIMATION) { llStartAnimation("sit"); llOwnerSay("animation will end in 5 seconds"); llSetTimerEvent(5.0); } } timer() { llSetTimerEvent(0.0); llStopAnimation("sit"); } } </pre> 要同时请求两个(或更多)权限,请使用按位或操作符。 <pre> llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION); </pre> - or - <pre> integer perms = PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION; llRequestPermissions(AvatarID, perms); </pre> |相关函数= [[llGetPermissions]] - 获得已授予的权限 [[llGetPermissionsKey]] - 获取授予权限的化身。 |相关事件= [[run_time_permissions]] - 允许接收事件 }} 附录:(表格) {| class="wikitable" border="1" |- ! colspan="2" style="text-align: center;" |Constants ! Action ! Category ! Granter ! Automatically granted when… |- | [[PERMISSION_DEBIT]] | 0x2 | 从代理人的账户中取钱 | [[Money]] | Owner | |- | [[]] | | | | | |- | [[]] | | | | | |- | [[]] | | | | | |- | [[]] | | | | | |- | [[]] | | | | | |- | [[]] | | | | | |- | [[]] | | | | | |- | [[]] | | | | | |}
该页面使用的模板:
模板:LSL Header
(
查看源代码
)
模板:LSLC
(
查看源代码
)
模板:LSLGC
(
查看源代码
)
模板:Multi-lang
(
查看源代码
)
模板:函数详情
(
查看源代码
)
返回至
LlRequestPermissions
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
网站首页
知识百科
编辑帮助
最近更改
工具
链入页面
相关更改
特殊页面
页面信息