Difference between revisions of "Timer"

From Second Life Wiki
Jump to navigation Jump to search
m (Replaced old <LSL> block with <source lang="lsl2">)
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{LSL_Event|event_id=11|event_delay|event=timer|event_desc=Repeats the code in the timer(). Result of the {{LSLG|llSetTimerEvent}} library function call.
{{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
|constants
|spec
|spec
|caveats=*The timer event is adversly effected by [[llGetRegionTimeDilation|time dilation]].
|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.
*Only one timer can be active at one time.
*The timer survives state changes, but does not survive resets.
*The timer survives state changes, but does not survive resets.
|examples=<pre>
|examples=
<source lang="lsl2">
float gap = 2.0;
float gap = 2.0;
float counter = 0.0;
float counter = 0.0;
Line 23: Line 29:
     }
     }
}
}
</pre>
</source>
|helpers
|helpers
|also_header
|also_header

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(  );