(TUT) Criando um anti flood Simples

Primeiramente você introduza no topo:

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.

COMPARTILHE

VEJA TAMBÉM

Próxima
« Anterior
Anterior
Próximo »