Difference between revisions of "spawn"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Formatted another user's note for readability.)
Line 45: Line 45:
 
<dt class="note">[[User:Kronzky|Kronzky]]
 
<dt class="note">[[User:Kronzky|Kronzky]]
 
<dd class="note">  
 
<dd class="note">  
spawn cannot call other local functions on the same scope as itself.<br>
+
[[spawn]] cannot call other local functions on the same scope as itself.<br>
 
It can, however, call other global functions:
 
It can, however, call other global functions:
_addOne = {TST=TST+1};
+
<pre style="border:none;">_addOne = {TST=TST+1};
TST_addOne = {TST=TST+1};
+
TST_addOne = {TST=TST+1};
+
 
_add = {
+
_add = {
    TST=TST+1;
+
    TST=TST+1;
    player sidechat format["added: %1",TST];
+
    player sidechat format["added: %1",TST];
    [] call _addOne;
+
    [] call _addOne;
    player sidechat format["called local: %1",TST];
+
    player sidechat format["called local: %1",TST];
    [] call TST_addOne;
+
    [] call TST_addOne;
    player sidechat format["called global: %1",TST];
+
    player sidechat format["called global: %1",TST];
};
+
};
TST=0;
+
TST=0;
[] call _add;
+
[] call _add;
[] spawn _add;
+
[] spawn _add;</pre>
(The call of _addOne from the spawned function does not do anything.)
+
* The call of _addOne from the spawned function does not do anything.
  
 
<!-- Note Section END -->
 
<!-- Note Section END -->

Revision as of 07:19, 5 March 2014

Introduced with Armed Assault version 1.00
  

Click on the images for descriptions

Introduced in

Game:
Armed Assault
Version:
1.00

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.

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

Multiplayer:
-
See also:
callcompilepreprocessFileLineNumberspreprocessFileterminatescriptDone

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

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.

Bottom Section