exitWith: Difference between revisions
Jump to navigation
Jump to search
m (Text replace - "{{uc:{{PAGENAME}}}}" to "{{uc:{{PAGENAME}}}} {{uc:{{PAGENAME}}}}") |
Killzone Kid (talk | contribs) No edit summary |
||
Line 34: | Line 34: | ||
''Only'' the "for" loop will exit when the exitWith condition has been fulfilled (not the whole script). Execution will continue after the end of the loop (player sideChat "Complete"). | ''Only'' the "for" loop will exit when the exitWith condition has been fulfilled (not the whole script). Execution will continue after the end of the loop (player sideChat "Complete"). | ||
|= Example 2 | |= Example 2 | ||
|x3= Most loops will also terminate when their scope exited. To exit and terminate scopes which are called every frame such as [[onEachFrame]] and [[waitUntil]] use the following examples: | |||
<code>[[onEachFrame]] { | |||
[[if]] (![[alive]] [[player]]) [[exitWith]] { | |||
[[onEachFrame]] {} | |||
} | |||
} | |||
</code> | |||
<code>_time = [[time]] + 10; | |||
[[waitUntil]] { | |||
[[if]] ([[time]] > _time) [[exitWith]] { | |||
[[true]] | |||
} | |||
} | |||
</code> | |||
|= Example 3 | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Revision as of 14:22, 31 July 2013
Description
- Description:
- If the result of condition is true, code is evaluated, and current block with result of code. It only exits the current scope. exitWith exits the execution of a loop defined by one of commands do, for, count or forEach. When you use exitWith not inside a loops, the behaviour is undefined - sometimes it may exit the script, sometimes some other scope, but this is not intended and designed behaviour of this command, and it is not guaranteed to work reliably. It exits the loop only, not the script.
- Groups:
- Uncategorised
Syntax
Examples
- Example 1:
if (_x>5) exitWith {echo "_x is too big"; _x}
When _x is greater than 5, outputs message and terminates code in current level with value of _x- Example 2:
for "_j" from 1 to 10 do { player sideChat format ["%1",_j]; if (_j==5) exitWith {player sideChat "5 is enough"}; }; player sideChat "Complete";
Only the "for" loop will exit when the exitWith condition has been fulfilled (not the whole script). Execution will continue after the end of the loop (player sideChat "Complete").- Example 3:
- Most loops will also terminate when their scope exited. To exit and terminate scopes which are called every frame such as onEachFrame and waitUntil use the following examples:
onEachFrame { if (!alive player) exitWith { onEachFrame {} } }
_time = time + 10; waitUntil { if (time > _time) exitWith { true } }
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 May 28, 2010 - 22:15
- Roehre
- Since ArmA2 uses Blocks in FSM as any ordinary Handle like while, for etc. in Scripts, ExitWith also only closes the Block in the FSM.