“LlSetTimerEvent”的版本间的差异
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetTimerEvent( float sec ); |参数= 参数: •浮点…”) |
|||
第47行: | 第47行: | ||
} | } | ||
} | } | ||
+ | </pre> | ||
+ | <pre> | ||
// random period in between (+15.0, +30.0] | // random period in between (+15.0, +30.0] | ||
// which means the resulting float could be 30.0 but not 15.0 | // which means the resulting float could be 30.0 but not 15.0 | ||
第54行: | 第56行: | ||
// same results for: | // same results for: | ||
// llSetTimerEvent( 30.0 + llFrand(-15.0) ); | // llSetTimerEvent( 30.0 + llFrand(-15.0) ); | ||
+ | </pre> | ||
+ | <pre> | ||
// The timer event will never fire. | // The timer event will never fire. | ||
default | default |
2020年8月12日 (三) 09:04的最新版本
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: llSetTimerEvent( float sec ); |
参数:
•浮点秒–任何正非零值启用,零(0.0)禁用。 |
返回值:使计时器事件最多每秒触发一次。传入0.0将停止进一步的计时器事件。 |
注意事项 |
---|
计时器事件之间的时间间隔可能更长,这是由于:
时间膨胀-有关详细信息,请参见llGetRegionTimeScansion。 默认事件延迟-每秒只能触发这么多事件。 事件执行-如果事件的执行时间过长。 计时器在状态更改期间保持不变,但在重置脚本时会被移除。因此,如果您更改为具有timer()事件的状态,并且计时器仍在运行,则它将以新状态激发。 设置一个新的计时器将取代旧的计时器并重置计时器时钟。 如果以小于秒的间隔重复调用此函数,则计时器事件将永远不会触发。 计时器事件不是中断,它不会暂停当前正在运行的事件的执行以执行计时器。当前事件必须在计时器执行之前完成执行。 |
示例 |
---|
示例1
// 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."); } } |
相关函数 |
---|
llSensorRepeat |
相关事件 |
---|
timer |