Criaremos um enumarador com seguintes parâmetros:
pawn Código:
enum { bool:Floodo, Flooding } new Flooder[MAX_PLAYERS][fInfo];
pawn Código:
public OnPlayerText(playerid, text[]) { Flood[playerid][Flooding]++; if(Flood[playerid][Flooding] == MAX_FLOOD_LIMIT) { if(Adminstracao[playerid][pNivel] < 1) { if(Flood[playerid][Floodo] == true) { static string[128], Nome_Play[MAX_PLAYER_NAME]; Flood[playerid][Floodo] = false; GetPlayerName(GivePlayerid, Nome_Play, sizeof(Nome_Play)); format(string, sizeof(string),"[INFO]: %s[ID:%i] Foi Kickado do servidor pelo adminstrador: Both:%s, Motivo: Flood Exessivo de mensagens.", Nome_Play,playerid, NomeBoth); SendClientMessageToAll(Amarelo, string); Kick(playerid); } SendClientMessage(playerid, Vermelho,"[INFO]: Sistema Ant - Flood, Aguarde alguns segundos, ou será kickado!."); Flood[playerid][Floodo] = true; Flood[playerid][Flooding] = 0; SetTimerEx("Liberar",5000,false,"d",playerid); return false; } } return true; }
pawn Código:
public Liberar(playerid) { Flood[playerid][Floodo] = false; Flood[playerid][Flooding] = 0; return false; }
Explicação
Flood[playerid][Flooding]++; Fica Adicionando no anumerador Sempre +1 ( Flood[playerid][Flooding]+1 )
if(Flood[playerid][Flooding] == 3) Quanto o Enumerador [Flooding] for igual a 3 ele começa a executar o comando.
Adminstracao[playerid][pNivel] < 1) Se não for admin ele continua....
static string[128], Nome_Play[MAX_PLAYER_NAME]; Cria as variáveis
Flood[playerid][Floodo] == true) Checa se o player Floodou antes.
Flood[playerid][Floodo] = false Seta para FALSE, que é NÃO
format(....); Formata a string
SendClientMessageToAll(Amarelo, string); Manda Para todos.
Kick(playerid); Kicka o player.
---
SendClientMessage(playerid, Vermelho,"[L.A.S]: Sistema Ant - Flood, Aguarde alguns segundos, ou será kickado!."); Manda Mensagen para aguardar.
Flood[playerid][Floodo] = true; seta que já flodou antes.
Flood[playerid][Flooding] = 0; Seta para 0 a acontagem
SetTimerEx("Liberar",5000,false,"d",playerid); Lansa um timer para uma public.
Flood[playerid][Floodo] = false; Seta para FALSE quando acaba o tempo
Flood[playerid][Flooding] = 0; Seta o Flooding para 0.
Créditos:
[FeK]Garfield
[FeK]Squad
< a Flechinha também.