spawn: 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 25: | Line 25: | ||
|x1= <code>[] spawn { player [[globalChat]] "This is run in parallel."; };</code> |= Example 1 | |x1= <code>[] spawn { player [[globalChat]] "This is run in parallel."; };</code> |= Example 1 | ||
|x2= There is no guarantee that spawned scripts will be executed in the same order they spawned: | |||
<code>[[for]] "_i" [[from]] 0 [[to]] 100 [[do]] { | |||
_null = _i [[spawn]] { | |||
[[diag_log]] _this | |||
} | |||
}</code> | |||
Result: 51,1,2...49,50,0,52,53...100 |= Example 2 | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Revision as of 14:15, 3 August 2013
Description
- Description:
- Starts running a new script (SQF). Additional arguments are passed in local _this variable. The new script is running in parallel, spawn does not wait for it to be done, instead spawn returns a Script handle.
- Groups:
- Uncategorised
Syntax
- Syntax:
- Script = arguments spawn code
- Parameters:
- arguments: Any Value
- code: Code
- Return Value:
- Script
Examples
- Example 1:
[] spawn { player globalChat "This is run in parallel."; };
- Example 2:
- There is no guarantee that spawned scripts will be executed in the same order they spawned:
for "_i" from 0 to 100 do { _null = _i spawn { diag_log _this } }
Result: 51,1,2...49,50,0,52,53...100
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 5 March, 2009
- Kronzky
-
spawn cannot call other local functions on the same scope as itself.
It can, however, call other global functions: _addOne = {TST=TST+1}; TST_addOne = {TST=TST+1}; _add = { TST=TST+1; player sidechat format["added: %1",TST]; [] call _addOne; player sidechat format["called local: %1",TST]; [] call TST_addOne; player sidechat format["called global: %1",TST]; }; TST=0; [] call _add; [] spawn _add; (The call of _addOne from the spawned function does not do anything.)