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?