[TUT] - Criando um Anti-Flood Simples

Primeiramente você introduza no topo:

Criaremos um enumarador com seguintes parâmetros:
enum
{
    bool:Floodo,
    Flooding
}
new Flooder[MAX_PLAYERS][fInfo];

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; }


public Liberar(playerid) {     Flood[playerid][Floodo]     = false;     Flood[playerid][Flooding]   = 0;     return false; }

Explicação
Flood[playerid][Flooding]++; Fica Adicionando no enumerador 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. kkkk

COMPARTILHE

VEJA TAMBÉM

Próxima
« Anterior
Anterior
Próximo »