fn_stateTracker.fsm 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. /*%FSM<COMPILE "D:\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, TAW_VD State Tracker">*/
  2. /*%FSM<HEAD>*/
  3. /*
  4. item0[] = {"init",0,4346,-39.234997,-157.457230,50.765003,-107.457222,0.000000,"init"};
  5. item1[] = {"true",8,218,-39.286701,-67.901810,50.713299,-17.901814,0.000000,"true"};
  6. item2[] = {"I_am_a_loop__",2,250,-37.913574,2.551729,52.086441,52.551727,0.000000,"I am a loop.."};
  7. item3[] = {"Dead_Player",4,218,-137.117889,56.721581,-47.117889,106.721581,0.000000,"Dead Player"};
  8. item4[] = {"I_am_dead_Set_my",2,250,-215.837250,109.620483,-125.837227,159.620499,0.000000,"I am dead" \n "Set my corpse"};
  9. item5[] = {"Alive_player",4,218,-215.185760,16.088562,-125.185867,66.088623,0.000000,"Alive player"};
  10. item6[] = {"Re_add_my_action",2,250,-215.481354,-68.055023,-125.481308,-18.054995,0.000000,"Re-add my" \n "action please"};
  11. item7[] = {"State_changed",4,218,107.007217,1.512135,197.007202,51.512016,0.000000,"State changed"};
  12. item8[] = {"Update_me",2,250,107.804337,-67.884735,197.804352,-17.884773,0.000000,"Update me"};
  13. link0[] = {0,1};
  14. link1[] = {1,2};
  15. link2[] = {2,3};
  16. link3[] = {2,7};
  17. link4[] = {3,4};
  18. link5[] = {4,5};
  19. link6[] = {5,6};
  20. link7[] = {6,1};
  21. link8[] = {7,8};
  22. link9[] = {8,1};
  23. globals[] = {0.000000,0,0,0,0,640,480,1,12,6316128,1,-604.631348,604.623535,286.974182,-497.663422,1404,911,1};
  24. window[] = {2,-1,-1,-32000,-32000,785,25,1465,25,3,1422};
  25. *//*%FSM</HEAD>*/
  26. class FSM
  27. {
  28. fsmName = "TAW_VD State Tracker";
  29. class States
  30. {
  31. /*%FSM<STATE "init">*/
  32. class init
  33. {
  34. name = "init";
  35. init = /*%FSM<STATEINIT""">*/"private [""_playerState"",""_corpse"",""_actionID"",""_droneState""];" \n
  36. "" \n
  37. "_playerState = vehicle player;" \n
  38. "_droneState = UAVControl (getConnectedUAV player) select 1;" \n
  39. "tawvd_addon_disable = true;" \n
  40. "" \n
  41. "if(isNil {profileNamespace getVariable ""tawvd_foot""}) then {" \n
  42. " profileNamespace setVariable [""tawvd_foot"",viewDistance];" \n
  43. " profileNamespace setVariable [""tawvd_car"",viewDistance];" \n
  44. " profileNamespace setVariable [""tawvd_air"",viewDistance];" \n
  45. " profileNamespace setVariable [""tawvd_drone"",viewDistance];" \n
  46. " profileNamespace setVariable [""tawvd_object"",viewDistance];" \n
  47. " saveProfileNamespace;" \n
  48. "};" \n
  49. "" \n
  50. "tawvd_foot = profileNamespace getVariable [""tawvd_foot"",viewDistance];" \n
  51. "tawvd_car = profileNamespace getVariable [""tawvd_car"",viewDistance];" \n
  52. "tawvd_air = profileNamespace getVariable [""tawvd_air"",viewDistance];" \n
  53. "tawvd_drone = profileNamespace getVariable [""tawvd_drone"",viewDistance];" \n
  54. "tawvd_object = profileNamespace getVariable [""tawvd_object"",viewDistance];" \n
  55. "" \n
  56. "tawvd_syncObject = true;" \n
  57. "_actionID = player addAction[""<t color='#FF0000'>Settings</t>"",TAWVD_fnc_openMenu,[],-99,false,false,"""",''];"/*%FSM</STATEINIT""">*/;
  58. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  59. class Links
  60. {
  61. /*%FSM<LINK "true">*/
  62. class true
  63. {
  64. priority = 0.000000;
  65. to="I_am_a_loop__";
  66. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  67. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  68. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  69. };
  70. /*%FSM</LINK>*/
  71. };
  72. };
  73. /*%FSM</STATE>*/
  74. /*%FSM<STATE "I_am_a_loop__">*/
  75. class I_am_a_loop__
  76. {
  77. name = "I_am_a_loop__";
  78. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  79. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  80. class Links
  81. {
  82. /*%FSM<LINK "State_changed">*/
  83. class State_changed
  84. {
  85. priority = 0.000000;
  86. to="Update_me";
  87. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  88. condition=/*%FSM<CONDITION""">*/"(vehicle player != _playerState OR (UAVControl getConnectedUAV player select 1) != _droneState)"/*%FSM</CONDITION""">*/;
  89. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  90. };
  91. /*%FSM</LINK>*/
  92. /*%FSM<LINK "Dead_Player">*/
  93. class Dead_Player
  94. {
  95. priority = 0.000000;
  96. to="I_am_dead_Set_my";
  97. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  98. condition=/*%FSM<CONDITION""">*/"!alive player"/*%FSM</CONDITION""">*/;
  99. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  100. };
  101. /*%FSM</LINK>*/
  102. };
  103. };
  104. /*%FSM</STATE>*/
  105. /*%FSM<STATE "I_am_dead_Set_my">*/
  106. class I_am_dead_Set_my
  107. {
  108. name = "I_am_dead_Set_my";
  109. init = /*%FSM<STATEINIT""">*/"_corpse = player;" \n
  110. "_corpse removeAction _actionID;"/*%FSM</STATEINIT""">*/;
  111. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  112. class Links
  113. {
  114. /*%FSM<LINK "Alive_player">*/
  115. class Alive_player
  116. {
  117. priority = 0.000000;
  118. to="Re_add_my_action";
  119. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  120. condition=/*%FSM<CONDITION""">*/"alive player"/*%FSM</CONDITION""">*/;
  121. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  122. };
  123. /*%FSM</LINK>*/
  124. };
  125. };
  126. /*%FSM</STATE>*/
  127. /*%FSM<STATE "Re_add_my_action">*/
  128. class Re_add_my_action
  129. {
  130. name = "Re_add_my_action";
  131. init = /*%FSM<STATEINIT""">*/"_actionID = player addAction[""<t color='#FF0000'>Settings</t>"",TAWVD_fnc_openMenu,[],-99,false,false,"""",''];"/*%FSM</STATEINIT""">*/;
  132. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  133. class Links
  134. {
  135. /*%FSM<LINK "true">*/
  136. class true
  137. {
  138. priority = 0.000000;
  139. to="I_am_a_loop__";
  140. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  141. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  142. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  143. };
  144. /*%FSM</LINK>*/
  145. };
  146. };
  147. /*%FSM</STATE>*/
  148. /*%FSM<STATE "Update_me">*/
  149. class Update_me
  150. {
  151. name = "Update_me";
  152. init = /*%FSM<STATEINIT""">*/"[] call TAWVD_fnc_updateViewDistance;" \n
  153. "_playerState = vehicle player;" \n
  154. "_droneState = UAVControl (getConnectedUAV player) select 1;"/*%FSM</STATEINIT""">*/;
  155. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  156. class Links
  157. {
  158. /*%FSM<LINK "true">*/
  159. class true
  160. {
  161. priority = 0.000000;
  162. to="I_am_a_loop__";
  163. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  164. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  165. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  166. };
  167. /*%FSM</LINK>*/
  168. };
  169. };
  170. /*%FSM</STATE>*/
  171. };
  172. initState="init";
  173. finalStates[] =
  174. {
  175. };
  176. };
  177. /*%FSM</COMPILE>*/