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



Anti flood - nasser - 02.02.2017

Tou tendo um problema bem chato no meu servidor galera eu botei um comando jб faz tempo para os admins no servidor para eles botarem mъsica aн os fdp fica botando uma atrбs da outra e a galera sai aн eu fiz um anti flood para esse CMD nгo tem muito certo, o que posso fazer? eu tinha colocado para 5 minutos a cada mъsica de intervalo sу que assim eu quero que isso seja vбlido para todos e esse 5 minutos ta indo sу pra quem usou o CMD exemplo eu quero que seja assim se eu usei o CMD agora sу daqui a 5 minutos alguйm poderб usar, e o que estб acontecendo й assim eu uso o CMD agora e nгo posso usar durante 5 minutos mas outros podem usar


Re: Anti flood - RodrigoMSR - 02.02.2017

Код:
new MusicCMDTime;

CMD:teste(playerid)
{
	if(gettime() - MusicCMDTime < 300) return SendClientMessage(playerid, -1, "| ERRO | Aguarde 5 minutos para usar este comando");
	SendClientMessage(playerid, -1, "Comando executado");
	MusicCMDTime = gettime();
	return 1;
}



Re: Anti flood - GuiKommander - 02.02.2017

new bool:kk[MAX_PLAYERS] = false;
// Comando em zcmd
CMD:kk(playerid)
{
if(kk[playerid] == true) return SendClientMessage( playerid, -1, "| ERRO | Aguarde 5 minutos nй mano!");
SendClientMessage(playerid, -1, "kk");
kk[playerid] = true;
SetTimerEx("k", 300000, false, "i", playerid);
// em strcmp
if(strcmp(cmdtext, "/kk", true) ==0)
{
if(kk[playerid] == true) return SendClientMessage( playerid, -1, "| ERRO | Aguarde 5 minutos nй mano!");
SendClientMessage(playerid, -1, "| INFO | Mъsica sendo executada!");
kk[playerid] = true;
SetTimerEx("k", 300000, false, "i", playerid);
// fim do gm . k
forward k(playerid);
public k(playerid)
{
kk[playerid] = false;
return 1;
}
Se tiver um erro, me fala ae


Re: Anti flood - nasser - 02.02.2017

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Код:
new MusicCMDTime;

CMD:teste(playerid)
{
	if(gettime() - MusicCMDTime < 300) return SendClientMessage(playerid, -1, "| ERRO | Aguarde 5 minutos para usar este comando");
	SendClientMessage(playerid, -1, "Comando executado");
	MusicCMDTime = gettime();
	return 1;
}
Valeu funcionou
Quote:
Originally Posted by GuiKommander
Посмотреть сообщение
new bool:kk[MAX_PLAYERS] = false;
// Comando em zcmd
CMD:kk(playerid)
{
if(kk[playerid] == true) return SendClientMessage( playerid, -1, "| ERRO | Aguarde 5 minutos nй mano!");
SendClientMessage(playerid, -1, "kk");
kk[playerid] = true;
SetTimerEx("k", 300000, false, "i", playerid);
// em strcmp
if(strcmp(cmdtext, "/kk", true) ==0)
{
if(kk[playerid] == true) return SendClientMessage( playerid, -1, "| ERRO | Aguarde 5 minutos nй mano!");
SendClientMessage(playerid, -1, "| INFO | Mъsica sendo executada!");
kk[playerid] = true;
SetTimerEx("k", 300000, false, "i", playerid);
// fim do gm . k
forward k(playerid);
public k(playerid)
{
kk[playerid] = false;
return 1;
}
Se tiver um erro, me fala ae
Nгo sei se funciona mano mбs acho que funciona sim pelo o que eu entendi dele ele limita o uso do comando й igual o anti flood obrigado tambйm


Re: Anti flood - MorteAmerica - 03.02.2017

De modo mais simples seria criar uma Variavel que armazenaria o ultimo CMD digitado, de forma que toda vez que algum comando fosse digitado pelo player verificaria se seria o mesmo armazenado na variavel.
Getando uma mensagem avisando o mesmo para parar com o flood e retornando a 1.