Advertisement
Guest User

server_cleanup

a guest
Dec 5th, 2013
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.76 KB | None | 0 0
  1. /*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Server Cleanup">*/
  2. /*%FSM<HEAD>*/
  3. /*
  4. item0[] = {"init",0,250,-75.000000,-425.000000,25.000000,-375.000000,0.000000,"init"};
  5. item1[] = {"true",8,218,-75.000000,-200.000000,25.000000,-150.000000,0.000000,"true"};
  6. item2[] = {"waiting",2,250,-75.000000,-125.000000,25.000000,-75.000000,0.000000,"waiting"};
  7. item3[] = {"too_many_dead",4,218,-125.000000,0.000000,-25.000000,50.000000,2.000000,"too many" \n "dead"};
  8. item4[] = {"cleanup_dead",2,250,-125.000000,75.000000,-25.000000,125.000000,0.000000,"cleanup" \n "dead"};
  9. item5[] = {"too_many_objects",4,218,-25.000000,0.000000,75.000000,50.000000,2.000000,"too many" \n "objects"};
  10. item6[] = {"cleanup_objects",2,250,-25.000000,75.000000,75.000000,125.000000,0.000000,"cleanup" \n "objects"};
  11. item7[] = {"time_sync",4,218,-225.000000,0.000000,-125.000000,50.000000,1.000000,"time" \n "sync"};
  12. item8[] = {"sync_the_time",2,250,-225.000000,175.000000,-125.000000,225.000000,0.000000,"sync" \n "the time"};
  13. item9[] = {"true",8,218,-75.000000,250.000000,25.000000,300.000000,0.000000,"true"};
  14. item10[] = {"general_cleanup",2,250,-75.000000,350.000000,25.000000,400.000000,0.000000,"general" \n "cleanup"};
  15. item11[] = {"",7,210,-304.000000,371.000000,-296.000000,379.000031,0.000000,""};
  16. item12[] = {"",7,210,-304.000000,-179.000000,-296.000000,-171.000000,0.000000,""};
  17. item13[] = {"initialized",4,218,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"initialized"};
  18. item14[] = {"prepare",2,250,-75.000000,-275.000000,25.000000,-225.000000,0.000000,"prepare"};
  19. item15[] = {"update_objects",2,250,75.000000,175.000000,175.000000,225.000000,0.000000,"update objects"};
  20. item16[] = {"Objects_need_upd",4,4314,75.000000,0.000000,175.000000,50.000000,1.000000,"Objects" \n "need update"};
  21. item17[] = {"timeout",4,218,250.000000,-225.000000,350.000000,-175.000000,0.000000,"timeout"};
  22. item18[] = {"",7,210,246.000000,271.000000,254.000000,279.000000,0.000000,""};
  23. item19[] = {"",7,210,-29.000000,-41.500000,-21.000000,-33.499996,0.000000,""};
  24. item20[] = {"",7,210,20.999998,-41.500000,29.000000,-33.500000,0.000000,""};
  25. item21[] = {"",7,210,121.000000,-41.500000,129.000000,-33.500000,0.000000,""};
  26. item22[] = {"",7,210,-79.000000,-41.500000,-71.000000,-33.500000,0.000000,""};
  27. item23[] = {"",7,210,-179.000000,-41.500000,-171.000000,-33.500000,0.000000,""};
  28. item24[] = {"",7,210,-79.000000,146.000000,-71.000000,154.000000,0.000000,""};
  29. item25[] = {"",7,210,21.000000,146.000000,28.999998,154.000000,0.000000,""};
  30. item26[] = {"",7,210,-29.000000,146.000000,-20.999998,154.000000,0.000000,""};
  31. item27[] = {"",7,210,246.000000,-104.000000,254.000000,-96.000000,0.000000,""};
  32. item28[] = {"",7,210,121.000000,271.000000,129.000000,279.000000,0.000000,""};
  33. item29[] = {"",7,210,-179.000000,271.000000,-171.000000,279.000000,0.000000,""};
  34. item30[] = {"____FAKE____",9,1200,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"};
  35. link0[] = {0,13};
  36. link1[] = {1,2};
  37. link2[] = {2,19};
  38. link3[] = {2,27};
  39. link4[] = {3,4};
  40. link5[] = {4,24};
  41. link6[] = {5,6};
  42. link7[] = {6,25};
  43. link8[] = {7,8};
  44. link9[] = {8,29};
  45. link10[] = {9,10};
  46. link11[] = {10,11};
  47. link12[] = {11,12};
  48. link13[] = {12,1};
  49. link14[] = {13,14};
  50. link15[] = {14,1};
  51. link16[] = {15,28};
  52. link17[] = {16,15};
  53. link18[] = {18,28};
  54. link19[] = {19,20};
  55. link20[] = {19,22};
  56. link21[] = {20,5};
  57. link22[] = {20,21};
  58. link23[] = {21,16};
  59. link24[] = {22,3};
  60. link25[] = {22,23};
  61. link26[] = {23,7};
  62. link27[] = {24,26};
  63. link28[] = {25,26};
  64. link29[] = {26,9};
  65. link30[] = {27,18};
  66. link31[] = {28,9};
  67. link32[] = {29,9};
  68. link33[] = {17,30};
  69. link34[] = {30,17};
  70. globals[] = {25.000000,1,0,0,0,640,480,1,45,6316128,1,-334.464142,416.388702,331.898743,-322.104980,690,601,1};
  71. window[] = {2,-1,-1,-1,-1,846,66,1395,66,3,707};
  72. *//*%FSM</HEAD>*/
  73. class FSM
  74. {
  75. fsmName = "DayZ Server Cleanup";
  76. class States
  77. {
  78. /*%FSM<STATE "init">*/
  79. class init
  80. {
  81. name = "init";
  82. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  83. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  84. class Links
  85. {
  86. /*%FSM<LINK "initialized">*/
  87. class initialized
  88. {
  89. priority = 0.000000;
  90. to="prepare";
  91. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  92. condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
  93. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  94. };
  95. /*%FSM</LINK>*/
  96. };
  97. };
  98. /*%FSM</STATE>*/
  99. /*%FSM<STATE "waiting">*/
  100. class waiting
  101. {
  102. name = "waiting";
  103. init = /*%FSM<STATEINIT""">*/"//diag_log ""CLEANUP: Waiting for next task"";" \n
  104. "_numDead = {local _x} count allDead;" \n
  105. ""/*%FSM</STATEINIT""">*/;
  106. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  107. class Links
  108. {
  109. /*%FSM<LINK "too_many_dead">*/
  110. class too_many_dead
  111. {
  112. priority = 2.000000;
  113. to="cleanup_dead";
  114. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  115. condition=/*%FSM<CONDITION""">*/"(_numDead > 300)"/*%FSM</CONDITION""">*/;
  116. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  117. };
  118. /*%FSM</LINK>*/
  119. /*%FSM<LINK "too_many_objects">*/
  120. class too_many_objects
  121. {
  122. priority = 2.000000;
  123. to="cleanup_objects";
  124. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  125. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _timeNem) > 60)"/*%FSM</CONDITION""">*/;
  126. action=/*%FSM<ACTION""">*/"_timeNem = diag_tickTime;"/*%FSM</ACTION""">*/;
  127. };
  128. /*%FSM</LINK>*/
  129. /*%FSM<LINK "time_sync">*/
  130. class time_sync
  131. {
  132. priority = 1.000000;
  133. to="sync_the_time";
  134. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  135. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _lastUpdate) > 300)"/*%FSM</CONDITION""">*/;
  136. action=/*%FSM<ACTION""">*/"_lastUpdate = diag_tickTime;"/*%FSM</ACTION""">*/;
  137. };
  138. /*%FSM</LINK>*/
  139. /*%FSM<LINK "Objects_need_upd">*/
  140. class Objects_need_upd
  141. {
  142. priority = 1.000000;
  143. to="update_objects";
  144. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  145. condition=/*%FSM<CONDITION""">*/"(( (count needUpdate_objects) > 0) && (diag_tickTime -_lastNeedUpdate> 5))"/*%FSM</CONDITION""">*/;
  146. action=/*%FSM<ACTION""">*/"_lastNeedUpdate = diag_tickTime;"/*%FSM</ACTION""">*/;
  147. };
  148. /*%FSM</LINK>*/
  149. /*%FSM<LINK "true">*/
  150. class true
  151. {
  152. priority = 0.000000;
  153. to="general_cleanup";
  154. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  155. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  156. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  157. };
  158. /*%FSM</LINK>*/
  159. };
  160. };
  161. /*%FSM</STATE>*/
  162. /*%FSM<STATE "cleanup_dead">*/
  163. class cleanup_dead
  164. {
  165. name = "cleanup_dead";
  166. init = /*%FSM<STATEINIT""">*/"diag_log (""CLEANUP: PERFORMING BODY CLEANUP"");" \n
  167. "" \n
  168. "_delQtyP = 0;" \n
  169. "_delQtyZ = 0;" \n
  170. "_delQtyFL = 0;" \n
  171. "_delQtyFL1 = 0;" \n
  172. "_delQtyFP = 0;" \n
  173. "" \n
  174. "{" \n
  175. " if (local _x) then {" \n
  176. " if (_x isKindOf ""zZombie_Base"") then {" \n
  177. " deleteVehicle _x;" \n
  178. " _delQtyZ = _delQtyZ + 1;" \n
  179. " };" \n
  180. "" \n
  181. " if (_x isKindOf ""CAManBase"") then {" \n
  182. " _deathTime = _x getVariable [""processedDeath"", diag_tickTime];" \n
  183. " if (diag_tickTime - _deathTime > 1200) then {" \n
  184. " /*" \n
  185. " _flies = nearestObject [_x, ""Sound_Flies""];" \n
  186. " if (!isNull _flies) then {" \n
  187. " deleteVehicle _flies;" \n
  188. " _delQtyFL = _delQtyFL + 1;" \n
  189. " }; */" \n
  190. " deleteVehicle _x;" \n
  191. " _delQtyP = _delQtyP + 1;" \n
  192. " };" \n
  193. " };" \n
  194. " if (_x isKindOf ""Seagull"") then {" \n
  195. " _myGroupX = group _x;" \n
  196. " _x removeAllMPEventHandlers ""mpkilled"";" \n
  197. " _x removeAllMPEventHandlers ""mphit"";" \n
  198. " _x removeAllMPEventHandlers ""mprespawn"";" \n
  199. " _x removeAllEventHandlers ""FiredNear"";" \n
  200. " _x removeAllEventHandlers ""HandleDamage"";" \n
  201. " _x removeAllEventHandlers ""Killed"";" \n
  202. " _x removeAllEventHandlers ""Fired"";" \n
  203. " _x removeAllEventHandlers ""GetOut"";" \n
  204. " _x removeAllEventHandlers ""Local"";" \n
  205. " clearVehicleInit _x;" \n
  206. " deleteVehicle _x;" \n
  207. " deleteGroup _myGroupX;" \n
  208. " _x = nil;" \n
  209. " };" \n
  210. " _myGroupX = group _x;" \n
  211. " _x removeAllMPEventHandlers ""mpkilled"";" \n
  212. " _x removeAllMPEventHandlers ""mphit"";" \n
  213. " _x removeAllMPEventHandlers ""mprespawn"";" \n
  214. " _x removeAllEventHandlers ""FiredNear"";" \n
  215. " _x removeAllEventHandlers ""HandleDamage"";" \n
  216. " _x removeAllEventHandlers ""Killed"";" \n
  217. " _x removeAllEventHandlers ""Fired"";" \n
  218. " _x removeAllEventHandlers ""GetOut"";" \n
  219. " _x removeAllEventHandlers ""Local"";" \n
  220. " clearVehicleInit _x;" \n
  221. " deleteVehicle _x;" \n
  222. " deleteGroup _myGroupX;" \n
  223. " _x = nil; " \n
  224. " };" \n
  225. "} forEach allDead;" \n
  226. "" \n
  227. "{" \n
  228. " if ({!alive _x} count (nearestObjects [_x, [""CAManBase""], 10]) >= 0) then {" \n
  229. " deleteVehicle _x;" \n
  230. " _delQtyFL1 = _delQtyFL1 + 1;" \n
  231. " };" \n
  232. "} forEach allMissionObjects ""Sound_Flies"";" \n
  233. "" \n
  234. "{" \n
  235. " if (local _x) then {" \n
  236. " deleteVehicle _x;" \n
  237. " _delQtyFP = _delQtyFP + 1;" \n
  238. " };" \n
  239. "} forEach allMissionObjects ""Land_Fire_DZ"";" \n
  240. "" \n
  241. "diag_log (format[""CLEANUP: Deleted %1 players, %2 zombies, %3/%5 flies and %4 fireplaces."",_delQtyP,_delQtyZ,_delQtyFL,_delQtyFP,_delQtyFL1]);" \n
  242. "" \n
  243. "//diag_log (""CLEANUP: Deleted "" + str(_delQtyP) + "" players, "" + str(_delQtyZ) + "" zombies, "" + str(_delQtyFL) + "" flies, and "" + str(_delQtyFP) + "" fireplaces"");"/*%FSM</STATEINIT""">*/;
  244. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  245. class Links
  246. {
  247. /*%FSM<LINK "true">*/
  248. class true
  249. {
  250. priority = 0.000000;
  251. to="general_cleanup";
  252. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  253. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  254. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  255. };
  256. /*%FSM</LINK>*/
  257. };
  258. };
  259. /*%FSM</STATE>*/
  260. /*%FSM<STATE "cleanup_objects">*/
  261. class cleanup_objects
  262. {
  263. name = "cleanup_objects";
  264. init = /*%FSM<STATEINIT""">*/"_missionObjs = allMissionObjects ""ReammoBox"";" \n
  265. "_qty = count _missionObjs;" \n
  266. "" \n
  267. "diag_log (""CLEANUP:TOTAL "" + str(_qty) + "" LOOT BAGS"");" \n
  268. "" \n
  269. "_dateNow = (DateToNumber date);" \n
  270. "_delQty = 0;" \n
  271. "{" \n
  272. " _created = (_x getVariable [""created"",-0.1]);" \n
  273. " if (_created == -0.1) then {" \n
  274. " _x setVariable [""created"",_dateNow,false];" \n
  275. " _created = _dateNow;" \n
  276. " };" \n
  277. " _keep = _x getVariable [""permaLoot"",false];" \n
  278. " _age = (_dateNow - _created) * 525948;" \n
  279. " _nearby = {(isPlayer _x) and (alive _x)} count (_x nearEntities [[""CAManBase"",""AllVehicles""], 130]);" \n
  280. " if ( (!_keep) && (_nearby==0) && (_age > 20)) then {" \n
  281. " deleteVehicle _x;" \n
  282. " _delQty = _delQty + 1;" \n
  283. " };" \n
  284. "" \n
  285. "} forEach _missionObjs;" \n
  286. "" \n
  287. "if (_delQty > 0) then {" \n
  288. " diag_log (""CLEANUP: DELETED "" + str(_delQty) + "" LOOT BAGS"");" \n
  289. "};" \n
  290. ""/*%FSM</STATEINIT""">*/;
  291. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  292. class Links
  293. {
  294. /*%FSM<LINK "true">*/
  295. class true
  296. {
  297. priority = 0.000000;
  298. to="general_cleanup";
  299. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  300. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  301. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  302. };
  303. /*%FSM</LINK>*/
  304. };
  305. };
  306. /*%FSM</STATE>*/
  307. /*%FSM<STATE "sync_the_time">*/
  308. class sync_the_time
  309. {
  310. name = "sync_the_time";
  311. init = /*%FSM<STATEINIT""">*/"//Send request" \n
  312. "_key = ""CHILD:307:"";" \n
  313. "_result = _key call server_hiveReadWrite;" \n
  314. "_outcome = _result select 0;" \n
  315. "if(_outcome == ""PASS"") then {" \n
  316. " _date = _result select 1;" \n
  317. "" \n
  318. " //date setup" \n
  319. " _year = _date select 0;" \n
  320. " _month = _date select 1;" \n
  321. " _day = _date select 2;" \n
  322. " _hour = _date select 3;" \n
  323. " _minute = _date select 4;" \n
  324. "" \n
  325. " //Force full moon nights" \n
  326. " _date1 = [2013,8,3,_hour,_minute];" \n
  327. "" \n
  328. " setDate _date1;" \n
  329. " dayzSetDate = _date1;" \n
  330. " dayz_storeTimeDate = _date1;" \n
  331. " publicVariable ""dayzSetDate"";" \n
  332. " diag_log (""TIME SYNC: Local Time set to "" + str(_date1));" \n
  333. "};" \n
  334. ""/*%FSM</STATEINIT""">*/;
  335. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  336. class Links
  337. {
  338. /*%FSM<LINK "true">*/
  339. class true
  340. {
  341. priority = 0.000000;
  342. to="general_cleanup";
  343. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  344. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  345. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  346. };
  347. /*%FSM</LINK>*/
  348. };
  349. };
  350. /*%FSM</STATE>*/
  351. /*%FSM<STATE "general_cleanup">*/
  352. class general_cleanup
  353. {
  354. name = "general_cleanup";
  355. init = /*%FSM<STATEINIT""">*/"//Clean groups" \n
  356. "{" \n
  357. " //diag_log (""CLEANUP: CHECKING GROUP WITH "" + str(count units _x) + "" UNITS"");" \n
  358. " if (count units _x==0) then {" \n
  359. " deleteGroup _x;" \n
  360. " //diag_log (""CLEANUP: DELETING A GROUP"");" \n
  361. " };" \n
  362. "} forEach allGroups;" \n
  363. "" \n
  364. "//Check for hackers" \n
  365. " {" \n
  366. " if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
  367. " diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
  368. " (vehicle _x) setDamage 1;" \n
  369. " _x setDamage 1;" \n
  370. " };" \n
  371. " } forEach allUnits;" \n
  372. "" \n
  373. "dayz_serverObjectMonitor = _safety;"/*%FSM</STATEINIT""">*/;
  374. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  375. class Links
  376. {
  377. /*%FSM<LINK "true">*/
  378. class true
  379. {
  380. priority = 0.000000;
  381. to="waiting";
  382. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  383. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  384. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  385. };
  386. /*%FSM</LINK>*/
  387. };
  388. };
  389. /*%FSM</STATE>*/
  390. /*%FSM<STATE "prepare">*/
  391. class prepare
  392. {
  393. name = "prepare";
  394. init = /*%FSM<STATEINIT""">*/"diag_log (""CLEANUP: INITIALIZING CLEANUP SCRIPT"");" \n
  395. "" \n
  396. "_safety = dayz_serverObjectMonitor;" \n
  397. "_dateNow = (DateToNumber date);" \n
  398. "" \n
  399. "_lastUpdate = diag_tickTime;" \n
  400. "_timeNem =diag_tickTime;" \n
  401. "_deadBodies = [];" \n
  402. "_lastNeedUpdate = diag_tickTime;" \n
  403. "_timeout = diag_tickTime;" \n
  404. "_maxBodies = 15;" \n
  405. ""/*%FSM</STATEINIT""">*/;
  406. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  407. class Links
  408. {
  409. /*%FSM<LINK "true">*/
  410. class true
  411. {
  412. priority = 0.000000;
  413. to="waiting";
  414. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  415. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  416. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  417. };
  418. /*%FSM</LINK>*/
  419. };
  420. };
  421. /*%FSM</STATE>*/
  422. /*%FSM<STATE "update_objects">*/
  423. class update_objects
  424. {
  425. name = "update_objects";
  426. init = /*%FSM<STATEINIT""">*/"diag_log format[""DEBUG: needUpdate_objects=%1"",needUpdate_objects];" \n
  427. "{" \n
  428. "// _x setVariable [""needUpdate"",false,true];" \n
  429. " needUpdate_objects = needUpdate_objects - [_x];" \n
  430. " [_x,""damage"",true] call server_updateObject;" \n
  431. "" \n
  432. "} forEach needUpdate_objects;" \n
  433. ""/*%FSM</STATEINIT""">*/;
  434. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  435. class Links
  436. {
  437. /*%FSM<LINK "true">*/
  438. class true
  439. {
  440. priority = 0.000000;
  441. to="general_cleanup";
  442. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  443. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  444. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  445. };
  446. /*%FSM</LINK>*/
  447. };
  448. };
  449. /*%FSM</STATE>*/
  450. /*%FSM<STATE "____FAKE____">*/
  451. class ____FAKE____
  452. {
  453. name = "____FAKE____";
  454. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  455. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  456. class Links
  457. {
  458. /*%FSM<LINK "timeout">*/
  459. class timeout
  460. {
  461. priority = 0.000000;
  462. to="____FAKE____";
  463. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  464. condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _timeout) > 1"/*%FSM</CONDITION""">*/;
  465. action=/*%FSM<ACTION""">*/"_timeout = diag_tickTime;"/*%FSM</ACTION""">*/;
  466. };
  467. /*%FSM</LINK>*/
  468. };
  469. };
  470. /*%FSM</STATE>*/
  471. };
  472. initState="init";
  473. finalStates[] =
  474. {
  475. };
  476. };
  477. /*%FSM</COMPILE>*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement