call

From Bohemia Interactive Community
Jump to: navigation, search
Introduced with Operation Flashpoint: Resistance version 1.85
  

Click on the images for descriptions

Introduced in

Game:
Operation Flashpoint: Resistance
Version:
1.85

Description

Description:
Executes given set of compiled instructions with an option to pass arguments to the executed Code.
In Operation Flashpoint this command used to accept String as well as Code. This does not apply to Armed Assault and later titles (see compile).

Syntax

Syntax:
call code
Parameters:
code: Code - compiled instructions
Return Value:
Anything - The last value given in the function is returned. See the topic Function for more information.

Alternative Syntax

Syntax:
args call code
Parameters:
args: Anything - Arguments that are passed to the function in the _this variable
code: Code - compiled instructions
Return Value:
Anything - The last value given in the function is returned. See the topic Function for more information.

Examples

Example 1:
call { hint str 123; };
Example 2:
123 call { hint str _this; };
Example 3:
_sum = [1, 2] call { (_this select 0) + (_this select 1); }; hint str _sum; // displays 3
Example 4:
123 call compile "hint str _this;";
Example 5:
_result = 123 call compile preprocessFileLineNumbers "myFile.sqf";

Additional Information

Multiplayer:
-
See also:
spawnexecVMcanSuspendcompilepreprocessFileremoteExecremoteExecCall

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

Bottom Section

Posted on July 5, 2014 - 16:00 (UTC)
MattAka Horner
A called function may only use suspension (sleep, uiSleep, waitUntil) if it originates in a scheduled environment. If the called function originates in a non-scheduled environment it will return a generic error: // *** non-scheduled origin *** [] spawn { // *** scheduled scope *** [] call { // *** scheduled scope *** sleep 3; // <- OK hintSilent "Hello World!"; }; }; // *** non-scheduled origin *** [] call { // *** non-scheduled scope*** [] call { // *** non-scheduled scope *** sleep 3; // <- NOT OK hintSilent "Hello World!"; }; }; // *** scheduled origin *** [] spawn { // *** scheduled scope *** [] call { // *** scheduled scope *** sleep 3; // <- OK hintSilent "Hello World!"; }; }; // *** scheduled origin *** [] call { // *** scheduled scope *** [] call { // *** scheduled scope *** sleep 3; // <- OK hintSilent "Hello World!"; }; };
Posted on February 17, 2015 - 11:02 (UTC)
Patriot821
If the code is in non-scheduled scope and contains while-do statement, the code runs only 10,000 times at the maximum, even if the statement makes infinite loop. (ARMA3 Ver. 1.38.128937) // *** non-scheduled origin *** [] call { // *** non-scheduled scope *** [] call { // *** non-scheduled scope *** _a = 0; while { _a < 15000 } do { _a = _a + 1; }; hint str _a; // displays 10000 }; };