sleep: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Some wiki formatting)
No edit summary
 
Line 18: Line 18:
|gr1= Program Flow
|gr1= Program Flow


|descr= Suspends code execution for given time in seconds. The sleep precision is given by a framerate, the delay given is the minimal delay expected. Must be called inside of a context which is interruptible, i.e. a [[Script Handle|script]] executed by [[execVM]] or [[spawn]].
|descr= Suspends code execution for given [[time]] in seconds. The sleep precision is given by a framerate, the delay given is the minimal delay expected. Must be called inside of a context which is interruptible, i.e. a [[Script Handle|script]] executed by [[execVM]] or [[spawn]].
{{Feature | Informative |
{{Feature | Informative |
* this command will suspend the code for '''''at least''''' the given amount of time, and can be way more if the [[Scheduler|script scheduler]] is busy.
* this command will suspend the code for '''''at least''''' the given amount of time, and can be way more if the [[Scheduler|script scheduler]] is busy.
Line 42: Line 42:
</sqf>
</sqf>


|seealso= [[uiSleep]] [[waitUntil]] [[canSuspend]] [[execVM]] [[spawn]] [[sleep vs uiSleep]] [[Control Structures]]
|seealso= [[time]] [[uiSleep]] [[waitUntil]] [[canSuspend]] [[execVM]] [[spawn]] [[sleep vs uiSleep]] [[Control Structures]]
}}
}}



Latest revision as of 18:40, 26 December 2024

Hover & click on the images for description

Description

Description:
Suspends code execution for given time in seconds. The sleep precision is given by a framerate, the delay given is the minimal delay expected. Must be called inside of a context which is interruptible, i.e. a script executed by execVM or spawn.
  • this command will suspend the code for at least the given amount of time, and can be way more if the script scheduler is busy.
  • this command will suspend the script as the game gets paused in single player (and will resume with it). To avoid this, use uiSleep.
Groups:
Program Flow

Syntax

Syntax:
sleep delay
Parameters:
delay: Number - in seconds. Negative values will not be considered.
Return Value:
Nothing

Examples

Example 1:
0 spawn { sleep 5; hint "after (at least) 5 seconds..."; };
Example 2:
sleep 5 + random 10; // incorrect - will only sleep for 5 seconds, as it will be interpreted as (sleep 5) (+(random 10)) sleep (5 + random 10); // correct

Additional Information

See also:
time uiSleep waitUntil canSuspend execVM spawn sleep vs uiSleep Control Structures

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
CrashDome - c
Posted on Dec 20, 2006 - 20:53 (UTC)
Sleep suspends both SQF functions and SQF scripts. In functions, the calling script is still in suspension due to waiting for a return from the call command. The game engine will continue, however. See Function for more detail.
Kronzky - c
Posted on Feb 12, 2007 - 20:16 (UTC)
Sleep durations between .0005 and .02 will cause the same delay (roughly .02 seconds).
Delays of .0005 and less have no effect (i.e, the sleep call will return immediately).
Sbsmac - c
Posted on Feb 13, 2007 - 22:32 (UTC)
The comment above is a little misleading. The game engine appears to work by processing frames and then checking to see whether scripts are available to execute. Sleep causes the script/function to be suspended until at least the specified time has elapsed. To wait for the next frame, or give other scripts a chance to run, use Sleep 0.001.
Inkompetent - c
Posted on Jun 16, 2007 - 00:13 (UTC)
For scripts called by the Init Event Handler the first sleep command will suspend the script at the briefing screen at the start of a mission. The script will continue after the briefing screen, when actually "in game".