const Color = $FFFFFFFF; VotePerc = 51; InitTime = 30; AddTime = 7; var Time: integer; Voted: array[1..32] of boolean; i_have_had_cock_today: boolean; really_i_have: boolean; procedure ActivateServer(); begin i_have_had_cock_today := false; really_i_have := false; end; procedure AppOnIdle(Ticks: integer); var i: byte; begin if (Time > 0) then begin Time := Time - 1; if (Time = 0) then begin for i := 1 to 32 do Voted[i] := false; WriteConsole(0, 'Nextmap vote failed', Color); end; end; end; procedure OnMapChange(NewMap: string); var i: byte; begin for i := 1 to 32 do Voted[i] := false; Time := 0; if i_have_had_cock_today then begin i_have_had_cock_today := false; really_i_have := true; end else begin really_i_have := false; end end; procedure OnJoinGame(ID, Team: byte); begin Voted[ID] := false; end; procedure OnPlayerSpeak(ID: byte; Text: string); var i, Total: byte; begin if (LowerCase(Text) = '!nextmap') and (really_i_have = false) then begin if Voted[ID] then WriteConsole(ID, 'You have already voted.', Color) else if (Time = 0) then Time := InitTime else Time := Time + Addtime; Voted[ID] := true; for i := 1 to 32 do if (GetPlayerStat(i, 'Active') = true) and (Voted[i]) then Total := Total + 1; if (100 * Total / NumPlayers >= VotePerc) then begin for i := 1 to 32 do Voted[ID] := false; WriteConsole(0, 'Nextmap vote passed', Color); Command('/nextmap'); i_have_had_cock_today := true; end else WriteConsole(0,FloattoStr(RoundTo(100 * Total / NumPlayers, 2)) + '% / ' + InttoStr(VotePerc) + '% required for a vote pass', Color); end; end;