Difference between revisions of "Timer"

From Second Life Wiki
Jump to navigation Jump to search
m (Replaced old <LSL> block with <source lang="lsl2">)
 
(14 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{LSL_Event|event_id=11|event_delay|event=timer|event_desc=Result of the {{LSLG|llSetTimerEvent}} library function call.|constants|spec|caveats|examples|helpers|also_header|also_events|also_functions|also_articles|also_footer|notes|mode|deprecated}}[[Category:LSL_Stub]]
{{LSL_Event|event_id=11|event_delay|event=timer|event_desc=Repeats the code in the timer(). Result of the [[llSetTimerEvent]] library function call.
|constants
|spec
|caveats=
*The time between timer events can be longer than that specified with [[llSetTimerEvent]], 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;
** '''llSleep()'''.
*Only one timer can be active at one time.
*The timer survives state changes, but does not survive resets.
|examples=
<source lang="lsl2">
float gap = 2.0;
float counter = 0.0;
 
default
{
    state_entry()
    {
        // Activate the timer listener every 2 seconds
        llSetTimerEvent(gap);
    }
 
    timer()
    {
        counter = counter + gap;
        llSay(0, (string)counter+" seconds have passed");
    }
}
</source>
|helpers
|also_header
|also_events
|also_functions={{LSL DefineRow||[[llSetTimerEvent]]|}}
|also_articles
|also_footer
|notes
|mode
|deprecated
|cat1=Script
|cat2=Time
|cat3
|cat4
}}

Latest revision as of 01:06, 22 January 2015

Description

Event: timer( ){ ; }

Repeats the code in the timer(). Result of the llSetTimerEvent library function call.


Caveats

  • The time between timer events can be longer than that specified with llSetTimerEvent, 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;
    • llSleep().
  • Only one timer can be active at one time.
  • The timer survives state changes, but does not survive resets.
All Issues ~ Search JIRA for related Bugs

Examples

float gap = 2.0;
float counter = 0.0;

default
{
    state_entry()
    {
        // Activate the timer listener every 2 seconds
        llSetTimerEvent(gap);
    }

    timer()
    {
        counter = counter + gap; 
        llSay(0, (string)counter+" seconds have passed");
    }
}

See Also

Functions

•  llSetTimerEvent

Deep Notes

Signature

event void timer(  );