waitUntil: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
(added note about booleans)
Line 31: Line 31:
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on September 20, 2013
<dt class="note">'''[[User:Killzone_Kid|Killzone_Kid]]'''
<dd class="note">In case you have more complex code inside [[waitUntil]] loop, to be on the safe side '''always''' return boolean at the end of the scope:
<code>[[player]] [[addEventHandler]] ["Fired", {
_null = (_this [[select]] 6) [[spawn]] {
_p = [0,0,0];
[[waitUntil]] {
if ([[isNull]] _this) [[exitWith]] {[[true]]};
_p = [[getPos]] _this;
[[false]] //<-- boolean at the end of the scope
};
[[hint]] [[str]] _p;
};
}];</code>


<dd class="notedate">Posted on December 20, 2006 - 19:55
<dd class="notedate">Posted on December 20, 2006 - 19:55

Revision as of 22:50, 20 September 2013

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
Suspend execution of function or SQF based script until condition is satisfied. This command will loop and call the code inside {} every frame until the code returns true. The execution of the rest of the script therefore will be suspended until waitUntil condition is satisfied and the loop is aborted. Because of this script suspension use spawn or execVM to safely execute code containing waitUntil.
Groups:
Uncategorised

Syntax

Syntax:
waitUntil condition
Parameters:
condition: Code
Return Value:
Nothing

Examples

Example 1:
waitUntil {not alive player}
Example 2:
_i = 0; waitUntil {_i = _i + 1; _i >= 100}
Example 3:
waitUntil {sleep 0.1; not alive player}

Additional Information

See also:
Control Structureswhile

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 September 20, 2013
Killzone_Kid
In case you have more complex code inside waitUntil loop, to be on the safe side always return boolean at the end of the scope: player addEventHandler ["Fired", { _null = (_this select 6) spawn { _p = [0,0,0]; waitUntil { if (isNull _this) exitWith {true}; _p = getPos _this; false //<-- boolean at the end of the scope }; hint str _p; }; }];
Posted on December 20, 2006 - 19:55
CrashDome
waitUntil 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 April 2, 2010 - 17:10
Roehre
If WaitUntil uses an undefined call code, WaitUntil won't release, even when this code is separated from other conditions through or. Be warned that this won't cause an error message.
Posted on Jan 07, 2011
kju
By default the cycle time for the condition check is per frame. Look at the example 3, how to set it at a lower rate yourself. Often times one does not need per frame checking. Saves a lot CPU checks; especially when the condition is complex to compute.

Bottom Section