Então venho aqui trazer um basico anti flood para vocês, mais bem simples mesmo então se tiver algo de errado me corrija, aguardem novos projetos !
Postei 2 Códigos o primeiro : Muta o Jogador.
o Segundo : Kicka o Jogador.
Então fica de preferencia.
Como funciona o que muta o jogador?
Joao fala uma frase .
Joao repete a frase apos 1 segundo.
Joao repete a frase mais uma vez em um segundo ( A Hora que ele vai receber o aviso . )
Joao repete a frase novamente e ele é mutado.
Como funciona o que kicka o jogador?
Joao fala uma frase .
Joao repete a frase apos 1 segundo.
Joao repete a frase mais uma vez em um segundo ( A Hora que ele vai receber o aviso . )
Joao repete a frase novamente e ele é kickado.
Código 1 - Mutando o Jogador
pawn Code:
#include <a_samp> forward Flood(playerid); forward Flood2(playerid); new AFlood[MAX_PLAYERS],nMsg[MAX_PLAYERS][128],Mute[MAX_PLAYERS]; public Flood(playerid) AFlood[playerid] = 0; public Flood2(playerid){Mute[playerid] = 0, AFlood[playerid] = 0;SendClientMessage(playerid, 0xFF0000, "( ANTI - FLOOD ) Você já pode usar o chat novamente..");} public OnFilterScriptInit(){print("Anti - Flood Carregado");return 1;} public OnFilterScriptExit(){print("Anti - Flood Descarregado");return 1;} public OnPlayerConnect(playerid){Mute[playerid] = 0,AFlood[playerid] = 0;return 1;} public OnPlayerText(playerid, text[]) { if(strlen(text) == strlen(nMsg[playerid]) && !strcmp(nMsg[playerid], text, false)){SendClientMessage(playerid, -1, "( ANTI - FLOOD ) Não repita a mesma mensagem!");return 0;} if(Mute[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, "( ANTI - FLOOD ) Você não pode digitar no chat enquanto estiver mutado.."); AFlood[playerid]++; if(AFlood[playerid] == 2) SetTimerEx("Flood", 2500, 0 , "i" , playerid); else if(AFlood[playerid] == 3) return SendClientMessage(playerid, 0xFF0000 , "( ANTI - FLOOD ) Não faça flood ou você pode ser mutado.."), 0; else if(AFlood[playerid] == 4) { SendClientMessage(playerid, 0xFF0000AA, "( ANTI - FLOOD ) Você foi mutado por 30 Segundos."); Mute[playerid] = 1; SetTimerEx("Flood2", 30000 , 0 , "i", playerid); return 0; } return 0; }
Código 2 - Kickando o Jogador
pawn Code:
#include <a_samp> forward Flood(playerid); new AFlood[MAX_PLAYERS],nMsg[MAX_PLAYERS][128]; public Flood(playerid) AFlood[playerid] = 0; public OnFilterScriptInit(){print("Anti - Flood Carregado");return 1;} public OnFilterScriptExit(){print("Anti - Flood Descarregado");return 1;} public OnPlayerConnect(playerid){AFlood[playerid] = 0;return 1;} public OnPlayerText(playerid, text[]) { if(strlen(text) == strlen(nMsg[playerid]) && !strcmp(nMsg[playerid], text, false)){SendClientMessage(playerid, -1, "( ANTI - FLOOD ) Não repita a mesma mensagem!");return 0;} AFlood[playerid]++; if(AFlood[playerid] == 2) SetTimerEx("Flood", 2500, 0 , "i" , playerid); else if(AFlood[playerid] == 3) return SendClientMessage(playerid, 0xFF0000 , "( ANTI - FLOOD ) Não faça flood ou você pode ser kickado.."); else if(AFlood[playerid] == 4) { SendClientMessage(playerid, 0xFF0000AA, "( ANTI - FLOOD ) Você foi kickado por fazer flood.."); Kick(playerid); return 0; } return 0; }

---------------------------------------------------