sleep: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\[\[Category:[ _]?Scripting[ _]Commands[ _]Take[ _]On[ _]Helicopters(\|.*)?\]\]" to "{{GameCategory|tkoh|Scripting Commands}}") |
Lou Montana (talk | contribs) m (Text replacement - "_{10,} " to "") |
||
Line 1: | Line 1: | ||
{{Command|Comments= | {{Command|Comments= | ||
| arma1 |Game name= | | arma1 |Game name= | ||
Line 7: | Line 6: | ||
|gr1= Program Flow |GROUP1= | |gr1= Program Flow |GROUP1= | ||
| 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]]. | | 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]]. | ||
Line 14: | Line 12: | ||
* this command will suspend the script as the game gets paused in single player (and will resume with it). To avoid this, use [[uiSleep]]. | * this command will suspend the script as the game gets paused in single player (and will resume with it). To avoid this, use [[uiSleep]]. | ||
}} |DESCRIPTION= | }} |DESCRIPTION= | ||
| '''sleep''' delay |SYNTAX= | | '''sleep''' delay |SYNTAX= | ||
Line 21: | Line 18: | ||
| [[Nothing]] |RETURNVALUE= | | [[Nothing]] |RETURNVALUE= | ||
|x1= <code>[] [[spawn]] { | |x1= <code>[] [[spawn]] { | ||
Line 37: | Line 33: | ||
[[sleep]] 3; {{cc|[[sleep]] gets paused as the game is, usually wanted behaviour}} | [[sleep]] 3; {{cc|[[sleep]] gets paused as the game is, usually wanted behaviour}} | ||
};</code> |EXAMPLE3= | };</code> |EXAMPLE3= | ||
| [[uiSleep]], [[waitUntil]], [[canSuspend]], [[execVM]], [[spawn]], [[sleep vs uiSleep]], [[Control Structures]] |SEEALSO= | | [[uiSleep]], [[waitUntil]], [[canSuspend]], [[execVM]], [[spawn]], [[sleep vs uiSleep]], [[Control Structures]] |SEEALSO= |
Revision as of 03:55, 17 January 2021
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.
- Groups:
- Program Flow
Syntax
- Syntax:
- sleep delay
- Parameters:
- delay: Number - in seconds. Negative values will not be considered.
- Return Value:
- Nothing
Examples
- Example 1:
[] 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
- Example 3:
if (isMultiplayer) then { uiSleep 3; // more precise in (non-pausable) multiplayer } else { sleep 3; // sleep gets paused as the game is, usually wanted behaviour };
Additional Information
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
Notes
- Posted on December 20, 2006 - 19:53
- CrashDome
- 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.
- Posted on February 12, 2007 - 20:16
- Kronzky
- Sleep durations between .0005 and .02 will cause the same delay (roughly .02 seconds).
Delays of .0005 and less have no effect (ie, the sleep call will return immediately). - Sbsmac
- 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.
- Posted on July 16, 2007 - 00:13
- Inkompetent
- 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".
- Posted on October 18, 2014 - 21:24 (UTC)
- AgentRevolution
- For server scripts, if you are creating "while true" timers, it is best to use uiSleep instead, as the sleep from that command is not slowed down by simulation / server lag, so the timers will execute at intervals that are much closer to real time, even under heavy lag.