[FilterScript] Anti Flood Basico para o Chat
#1

Bem , como tou muito tempo sem fazer scripts, resolvi voltar a ativa esse ano (2012)

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 Код:
#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 Код:
#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;
}
Reply
#2

Funcional, parabйns
Reply
#3

Pra mim isso й um cуdigo ъtil. Mas cada um tem sua opiniгo

pawn Код:
#include <a_samp>

new
    gFloodStamp[MAX_PLAYERS],
    gFloodCount[MAX_PLAYERS];

public OnPlayerText(playerid, text[])
{
    if(gFloodStamp[playerid] > 0)
    {
        if(gettime() >= gFloodStamp[playerid])
        {
            gFloodStamp[playerid] = 0;
            gFloodCount[playerid] = 0;
        }
        else
        {
            gFloodCount[playerid]++;
            if(gFloodCount[playerid] == 3)
            {
                return Kick(playerid), 0;
            }
        }
    }
    gFloodStamp[playerid] = gettime() + 3; // 3 segundos pra falar
    return 1;
}
Reply
#4

Simples mais e bem prestativo Parabens
Reply
#5

Como citei no titulo do tуpico.
'Basico'

Aguardem por futuros Projetos....

Mesmo assim obrigado a todos
Reply
#6

Sendo cуdigo ъtil, ou nгo, serve.
Existem muitos desses no fуrum mas mesmo assim, boa inciativa.
Reply
#7

Flood para mim, й escrever varias vezes a mesma coisa, o seu script ai se o cara escrever 3 vezes palavras diferentes vai receber o aviso! Mas nгo deixa de ser funcional, Bom trabalho!
Reply
#8

Quote:
Originally Posted by paulor
Посмотреть сообщение
Flood para mim, й escrever varias vezes a mesma coisa, o seu script ai se o cara escrever 3 vezes palavras diferentes vai receber o aviso! Mas nгo deixa de ser funcional, Bom trabalho!
Arrumado..

Mais ele sу vai receber o aviso se ele digitar varias palavras repetidamente. de 1 em 1 segundo.
Reply
#9

Se
Ele
Escrever
Desse
Jeito
Ele
Vai
Ser
Avisado?
Reply
#10

Quote:
Originally Posted by Edu33
Посмотреть сообщение
Se
Ele
Escrever
Desse
Jeito
Ele
Vai
Ser
Avisado?
Sim Edu, Flood pode ser considerado repetiзгo da mesma palavra como o paulor falou, ou em alguns scripts, sгo considerados mensagens sequentemente rapidas, ou seja, se vocк digitar muito rapido serб avisado.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)