Advertisement
Guest User

Untitled

a guest
Feb 16th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.78 KB | None | 0 0
  1. /*
  2.  
  3. Filename: fn_RCON_Restart.sqf
  4. Project: Reborn Altis Life RPG
  5. Author: RebornLife Team
  6. Steam: n.a.
  7. Web: http://RebornLife.ru/
  8.  
  9. */
  10. #include "\RebornServer\script_macros.hpp"
  11. _restarttimes = ["04:00:00","08:00:00","12:00:00","16:00:00","20:00:00","24:00:00"]; //HH:MM:SS
  12. private _password = FETCH_CONFIG2(getText,"CfgPatches","RebornServer","pass");
  13.  
  14. _checkTimeRange = {
  15. _gottime = true;
  16. {
  17. _hardServerTime = _x splitString ":";
  18. _hardServerTimeHour = parseNumber (_hardServerTime select 0);
  19. _hardServerTimeMin = parseNumber (_hardServerTime select 1);
  20. _hardServerTimeSec = parseNumber (_hardServerTime select 2);
  21.  
  22. _hardSecondsTime = (_hardServerTimeHour * 3600);
  23. _hardSecondsTime = (_hardSecondsTime + (_hardServerTimeMin * 60));
  24. _hardSecondsTime = (_hardSecondsTime + _hardServerTimeSec);
  25.  
  26. _currentTimestamp = (call compile ("extDB3" callExtension "9:LOCAL_TIME")) select 1;
  27. _nowServerTimeHour = _currentTimestamp select 3;
  28. _nowServerTimeMin = _currentTimestamp select 4;
  29. _nowServerTimeSec = _currentTimestamp select 5;
  30.  
  31. _nowSecondsTime = (_nowServerTimeHour * 3600);
  32. _nowSecondsTime = (_nowSecondsTime + (_nowServerTimeMin * 60));
  33. _nowSecondsTime = (_nowSecondsTime + _nowServerTimeSec);
  34.  
  35. if( _nowSecondsTime < _hardSecondsTime ) then {
  36. if (_gottime) then{
  37. RESTART_difftime = _hardSecondsTime - _nowSecondsTime;
  38. _gottime = false;
  39. };
  40. };
  41. } forEach _restarttimes;
  42. RESTART_difftime
  43. };
  44.  
  45. diag_log format ["[SERVER RESTART] -> RESTART TIMES ARE %1 - Next Restart in %2 Secounds", _restarttimes, "" call _checkTimeRange];
  46.  
  47.  
  48. _120minCheck = false; _60minCheck = false; _30minCheck = false; _15minCheck = false; _10minCheck = false; _5minCheck = false; _3minCheck = false; _2minCheck = false; _1minCheck = false;
  49.  
  50. checkServerTime = true;
  51. while {checkServerTime} do
  52. {
  53. switch true do
  54. {
  55. case (( '' call _checkTimeRange <= (120*60) ) && !_120minCheck) :
  56. {
  57. _120minCheck = true;
  58. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 2 часа!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  59. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 2 часа!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  60. };
  61. case (( '' call _checkTimeRange <= (60*60) ) && !_60minCheck) :
  62. {
  63. _60minCheck = true;
  64. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 1 час!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  65. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 1 час!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  66. };
  67. case (( '' call _checkTimeRange <= (30*60) ) && !_30minCheck) :
  68. {
  69. _30minCheck = true;
  70. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 30 минут!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  71. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 30 минут!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  72. };
  73. case (( '' call _checkTimeRange <= (15*60) ) && !_15minCheck) :
  74. {
  75. _30minCheck = true; _15minCheck = true;
  76. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 15 минут! Сервер будет закрыт за 5 минут до рестарта.."] remoteExecCall ["RebornClient_system_broadcast",-2];
  77. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 15 минут! Сервер будет закрыт за 5 минут до рестарта.."] remoteExecCall ["RebornClient_system_broadcast",-2];
  78. };
  79. case (( '' call _checkTimeRange <= (10*60) ) && !_10minCheck) :
  80. {
  81. _30minCheck = true; _15minCheck = true; _10minCheck = true;
  82. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 10 минут! Сервер будет закрыт за 5 минут до рестарта.."] remoteExecCall ["RebornClient_system_broadcast",-2];
  83. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 10 минут! Сервер будет закрыт за 5 минут до рестарта.."] remoteExecCall ["RebornClient_system_broadcast",-2];
  84.  
  85. };
  86. case (( '' call _checkTimeRange <= (5*60) ) && !_5minCheck) :
  87. {
  88. _30minCheck = true; _15minCheck = true; _10minCheck = true; _5minCheck = true;
  89. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 5 минут! Не забудьте синхронизировать данные. Сервер будет закрыт до перезагрузки."] remoteExecCall ["RebornClient_system_broadcast",-2];
  90. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 5 минут! Не забудьте синхронизировать данные. Сервер будет закрыт до перезагрузки."] remoteExecCall ["RebornClient_system_broadcast",-2];
  91. [format ["<t size='2.5'><t color='#f71414' align='center'>Внимание!</t></t><br/><br/><t size='1.5'align='center'>Надвигается сильная буря. Все магазины закрыты.</t>"],"warning"] remoteExecCall ["RebornClient_system_hint",-2];
  92. server_restartSoon = true;
  93. publicVariable "server_restartSoon";
  94. };
  95. case (( '' call _checkTimeRange <= (3*60) ) && !_3minCheck) :
  96. {
  97. _30minCheck = true; _15minCheck = true; _10minCheck = true; _5minCheck = true; _3minCheck = true;
  98. [] remoteExec ["RebornClient_effects_Restart",0];
  99. _password serverCommand "#lock";
  100. };
  101. case (( '' call _checkTimeRange <= (2*60) ) && !_2minCheck) :
  102. {
  103. _30minCheck = true; _15minCheck = true; _10minCheck = true; _5minCheck = true; _3minCheck = true; _2minCheck = true;
  104. };
  105. case (( '' call _checkTimeRange <= (1*60) ) && !_1minCheck) :
  106. {
  107. _30minCheck = true; _15minCheck = true; _10minCheck = true; _5minCheck = true; _3minCheck = true; _2minCheck = true; _1minCheck = true;
  108. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 1 минуту!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  109. [0,"BattleEye Client: (Global) Admin: Сервер будет перезагружен через 1 минуту!"] remoteExecCall ["RebornClient_system_broadcast",-2];
  110.  
  111. {
  112. remoteExecCall ["RebornClient_session_syncData",_x];
  113. uiSleep 0.2;
  114. _password serverCommand format ["#kick %1",getPlayerUID _x];
  115. } foreach allPlayers;
  116. uiSleep 30;
  117. uiSleep 30;
  118. checkServerTime = false;
  119. _password serverCommand "#shutdown";
  120. };
  121. };
  122. uiSleep 1;
  123. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement