[Ajuda] Ant-flood
#1

Galera to tentando arrumar meu codigo aki do /relatorio mais nao ta dando certo alguem pode explicar ou arrumar pra min ? Codigo ta sem ant flood eu tentei colocar um ai mais nao deu
Код:
if(strcmp(cmd, "/relatorio", true) == 0 || strcmp(cmd, "/relatorio", true) == 0)
 	{
  		if(IsPlayerConnected(playerid))
	    {
	        if(gPlayerLogged[playerid] == 0)
	        {
	            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
	            return true;
	        }
	        GetPlayerName(playerid, sendername, sizeof(sendername));
			new length = strlen(cmdtext);
			while ((idx < length) && (cmdtext[idx] <= ' '))
			{
				idx++;
			}
			new offset = idx;
			new result[64];
			while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
			{
				result[idx - offset] = cmdtext[idx];
				idx++;
			}
			result[idx - offset] = EOS;
			if(!strlen(result))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /relatorio [texto]");
				return true;
			}

            if(PlayerInfo[playerid][pVIP] == 1)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "Relatorio VIP de %s - ID[%d]: %s ", sendername, playerid, lol, (result));
				//HelperBroadCast(COLOR_YELLOW,string,1);
				ABroadCast(COLOR_LIGHTBLUE,string,1);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, "Seu relatorios VIP foi enviado aos admins..");
            }
            else if(PlayerInfo[playerid][pVIP] == 2)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "Relatorio VIP-POWER de %s - ID[%d]: %s ", sendername, playerid, lol, (result));
				//HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_LIGHTBLUE,string,1);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, "Seu relatorio VIP-POWER foi enviado aos admins..");
            }
            else
            {
				format(string, sizeof(string), "Relatorio de %s(%d): %s ", sendername, playerid, (result));
				//HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_YELLOW,string,1);
				SendClientMessage(playerid, COLOR_YELLOW, "Seu relatorio foi enviado aos admins..");
			}
		}
	    return true;

	}
Valeu abraзos
Reply
#2

O que esta de errado
Reply
#3

Codigo ta certo para dar /relatorio que que nao sei criar ant flood no /relatorio
Reply
#4

usa gettime
Reply
#5

Tenso
Reply
#6

Jб que estamos aqui poderia me encinar a fazer um ANTI-FLOOD pra todas as coisas? se o players ficar floodando no /ga /isso e aquilo ou falando com alguem: ei ei ei ei e pб da pra deixar ele 1 minuto calado?>?
Reply
#7

Ai Ai , pronto ta ae seu relatorio com Ant Flood
Ajudei ? +REP

Код:
new prelatoadm;
new TempoRelatoAdm;
KillTimer(TempoRelatoAdm);
Код:
     if(strcmp(cmd, "/relato", true) == 0 || strcmp(cmd, "/relatorio", true) == 0)
	 {
	    if(IsPlayerConnected(playerid))
	    {
	        if(gPlayerLogged[playerid] == 0)
	        {
	            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
	            return true;
	        }
	        GetPlayerName(playerid, sendername, sizeof(sendername));
			new length = strlen(cmdtext);
			while ((idx < length) && (cmdtext[idx] <= ' '))
			{
				idx++;
			}
			new offset = idx;
			new result[64];
			while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
			{
				result[idx - offset] = cmdtext[idx];
				idx++;
			}
			result[idx - offset] = EOS;
			if(!strlen(result))
			{
				SendClientMessage(playerid, COLOR_GRAD2, "USE: /relatorio [texto]");
				return true;
			}
			if(prelatoadm == 1)
        	{
       			SendClientMessage(playerid,COLOR_GRAD2,"Vocк tem que esperar 10 Segundos para enviar outro relatуrio!");
        		return 1;
        	}
        	if(PlayerInfo[playerid][pJailed] == 2)
    			{
	   				SendClientMessage(playerid,COLOR_YELLOW," Vocк nгo pode mandar relatorio no Carandiru!");
					return true;
    			}


            if(PlayerInfo[playerid][pVIP] == 1)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "Relatorio VIP de %s - ID[%d]: %s ", sendername, playerid, lol, (result));
				//HelperBroadCast(COLOR_YELLOW,string,1);
				ABroadCast(COLOR_LIGHTBLUE,string,1);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, "Seu relatorios VIP foi enviado aos admins, Aguarde uma resposta..");
				prelatoadm = 1;
				TempoRelatoAdm = SetTimer("RelatoAdm", 10000, 0);

            }
            else if(PlayerInfo[playerid][pVIP] == 2)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "Relatorio SUPER VIP de %s - ID[%d]: %s ", sendername, playerid, lol, (result));
				//HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_LIGHTBLUE,string,1);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, "Seu relatorio S-VIP foi enviado aos admins, Aguarde uma resposta..");
				prelatoadm = 1;
				TempoRelatoAdm = SetTimer("RelatoAdm", 10000, 0);

            }
            else
            {
				format(string, sizeof(string), "Relatorio de %s(%d): %s ", sendername, playerid, (result));
				//HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_YELLOW,string,1);
				SendClientMessage(playerid, COLOR_YELLOW, "Seu relatуrio foi enviado aos admins, aguarde uma resposta...");
				prelatoadm = 1;
				TempoRelatoAdm = SetTimer("RelatoAdm", 10000, 0);

			}
		}
	    return true;

	}
Reply
#8

pawn Код:
if(!strcmp(cmd, "/relatorio", true) || !strcmp(cmd, "/relatorio", true))
    {
            if(gPlayerLogged[playerid] == 0)
                return SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
               
            if(IsPlayerFlooding(playerid, 5)){
                return SendClientMessage(playerid, -1,"SPAMM (5s)");
            }
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[64];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result))
                return SendClientMessage(playerid, COLOR_GRAD2, "USE: /relatorio [texto]");
               
            if(PlayerInfo[playerid][pVIP] == 1)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "Relatorio VIP de %s - ID[%d]: %s ", sendername, playerid, lol, (result));
                //HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_LIGHTBLUE,string,1);
                SendClientMessage(playerid, COLOR_LIGHTBLUE, "Seu relatorios VIP foi enviado aos admins..");
            }
            else if(PlayerInfo[playerid][pVIP] == 2)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "Relatorio VIP-POWER de %s - ID[%d]: %s ", sendername, playerid, lol, (result));
                //HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_LIGHTBLUE,string,1);
                SendClientMessage(playerid, COLOR_LIGHTBLUE, "Seu relatorio VIP-POWER foi enviado aos admins..");
            }
            else
            {
                format(string, sizeof(string), "Relatorio de %s(%d): %s ", sendername, playerid, (result));
                //HelperBroadCast(COLOR_YELLOW,string,1);
                ABroadCast(COLOR_YELLOW,string,1);
                SendClientMessage(playerid, COLOR_YELLOW, "Seu relatorio foi enviado aos admins..");
            }
        }
        return true;

    }

Final:
PHP код:
stock IsPlayerFlooding(ptime){

    static
        
getMessageTime MAX_PLAYERS char ]
    ;
    
    
    if ( 
getMessageTime } != ) {
    
        if ( ( 
gettime() - getMessageTime }  ) < time ){
        
            
getMessageTime } = gettime ( ) ;
            return !
false ;
        }
    }
    
    
getMessageTime } = gettime ( ) ;
    return !
true ;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)