1
0

restart.inc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <YSI\y_hooks>
  2. new restartsv;
  3. new restarttimer;
  4. new pkicktimer[MAX_PLAYERS];
  5. CMD:restart(playerid, params[])
  6. {
  7. if(PlayerInfo[playerid][pAdmin] < 1337) return AdmErrorMsg;
  8. new reason[1000], seconds, string[1000];
  9. if (sscanf(params, "ds", seconds, reason)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /restart [seconds] [reason]");
  10. format(string, sizeof(string), "~ Server restart in %d seconds reason: %s", seconds, reason);
  11. SendClientMessageToAll(COLOR_DARKRED, string);
  12. SaveChars();
  13. SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Player/Server data has been saved.");
  14. restartsv = seconds;
  15. restarttimer = SetTimer("Restarting", 1000, 1);
  16. return 1;
  17. }
  18. forward Restarting();
  19. public Restarting()
  20. {
  21. restartsv--;
  22. new str[1000];
  23. if(restartsv == 0)
  24. {
  25. foreach(new i: Player)
  26. {
  27. KillTimer(restarttimer);
  28. SQLSave(i);
  29. Kick(i);
  30. SendRconCommand("gmx");
  31. }
  32. }
  33. else
  34. {
  35. format(str, sizeof(str), "~w~Server Restarting in ~r~%d ~w~seconds.", restartsv);
  36. GameTextForAll(str, 1000, 3);
  37. }
  38. return 1;
  39. }
  40. forward KickBanTimer(playerid, kickban);
  41. public KickBanTimer(playerid, kickban)
  42. {
  43. switch (kickban)
  44. {
  45. case 1: Kick(playerid);
  46. case 2: Ban(playerid);
  47. }
  48. KillTimer(pkicktimer[playerid]);
  49. pkicktimer[playerid] = 0;
  50. }