BIS fnc loop: Difference between revisions
Jump to navigation
Jump to search
m (Params) |
mNo edit summary |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Function|= | {{Function|Comments= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| arma3 | | | arma3 |Game name= | ||
|1.16| | |1.16|Game version= | ||
|gr1 = Program Flow |GROUP1= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| Loop stacked code/function with timing and conditional control. Code and conditions are executed in non-scheduled environment. |= | | Loop stacked code/function with timing and conditional control. Code and conditions are executed in [[Scheduler#Unscheduled_Environment|non-scheduled environment]]. |Description= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | [action, parameters] call [[BIS_fnc_loop]] |Syntax= | ||
|p1= action: [[String]] - can be one of: | |||
* "initialize" - Initializes game loop (not required as internal AUTO_INITIALIZE variable is set to true) | |||
* "terminate" - Terminates game loop (required as internal AUTO_TERMINATE variable is ''not'' set to true) | |||
* "itemAdd" - Adds an item to loop | |||
* "itemRemove" - Remove item from loop with id "uniqueId" | |||
* ''"onEachFrame" - internally used by "initialize"'' | |||
* ''"itemExecute" - internally used by "onEachFrame"'' |Parameter 1= | |||
| | |p2= parameters: [[Array]] - used with "itemAdd" and "itemRemove" ''action'' ("itemRemove" only takes id): | ||
: | * id: [[String]] - loop unique id | ||
: | * code: [[Code]] or [[String]] - code to be executed | ||
:" | * timer: [[Number]] - (Optional, default 0) delay between executions | ||
: | * timerType: [[String]] - (Optional, default "seconds") can be "seconds" or "frames" | ||
* conditionStart: [[Code]] - (Optional, default {{Inline code|{ [[true]] <nowiki>}</nowiki>}}) will ''wait'' until the condition is met to start the code | |||
* conditionEnd: [[Code]] - (Optional, default {{Inline code|{ [[false]] <nowiki>}</nowiki>}}) stops the loop as soon as the ending condition is met (after the end of ''code'') | |||
* executeOnce: [[Boolean]] - (Optional, default [[false]]) |Parameter 2= | |||
| [[Nothing]] | | | [[Nothing]] |Return value= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1= <code>// | |x1= <code>{{codecomment|// hints time every five seconds}} | ||
["itemAdd", ["uniqueId", { hint str time; }, 5]] [[call]] [[BIS_fnc_loop]];</code> | | ["itemAdd", ["uniqueId", { hint str time; }, 5]] [[call]] [[BIS_fnc_loop]];</code> |Example 1= | ||
| | |x2= <code>{{codecomment|// removes stacked loop with id of uniqueId}} | ||
[" | ["itemRemove", ["uniqueId"]] [[call]] [[BIS_fnc_loop]];</code> |Example 2= | ||
| | |x3= <code>{{codecomment|// hints time every frame after BIS_variable is assigned}} | ||
["itemAdd", ["uniqueId", { hint str time; }, | ["itemAdd", ["uniqueId", { [[hint]] [[str]] [[time]]; }, [[nil]], [[nil]], { ![[isNil]] { BIS_variable } }]] [[call]] [[BIS_fnc_loop]];</code> |Example 3= | ||
| | |x4= <code>{{codecomment|// hints time every five seconds after BIS_variable is assigned}} | ||
["itemAdd", ["uniqueId", { hint str time; }]] call BIS_fnc_loop;</code> |= | ["itemAdd", ["uniqueId", { [[hint]] [[str]] [[time]]; }, 5, "seconds", { ![[isNil]] { BIS_variable } }]] [[call]] [[BIS_fnc_loop]];</code> |Example 4= | ||
| | |x5= <code>{{codecomment|// hints time every frame}} | ||
[" | ["itemAdd", ["uniqueId", { [[hint]] [[str]] [[time]]; }]] [[call]] [[BIS_fnc_loop]];</code> |Example 5= | ||
|x6= <code>{{codecomment|// remove item from loop with id "uniqueId"}} | |||
["itemRemove", ["uniqueId"]] [[call]] [[BIS_fnc_loop]];</code> |Example 6= | |||
_______________________________________________________________________________________ | _______________________________________________________________________________________ | ||
| | | | [[for]], [[forEach]], [[while]] |See also= | ||
}} | }} | ||
Line 56: | Line 65: | ||
<h3 style="display:none">Bottom Section</h3> | <h3 style="display:none">Bottom Section</h3> | ||
[[Category: | [[Category:Functions|{{uc:loop}}]] | ||
[[Category: | [[Category:{{Name|arma3}}: Functions|{{uc:loop}}]] |
Revision as of 15:37, 12 October 2020
Description
- Description:
- Loop stacked code/function with timing and conditional control. Code and conditions are executed in non-scheduled environment.
- Execution:
- call
- Groups:
- Program Flow
Syntax
- Syntax:
- [action, parameters] call BIS_fnc_loop
- Parameters:
- action: String - can be one of:
- "initialize" - Initializes game loop (not required as internal AUTO_INITIALIZE variable is set to true)
- "terminate" - Terminates game loop (required as internal AUTO_TERMINATE variable is not set to true)
- "itemAdd" - Adds an item to loop
- "itemRemove" - Remove item from loop with id "uniqueId"
- "onEachFrame" - internally used by "initialize"
- "itemExecute" - internally used by "onEachFrame"
- parameters: Array - used with "itemAdd" and "itemRemove" action ("itemRemove" only takes id):
- id: String - loop unique id
- code: Code or String - code to be executed
- timer: Number - (Optional, default 0) delay between executions
- timerType: String - (Optional, default "seconds") can be "seconds" or "frames"
- conditionStart: Code - (Optional, default
{ true }
) will wait until the condition is met to start the code - conditionEnd: Code - (Optional, default
{ false }
) stops the loop as soon as the ending condition is met (after the end of code) - executeOnce: Boolean - (Optional, default false)
- Return Value:
- Nothing
Examples
- Example 1:
// hints time every five seconds ["itemAdd", ["uniqueId", { hint str time; }, 5]] call BIS_fnc_loop;
- Example 2:
// removes stacked loop with id of uniqueId ["itemRemove", ["uniqueId"]] call BIS_fnc_loop;
- Example 3:
// hints time every frame after BIS_variable is assigned ["itemAdd", ["uniqueId", { hint str time; }, nil, nil, { !isNil { BIS_variable } }]] call BIS_fnc_loop;
- Example 4:
// hints time every five seconds after BIS_variable is assigned ["itemAdd", ["uniqueId", { hint str time; }, 5, "seconds", { !isNil { BIS_variable } }]] call BIS_fnc_loop;
- Example 5:
// hints time every frame ["itemAdd", ["uniqueId", { hint str time; }]] call BIS_fnc_loop;
- Example 6:
// remove item from loop with id "uniqueId" ["itemRemove", ["uniqueId"]] call BIS_fnc_loop;
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