查看“LlSetTimerEvent”的源代码
←
LlSetTimerEvent
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetTimerEvent( float sec ); |参数= 参数: •浮点秒–任何正非零值启用,零(0.0)禁用。 |返回值= 返回值:使计时器事件最多每秒触发一次。传入0.0将停止进一步的计时器事件。 |注意事项=计时器事件之间的时间间隔可能更长,这是由于: 时间膨胀-有关详细信息,请参见llGetRegionTimeScansion。 默认事件延迟-每秒只能触发这么多事件。 事件执行-如果事件的执行时间过长。 计时器在状态更改期间保持不变,但在重置脚本时会被移除。因此,如果您更改为具有timer()事件的状态,并且计时器仍在运行,则它将以新状态激发。 设置一个新的计时器将取代旧的计时器并重置计时器时钟。 如果以小于秒的间隔重复调用此函数,则计时器事件将永远不会触发。 计时器事件不是中断,它不会暂停当前正在运行的事件的执行以执行计时器。当前事件必须在计时器执行之前完成执行。 |示例= 示例1 <pre> // default of counter is 0 upon script load integer counter; float gap = 2.0; default { state_entry() { llSetTimerEvent(gap); } touch_start(integer total_number) { llSay(0, "The timer stops."); llSetTimerEvent(0.0); counter = 0; } timer() { ++counter; llSay(0, (string)counter+" ticks have passed in " + (string)llGetTime() + " script seconds.\nEstimated elapsed time: " + (string)(counter * gap)); } } // random period in between (+15.0, +30.0] // which means the resulting float could be 30.0 but not 15.0 llSetTimerEvent( 30.0 - llFrand(15.0) ); // same results for: // llSetTimerEvent( 30.0 + llFrand(-15.0) ); // The timer event will never fire. default { state_entry() { llSetTimerEvent(5.0); // Sensor every 2.5 seconds llSensorRepeat("", NULL_KEY, FALSE, 0.0, 0.0, 2.5); } no_sensor() { llSetTimerEvent(5.0); } timer() { llSay(0, "I will never happen."); llSay(0, "Well, unless llSensorRepeat() magically finds something,"+ "or maybe there's 2.5+ seconds of lag and the timer()"+ "event queues."); } } </pre> |相关函数= [[llSensorRepeat]] [[llGetRegionTimeDilation]] [[llGetTime]] |相关事件=[[timer]] }}
该页面使用的模板:
模板:LSL Header
(
查看源代码
)
模板:LSLC
(
查看源代码
)
模板:LSLGC
(
查看源代码
)
模板:Multi-lang
(
查看源代码
)
模板:函数详情
(
查看源代码
)
返回至
LlSetTimerEvent
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
网站首页
知识百科
编辑帮助
最近更改
工具
链入页面
相关更改
特殊页面
页面信息