Pages

Ads 468x60px


[FilterScript] Sistema AntFlood (GetTickCount)

É um simples sistema Ant-Flood feito em GetTickCount fiz porque eu vi gente querendo no tópico do garfield:

PHP Code:
#include <a_samp>
#define TempoFlood  5  // Em Segundos 
new UltimoComando[MAX_PLAYERS];
public 
OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
" FS Ant-Flood By Gustavo");
    print(
"--------------------------------------\n");
    return 
1;
}

public 
OnPlayerText(playeridtext[])
{
    if(
GetTickCount() - UltimoComando[playerid] < TempoFlood*1000){SendClientMessageToAll(0x714693AA," Espere um tempo antes de falar denovo");return 0;}
    else 
UltimoComando[playerid] = GetTickCount();
    return 
1;
}  
Versão 2.0:
PHP Code:
#include <a_samp>
#define TempoFlood                 4  // Em Segundos
#define AvisosAntesDoKick       4
#define TempoParaLimparAvisos     1   //Em Minutos, Tempo contado apos o ultimo aviso! 
new UltimoComando[MAX_PLAYERS];
new 
AvisosTotais[MAX_PLAYERS];
new 
TempoPrimeiroAviso[MAX_PLAYERS];
public 
OnFilterScriptInit(){
    print(
"\n--------------------------------------");
    print(
" FS Ant-Flood By Gustavo");
    print(
"--------------------------------------\n");
    return 
1;
}
// 1000 milisegundos = 1 segundo, 60000 milisegundos = 60 segundos/ 1 minuto public OnPlayerText(playeridtext[])
{
    if(
GetTickCount() - UltimoComando[playerid] < TempoFlood*1000)
    {
        new 
MensagemFlood[]= "Você foi avisado por flood, (%d/%d avisos, se exeder será kickado)."StringFlood[75];
        if(
TempoPrimeiroAviso[playerid] + TempoParaLimparAvisos*60000 >= GetTickCount()) return AvisosTotais[playerid] = 0;
        
AvisosTotais[playerid] ++;
        
format(StringFlood,sizeof(StringFlood), MensagemFloodAvisosTotais[playerid], AvisosAntesDoKick);
        
SendClientMessage(playerid0x714693AAStringFlood);
          
TempoPrimeiroAviso[playerid] = GetTickCount();
        if(
AvisosTotais[playerid] == AvisosAntesDoKick)
        {
            
SendClientMessage(playerid0x714693AA," Você foi kickado por ter exedido o limite maximo de avisos por flood!");
            
Kick(playerid);
        }
        return 
0;
    }
    else 
UltimoComando[playerid] = GetTickCount();
    return 
1;
}  
Creditos:
Gustavo(hiuship) por tudo.
Vinibor: me explico como funcionava certinho o GetTickCount :P.