execVM: Difference between revisions
Jump to navigation
Jump to search
m (Text replace - "{{uc:{{PAGENAME}}}}" to "{{uc:{{PAGENAME}}}} {{uc:{{PAGENAME}}}}") |
(formatting description/syntax, added example) |
||
Line 9: | Line 9: | ||
| Compile and execute [[SQF_syntax|SQF]] [[Script]]. | | Compile and execute [[SQF_syntax|SQF]] [[Script]]. | ||
The '''optional''' argument is passed to the script as local variable _this. | <br>The '''optional''' argument is passed to the script as local variable <tt>_this</tt>. | ||
Script is compiled every time you use this command. | <br>Script is compiled every time you use this command. | ||
The [[Script]] is first searched for in the mission folder, then in the campaign scripts folder and finally in the global scripts folder. |= Description | <br>The [[Script]] is first searched for in the mission folder, then in the campaign scripts folder and finally in the global scripts folder. |= Description | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | argument(s) '''execVM''' filename |= Syntax | ||
|p1= argument: [[Any Value]](s) |= Parameter 1 | |p1= argument(s): [[Any Value]](s) - Optional. Argument(s) accessible as <tt>_this</tt> in the script |= Parameter 1 | ||
|p2= filename: [[String]] |= Parameter 2 | |p2= filename: [[String]] |= Parameter 2 | ||
Line 25: | Line 25: | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1= <code>_handle < | |x1= <code>_handle = [[execVM]] "test.sqf";</code> |= Example 1 | ||
waitUntil {scriptDone | |||
|x2= <code>_handle = [[player]] [[execVM]] "test.sqf"; | |||
[[waitUntil]] {[[scriptDone]] _handle};</code> |= Example 2 | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Revision as of 02:06, 23 March 2014
Description
- Description:
- Compile and execute SQF Script.
The optional argument is passed to the script as local variable _this.
Script is compiled every time you use this command.
The Script is first searched for in the mission folder, then in the campaign scripts folder and finally in the global scripts folder. - Groups:
- Uncategorised
Syntax
- Syntax:
- argument(s) execVM filename
- Parameters:
- argument(s): Any Value(s) - Optional. Argument(s) accessible as _this in the script
- filename: String
- Return Value:
- Script - script handle, which can be used to determine (via scriptDone) when the called script has finished.
Examples
- Example 1:
_handle = execVM "test.sqf";
- Example 2:
_handle = player execVM "test.sqf"; waitUntil {scriptDone _handle};
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 January 5, 2007 - 12:30
- Giova
- More about the Returned value: the type 'Script' returned by this command, is in fact a kind of 'Thread Handle'. GOOD POINT: sqf functions launched with execVM will run asynchronously from its caller script/function. It is possible to manage multi-threading development, by using: -handle script returned by execVM -force the thread to terminate by using 'terminate' command -synchronise a script by using 'ScriptDone' command BAD POINT: -sqf funcion cannot return value (because execVM is already returning the thread Handle) -the variable _time does not work in sqf called with execVM command
Notes
- Posted on November 23, 2010 - 15:56
- Kabilen
- Passing variables to the script file
To pass multiple variables to the script file, use an array e.g:
null = [myunit,1234] execVM "test.sqf";
Now within test.sqf to access the elements, use the following:
_myunit = _this select 0;
_myvar = _this select 1;