execFSM: Difference between revisions
Jump to navigation
Jump to search
Killzone Kid (talk | contribs) mNo edit summary |
Lou Montana (talk | contribs) (Moving FSM structure info to FSM page) |
||
Line 1: | Line 1: | ||
{{Command|= | {{Command|Comments= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| arma2 | | | arma2 |Game name= | ||
|1.00| | |1.00|Game version= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | 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> | ||
The | <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. 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'''). | 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= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| arguments | | arguments [[execFSM]] fsmFilePath |Syntax= | ||
|p1= arguments: [[Anything]] - Arguments accessible as <tt>_this</tt> in the FSM| | |p1= arguments: [[Anything]] - Arguments accessible as <tt>_this</tt> in the FSM |Parameter 1= | ||
|p2= | |p2= fsmFilePath: [[String]] - file with FSM code |Parameter 2= | ||
| [[Number]] - FSM handle | | [[Number]] - FSM handle |Return value= | ||
|s2= [[execFSM]] fsmFilePath |Syntax 2= | |||
| | |p21= fsmFilePath: [[String]] - file with FSM code |Parameter 21= | ||
| r2= [[Number]] - FSM handle |Return value 2= | |||
| r2= [[Number]] - FSM handle | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1= <code>_id = [[player]] [[execFSM]] "test.fsm";</code>|= | |x1= <code>_id = [[player]] [[execFSM]] "test.fsm";</code> |EXAMPLE1= | ||
|x2= <code>_handle = [_a, _b, _c] [[execFSM]] "test.fsm";</code>|= | |x2= <code>_handle = [_a, _b, _c] [[execFSM]] "test.fsm";</code> |EXAMPLE2= | ||
|x3= <code>_handle = [[execFSM]] "test.fsm";</code>|= | |x3= <code>_handle = [[execFSM]] "test.fsm";</code> |EXAMPLE3= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| [[FSM]], [[FSM Editor Manual]], [[execVM]], [[call]], [[spawn]], [[exec]], [[commandFSM]], [[completedFSM]], [[doFSM]], [[getFSMVariable]], [[setFSMVariable]] | | | [[FSM]], [[FSM Editor Manual]], [[execVM]], [[call]], [[spawn]], [[exec]], [[commandFSM]], [[completedFSM]], [[doFSM]], [[getFSMVariable]], [[setFSMVariable]] |SEEALSO= | ||
}} | }} | ||
Line 55: | 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 Arma 3|{{uc:{{PAGENAME}}}}]] | ||
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] | [[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]] |
Revision as of 13:39, 29 March 2019
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.
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. - Groups:
- Uncategorised
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
- 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