Advertisement
Guest User

nextmap zeros

a guest
Jul 18th, 2014
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.43 KB | None | 0 0
  1. const
  2.   Color = $9933FFF;
  3.   VotePerc = 51;
  4.   InitTime = 60;
  5.   AddTime = 10;
  6.  
  7. var
  8.   Enable: boolean;
  9.   Time: integer;
  10.   Voted: array[1..32] of boolean;
  11.  
  12. procedure DisableVoteNext;
  13. begin
  14.   Enable := false;
  15. end;
  16.  
  17. procedure ActivateServer();
  18. begin
  19.   Enable := true;
  20. end;
  21.  
  22. procedure AppOnIdle(Ticks: integer);
  23. var
  24.   i: byte;
  25. begin
  26.   if (Time > 0) then begin
  27.     Time := Time - 1;
  28.     if (Time = 0) then begin
  29.       for i := 1 to 32 do Voted[i] := false;
  30.       WriteConsole(0, 'Oylama basarisiz', Color);
  31.     end;
  32.   end;
  33. end;
  34.  
  35. function OnCommand(Id: byte; Text: string): boolean;
  36. begin
  37.   if ((LowerCase(Copy(Text, 1, 8)) = '/restart') or (LowerCase(Copy(Text, 1, 8)) = '/nextmap') or ((LowerCase(Copy(Text, 1, 4)) = '/map') and (FileExists('maps/' + Copy(Text, 6, Length(Text)) + '.PMS')))) then DisableVoteNext;
  38. end;
  39.  
  40. procedure OnMapChange(NewMap: string);
  41. var
  42.   i: byte;
  43. begin
  44.   Enable := true;
  45.   for i := 1 to 32 do Voted[i] := false;
  46.   Time := 0;
  47. end;
  48.  
  49. procedure OnJoinGame(ID, Team: byte);
  50. begin
  51.   Voted[ID] := false;
  52. end;
  53.  
  54. procedure OnLeaveGame(ID, Team: byte; Kicked: boolean);
  55. var
  56.   i, Total: byte;
  57. begin
  58.   Voted[ID] := false;
  59.   for i := 1 to 32 do if (GetPlayerStat(i, 'Active') = true) and (Voted[i]) then Total := Total + 1;
  60.   if (Total > 0) then begin
  61.     if (100 * Total / (NumPlayers - NumBots) >= VotePerc) then begin
  62.       for i := 1 to 32 do Voted[ID] := false;
  63.       DisableVoteNext;
  64.       WriteConsole(0, 'Oylama basarili', Color);
  65.       Command('/nextmap');
  66.     end else WriteConsole(0,FloattoStr(RoundTo(100 * Total / (NumPlayers - NumBots), 2)) + '% / ' + InttoStr(VotePerc) + '% uzerinde', Color);
  67.   end;
  68. end;
  69.  
  70. procedure OnPlayerSpeak(ID: byte; Text: string);
  71. var
  72.   i, Total: byte;
  73. begin
  74.   if ((LowerCase(Text) = '!nextmap') and (Enable)) then begin
  75.     if Voted[ID] then WriteConsole(ID, 'Zaten oy kullandin.', Color) else if (Time = 0) then Time := InitTime else Time := Time + Addtime;
  76.     Voted[ID] := true;
  77.     for i := 1 to 32 do if (GetPlayerStat(i, 'Active') = true) and (Voted[i]) then Total := Total + 1;
  78.     if (100 * Total / (NumPlayers - NumBots) >= VotePerc) then begin
  79.       for i := 1 to 32 do Voted[ID] := false;
  80.       DisableVoteNext;
  81.       WriteConsole(0, 'Oylama basarili', Color);
  82.       Command('/nextmap');
  83.     end else WriteConsole(0,FloattoStr(RoundTo(100 * Total / (NumPlayers - NumBots), 2)) + '% / ' + InttoStr(VotePerc) + '% uzerinde', Color);
  84.   end;
  85. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement