Advertisement
Guest User

Untitled

a guest
Jan 20th, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.50 KB | None | 0 0
  1. /*%FSM<COMPILE "F:\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,-500.000000,25.000000,-450.000000,0.000000,"init"};
  5. item1[] = {"true",8,218,-75.000000,-275.000000,25.000000,-225.000000,0.000000,"true"};
  6. item2[] = {"waiting",2,250,-75.000000,-200.000000,25.000000,-150.000000,0.000000,"waiting"};
  7. item3[] = {"___min_loop",4,218,-75.000000,-75.000000,25.000000,-25.000000,4.000000,"5 min" \n "loop"};
  8. item4[] = {"sync_time",2,250,-75.000000,25.000000,25.000000,75.000000,0.000000,"sync time"};
  9. item5[] = {"true",8,218,-75.000000,125.000000,25.000000,175.000000,0.000000,"true"};
  10. item6[] = {"general_cleanup",2,250,-75.000000,200.000000,25.000000,250.000000,0.000000,"general" \n "cleanup" \n "loop"};
  11. item7[] = {"",7,210,-491.500000,220.999985,-483.500000,229.000015,0.000000,""};
  12. item8[] = {"",7,210,-491.500000,-253.999969,-483.500000,-246.000031,0.000000,""};
  13. item9[] = {"",7,210,421.000000,-178.999985,428.999969,-171.000015,0.000000,""};
  14. item10[] = {"",7,210,421.000000,146.000000,428.999969,154.000000,0.000000,""};
  15. item11[] = {"initialized",4,218,-75.000000,-425.000000,25.000000,-375.000000,0.000000,"initialized"};
  16. item12[] = {"prepare",2,250,-75.000000,-350.000000,25.000000,-300.000000,0.000000,"prepare"};
  17. item13[] = {"update_objects",2,250,-325.000000,25.000000,-225.000000,75.000000,0.000000,"update objects"};
  18. item14[] = {"__s_update__obje",4,218,-325.000000,-75.000000,-225.000000,-25.000000,2.000000,"5s" \n "update " \n "objects"};
  19. item15[] = {"___second_loop",4,218,-450.000000,-75.000000,-350.000000,-25.000000,1.000000,"1 second" \n "loop"};
  20. item16[] = {"group_cleanup",2,250,-450.000000,25.000000,-350.000000,75.000000,0.000000,"group" \n "cleanup"};
  21. item17[] = {"__0_min__loop_1",4,218,50.000000,-75.000000,150.000000,-25.000000,5.000000,"10 min" \n " loop"};
  22. item18[] = {"cleanup_dead",2,250,50.000000,25.000000,150.000000,75.000000,0.000000,"cleanup" \n "dead"};
  23. item19[] = {"___min__loop",4,218,-200.000000,-75.000000,-100.000000,-25.000000,3.000000,"1 min" \n " loop"};
  24. item20[] = {"cleanup_loot",2,250,-200.000000,25.000000,-100.000000,75.000000,0.000000,"cleanup" \n "loot"};
  25. item21[] = {"__5_min__loop",4,218,175.000000,-75.000000,275.000000,-25.000000,6.000000,"15 min" \n " loop"};
  26. item22[] = {"cleanup_animals",2,250,175.000000,25.000000,275.000000,75.000000,0.000000,"cleanup" \n "animals and fire"};
  27. item23[] = {"__0_min__loop",4,218,300.000000,-75.000000,400.000000,-25.000000,7.000000,"30 min" \n " loop"};
  28. item24[] = {"cleanup_null",2,4346,300.000000,25.000000,400.000000,75.000000,0.000000,"cleanup" \n "null"};
  29. link0[] = {0,11};
  30. link1[] = {1,2};
  31. link2[] = {2,3};
  32. link3[] = {2,9};
  33. link4[] = {2,14};
  34. link5[] = {2,15};
  35. link6[] = {2,17};
  36. link7[] = {2,19};
  37. link8[] = {2,21};
  38. link9[] = {2,23};
  39. link10[] = {3,4};
  40. link11[] = {4,5};
  41. link12[] = {5,6};
  42. link13[] = {6,7};
  43. link14[] = {7,8};
  44. link15[] = {8,1};
  45. link16[] = {9,10};
  46. link17[] = {10,5};
  47. link18[] = {11,12};
  48. link19[] = {12,1};
  49. link20[] = {13,5};
  50. link21[] = {14,13};
  51. link22[] = {15,16};
  52. link23[] = {16,5};
  53. link24[] = {17,18};
  54. link25[] = {18,5};
  55. link26[] = {19,20};
  56. link27[] = {20,5};
  57. link28[] = {21,22};
  58. link29[] = {22,5};
  59. link30[] = {23,24};
  60. link31[] = {24,5};
  61. globals[] = {25.000000,1,0,0,0,640,480,1,42,6316128,1,-508.946564,440.498199,435.888916,-341.331024,861,630,1};
  62. window[] = {2,-1,-1,-1,-1,838,26,1318,26,3,879};
  63. *//*%FSM</HEAD>*/
  64. class FSM
  65. {
  66. fsmName = "DayZ Server Cleanup";
  67. class States
  68. {
  69. /*%FSM<STATE "init">*/
  70. class init
  71. {
  72. name = "init";
  73. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  74. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  75. class Links
  76. {
  77. /*%FSM<LINK "initialized">*/
  78. class initialized
  79. {
  80. priority = 0.000000;
  81. to="prepare";
  82. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  83. condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
  84. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  85. };
  86. /*%FSM</LINK>*/
  87. };
  88. };
  89. /*%FSM</STATE>*/
  90. /*%FSM<STATE "waiting">*/
  91. class waiting
  92. {
  93. name = "waiting";
  94. init = /*%FSM<STATEINIT""">*/"//diag_log ""CLEANUP: Waiting for next task"";" \n
  95. ""/*%FSM</STATEINIT""">*/;
  96. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  97. class Links
  98. {
  99. /*%FSM<LINK "__0_min__loop">*/
  100. class __0_min__loop
  101. {
  102. priority = 7.000000;
  103. to="cleanup_null";
  104. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  105. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _lastCleanup1800) > 1800)"/*%FSM</CONDITION""">*/;
  106. action=/*%FSM<ACTION""">*/"_lastCleanup1800 = diag_tickTime;"/*%FSM</ACTION""">*/;
  107. };
  108. /*%FSM</LINK>*/
  109. /*%FSM<LINK "__5_min__loop">*/
  110. class __5_min__loop
  111. {
  112. priority = 6.000000;
  113. to="cleanup_animals";
  114. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  115. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _lastCleanup900) > 900)"/*%FSM</CONDITION""">*/;
  116. action=/*%FSM<ACTION""">*/"_lastCleanup900 = diag_tickTime;"/*%FSM</ACTION""">*/;
  117. };
  118. /*%FSM</LINK>*/
  119. /*%FSM<LINK "__0_min__loop_1">*/
  120. class __0_min__loop_1
  121. {
  122. priority = 5.000000;
  123. to="cleanup_dead";
  124. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  125. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _lastCleanupNull) > 600)"/*%FSM</CONDITION""">*/;
  126. action=/*%FSM<ACTION""">*/"_lastCleanupNull = diag_tickTime;"/*%FSM</ACTION""">*/;
  127. };
  128. /*%FSM</LINK>*/
  129. /*%FSM<LINK "___min_loop">*/
  130. class ___min_loop
  131. {
  132. priority = 4.000000;
  133. to="sync_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 "___min__loop">*/
  140. class ___min__loop
  141. {
  142. priority = 3.000000;
  143. to="cleanup_loot";
  144. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  145. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _lastCleanupVehicles) > 60)"/*%FSM</CONDITION""">*/;
  146. action=/*%FSM<ACTION""">*/"_lastCleanupVehicles = diag_tickTime;"/*%FSM</ACTION""">*/;
  147. };
  148. /*%FSM</LINK>*/
  149. /*%FSM<LINK "__s_update__obje">*/
  150. class __s_update__obje
  151. {
  152. priority = 2.000000;
  153. to="update_objects";
  154. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  155. condition=/*%FSM<CONDITION""">*/"(( (count needUpdate_objects) > 0) && (diag_tickTime -_lastNeedUpdate> 5))"/*%FSM</CONDITION""">*/;
  156. action=/*%FSM<ACTION""">*/"_lastNeedUpdate = diag_tickTime;"/*%FSM</ACTION""">*/;
  157. };
  158. /*%FSM</LINK>*/
  159. /*%FSM<LINK "___second_loop">*/
  160. class ___second_loop
  161. {
  162. priority = 1.000000;
  163. to="group_cleanup";
  164. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  165. condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _lastCleanupGroups) > 1)"/*%FSM</CONDITION""">*/;
  166. action=/*%FSM<ACTION""">*/"_lastCleanupGroups = diag_tickTime;"/*%FSM</ACTION""">*/;
  167. };
  168. /*%FSM</LINK>*/
  169. /*%FSM<LINK "true">*/
  170. class true
  171. {
  172. priority = 0.000000;
  173. to="general_cleanup";
  174. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  175. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  176. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  177. };
  178. /*%FSM</LINK>*/
  179. };
  180. };
  181. /*%FSM</STATE>*/
  182. /*%FSM<STATE "sync_time">*/
  183. class sync_time
  184. {
  185. name = "sync_time";
  186. init = /*%FSM<STATEINIT""">*/"if (DZE_DiagFpsSlow) then {" \n
  187. " call dze_diag_fps;" \n
  188. "};" \n
  189. "call server_timeSync;"/*%FSM</STATEINIT""">*/;
  190. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  191. class Links
  192. {
  193. /*%FSM<LINK "true">*/
  194. class true
  195. {
  196. priority = 0.000000;
  197. to="general_cleanup";
  198. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  199. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  200. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  201. };
  202. /*%FSM</LINK>*/
  203. };
  204. };
  205. /*%FSM</STATE>*/
  206. /*%FSM<STATE "general_cleanup">*/
  207. class general_cleanup
  208. {
  209. name = "general_cleanup";
  210. init = /*%FSM<STATEINIT""">*/"//diag_log ""CLEANUP: Starting loop for next task"";" \n
  211. "" \n
  212. "//Clean groups" \n
  213. "{" \n
  214. " // diag_log (""CLEANUP: CHECKING GROUP WITH "" + str(count units _x) + "" UNITS"");" \n
  215. " " if ((count units _x==0) && !(_x getVariable[""SAR_protect"",false])) then {" \n
  216. " deleteGroup _x;" \n
  217. " // diag_log (""CLEANUP: DELETING A GROUP"");" \n
  218. " };" \n
  219. "} forEach allGroups;"/*%FSM</STATEINIT""">*/;
  220. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  221. class Links
  222. {
  223. /*%FSM<LINK "true">*/
  224. class true
  225. {
  226. priority = 0.000000;
  227. to="waiting";
  228. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  229. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  230. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  231. };
  232. /*%FSM</LINK>*/
  233. };
  234. };
  235. /*%FSM</STATE>*/
  236. /*%FSM<STATE "prepare">*/
  237. class prepare
  238. {
  239. name = "prepare";
  240. init = /*%FSM<STATEINIT""">*/"diag_log (""CLEANUP: INITIALIZING CLEANUP SCRIPT"");" \n
  241. "" \n
  242. "_lastUpdate = diag_tickTime;" \n
  243. "_lastNeedUpdate = diag_tickTime;" \n
  244. "_lastCleanupVehicles = diag_tickTime;" \n
  245. "_lastCleanupGroups = diag_tickTime;" \n
  246. "_lastCleanupNull = diag_tickTime;" \n
  247. "" \n
  248. "_lastCleanup900 = diag_tickTime;" \n
  249. "_lastCleanup1800 = diag_tickTime;" \n
  250. ""/*%FSM</STATEINIT""">*/;
  251. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  252. class Links
  253. {
  254. /*%FSM<LINK "true">*/
  255. class true
  256. {
  257. priority = 0.000000;
  258. to="waiting";
  259. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  260. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  261. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  262. };
  263. /*%FSM</LINK>*/
  264. };
  265. };
  266. /*%FSM</STATE>*/
  267. /*%FSM<STATE "update_objects">*/
  268. class update_objects
  269. {
  270. name = "update_objects";
  271. init = /*%FSM<STATEINIT""">*/"{" \n
  272. " needUpdate_objects = needUpdate_objects - [_x];" \n
  273. " [_x,""damage"",true] call server_updateObject;" \n
  274. "} forEach needUpdate_objects;"/*%FSM</STATEINIT""">*/;
  275. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  276. class Links
  277. {
  278. /*%FSM<LINK "true">*/
  279. class true
  280. {
  281. priority = 0.000000;
  282. to="general_cleanup";
  283. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  284. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  285. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  286. };
  287. /*%FSM</LINK>*/
  288. };
  289. };
  290. /*%FSM</STATE>*/
  291. /*%FSM<STATE "group_cleanup">*/
  292. class group_cleanup
  293. {
  294. name = "group_cleanup";
  295. init = /*%FSM<STATEINIT""">*/"//Check for hackers" \n
  296. " {" \n
  297. " if(vehicle _x != _x && (vehicle _x getVariable [""Sarge"",0] != 1) && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
  298. " diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
  299. " (vehicle _x) setDamage 1;" \n
  300. " _x setDamage 1;" \n
  301. " };" \n
  302. " } forEach allUnits;"/*%FSM</STATEINIT""">*/;
  303. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  304. class Links
  305. {
  306. /*%FSM<LINK "true">*/
  307. class true
  308. {
  309. priority = 0.000000;
  310. to="general_cleanup";
  311. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  312. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  313. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  314. };
  315. /*%FSM</LINK>*/
  316. };
  317. };
  318. /*%FSM</STATE>*/
  319. /*%FSM<STATE "cleanup_dead">*/
  320. class cleanup_dead
  321. {
  322. name = "cleanup_dead";
  323. init = /*%FSM<STATEINIT""">*/"[] spawn server_spawncleanDead;"/*%FSM</STATEINIT""">*/;
  324. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  325. class Links
  326. {
  327. /*%FSM<LINK "true">*/
  328. class true
  329. {
  330. priority = 0.000000;
  331. to="general_cleanup";
  332. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  333. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  334. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  335. };
  336. /*%FSM</LINK>*/
  337. };
  338. };
  339. /*%FSM</STATE>*/
  340. /*%FSM<STATE "cleanup_loot">*/
  341. class cleanup_loot
  342. {
  343. name = "cleanup_loot";
  344. init = /*%FSM<STATEINIT""">*/"if (DZE_DiagFpsFast) then {" \n
  345. " call dze_diag_fps;" \n
  346. "};" \n
  347. "" \n
  348. "[] spawn server_spawnCleanLoot;" \n
  349. "" \n
  350. "// set player save time based on server performance" \n
  351. "PVDZE_plr_SetSaveTime = round(60 - diag_fps);" \n
  352. "publicVariable ""PVDZE_plr_SetSaveTime"";"/*%FSM</STATEINIT""">*/;
  353. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  354. class Links
  355. {
  356. /*%FSM<LINK "true">*/
  357. class true
  358. {
  359. priority = 0.000000;
  360. to="general_cleanup";
  361. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  362. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  363. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  364. };
  365. /*%FSM</LINK>*/
  366. };
  367. };
  368. /*%FSM</STATE>*/
  369. /*%FSM<STATE "cleanup_animals">*/
  370. class cleanup_animals
  371. {
  372. name = "cleanup_animals";
  373. init = /*%FSM<STATEINIT""">*/"[] spawn server_spawnCleanFire;" \n
  374. "[] spawn server_spawnCleanAnimals;"/*%FSM</STATEINIT""">*/;
  375. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  376. class Links
  377. {
  378. /*%FSM<LINK "true">*/
  379. class true
  380. {
  381. priority = 0.000000;
  382. to="general_cleanup";
  383. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  384. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  385. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  386. };
  387. /*%FSM</LINK>*/
  388. };
  389. };
  390. /*%FSM</STATE>*/
  391. /*%FSM<STATE "cleanup_null">*/
  392. class cleanup_null
  393. {
  394. name = "cleanup_null";
  395. init = /*%FSM<STATEINIT""">*/"if (DZE_CleanNull) then {" \n
  396. " [] spawn server_spawnCleanNull;" \n
  397. "};"/*%FSM</STATEINIT""">*/;
  398. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  399. class Links
  400. {
  401. /*%FSM<LINK "true">*/
  402. class true
  403. {
  404. priority = 0.000000;
  405. to="general_cleanup";
  406. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  407. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  408. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  409. };
  410. /*%FSM</LINK>*/
  411. };
  412. };
  413. /*%FSM</STATE>*/
  414. };
  415. initState="init";
  416. finalStates[] =
  417. {
  418. };
  419. };
  420. /*%FSM</COMPILE>*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement