Advertisement
Guest User

Untitled

a guest
Jan 28th, 2013
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.94 KB | None | 0 0
  1. /*%FSM<COMPILE "F:\DayZ\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Server Cleanup">*/
  2. /*%FSM<HEAD>*/
  3. /*
  4. item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"};
  5. item1[] = {"true",8,218,-75.000000,-175.000000,25.000000,-125.000000,0.000000,"true"};
  6. item2[] = {"waiting",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"waiting"};
  7. item3[] = {"time_dead",4,218,-300.000000,-25.000000,-200.000000,25.000000,4.000000,"time" \n "dead"};
  8. item4[] = {"cleanup_dead",2,250,-300.000000,50.000000,-200.000000,100.000000,0.000000,"cleanup" \n "dead"};
  9. item5[] = {"time_items",4,218,0.000000,-25.000000,100.000000,25.000000,2.000000,"time" \n "items"};
  10. item6[] = {"cleanup_items",2,4346,0.000000,50.000000,100.000000,100.000000,0.000000,"cleanup" \n "items"};
  11. item7[] = {"time_sync",4,218,-150.000000,-25.000000,-50.000000,25.000000,3.000000,"time" \n "sync"};
  12. item8[] = {"sync_the_time",2,250,-150.000000,50.000000,-50.000000,100.000000,0.000000,"sync" \n "the time"};
  13. item9[] = {"true",8,218,-75.000000,125.000000,25.000000,175.000000,0.000000,"true"};
  14. item10[] = {"general_cleanup",2,250,-75.000000,200.000000,25.000000,250.000000,0.000000,"general" \n "cleanup"};
  15. item11[] = {"",7,210,-341.500000,220.999985,-333.500000,229.000015,0.000000,""};
  16. item12[] = {"",7,210,-341.500000,-154.000000,-333.500000,-146.000000,0.000000,""};
  17. item13[] = {"initialized",4,218,-75.000000,-325.000000,25.000000,-275.000000,0.000000,"initialized"};
  18. item14[] = {"prepare",2,250,-75.000000,-250.000000,25.000000,-200.000000,0.000000,"prepare"};
  19. item15[] = {"update_objects",2,250,150.000000,50.000000,250.000000,100.000000,0.000000,"update objects"};
  20. item16[] = {"time_obj_update",4,218,150.000000,-25.000000,250.000000,25.000000,1.000000,"time" \n "obj update"};
  21. item17[] = {"anti_hack",4,218,150.000000,-100.000000,250.000000,-50.000000,0.000000,"anti hack"};
  22. item18[] = {"check_for_hacker",2,250,150.000000,-175.000000,250.000000,-125.000000,0.000000,"check for" \n "hackers"};
  23. link0[] = {0,13};
  24. link1[] = {1,2};
  25. link2[] = {2,3};
  26. link3[] = {2,5};
  27. link4[] = {2,7};
  28. link5[] = {2,16};
  29. link6[] = {2,17};
  30. link7[] = {3,4};
  31. link8[] = {4,9};
  32. link9[] = {5,6};
  33. link10[] = {6,9};
  34. link11[] = {7,8};
  35. link12[] = {8,9};
  36. link13[] = {9,10};
  37. link14[] = {10,11};
  38. link15[] = {11,12};
  39. link16[] = {12,1};
  40. link17[] = {13,14};
  41. link18[] = {14,1};
  42. link19[] = {15,9};
  43. link20[] = {16,15};
  44. link21[] = {17,18};
  45. link22[] = {18,1};
  46. globals[] = {25.000000,1,0,0,0,640,480,1,33,6316128,1,-389.695160,324.496887,564.215637,-260.262604,803,927,1};
  47. window[] = {2,-1,-1,-1,-1,1127,220,1334,220,3,820};
  48. *//*%FSM</HEAD>*/
  49. class FSM
  50. {
  51. fsmName = "DayZ Server Cleanup";
  52. class States
  53. {
  54. /*%FSM<STATE "init">*/
  55. class init
  56. {
  57. name = "init";
  58. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  59. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  60. class Links
  61. {
  62. /*%FSM<LINK "initialized">*/
  63. class initialized
  64. {
  65. priority = 0.000000;
  66. to="prepare";
  67. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  68. condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
  69. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  70. };
  71. /*%FSM</LINK>*/
  72. };
  73. };
  74. /*%FSM</STATE>*/
  75. /*%FSM<STATE "waiting">*/
  76. class waiting
  77. {
  78. name = "waiting";
  79. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  80. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  81. class Links
  82. {
  83. /*%FSM<LINK "time_dead">*/
  84. class time_dead
  85. {
  86. priority = 4.000000;
  87. to="cleanup_dead";
  88. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  89. condition=/*%FSM<CONDITION""">*/"(time - _lastDeadCheck) > 600"/*%FSM</CONDITION""">*/;
  90. action=/*%FSM<ACTION""">*/"_lastDeadCheck = time;"/*%FSM</ACTION""">*/;
  91. };
  92. /*%FSM</LINK>*/
  93. /*%FSM<LINK "time_sync">*/
  94. class time_sync
  95. {
  96. priority = 3.000000;
  97. to="sync_the_time";
  98. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  99. condition=/*%FSM<CONDITION""">*/"(time - _lastTimeSync) > 300"/*%FSM</CONDITION""">*/;
  100. action=/*%FSM<ACTION""">*/"_lastTimeSync = time;"/*%FSM</ACTION""">*/;
  101. };
  102. /*%FSM</LINK>*/
  103. /*%FSM<LINK "time_items">*/
  104. class time_items
  105. {
  106. priority = 2.000000;
  107. to="cleanup_items";
  108. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  109. condition=/*%FSM<CONDITION""">*/"(time - _lastItemCheck) > 60"/*%FSM</CONDITION""">*/;
  110. action=/*%FSM<ACTION""">*/"_lastItemCheck = time;"/*%FSM</ACTION""">*/;
  111. };
  112. /*%FSM</LINK>*/
  113. /*%FSM<LINK "time_obj_update">*/
  114. class time_obj_update
  115. {
  116. priority = 1.000000;
  117. to="update_objects";
  118. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  119. condition=/*%FSM<CONDITION""">*/"(time-_lastObjectUpdateCheck) > 10"/*%FSM</CONDITION""">*/;
  120. action=/*%FSM<ACTION""">*/"_lastObjectUpdateCheck = time;"/*%FSM</ACTION""">*/;
  121. };
  122. /*%FSM</LINK>*/
  123. /*%FSM<LINK "anti_hack">*/
  124. class anti_hack
  125. {
  126. priority = 0.000000;
  127. to="check_for_hacker";
  128. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  129. condition=/*%FSM<CONDITION""">*/"(time-_timeHackCheck) > 1"/*%FSM</CONDITION""">*/;
  130. action=/*%FSM<ACTION""">*/"_timeHackCheck = time;"/*%FSM</ACTION""">*/;
  131. };
  132. /*%FSM</LINK>*/
  133. };
  134. };
  135. /*%FSM</STATE>*/
  136. /*%FSM<STATE "cleanup_dead">*/
  137. class cleanup_dead
  138. {
  139. name = "cleanup_dead";
  140. init = /*%FSM<STATEINIT""">*/"_numDead = {local _x} count allDead;" \n
  141. "" \n
  142. "if (_numDead > 300) then { " \n
  143. "" \n
  144. " diag_log (""CLEANUP: TOO MANY DEAD BODIES"");" \n
  145. " diag_log (""CLEANUP: PERFORMING BODY CLEANUP ON "" + str(_numDead) + "" BODIES"");" \n
  146. "" \n
  147. " //Cleanup zed's & players" \n
  148. "" \n
  149. " _delQtyZ = 0; " \n
  150. " _delQtyP = 0;" \n
  151. " {" \n
  152. " if (local _x) then {" \n
  153. " if (_x isKindOf ""zZombie_Base"") then {" \n
  154. " deleteVehicle _x;" \n
  155. " _delQtyZ = _delQtyZ + 1;" \n
  156. " } else {" \n
  157. " _pos = getPosATL _x;" \n
  158. " _sfx = nearestObject [_pos,""Sound_Flies""];" \n
  159. " if (!(isNull _sfx)) then {" \n
  160. " deleteVehicle _sfx;" \n
  161. " };" \n
  162. " deleteVehicle _x;" \n
  163. " _delQtyP = _delQtyP + 1;" \n
  164. " };" \n
  165. " };" \n
  166. " } forEach allDead;" \n
  167. "" \n
  168. " //Check Flies" \n
  169. " _dwUSOFC=0;" \n
  170. " {" \n
  171. " if (local _x) then {" \n
  172. " deleteVehicle _x;" \n
  173. " _dwUSOFC=_dwUSOFC+1;" \n
  174. " };" \n
  175. " diag_log (""CLEANUP: DELETED AN UNCONTROLLED SOUND OF FLIES:"" + str(_dwUSOFC) );" \n
  176. " } forEach allMissionObjects ""Sound_Flies"";" \n
  177. "" \n
  178. " //clean fireplaces" \n
  179. " _dwUFPC=0;" \n
  180. " {" \n
  181. " if (local _x) then {" \n
  182. " deleteVehicle _x;" \n
  183. " _dwUFPC=_dwUFPC+1;" \n
  184. " };" \n
  185. " diag_log (""CLEANUP: DELETED AN UNCONTROLLED FIREPLACE:"" + str(_dwUFPC) );" \n
  186. " } forEach allMissionObjects ""Land_Fire_DZ"";" \n
  187. "" \n
  188. " diag_log (""CLEANUP: DELETED "" + str(_delQtyP) + "" PLAYER BODIES AND "" + str(_delQtyZ) + "" BODIES"");" \n
  189. "};" \n
  190. ""/*%FSM</STATEINIT""">*/;
  191. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  192. class Links
  193. {
  194. /*%FSM<LINK "true">*/
  195. class true
  196. {
  197. priority = 0.000000;
  198. to="general_cleanup";
  199. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  200. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  201. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  202. };
  203. /*%FSM</LINK>*/
  204. };
  205. };
  206. /*%FSM</STATE>*/
  207. /*%FSM<STATE "cleanup_items">*/
  208. class cleanup_items
  209. {
  210. name = "cleanup_items";
  211. init = /*%FSM<STATEINIT""">*/"_missionObjs = allMissionObjects ""WeaponHolder"";" \n
  212. "_qty = count _missionObjs;" \n
  213. "//diag_log (""CLEANUP: PERFORMING ITEM CLEANUP: TOTAL "" + str(_qty) + "" LOOT BAGS"");" \n
  214. "_delQty = 0;" \n
  215. "_qtyLoc = 0;" \n
  216. "{" \n
  217. " if (local _x) then {" \n
  218. " _qtyLoc = _qtyLoc + 1; // debugging" \n
  219. " _keep = _x getVariable [""permaLoot"",false];" \n
  220. " _nearby = {isPlayer _x} count (_x nearEntities [[""CAManBase""], 100]);" \n
  221. " if ( (!_keep) && (_nearby==0) ) then {" \n
  222. " deleteVehicle _x;" \n
  223. " _delQty = _delQty + 1;" \n
  224. " };" \n
  225. " };" \n
  226. "} forEach _missionObjs;" \n
  227. "" \n
  228. "if (_delQty > 0) then {" \n
  229. " diag_log (""CLEANUP: DELETED "" + str(_delQty) + "" LOOT BAGS"");" \n
  230. "};" \n
  231. ""/*%FSM</STATEINIT""">*/;
  232. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  233. class Links
  234. {
  235. /*%FSM<LINK "true">*/
  236. class true
  237. {
  238. priority = 0.000000;
  239. to="general_cleanup";
  240. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  241. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  242. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  243. };
  244. /*%FSM</LINK>*/
  245. };
  246. };
  247. /*%FSM</STATE>*/
  248. /*%FSM<STATE "sync_the_time">*/
  249. class sync_the_time
  250. {
  251. name = "sync_the_time";
  252. init = /*%FSM<STATEINIT""">*/"//Send request" \n
  253. "_key = ""CHILD:307:"";" \n
  254. "_result = [_key] call server_hiveReadWrite;" \n
  255. "_outcome = _result select 0;" \n
  256. "if(_outcome == ""PASS"") then {" \n
  257. " _date = _result select 1; " \n
  258. " _dateNum = dateToNumber(_date); " \n
  259. " _diff = ( _dateNum - dateToNumber (date) )*365*24*60;" \n
  260. " if ( abs(_diff)>5 ) then {" \n
  261. " setDate _date;" \n
  262. " dayzSetDate = _date;" \n
  263. " publicVariable ""dayzSetDate"";" \n
  264. " diag_log (""TIME SYNC: Local Time set to "" + str(_date));" \n
  265. " };" \n
  266. "};" \n
  267. ""/*%FSM</STATEINIT""">*/;
  268. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  269. class Links
  270. {
  271. /*%FSM<LINK "true">*/
  272. class true
  273. {
  274. priority = 0.000000;
  275. to="general_cleanup";
  276. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  277. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  278. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  279. };
  280. /*%FSM</LINK>*/
  281. };
  282. };
  283. /*%FSM</STATE>*/
  284. /*%FSM<STATE "general_cleanup">*/
  285. class general_cleanup
  286. {
  287. name = "general_cleanup";
  288. init = /*%FSM<STATEINIT""">*/"//Clean groups" \n
  289. "{" \n
  290. " //diag_log (""CLEANUP: CHECKING GROUP WITH "" + str(count units _x) + "" UNITS"");" \n
  291. " if (count units _x==0) then {" \n
  292. " deleteGroup _x;" \n
  293. " //diag_log (""CLEANUP: DELETING A GROUP"");" \n
  294. " };" \n
  295. "} forEach allGroups;" \n
  296. "" \n
  297. "/*" \n
  298. "//Check for Ammobox" \n
  299. " {" \n
  300. " if(!(_x isKindOf ""WeaponHolder"")) then {" \n
  301. " diag_log (""CLEANUP: DELETING AN AMMOBOX "" + (typeOf _x));" \n
  302. " deleteVehicle _x;" \n
  303. " };" \n
  304. " } forEach allMissionObjects ""ReammoBox"";" \n
  305. "*/" \n
  306. "" \n
  307. "dayz_serverObjectMonitor = _safety;" \n
  308. ""/*%FSM</STATEINIT""">*/;
  309. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  310. class Links
  311. {
  312. /*%FSM<LINK "true">*/
  313. class true
  314. {
  315. priority = 0.000000;
  316. to="waiting";
  317. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  318. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  319. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  320. };
  321. /*%FSM</LINK>*/
  322. };
  323. };
  324. /*%FSM</STATE>*/
  325. /*%FSM<STATE "prepare">*/
  326. class prepare
  327. {
  328. name = "prepare";
  329. init = /*%FSM<STATEINIT""">*/"diag_log (""CLEANUP: INITIALIZING CLEANUP SCRIPT"");" \n
  330. "" \n
  331. "_safety = dayz_serverObjectMonitor;" \n
  332. "" \n
  333. "_lastTimeSync = time;" \n
  334. "_lastDeadCheck = time;" \n
  335. "_lastItemCheck = time;" \n
  336. "_lastObjectUpdateCheck = time;" \n
  337. "_timeHackCheck = time;" \n
  338. "_deadBodies = [];" \n
  339. "_maxBodies = 15;" \n
  340. ""/*%FSM</STATEINIT""">*/;
  341. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  342. class Links
  343. {
  344. /*%FSM<LINK "true">*/
  345. class true
  346. {
  347. priority = 0.000000;
  348. to="waiting";
  349. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  350. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  351. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  352. };
  353. /*%FSM</LINK>*/
  354. };
  355. };
  356. /*%FSM</STATE>*/
  357. /*%FSM<STATE "update_objects">*/
  358. class update_objects
  359. {
  360. name = "update_objects";
  361. init = /*%FSM<STATEINIT""">*/"if ((count needUpdate_objects) > 0) then {" \n
  362. "" \n
  363. " diag_log format[""DEBUG: needUpdate_objects=%1"",needUpdate_objects];" \n
  364. "" \n
  365. " {" \n
  366. " //_x setVariable [""needUpdate"",false,true];" \n
  367. " needUpdate_objects = needUpdate_objects - [_x];" \n
  368. " [_x,""all""] call server_updateObject; //should be call!!!" \n
  369. " } forEach needUpdate_objects;" \n
  370. "};" \n
  371. ""/*%FSM</STATEINIT""">*/;
  372. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  373. class Links
  374. {
  375. /*%FSM<LINK "true">*/
  376. class true
  377. {
  378. priority = 0.000000;
  379. to="general_cleanup";
  380. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  381. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  382. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  383. };
  384. /*%FSM</LINK>*/
  385. };
  386. };
  387. /*%FSM</STATE>*/
  388. /*%FSM<STATE "check_for_hacker">*/
  389. class check_for_hacker
  390. {
  391. name = "check_for_hacker";
  392. init = /*%FSM<STATEINIT""">*/"//Check for hackers" \n
  393. " {" \n
  394. " if(vehicle _x != _x) then {" \n
  395. " if (!(vehicle _x in _safety) && ((typeOf vehicle _x) != ""ParachuteWest"")) then {" \n
  396. " diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
  397. " (vehicle _x) setDamage 1;" \n
  398. " _x setDamage 1;" \n
  399. " };" \n
  400. " } else {" \n
  401. " if (isPlayer _x) then {" \n
  402. " _boxes = nearestObjects [_x, [""MedBox0"", ""AmmoBoxBig"", ""USBasicWeapons_EP1"", ""USBasicAmmunitionBox_EP1"", ""UNBasicWeapons_EP1"", ""UNBasicAmmunitionBox_EP1"", ""USLaunchers_EP1"", ""USVehicleBox_EP1"", ""USSpecialWeapons_EP1"", ""LocalBasicAmmunitionBox"", ""Gunrack2"", ""Gunrack1"", ""RULaunchersBox"", ""RUBasicWeaponsBox"", ""RUBasicAmmunitionBox"", ""LocalBasicWeaponsBox"", ""RUSpecialWeaponsBox"", ""USBasicWeaponsBox"", ""USVehicleBox"", ""RUVehicleBox"", ""USSpecialWeaponsBox"", ""SpecialWeaponsBox"", ""USLaunchersBox"", ""TKVehicleBox_EP1"", ""TKSpecialWeapons_EP1"", ""TKOrdnanceBox_EP1"", ""TKLaunchers_EP1"", ""TKBasicWeapons_EP1"", ""TKBasicAmmunitionBox_EP1"", ""GunrackUS_EP1"", ""GunrackTK_EP1"", ""GuerillaCacheBox_EP1"", ""GERBasicWeapons_EP1"", ""CZBasicWeapons_EP1"", ""AmmoCrates_NoInteractive_Small"", ""AmmoCrates_NoInteractive_Medium"", ""AmmoCrate_NoInteractive_"", ""GuerillaCacheBox"", ""USBasicAmmunitionBox"", ""USOrdnanceBox_EP1"", ""RUOrdnanceBox"", ""AmmoBoxSmall_556"", ""AmmoBoxSmall_762"", ""ItemMatchbox"", ""ItemToolbox"", ""CardBoardBox"", ""FoodBox1"", ""FoodBox2"",""FoodBox3""], 50];" \n
  403. " {" \n
  404. " _box = _x;" \n
  405. " _weap = getWeaponCargo _box;" \n
  406. " _players_nearby = _box nearEntities [""CAManBase"", 50];" \n
  407. " if (str(_weap) != '[[],[]]') then {" \n
  408. " diag_log(""pyBE: Ammo Box: "" + str(_box));" \n
  409. " diag_log(""pyBE: Ammo Box: "" + str(_box) + "": Player Count: "" + str(count(_players_nearby)));" \n
  410. " {" \n
  411. " diag_log(""pyBE: Ammo Box: "" str(_box) + "": Distance: "" + str(_box distance _x) + "" Player Name: "" + str(_x));" \n
  412. " } forEach _players_nearby;" \n
  413. " deleteVehicle _box;" \n
  414. " diag_log(""pyBE: Ammo Box: "" + str(_box) + "": Weapons: "" + str(_weap));" \n
  415. " diag_log(""pyBE: Ammo Box: "" + str(_box) + "": Deleted"");" \n
  416. " };" \n
  417. " } forEach _boxes;" \n
  418. " };" \n
  419. " };" \n
  420. " } forEach allUnits;"/*%FSM</STATEINIT""">*/;
  421. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  422. class Links
  423. {
  424. /*%FSM<LINK "true">*/
  425. class true
  426. {
  427. priority = 0.000000;
  428. to="waiting";
  429. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  430. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  431. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  432. };
  433. /*%FSM</LINK>*/
  434. };
  435. };
  436. /*%FSM</STATE>*/
  437. };
  438. initState="init";
  439. finalStates[] =
  440. {
  441. };
  442. };
  443. /*%FSM</COMPILE>*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement