[Ajuda] settimer no /relatorio
#1

Boa Noite a todos. Bom, queria saber se alguem pode ajudar, o povo ta floodando muito no /relatorio
Alguem sabe como colocar settimer no /relatorio de poder usa-lo apenas de 1 em 1 minuto ?
e se o cara for digitar antes de ter dado 1 minuto aparecer:
Seja mas especifico em seus relatorios, vocк sу pode manda-lo de 1 em 1 Minuto.

Comando:
Код:
	if(strcmp(cmd, "/relatorio", true) == 0 || strcmp(cmd, "/relato", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
	        if(gPlayerLogged[playerid] == 0)
	        {
	            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб logado!");
	            return 1;
	        }
	        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 1;
			}
			if(TentouDivulgar(result))
			{
  				if(cdivulgar[playerid] >= 3)
  				{
					SendClientMessage(playerid, COLOR_LIGHTBLUE,"Aqui vocк nгo pode anunciar servidores!");
    				SendClientMessage(playerid, COLOR_LIGHTBLUE,"Seu servidor й uma merda, nгo divulgue-o aqui!");
    				SendClientMessage(playerid, COLOR_LIGHTBLUE,"Seu noob peguei esse IP e vou divulgar nesse server tambйm, uaheuhaeuhaeahe!");
    				PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
    				Kick(playerid);
  				}
  				GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  				format(string, 128, "[SISTEMA]: [%d]%s tentou divulgar: %s.",playerid,playername,result);
				ABroadCast(COLOR_YELLOW,string,1);
				DivulgouLog(string);
        		cdivulgar[playerid] += 1;
        		return 1;
			}
            if(PlayerInfo[playerid][pVIP] == 1)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "[SISTEMA] Relatуrio VIP de %s - ID[%d]: %s [BPH]", sendername, playerid, lol, (result));
				ABroadCast(0x33FF00FF,string,1);
				SendClientMessage(playerid, COLOR_RED, "[SISTEMA] Relatorio enviado aos admins no atendendo /admins!");
            }
            else if(PlayerInfo[playerid][pVIP] == 2)
            {
                new lol;
                lol = PlayerInfo[playerid][pVIP];
                format(string, sizeof(string), "[SISTEMA] Relatуrio Premium de %s - ID[%d]: %s [BPH]", sendername, playerid, lol, (result));
				ABroadCast(0x33FF00FF,string,1);
				SendClientMessage(playerid, COLOR_RED, "[SISTEMA] Relatorio enviado aos admins no atendendo /admins!");
            }
            else
            {
				format(string, sizeof(string), "[SISTEMA] Relatуrio de %s(%d): %s [BPH]", sendername, playerid, (result));
				ABroadCast(0xFFFF66FF,string,1);
				SendClientMessage(playerid, COLOR_RED, "[SISTEMA] Relatorio enviado aos admins no atendendo /admins!");
			}
		}
	    return 1;
	}
Reply
#2

Comeзo do GM
Quote:

new RelatorioTick[MAX_PLAYERS];
new TickCounter;

na public OnPlayerConnect
Quote:

RelatorioTick[playerid] = -100;

Dentro do Comando
Quote:

if(TickCounter - RelatorioTick[playerid] < 30) return SendClientMessage(playerid,-1,"Vocк sу pode enviar um relatorio a cada 30 Segundos");
RelatorioTick[playerid] = TickCounter;

Edite da forma que quiser a mensagem, cor e os segundos..
Espero que tenha ajudado..
Reply
#3

Desculpe, nгo li a sua mensagem direito, mude o
Quote:

if(TickCounter - RelatorioTick[playerid] < 30) return SendClientMessage(playerid,-1,"Vocк sу pode enviar um relatorio a cada 30 Segundos");

para
Quote:

if(TickCounter - RelatorioTick[playerid] < 60) return SendClientMessage(playerid,-1,"Seja mas especifico em seus relatorios, vocк sу pode manda-lo de 1 em 1 Minuto.");

Reply
#4

mals pela demora da resposta mas, Funcionou vlw ae
Reply
#5

Pts, acabei de perceber que o cara sу consegue mandar /relatorio 1 vez na vida, kkk
dps so qndo reiniciar o server
tem como arrumar ?
Reply
#6

pawn Код:
//Inicio do GM
new bool:JaMandouRelatorio[MAX_PLAYERS];

//Em OnPlayerConnect
JaMandouRelatorio[playerid] = false;

//No Comando
if(JaMandouRelatorio[playerid] == true)
    return SendClientMessage(playerid, -1, "Vocк sу pode mandar relatorio 1 em 1 Minuto");
JaMandouRelatorio[playerid] = true;
SetTimerEx("LiberarRelatorio", 60000*60, false, "i", playerid);


//Qualquer lugar do GM
forward LiberarRelatorio(playerid); public LiberarRelatorio(playerid) JaMandouRelatorio[playerid] = false;
Ta ai
Reply
#7

O mesmo problema, so consigo mandar o 2 relatorio dps so qndo reiniciar o server
Help-me
Reply
#8

Quote:
Originally Posted by FPB_Lipos
Посмотреть сообщение
O mesmo problema, so consigo mandar o 2 relatorio dps so qndo reiniciar o server
Help-me
Vocк testou corretamente?
Colocou corretamente no Comando?
Fez tudo certo?

Porque nгo achei erros no cуdigo que te passei .
Reply
#9

Sim, fiz certinho, quando compilei nao deu erros tambem, mas qndo fui testar IN-GAME mandei /relatorio
blz
mandei de novo /relatorio
falo: Vocк sу pode mandar relatorio 1 em 1 Minuto
Blz
esperei 2 min mandei /relatorio
Falo: Vocк sу pode mandar relatorio 1 em 1 Minuto
e fiz tudo certo
Reply
#10

PHP код:
if(strcmp(cmd"/relatorio"true) == || strcmp(cmd"/relato"true) == 0)
         new 
RelatTimer[MAX_PLAYERS];
    {
        if(
IsPlayerConnected(playerid))
        {
            if(
gPlayerLogged[playerid] == 0)
            {
                
SendClientMessage(playeridCOLOR_GREY"Vocк nгo estб logado!");
                return 
1;
            }
                if(
RelatTimer[playerid] > gettime()) return SendClientMessage(playerid, -1"[ERRO] Aguarde 1 minuto para usar o relatorio novamente!");
                
RelatTimer[playerid] = gettime() + 60;
            
GetPlayerName(playeridsendernamesizeof(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(playeridCOLOR_GRAD2"USE: /relatorio [texto]");
                return 
1;
            }
            if(
TentouDivulgar(result))
            {
                  if(
cdivulgar[playerid] >= 3)
                  {
                    
SendClientMessage(playeridCOLOR_LIGHTBLUE,"Aqui vocк nгo pode anunciar servidores!");
                    
SendClientMessage(playeridCOLOR_LIGHTBLUE,"Seu servidor й uma merda, nгo divulgue-o aqui!");
                    
SendClientMessage(playeridCOLOR_LIGHTBLUE,"Seu noob peguei esse IP e vou divulgar nesse server tambйm, uaheuhaeuhaeahe!");
                    
PlayerPlaySound(playerid11330.00.00.0);
                    
Kick(playerid);
                  }
                  
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
                  
format(string128"[SISTEMA]: [%d]%s tentou divulgar: %s.",playerid,playername,result);
                
ABroadCast(COLOR_YELLOW,string,1);
                
DivulgouLog(string);
                
cdivulgar[playerid] += 1;
                return 
1;
            }
            if(
PlayerInfo[playerid][pVIP] == 1)
            {
                new 
lol;
                
lol PlayerInfo[playerid][pVIP];
                
format(stringsizeof(string), "[SISTEMA] Relatуrio VIP de %s - ID[%d]: %s [BPH]"sendernameplayeridlol, (result));
                
ABroadCast(0x33FF00FF,string,1);
                
SendClientMessage(playeridCOLOR_RED"[SISTEMA] Relatorio enviado aos admins no atendendo /admins!");
            }
            else if(
PlayerInfo[playerid][pVIP] == 2)
            {
                new 
lol;
                
lol PlayerInfo[playerid][pVIP];
                
format(stringsizeof(string), "[SISTEMA] Relatуrio Premium de %s - ID[%d]: %s [BPH]"sendernameplayeridlol, (result));
                
ABroadCast(0x33FF00FF,string,1);
                
SendClientMessage(playeridCOLOR_RED"[SISTEMA] Relatorio enviado aos admins no atendendo /admins!");
            }
            else
            {
                
format(stringsizeof(string), "[SISTEMA] Relatуrio de %s(%d): %s [BPH]"sendernameplayerid, (result));
                
ABroadCast(0xFFFF66FF,string,1);
                
SendClientMessage(playeridCOLOR_RED"[SISTEMA] Relatorio enviado aos admins no atendendo /admins!");
            }
        }
        return 
1;
    } 
Testa ae
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)