onEachFrame: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
(Undo revision 155024 by Ilias38rus (talk) Not true, it triggers on the next frame)
Tag: Undo
Line 55: Line 55:
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on July 2, 2020 - 16:33 (UTC)</dd>
<dt class="note">[[User:Ilias38rus|Ilias38rus]]</dt>
<dd class="note">
Triggers in the frame its executed from, so for example:
<code>onEachFrame { << code >> onEachFrame {}; };
</code>
Will '''always''' execute the given code, within the frame that the command was processed in.
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Revision as of 11:14, 3 July 2020

Hover & click on the images for description

Description

Description:
Runs given statement every frame.
Arma 3
In order to keep compatibility between official and community content:
Groups:
Uncategorised

Syntax

Syntax:
onEachFrame statement
Parameters:
statement: String or Code
Return Value:
Nothing

Examples

Example 1:
onEachFrame { hintSilent str position player}; // Hints position every frame
Example 2:
Private variables defined outside of the onEachFrame scope are not inherited: _myvar = "bob"; myvar = "bill"; onEachFrame { hintSilent str [_myvar, myvar]; }; // Result: [any,"bill"]
Example 3:
Only one onEachFrame loop can exist at any time: onEachFrame { player sideChat "first"; }; onEachFrame { player sideChat "second"; }; // Result: "second", "second", "second"... Note how "first" never gets shown even though it precedes "second". This is because script thread is executing within the same frame and first onEachFrame is overwritten before it has a chance to execute its statement.
Example 4:
Script suspension is not permitted within onEachFrame scope: // Will throw an error onEachFrame { sleep 1; };
Example 5:
onEachFrame {}; // Reset event

Additional Information

See also:
diag_frameNodiag_fps

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

Bottom Section