[Pedido] Anti-Flood
#1

Olб amigos, hoje eu gostaria de pedir uma coisa muito simples (EU NГO SEI '-'), um sistema Anti-Flood. Irei dar exemplos:

PSY Diz: SA-MP Forum
PSY Diz: SA-MP Forum
PSY Diz: SA-MP Forum

Ai aparece uma mensagem assim: [ANTI-FLOOD] Vocк foi calado por 1 Minuto!

Quando der 1 Minuto aparece assim: [ANTI-FLOOD] Vocк foi descalado!Nгo cometa mais FLOOD!

Se o player digitar a mesma coisa 3 Vezes ele й calado por 1 minuto... Tem como me darem exemplos de como fazer? Eu sei que й em Timer mais... Eu sou Noob ;(

OBS: Sou Mapper e depois vou postar uns mapas aqui
Reply
#2

Код:
new IsFlooding[MAX_PLAYERS];
new Flooder[MAX_PLAYERS];
Код:
public OnPlayerText(playerid, text[])
{
    if(Flooder[playerid] == 1)
    {
        SendClientMessage(playerid, -1, "{FF0000}[ERRO]{FFFFFF} Vocк estб calado e nгo pode usar o chat !");
        return 0;
    }
    IsFlooding[playerid]++;
    if(IsFlooding[playerid] >= 3)
    {
        IsFlooding[playerid] = 0;
        Flooder[playerid] = 1;
        SendClientMessage(playerid, -1, "{FF0000}[INFO]{FFFFFF} Vocк foi calado por 1 minuto. Motivo: Flood !");
        SetTimerEx("LiberaraChat", 60000, false, "i", playerid);
        return 0;
    }
    else
    {
        SetTimerEx("SemFlood", 2000, false, "i", playerid);
    }
    return 1;
}


forward SemFlood(playerid);
public SemFlood(playerid)
{
    IsFlooding[playerid] = 0;
    return 1;
}


forward LiberarChat(playerid);
public LiberarChat(playerid)
{
    Flooder[playerid] = 0;
    SendClientMessage(playerid, -1, "Vocк foi descalado, nгo faзa mais flood !");
    return 1;
}
OBS: Nгo foi eu que fiz isso, quem for o Dono й sу flar ais
Reply
#3

Pawn parou de funcionar '--'
Reply
#4

Tenta essa FS aqui : http://pastebin.com/53DgMk74 , caso vocК consiga , й sу incluir no seu gm !
Reply
#5

Final do script:
pawn Код:
stock IsPlayerFlooding(p, time){

    static
        getMessageTime [ MAX_PLAYERS char ]
    ;
   
   
    if ( getMessageTime { p } != 0 ) {
   
        if ( ( gettime() - getMessageTime { p }  ) < time ){
       
            getMessageTime { p } = gettime ( ) ;
            return !false ;
        }
    }
   
    getMessageTime { p } = gettime ( ) ;
    return !true ;
}


Usagem:
pawn Код:
if(IsPlayerFlooding(playerid, 3)){ // 3 segundos

    return SendClientMessage(playerid, -1,"Vocк estб frodano(3s)"),0;
}
Funзгo criada por min.
Reply
#6

Quote:
Originally Posted by matheuspain
Посмотреть сообщение
Tenta essa FS aqui : http://pastebin.com/53DgMk74 , caso vocК consiga , й sу incluir no seu gm !
Funcionou aqui valeu cara '-- +1 Reputation

Quote:
Originally Posted by [Full
Garfield[XDB][;2188167]stock IsPlayerFlooding(p, time){

static
getMessageTime [ MAX_PLAYERS char ]
;


if ( getMessageTime { p } != 0 ) {

if ( ( gettime() - getMessageTime { p } ) < time ){

getMessageTime { p } = gettime ( ) ;
return !false ;
}
}

getMessageTime { p } = gettime ( ) ;
return !true ;
}
Valeu cara mais deu 3 erros , mais jб consegui colocar! Obrigado assim mesmo, +1 Reputation pra vocк ^^
Reply
#7

Encerrado jб resolvi!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)