SA-MP Forums Archive
[Ajuda] Anti flood dominado - 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: [Ajuda] Anti flood dominado (/showthread.php?tid=617088)



Anti flood dominado - nasser - 15.09.2016

#resolvido


Re: Anti flood dominado - nasser - 15.09.2016

#Resolvido tinha errado no timer agora sim estб para 3 segundos.


Re: Anti flood dominado - RodrigoMSR - 17.09.2016

Muito mais fбcil e otimizado usando gettime():
Код:
new AntiFloodCommand[MAX_PLAYERS][2];

public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(gettime() - AntiFloodCommand[playerid][0] >= 2)
	{
		AntiFloodCommand[playerid][1] = 0;
		AntiFloodCommand[playerid][0] = gettime();
	}
	AntiFloodCommand[playerid][1]++;
    if(AntiFloodCommand[playerid][1] > 10)
    {
        SendClientMessage(i, -1, "Vocк foi kickado por floodar 10 comandos em 2 segundos, os admins foram avisados !");
       	Kick(i);
    }
    return 1;
}



Re: Anti flood dominado - nasser - 17.09.2016

Galera vlw mбs tipo eu n uso zcmd e tambйm nгo й um flood do player falando й um flood que havia de um bug do server sacou? mбs vlw aн obg


Re: Anti flood dominado - RodrigoMSR - 18.09.2016

XandyMello, como um timer fazendo um loop pode ser mais rбpido do que esse cуdigo? Ainda pode dar falhas, como se o timer estiver na metade do tempo e aн nгo sгo mais 2 segundos e sim 1 (mas isso й desprezнvel), o delay atй chegar no ID do jogador que deu o flood, ainda hб o lag do servidor que pode atrasar mais ainda o timer, com esses atrasos o cheater jб teria feito um flood muito maior, jб com o meu cуdigo nada disso acontece porque quando chega em 10 comandos seguidos й kickado instantaneamente e nгo hб como "floodar" mais que isso. Nгo consigo entender como isso pode ser mais rбpido e de mesma eficбcia que esse meu cуdigo.


Re: Anti flood dominado - RodrigoMSR - 19.09.2016

Estou falando rбpido e eficaz para o servidor e nгo para quem escreve o cуdigo, o maior problema й que o jogador poderб digitar quantos comandos imaginar nesse espaзo de 2 segundos que o timer dб a ele antes de fazer a verificaзгo, jб o meu cуdigo nгo deixa passar de 10 comandos (isso nгo faria diferenзa nesse caso, mas pense se fosse um anti-flood de mensagens no chat). Quanto ao atraso adicionado ao timer pelo lag do servidor й realmente quase inexistente, vocк tem razгo. Sobre o foreach, nunca usei mas acho que (no caso para players) seria a mesma coisa que um loop normal usando a definiзгo MAX_PLAYERS (redefinida conforme o real nъmero) e a funзгo IsPlayerConnected, devo estar muito errado.


Re: Anti flood dominado - nasser - 19.09.2016

Eu nem tava falando de flood em comandos mбs blz, ADM pode fechar aqui se quiser ;-;


Re: Anti flood dominado - F1N4L - 19.09.2016

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Muito mais fбcil e otimizado usando gettime():
Код:
new AntiFloodCommand[MAX_PLAYERS][2];

public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(gettime() - AntiFloodCommand[playerid][0] >= 2)
	{
		AntiFloodCommand[playerid][1] = 0;
		AntiFloodCommand[playerid][0] = gettime();
	}
	AntiFloodCommand[playerid][1]++;
    if(AntiFloodCommand[playerid][1] > 10)
    {
        SendClientMessage(i, -1, "Vocк foi kickado por floodar 10 comandos em 2 segundos, os admins foram avisados !");
       	Kick(i);
    }
    return 1;
}
@Edit

Testou o cуdigo? Toda a vez que for realizado um comando, a array AntiFloodCommand[playerid][1] vai aumentar independentemente se for digitado em mais ou menos de 2 segundos.
E sim, este modo й o mais otimizado se nгo quiser mostrar quantos segundos faltam para digitar.


Re: Anti flood dominado - nasser - 19.09.2016

Nгo testei nada que mandaram aqui porque pelo o que eu vi й para comandos e para dominar uma base nгo й necessario um comando, e o que eu fiz foi sу criar um timer


Re: Anti flood dominado - RodrigoMSR - 19.09.2016

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
@Edit

Testou o cуdigo? Toda a vez que for realizado um comando, a array AntiFloodCommand[playerid][1] vai aumentar independentemente se for digitado em mais ou menos de 2 segundos.
E sim, este modo й o mais otimizado se nгo quiser mostrar quantos segundos faltam para digitar.
Aumenta sim, mas ao passar de 2 segundos ele zera a array logo acima e assim recomeзa a contagem.