Difference between revisions of "LlGetTime"

From Second Life Wiki
Jump to navigation Jump to search
m (added snippet)
m (<lsl> tag to <source>)
Line 11: Line 11:
**Call to either [[llResetTime]] or [[llGetAndResetTime]]
**Call to either [[llResetTime]] or [[llGetAndResetTime]]
*Script time measures real world time, it is unaffected by time dilation.
*Script time measures real world time, it is unaffected by time dilation.
|examples=<lsl>
|examples=<source lang="lsl2">
default {
default {
     state_entry()
     state_entry()
Line 24: Line 24:
     }
     }
}
}
</lsl>
</source>
<lsl>
<source lang="lsl2">
//  To do time-dependant loops of whatever:
//  To do time-dependant loops of whatever:
//  for example move 2 meters within 5.0 seconds
//  for example move 2 meters within 5.0 seconds
Line 38: Line 38:
}
}
while (llGetTime() < time);
while (llGetTime() < time);
</lsl>
</source>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llResetTime]]}}
|also_functions={{LSL DefineRow||[[llResetTime]]}}

Revision as of 02:03, 22 January 2015

Summary

Function: float llGetTime( );
0.0 Forced Delay
10.0 Energy

Returns a float that is script time in seconds with subsecond precision since the script started, was last reset, or call to either llResetTime or llGetAndResetTime.

Specification

Script time matches normal time, it is unaffected by time dilation. For example, if you call llResetTime on two objects in separate simulators at the same time, and later call llGetTime on both at the same time, their values will be equal regardless of differences in dilation.

Caveats

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." );
    }
}
//  To do time-dependant loops of whatever:
//  for example move 2 meters within 5.0 seconds

float time = 5.0;
float i;
llResetTime();
do
{
    i = llGetTime()/time;
    // move2meters*i
}
while (llGetTime() < time);

Notes

Script time is the amount of real-world time that the script has been in a running state. It is unaffected by time dilation, but it does not count time while the script is suspended, the user is offline (when in an attachment), the object is in inventory rather than rezzed, etc.

See Also

Deep Notes

Signature

function float llGetTime();