LlSetTimerEvent
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Contents |
Summary
Function: llSetTimerEvent( float sec );| 107 | Function ID |
| 0.0 | Forced Delay |
| 10.0 | Energy |
Cause the timer event to be triggered a maximum of once every sec seconds. Passing in 0.0 stops further timer events.
| • float | sec | – | Any positive non-zero value to enable, zero (0.0) to disable. |
Caveats
- The time between timer events can be longer, this is caused by:
- Time dilation - See llGetRegionTimeDilation for more information.
- Default event delay - Only so many events can be triggered per second.
- Event Execution - If the execution of an event takes too long.
- The timer persists across state changes, but gets removed when the script is reset. So if you change to a state that has a timer() event, with the timer still running, it will fire in the new state.
Examples
// 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) );
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.

