SA-MP Forums Archive
[Pedido] Anti Flood com Kick player. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Pedido] Anti Flood com Kick player. (/showthread.php?tid=357668)



Anti Flood com Kick player. - Mercurio - 08.07.2012

Olб, estava a procura de algum script que fise-se com que se um player digita-se 3 mensagens ( independentemente se for iguais ou nгo ) rapidamente em menos de 3 segundos ( Exemplo ), ele fosse kickado do servidor por motivo de FLOOD.

Alguйm poderia me ajudar?



Re: Anti Flood com Kick player. - .FuneraL. - 08.07.2012

pawn Код:
forward TextoZerado(playerid);

new FloodMsg[MAX_PLAYERS];

//OnPlayerText
FloodMsg[playerid]++;
TimerText = SetTimerEx("TextoZerado", 3000, true, "i", playerid);
if(FloodMsg[playerid] == 3)
{
     SendClientMessage(playerid, -1, "Kickado Por Flood");
     Kick(playerid);
     return 1;
}

//Public

public TextoZerado(playerid)
{
      FloodMsg[playerid] = 0;
      KillTimer(TimerText);
      return 1;
}
Acho eu que poderia ser assim, fiz na hora aqui, corrijam-me se estiver errado



Re: Anti Flood com Kick player. - Jason` - 08.07.2012

Eu normalmente faria com gettime();

pawn Код:
new canSpeak[MAX_PLAYERS],
    floodCount[MAX_PLAYERS];

public OnPlayerText(playerid, text[])
{
    if(gettime() >= canSpeak[playerid] && canSpeak[playerid] > 0)
        canSpeak[playerid] = 0;
    else
    {
        floodCount[playerid]++;
        if(floodCount[playerid] == 3)
            Kick(playerid);
    }
    canSpeak[playerid] = gettime() + 3;
    return 1;
}
Nem testei, caso for usar e aponte erros, avise-me.


Re: Anti Flood com Kick player. - Mercurio - 08.07.2012

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Eu normalmente faria com gettime();

pawn Код:
new canSpeak[MAX_PLAYERS],
    floodCount[MAX_PLAYERS];

public OnPlayerText(playerid, text[])
{
    if(gettime() >= canSpeak[playerid] && canSpeak[playerid] > 0)
        canSpeak[playerid] = 0;
    else
    {
        floodCount[playerid]++;
        if(floodCount[playerid] == 3)
            Kick(playerid);
    }
    canSpeak[playerid] = gettime() + 3;
    return 1;
}
Nem testei, caso for usar e aponte erros, avise-me.
Nem erro da... Da crash direto '-'


Re: Anti Flood com Kick player. - Mercurio - 08.07.2012

Quote:
Originally Posted by .FuneraL.
Посмотреть сообщение
pawn Код:
forward TextoZerado(playerid);

new FloodMsg[MAX_PLAYERS];

//OnPlayerText
FloodMsg[playerid]++;
TimerText = SetTimerEx("TextoZerado", 3000, true, "i", playerid);
if(FloodMsg[playerid] == 3)
{
     SendClientMessage(playerid, -1, "Kickado Por Flood");
     Kick(playerid);
     return 1;
}

//Public

public TextoZerado(playerid)
{
      FloodMsg[playerid] = 0;
      KillTimer(TimerText);
      return 1;
}
Acho eu que poderia ser assim, fiz na hora aqui, corrijam-me se estiver errado
Irei testar...

Funfou o/ obrigado! Rep+


Re: Anti Flood com Kick player. - cJMaster_ - 08.07.2012

https://sampforum.blast.hk/showthread.php?tid=354667


Re: Anti Flood com Kick player. - Urubu_Rei - 08.07.2012

Olha na minha opiniгo й melhor deixar o player calado do que kikar...
Eu acho melhor ao invez de kikar, vocк "muta" ele por 1 minuto ou menos...


Re: Anti Flood com Kick player. - zSuYaNw - 08.07.2012

Quote:
Originally Posted by Mercurio
Посмотреть сообщение
Irei testar...

Funfou o/ obrigado! Rep+
Nгo use settimer, pois o mesmo poderб dar lerdeza ao servidor.

pawn Код:
new Flooding[MAX_PLAYERS char];
stock IsPlayerFlooding(pid, maxtime)
{
        if(tickcount() - Flooding{pid} < maxtime * 1000)
            return Flooding{pid} = tickcount(), true;
    return Flooding{pid} = tickcount(), false;
}



Re: Anti Flood com Kick player. - GReeN_WOoD - 08.07.2012

mt bom gatin.

@edit: o gatin, cade duvida aki, poderia implementar o kick pra mim ? obrigado


Re: Anti Flood com Kick player. - Mercurio - 08.07.2012

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
Nгo use settimer, pois o mesmo poderб dar lerdeza ao servidor.

pawn Код:
new Flooding[MAX_PLAYERS char];
stock IsPlayerFlooding(pid, maxtime)
{
        if(tickcount() - Flooding{pid} < maxtime * 1000)
            return Flooding{pid} = tickcount(), true;
    return Flooding{pid} = tickcount(), false;
}
E eu colocaria isso no OnPlayerText?