Difference between revisions of "sleep"
Jump to navigation
Jump to search
m |
Lou Montana (talk | contribs) (Add examples) |
||
Line 10: | Line 10: | ||
| 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]]. | ||
− | + | {{Informative | | |
− | * this command | + | * 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 script | + | * 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= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| '''sleep''' delay |SYNTAX= | | '''sleep''' delay |SYNTAX= | ||
− | |p1= delay: [[Number]] | + | |p1= delay: [[Number]] - in seconds. Negative values will not be considered. |PARAMETER1= |
| [[Nothing]] |RETURNVALUE= | | [[Nothing]] |RETURNVALUE= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
− | + | ||
− | |x1= <code>[] [[spawn]] {[[sleep]] 5; [[hint]] "after 5 | + | |x1= <code>[] [[spawn]] { |
+ | [[sleep]] 5; | ||
+ | [[hint]] "after (at least) 5 seconds..."; | ||
+ | };</code> |EXAMPLE1= | ||
+ | |||
+ | |x2= <code>[[sleep]] 5 + [[random]] 10; {{cc|incorrect - will only sleep for 5 seconds, as it will be interpreted as (sleep 5) (+(random 10))}} | ||
+ | [[sleep]] (5 + [[random]] 10); {{cc|correct}}</code> |EXAMPLE2= | ||
+ | |||
+ | |x3= <code>[[if]] ([[isMultiplayer]]) [[then]] | ||
+ | { | ||
+ | [[uiSleep]] 3; {{cc|more precise in (non-pausable) multiplayer}} | ||
+ | } [[else]] { | ||
+ | [[sleep]] 3; {{cc|[[sleep]] gets paused as the game is, usually wanted behaviour}} | ||
+ | };</code> |EXAMPLE3= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| [[uiSleep]], [[waitUntil]], [[canSuspend]], [[execVM]], [[spawn]], [[sleep vs uiSleep]], [[Control Structures]] |SEEALSO= | | [[uiSleep]], [[waitUntil]], [[canSuspend]], [[execVM]], [[spawn]], [[sleep vs uiSleep]], [[Control Structures]] |SEEALSO= | ||
− | |||
}} | }} | ||
Line 34: | Line 47: | ||
<dd class="notedate">Posted on December 20, 2006 - 19:53 | <dd class="notedate">Posted on December 20, 2006 - 19:53 | ||
<dt class="note">[[User:CrashDome|CrashDome]]<dd class="note">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. | <dt class="note">[[User:CrashDome|CrashDome]]<dd class="note">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. | ||
+ | |||
<dd class="notedate">Posted on February 12, 2007 - 20:16 | <dd class="notedate">Posted on February 12, 2007 - 20:16 | ||
<dt class="note">[[User:Kronzky|Kronzky]]<dd class="note">Sleep durations between .0005 and .02 will cause the same delay (roughly .02 seconds).<br>Delays of .0005 and less have '''no''' effect (ie, the sleep call will return immediately). | <dt class="note">[[User:Kronzky|Kronzky]]<dd class="note">Sleep durations between .0005 and .02 will cause the same delay (roughly .02 seconds).<br>Delays of .0005 and less have '''no''' effect (ie, the sleep call will return immediately). | ||
+ | |||
<dt class="note">[[User:Sbsmac|Sbsmac]]<dd class="note">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. | <dt class="note">[[User:Sbsmac|Sbsmac]]<dd class="note">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. | ||
+ | |||
<dd class="notedate">Posted on July 16, 2007 - 00:13 | <dd class="notedate">Posted on July 16, 2007 - 00:13 | ||
<dt class="note">[[User:Inkompetent|Inkompetent]]<dd class="note">For scripts called by the [[Armed_Assault:_EventHandlers_List#Init|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". | <dt class="note">[[User:Inkompetent|Inkompetent]]<dd class="note">For scripts called by the [[Armed_Assault:_EventHandlers_List#Init|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". | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<dd class="notedate">Posted on October 18, 2014 - 21:24 (UTC)</dd> | <dd class="notedate">Posted on October 18, 2014 - 21:24 (UTC)</dd> | ||
<dt class="note">[[User:AgentRevolution|AgentRevolution]]</dt> | <dt class="note">[[User:AgentRevolution|AgentRevolution]]</dt> | ||
Line 68: | Line 63: | ||
</dl> | </dl> | ||
<!-- DISCONTINUE Notes --> | <!-- DISCONTINUE Notes --> | ||
+ | |||
+ | <h3 style="display:none">Bottom Section</h3> | ||
+ | [[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]] | ||
+ | [[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | ||
+ | [[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]] |
Revision as of 12:42, 23 October 2020
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.