Difference between revisions of "LlGetTime"

From Second Life Wiki
Jump to: navigation, search
(clarify to "seconds and fractional seconds" from the misleadingly brief "seconds" that can mean counting only whole seconds)
Line 3: Line 3:
 
|func=llGetTime|sort=GetTime
 
|func=llGetTime|sort=GetTime
 
|return_type=float
 
|return_type=float
|return_text=that is the dilated time in seconds and fractional seconds since the last sim reset, script reset, call of [[llResetTime]], or call of [[llGetAndResetTime]].
+
|return_text=that is script time in seconds since the last sim reset, script reset or call to either [[llResetTime]] or [[llGetAndResetTime]].
|func_footnote=Reports elapsed run time more accurately than [[llGetTimestamp]] by accounting correctly for time dilation.
+
|func_footnote
|spec
+
|spec=Script time differs from normal time, it is affected by time dilation. See [[llGetRegionTimeDilation]] for details.
 
|caveats=
 
|caveats=
*Correctly slowed by time dilation, whenever [[llGetRegionTimeDilation]] returns a value other than exactly 1.
+
*Script time resets when...
*Reset by various events outside user control, such as sim resets.
+
**Script reset (user or [[llResetScript]] or [[llResetOtherScript]])
 +
**Simulator reset (admin or crash)
 +
**Call to either [[llResetTime]] or [[llGetAndResetTime]]
 +
*Script time doesn't measure real world time, it is affected by time dilation.
 
|examples=<pre>
 
|examples=<pre>
 
default {
 
default {
Line 17: Line 20:
 
     touch_start(integer num_touch)
 
     touch_start(integer num_touch)
 
     {
 
     {
         float time;
+
         float time = llGetTime(); //Instead getting, and then resetting the time, we could use llGetAndReset() to accomplish the same thing.
        time=llGetTime(); //Instead getting, and then resetting the time, we could use llGetAndReset() to accomplish the same thing.
+
 
         llResetTime();
 
         llResetTime();
 
         llSay(0,(string)time + " seconds have elapsed since the last touch." );
 
         llSay(0,(string)time + " seconds have elapsed since the last touch." );
Line 29: Line 31:
 
{{LSL DefineRow||[[llGetRegionTimeDilation]]}}
 
{{LSL DefineRow||[[llGetRegionTimeDilation]]}}
 
|also
 
|also
|notes=To measure elapsed calendar time, call [[llGetTimestamp]] instead, since time dilation and resets often make dilated time intervals differ from calendar time intervals.
+
|notes=Script time does not measure time dilation.
 +
To measure elapsed calendar time, call [[llGetTimestamp]] instead, since time dilation and resets often make dilated time intervals differ from calendar time intervals.
 
|cat1=Time
 
|cat1=Time
 
|cat2=Script
 
|cat2=Script

Revision as of 10:54, 24 October 2007

Summary

Function: float llGetTime( );

Returns a float that is script time in seconds since the last sim reset, script reset or call to either llResetTime or llGetAndResetTime.

Specification

Script time differs from normal time, it is affected by time dilation. See llGetRegionTimeDilation for details.

Caveats

All Issues ~ Search JIRA for related Bugs

Examples

default {
    state_entry()
    {
        llResetTime();
    }
    touch_start(integer num_touch)
    {
        float time = llGetTime(); //Instead getting, and then resetting the time, we could use llGetAndReset() to accomplish the same thing.
        llResetTime();
        llSay(0,(string)time + " seconds have elapsed since the last touch." );
    }
}

Notes

Script time does not measure time dilation. To measure elapsed calendar time, call llGetTimestamp instead, since time dilation and resets often make dilated time intervals differ from calendar time intervals.

See Also

Deep Notes

Search JIRA for related Issues

Signature

function float llGetTime();