Difference between revisions of "execFSM"

From Bohemia Interactive Community
Jump to navigation Jump to search
(Moving FSM structure info to FSM page)
 
(28 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{Command|= Comments
+
{{Command|Comments=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| arma2 |= Game name
+
| arma2 |Game name=
  
|1.00|= Game version
+
|1.00|Game version=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| 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.  
+
| 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>
Returns the FSM handler or 0 when failed. |= Description
+
<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.
 +
{{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''').
 +
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.
 +
This is the only place where scripted FSM is suspended/resumed.}} |Description=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| '''execFSM''' filename |= Syntax
+
| arguments [[execFSM]] fsmFilePath |Syntax=
  
|p1= filename: - |= PARAMETER1
+
|p1= arguments: [[Anything]] - Arguments accessible as <tt>_this</tt> in the FSM |Parameter 1=
  
|p2= |= PARAMETER2
+
|p2= fsmFilePath: [[String]] - file with FSM code |Parameter 2=
  
|p3= |= PARAMETER3
+
| [[Number]] - FSM handle |Return value=
  
| [[Number]] |= RETURNVALUE
+
|s2= [[execFSM]] fsmFilePath |Syntax 2=
  
 +
|p21= fsmFilePath: [[String]] - file with FSM code |Parameter 21=
  
|x1= <pre>execFSM "test.fsm";</pre>|= EXAMPLE1
+
| r2= [[Number]] - FSM handle |Return value 2=
 +
____________________________________________________________________________________________
  
____________________________________________________________________________________________
+
|x1= <code>_id = [[player]] [[execFSM]] "test.fsm";</code> |EXAMPLE1=
  
| |= SEEALSO
+
|x2= <code>_handle = [_a, _b, _c] [[execFSM]] "test.fsm";</code> |EXAMPLE2=
  
| |= MPBEHAVIOUR
+
|x3= <code>_handle = [[execFSM]] "test.fsm";</code> |EXAMPLE3=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
 +
 +
| [[FSM]], [[FSM Editor Manual]], [[execVM]], [[call]], [[spawn]], [[exec]], [[commandFSM]], [[completedFSM]], [[doFSM]], [[getFSMVariable]], [[setFSMVariable]] |SEEALSO=
 
}}
 
}}
  
Line 42: Line 54:
 
[[Category:ArmA 2: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
 
[[Category:ArmA 2: New Scripting Commands List|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
 +
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
 +
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
 +
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]

Latest revision as of 14:39, 29 March 2019

Introduced with Arma 2 version 1.00
  

Click on the images for descriptions

Introduced in

Game:
Arma 2
Version:
1.00

Description

Description:
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 _this variable inside FSM. Variables set inside FSMs can be read/modified externally, using setFSMVariable and getFSMVariable commands.

The return value is the FSM handle; it can be used to determine (via completedFSM) when the FSM has finished.
Arma 3 logo black.png
In Arma 3, the FSM handle is also available within the FSM through the _thisFSM variable.


Scripted FSMs are added into the scheduler just like exec scripts, execVM scripts and spawn scripts.
To see what FSMs are currently in the scheduler, use diag_activeMissionFSMs command.

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 init and precondition (exception is the init state).

The usual difference between the state's init and precondition is 1 frame but if the scheduler is busy it can take longer. See FSM for more information about FSM's structure.

This is the only place where scripted FSM is suspended/resumed.

Syntax

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

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

Multiplayer:
-
See also:
FSMFSM Editor ManualexecVMcallspawnexeccommandFSMcompletedFSMdoFSMgetFSMVariablesetFSMVariable

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