Advertisement
Guest User

gg

a guest
Feb 19th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. ServerDuration = (3 * 60 * 60);
  2. DebugServerDuration = (20 * 60);
  3.  
  4.  
  5.  
  6. private ["_timeStart","_timeSinceStart","_shutdownSuccess","_isDebug","_msg30mins","_msg15mins","_msg5mins","_timeUntilRestart","_30minspassed","_15minspassed","_5minspassed","_60secondspassed"];
  7.  
  8. _isDebug = false;
  9.  
  10. if(_isDebug) then
  11. {
  12. ServerDuration = DebugServerDuration;
  13. };
  14.  
  15. _msg30mins = "<t color='#FFFF00' size='1.25'>Server Restart</t><br/> The server will shut down in less than 30 minutes.";
  16. _msg15mins = "<t color='#FF9D47' size='1.25'>Server Restart</t><br/> The server will shut down in less than 15 minutes.";
  17. _msg5mins = "<t color='#FF5500' size='1.25'>Server Restart</t><br/> The server will shut down in less than 5 minutes.";
  18. _msg1mins = "<t color='#FF0000' size='1.25'>Server Restart</t><br/> The server will shut down in less than 60 seconds! LOG OUT NOW!";
  19.  
  20. _30minspassed = false;
  21. _15minspassed = false;
  22. _5minspassed = false;
  23. _60secondspassed = false;
  24.  
  25. _timeStart = diag_tickTime;
  26.  
  27. while{true} do
  28. {
  29. _timeSinceStart = diag_tickTime - _timeStart;
  30. _timeUntilRestart = ServerDuration - _timeSinceStart;
  31.  
  32. if(_isDebug) then
  33. {
  34. diag_log format ["Time Since Start: %1, Time Until Restart: %2", _timeSinceStart, _timeUntilRestart];
  35. };
  36.  
  37. switch true do
  38. {
  39. case ((_timeUntilRestart < (1 * 60)) && !_60secondspassed) :
  40. {
  41. _msg1mins call DMS_fnc_BroadcastMissionStatus; // using Defent's mission broadcast format for our messages
  42. diag_log "60 seconds until server restart.";
  43. _60secondspassed = true;
  44. _5minspassed = true;
  45. _15minspassed = true;
  46. _30minspassed = true;
  47. };
  48. case ((_timeUntilRestart < (5 * 60)) && !_5minspassed) :
  49. {
  50. _msg5mins call DMS_fnc_BroadcastMissionStatus;
  51. diag_log "5 minutes until server restart.";
  52. _5minspassed = true;
  53. _15minspassed = true;
  54. _30minspassed = true;
  55. };
  56. case ((_timeUntilRestart < (15 * 60)) && !_15minspassed) :
  57. {
  58. _msg15mins call DMS_fnc_BroadcastMissionStatus;
  59. diag_log "15 minutes until server restart.";
  60. _15minspassed = true;
  61. _30minspassed = true;
  62. };
  63. case ((_timeUntilRestart < (30 * 60)) && !_30minspassed) :
  64. {
  65. _msg30mins call DMS_fnc_BroadcastMissionStatus;
  66. diag_log "30 minutes until server restart.";
  67. _30minspassed = true;
  68. };
  69. };
  70.  
  71. if(_timeSinceStart > ServerDuration) then
  72. {
  73. diag_log "Restart timeout elapsed, attempting server shutdown.";
  74. _shutdownSuccess = "[server rcon password]" serverCommand "#shutdown";
  75. if(_shutdownSuccess) then
  76. {
  77. diag_log "Shutting down server!";
  78. }
  79. else
  80. {
  81. diag_log "Shutdown failed!";
  82. };
  83.  
  84. };
  85.  
  86. sleep 15;
  87. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement