LlTakeControls
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: llTakeControls( integer controls, integer accept, integer pass_on ); |
参数:允许从脚本有权限的代理拦截键盘和鼠标单击,特别是由控件指定的那些。
•整型控件–控制标志的位域 •整数接受–布尔值,确定是否生成控制事件 •整数传递开启–布尔值,确定控件是否执行其正常功能 若要运行此函数,脚本必须使用llRequestPermissions请求权限\u TAKE\u CONTROLS权限。 如果accept为FALSE,pass-on为FALSE,则行为不是直观的。在这种情况下,指定控件的补码不会生成事件,也不会执行其正常功能。他们实际上是残疾人。在这种情况下,当指定时,某些控制位(例如,控制位左)也被禁用。 如果accept为FALSE且pass_on为TRUE,则指定的控件不会生成事件,而是执行其正常功能。 如果accept为TRUE,pass_on为FALSE,则指定的控件将生成事件,但不执行其正常功能。 如果accept为TRUE且pass_on为TRUE,则指定的控件将生成事件并执行其正常功能。 |
返回值:无 |
注意事项 |
---|
表格见附录
权限 不依赖于自动授予权限的状态。始终使用“运行时”权限事件。 如果脚本缺少权限\u TAKE\u控件,脚本将在DEBUG_CHANNEL上发出错误消息,操作将失败(但脚本将继续运行)。 一旦授予PERMISSION\u TAKE\u CONTROLS权限,就可以从脚本内部(使用llReleaseControls或新的llRequestPermissions调用)或用户从查看器中选择释放密钥来撤销它。脚本在重置时,或者对象被删除、分离或删除时也将丢失此权限。 当脚本中没有控制事件时,使用accept=TRUE、pass_on=TRUE似乎没有任何惩罚(例如,在AO中使用以确保它们在无脚本区工作) 某些权限中存在一个错误,如果将左键单击设置为accept=FALSE,pass\u on=TRUE,则会阻止鼠标左键单击 如果您坐/坐在已使用accept=TRUE和pass_on=TRUE获取控件的对象上,则“控制”“前进”、“控制”“后退”、“控制”“向左”和“向右控制”不会生成事件;相反,这些控件将只执行其正常功能。 如果未记录的控件0x02000000或0x04000000在pass_on=FALSE的情况下执行,则llGetAnimation将永远不会分别“左转”或“右转”,并且由llSetAnimationOverride设置的动画将永远不会播放 |
示例 |
---|
示例1
default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); } run_time_permissions(integer perm) { if(PERMISSION_TAKE_CONTROLS & perm) { llTakeControls( CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT | CONTROL_UP | CONTROL_DOWN | CONTROL_LBUTTON | CONTROL_ML_LBUTTON , TRUE, TRUE); } } control(key id, integer level, integer edge) { integer start = level & edge; integer end = ~level & edge; integer held = level & ~edge; integer untouched = ~(level | edge); llOwnerSay(llList2CSV([level, edge, start, end, held, untouched])); } } |
相关函数 |
---|
llGetPermissions –获得授权
llGetPermissionsKey –找到授予权限的代理 llRequestPermissions–请求权限 |
相关事件 |
---|
run_time_permissions–权限接收事件 |
附录:(表格)
header 1 | header 2 | header 3 |
---|---|---|
row 1, cell 1 | row 1, cell 2 | row 1, cell 3 |
row 2, cell 1 | row 2, cell 2 | row 2, cell 3 |