execFSM: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(_thisFSM)
m (Text replacement - "\| *((\[\[[a-zA-Z0-9_ |()]+\]\],? ?)+) * \}\}" to "|seealso= $1 }}")
(30 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma2 |= Game name
| arma2


|1.00|= Game version
|1.00
____________________________________________________________________________________________


| Execute the scripted FSM. The FSM file is first searched in the mission folder, then in the campaign scripts folder and finally in the global scripts folder.
|gr1= Program Flow
<br>Argument(s) (if any) is/are passed as <tt>_this</tt> to the FSM.
<br>Returns the FSM handle or 0 when failed. |= Description
____________________________________________________________________________________________


| argument(s) '''execFSM''' filename |= Syntax
| Execute scripted [[FSM]] and return the FSM handle or 0 when failed. The FSM file is first searched in the mission folder, then in the campaign scripts folder and finally in the global scripts folder. Argument (if any) are available in <tt>_this</tt> variable inside FSM. Variables set inside FSMs can be read/modified externally, using [[setFSMVariable]] and [[getFSMVariable]] commands.<br>
<br>
The return value is the FSM handle; it can be used to determine (via [[completedFSM]]) when the FSM has finished.
{{Feature|arma3|In Arma 3, the FSM handle is also available within the FSM through the <tt>_thisFSM</tt> variable.}}
<br>
Scripted FSMs are added into the scheduler just like [[exec]] scripts, [[execVM]] scripts and [[spawn]] scripts.<br>
To see what FSMs are currently in the scheduler, use [[diag_activeMissionFSMs]] command.
{{Feature|important|While the code placed into any of the sections of FSM cannot be suspended ([[canSuspend]] is false), the FSM itself is suspended every simulation between the state's <tt>init</tt> and <tt>precondition</tt> (exception is the '''init state'''). This is the only place where scripted FSM is suspended/resumed.
The usual difference between the state's <tt>init</tt> and <tt>precondition</tt> is 1 frame but if the scheduler is busy it can take longer. See [[FSM]] for more information about FSM's structure.}}


|p1= argument(s): [[Any Value]](s) - Optional. Argument(s) accessible as <tt>_this</tt> in the FSM|= Parameter 1
| arguments [[execFSM]] fsmFilePath


|p2= filename: [[String]] |= Parameter 2
|p1= arguments: [[Anything]] - Arguments accessible as <tt>_this</tt> in the FSM


| [[Number]] - FSM handle, can be used to determine (via [[completedFSM]]) when the execed FSM has finished. In Arma 3, the handle is also available inside the FSM in '''_thisFSM''' variable. |= Return value
|p2= fsmFilePath: [[String]] - file with FSM code
____________________________________________________________________________________________


|x1= <code>_id = [[player]] [[execFSM]] "test.fsm";</code>|= EXAMPLE1
| [[Number]] - FSM handle


|x2= <code>_handle = [_a, _b, _c] [[execFSM]] "test.fsm";</code>|= EXAMPLE2
|s2= [[execFSM]] fsmFilePath


|x3= <code>_handle = [[execFSM]] "test.fsm";</code>|= EXAMPLE3
|p21= fsmFilePath: [[String]] - file with FSM code
____________________________________________________________________________________________


| [[FSM]], [[FSM Editor Manual]], [[execVM]], [[call]], [[spawn]], [[exec]], [[commandFSM]], [[completedFSM]], [[doFSM]], [[getFSMVariable]], [[setFSMVariable]] |= SEEALSO
| r2= [[Number]] - FSM handle


| |= MPBEHAVIOUR
|x1= <code>_id = [[player]] [[execFSM]] "test.fsm";</code>
____________________________________________________________________________________________
 
|x2= <code>_handle = [_a, _b, _c] [[execFSM]] "test.fsm";</code>
 
|x3= <code>_handle = [[execFSM]] "test.fsm";</code>
 
|seealso= [[FSM]], [[FSM Editor Manual]], [[execVM]], [[call]], [[spawn]], [[exec]], [[commandFSM]], [[completedFSM]], [[doFSM]], [[getFSMVariable]], [[setFSMVariable]]
}}
}}


<h3 style='display:none'>Notes</h3>
<dl class='command_description'>
<!-- Note Section BEGIN -->
<!-- Note Section END -->
</dl>


<h3 style='display:none'>Bottom Section</h3>
{{GameCategory|arma2|Scripting Commands}}
[[Category:ArmA 2: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
{{GameCategory|tkoh|Scripting Commands}}
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
{{GameCategory|arma3|Scripting Commands}}
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Revision as of 00:42, 17 February 2021

Hover & click on the images for description

Description

Description:
Description needed
Groups:
Program Flow

Syntax

Syntax:
Syntax needed
Parameters:
arguments: Anything - Arguments accessible as _this in the FSM
fsmFilePath: String - file with FSM code
Return Value:
Return value needed

Alternative Syntax

Syntax:
execFSM fsmFilePath
Parameters:
fsmFilePath: String - file with FSM code
Return Value:
Number - FSM handle

Examples

Example 1:
_id = player execFSM "test.fsm";
Example 2:
_handle = [_a, _b, _c] execFSM "test.fsm";
Example 3:
_handle = execFSM "test.fsm";

Additional Information

See also:
FSMFSM Editor ManualexecVMcallspawnexeccommandFSMcompletedFSMdoFSMgetFSMVariablesetFSMVariable

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