Guest User

core_time.fsm

a guest
May 30th, 2014
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.80 KB | None | 0 0
  1. /*%FSM<COMPILE "D:\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, MP Fast Time and JIP">*/
  2. /*%FSM<HEAD>*/
  3. /*
  4. item0[] = {"init",0,250,-42.693012,-306.152374,47.306988,-256.152405,0.000000,"init"};
  5. item1[] = {"true",8,218,-42.608467,-226.225067,47.391533,-176.225067,0.000000,"true"};
  6. item2[] = {"Split_Check",2,250,-42.161522,-158.206726,47.838493,-108.206734,0.000000,"Split Check"};
  7. item3[] = {"isServer",4,218,-175.155731,-158.206726,-85.155724,-108.206734,0.000000,"isServer"};
  8. item4[] = {"Setup_JIP",2,250,-172.285324,-86.447281,-82.285309,-36.447281,0.000000,"Setup JIP"};
  9. item5[] = {"isClient",4,218,91.789474,-158.206741,181.789459,-108.206741,0.000000,"isClient"};
  10. item6[] = {"Sync",2,250,93.703056,-86.447281,183.703064,-36.447281,0.000000,"Sync"};
  11. item7[] = {"true",8,218,-40.247952,-85.490479,49.752048,-35.490486,0.000000,"true"};
  12. item8[] = {"Separate",2,250,-40.247940,-1.292732,49.752075,48.707268,0.000000,"Separate"};
  13. item9[] = {"isServer",4,218,-239.260834,63.769165,-149.260834,113.769173,0.000000,"isServer"};
  14. item10[] = {"Skip_Time_Sync_cross",2,250,-323.426727,164.444916,-233.426697,214.444885,0.000000,"Skip Time" \n "Sync cross-" \n "network"};
  15. item11[] = {"true",8,218,-323.426727,-2.036998,-233.426727,47.963005,0.000000,"true"};
  16. item12[] = {"isClient",4,218,181.156372,-1.899818,271.156494,48.100117,0.000000,"isClient"};
  17. item13[] = {"Set_Safety",2,4346,327.739227,52.545273,417.739166,102.545273,0.000000,"Set Safety"};
  18. item14[] = {"Safety_false",4,218,326.692200,178.187546,416.692322,228.187607,0.000000,"Safety false"};
  19. item15[] = {"safety_true",4,218,168.592148,51.498215,258.592194,101.498047,0.000000,"safety true"};
  20. item16[] = {"Skip_Time",2,250,203.143738,256.714172,293.143738,306.714172,0.000000,"Skip Time"};
  21. item17[] = {"Sync_Client_with",2,250,122.523117,134.212875,212.523254,184.212875,0.000000,"Sync Client" \n "with server"};
  22. item18[] = {"Sync_",4,218,243.977631,127.930710,333.977631,177.930710,0.000000,"Sync?"};
  23. item19[] = {"true",8,218,-40.969711,134.304855,49.030289,184.304855,0.000000,"true"};
  24. link0[] = {0,1};
  25. link1[] = {1,2};
  26. link2[] = {2,3};
  27. link3[] = {2,5};
  28. link4[] = {3,4};
  29. link5[] = {4,7};
  30. link6[] = {5,6};
  31. link7[] = {6,7};
  32. link8[] = {7,8};
  33. link9[] = {8,9};
  34. link10[] = {8,12};
  35. link11[] = {9,10};
  36. link12[] = {10,11};
  37. link13[] = {11,8};
  38. link14[] = {12,13};
  39. link15[] = {13,14};
  40. link16[] = {13,15};
  41. link17[] = {13,18};
  42. link18[] = {14,16};
  43. link19[] = {15,17};
  44. link20[] = {16,19};
  45. link21[] = {17,19};
  46. link22[] = {18,17};
  47. link23[] = {19,8};
  48. globals[] = {0.000000,0,0,0,0,640,480,1,25,6316128,1,-357.510712,473.007996,356.935944,-337.043640,735,615,1};
  49. window[] = {0,-1,-1,-32000,-32000,898,255,1761,138,1,753};
  50. *//*%FSM</HEAD>*/
  51. class FSM
  52. {
  53. fsmName = "MP Fast Time and JIP";
  54. class States
  55. {
  56. /*%FSM<STATE "init">*/
  57. class init
  58. {
  59. name = "init";
  60. init = /*%FSM<STATEINIT""">*/"private[" \n
  61. """_safety""," \n
  62. """_lastjipupdate""," \n
  63. """_lastupdate""," \n
  64. """_lastsync""," \n
  65. """_skipValue""," \n
  66. """_skipTime""," \n
  67. """_method""," \n
  68. """_i""," \n
  69. """_night""," \n
  70. """_nightValue""," \n
  71. """_nightSkip""," \n
  72. """_num""," \n
  73. """_skipv""," \n
  74. """_sync_wait""," \n
  75. """_skip_wait""," \n
  76. """_firstrun""" \n
  77. "];" \n
  78. "_lastjipupdate = time;" \n
  79. "_lastupdate = time;" \n
  80. "_lastsync = time;" \n
  81. "" \n
  82. "_skipValue = _this select 0;" \n
  83. "_method = _this select 1;" \n
  84. "_sync_wait = (_this select 2) * 60;" \n
  85. "_skip_wait = (_this select 3) * 60;" \n
  86. "_night = _this select 4;" \n
  87. "_firstrun = true;" \n
  88. "" \n
  89. "if(_night) then" \n
  90. "{" \n
  91. " if(count _this > 3) then" \n
  92. " {" \n
  93. " _nightValue = _this select 5;" \n
  94. " }" \n
  95. " else" \n
  96. " {" \n
  97. " _nightValue = (_skipValue)*2;" \n
  98. " };" \n
  99. "" \n
  100. " _nightSkip = (_nightValue)/60;" \n
  101. "};" \n
  102. "" \n
  103. "_skipTime =(_skipValue)/60;"/*%FSM</STATEINIT""">*/;
  104. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  105. class Links
  106. {
  107. /*%FSM<LINK "true">*/
  108. class true
  109. {
  110. priority = 0.000000;
  111. to="Split_Check";
  112. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  113. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  114. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  115. };
  116. /*%FSM</LINK>*/
  117. };
  118. };
  119. /*%FSM</STATE>*/
  120. /*%FSM<STATE "Split_Check">*/
  121. class Split_Check
  122. {
  123. name = "Split_Check";
  124. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  125. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  126. class Links
  127. {
  128. /*%FSM<LINK "isClient">*/
  129. class isClient
  130. {
  131. priority = 0.000000;
  132. to="Sync";
  133. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  134. condition=/*%FSM<CONDITION""">*/"!isDedicated && !isNil {JipTimeNow}"/*%FSM</CONDITION""">*/;
  135. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  136. };
  137. /*%FSM</LINK>*/
  138. /*%FSM<LINK "isServer">*/
  139. class isServer
  140. {
  141. priority = 0.000000;
  142. to="Setup_JIP";
  143. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  144. condition=/*%FSM<CONDITION""">*/"isServer"/*%FSM</CONDITION""">*/;
  145. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  146. };
  147. /*%FSM</LINK>*/
  148. };
  149. };
  150. /*%FSM</STATE>*/
  151. /*%FSM<STATE "Setup_JIP">*/
  152. class Setup_JIP
  153. {
  154. name = "Setup_JIP";
  155. init = /*%FSM<STATEINIT""">*/"JipTimeNow = date;" \n
  156. "publicVariable ""JipTimeNow"";" \n
  157. "" \n
  158. "diag_log(""Server Time: Jip Var set and synced"");"/*%FSM</STATEINIT""">*/;
  159. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  160. class Links
  161. {
  162. /*%FSM<LINK "true">*/
  163. class true
  164. {
  165. priority = 0.000000;
  166. to="Separate";
  167. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  168. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  169. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  170. };
  171. /*%FSM</LINK>*/
  172. };
  173. };
  174. /*%FSM</STATE>*/
  175. /*%FSM<STATE "Sync">*/
  176. class Sync
  177. {
  178. name = "Sync";
  179. init = /*%FSM<STATEINIT""">*/"setDate JipTimeNow;" \n
  180. "" \n
  181. "diag_log(""Client Time: Initial Sync with server completed"");"/*%FSM</STATEINIT""">*/;
  182. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  183. class Links
  184. {
  185. /*%FSM<LINK "true">*/
  186. class true
  187. {
  188. priority = 0.000000;
  189. to="Separate";
  190. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  191. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  192. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  193. };
  194. /*%FSM</LINK>*/
  195. };
  196. };
  197. /*%FSM</STATE>*/
  198. /*%FSM<STATE "Separate">*/
  199. class Separate
  200. {
  201. name = "Separate";
  202. init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
  203. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  204. class Links
  205. {
  206. /*%FSM<LINK "isClient">*/
  207. class isClient
  208. {
  209. priority = 0.000000;
  210. to="Set_Safety";
  211. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  212. condition=/*%FSM<CONDITION""">*/"!isDedicated AND !isServer AND !isNull player"/*%FSM</CONDITION""">*/;
  213. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  214. };
  215. /*%FSM</LINK>*/
  216. /*%FSM<LINK "isServer">*/
  217. class isServer
  218. {
  219. priority = 0.000000;
  220. to="Skip_Time_Sync_cross";
  221. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  222. condition=/*%FSM<CONDITION""">*/"((time - _lastjipupdate) > 60) AND isServer"/*%FSM</CONDITION""">*/;
  223. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  224. };
  225. /*%FSM</LINK>*/
  226. };
  227. };
  228. /*%FSM</STATE>*/
  229. /*%FSM<STATE "Skip_Time_Sync_cross">*/
  230. class Skip_Time_Sync_cross
  231. {
  232. name = "Skip_Time_Sync_cross";
  233. init = /*%FSM<STATEINIT""">*/"if(_night) then" \n
  234. "{" \n
  235. " if(SunOrMoon == 0) then" \n
  236. " {" \n
  237. " skipTime _nightSkip;" \n
  238. " }" \n
  239. " else" \n
  240. " {" \n
  241. " skipTime _skipTime;" \n
  242. " };" \n
  243. "};" \n
  244. "" \n
  245. "_lastjipupdate = time;" \n
  246. "" \n
  247. "JipTimeNow = date;" \n
  248. "publicVariable ""JipTimeNow"";"/*%FSM</STATEINIT""">*/;
  249. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  250. class Links
  251. {
  252. /*%FSM<LINK "true">*/
  253. class true
  254. {
  255. priority = 0.000000;
  256. to="Separate";
  257. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  258. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  259. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  260. };
  261. /*%FSM</LINK>*/
  262. };
  263. };
  264. /*%FSM</STATE>*/
  265. /*%FSM<STATE "Set_Safety">*/
  266. class Set_Safety
  267. {
  268. name = "Set_Safety";
  269. init = /*%FSM<STATEINIT""">*/"//Safety check for lower end systems" \n
  270. "_fps = round(diag_fps);" \n
  271. "if(_fps < 35) then {_safety = true;} else {_safety = false};" \n
  272. "" \n
  273. "diag_log format[""FPS: %1"", _fps];" \n
  274. "if(_safety && _firstrun) then" \n
  275. "{" \n
  276. " _safety = false;" \n
  277. "};"/*%FSM</STATEINIT""">*/;
  278. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  279. class Links
  280. {
  281. /*%FSM<LINK "safety_true">*/
  282. class safety_true
  283. {
  284. priority = 0.000000;
  285. to="Sync_Client_with";
  286. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  287. condition=/*%FSM<CONDITION""">*/"_safety AND ((time - _lastsync) > _sync_wait)"/*%FSM</CONDITION""">*/;
  288. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  289. };
  290. /*%FSM</LINK>*/
  291. /*%FSM<LINK "Sync_">*/
  292. class Sync_
  293. {
  294. priority = 0.000000;
  295. to="Sync_Client_with";
  296. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  297. condition=/*%FSM<CONDITION""">*/"!_safety AND ((time - _lastsync) > _sync_wait)"/*%FSM</CONDITION""">*/;
  298. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  299. };
  300. /*%FSM</LINK>*/
  301. /*%FSM<LINK "Safety_false">*/
  302. class Safety_false
  303. {
  304. priority = 0.000000;
  305. to="Skip_Time";
  306. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  307. condition=/*%FSM<CONDITION""">*/"!_safety AND ((time - _lastupdate) > _skip_wait)"/*%FSM</CONDITION""">*/;
  308. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  309. };
  310. /*%FSM</LINK>*/
  311. };
  312. };
  313. /*%FSM</STATE>*/
  314. /*%FSM<STATE "Skip_Time">*/
  315. class Skip_Time
  316. {
  317. name = "Skip_Time";
  318. init = /*%FSM<STATEINIT""">*/"if(_night) then {" \n
  319. " if(SunOrMoon == 0) then" \n
  320. " {" \n
  321. " _num = _nightValue;" \n
  322. " _skipv = _nightSkip;" \n
  323. " }" \n
  324. " else" \n
  325. " {" \n
  326. " _num = _skipValue;" \n
  327. " _skipv = _skipTime;" \n
  328. " };" \n
  329. "}" \n
  330. "else" \n
  331. "{" \n
  332. " _num = _skipValue;" \n
  333. " _skipv = _skipTime;" \n
  334. "};" \n
  335. "" \n
  336. "" \n
  337. "if(_method) then" \n
  338. "{" \n
  339. " setDate [(date select 0), (date select 1), (date select 2), (date select 3), ((date select 4) + (_num))];" \n
  340. "} " \n
  341. "else" \n
  342. "{" \n
  343. " skipTime _skipv;" \n
  344. "};" \n
  345. "" \n
  346. "if(_firstrun) then {_firstrun = false;};" \n
  347. "" \n
  348. "_lastupdate = time;"/*%FSM</STATEINIT""">*/;
  349. precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
  350. class Links
  351. {
  352. /*%FSM<LINK "true">*/
  353. class true
  354. {
  355. priority = 0.000000;
  356. to="Separate";
  357. precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
  358. condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
  359. action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
  360. };
  361. /*%FSM</LINK>*/
  362. };
  363. };
  364. /*%FSM</STATE>*/
  365. /*%FSM<STATE "Sync_Client_with">*/
  366. class Sync_Client_with
  367. {
  368. name = "Sync_Client_with";
  369. init = /*%FSM<STATEINIT""">*/"setDate JipTimeNow;" \n
  370. "" \n
  371. "_lastsync = time;" \n
  372. "" \n
  373. "diag_log format[""Client Time: Time synced from server to %1"", JipTimeNow];"/*%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="Separate";
  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. };
  391. initState="init";
  392. finalStates[] =
  393. {
  394. };
  395. };
  396. /*%FSM</COMPILE>*/
Advertisement
Add Comment
Please, Sign In to add comment