[Ajuda] Esperar para realizar comando novamente.
#1

Olб, meu povo. Tф escrevendo um comando estilo /heal [ID] mas nгo tenho experiкncia com programaзгo. Atй agora tб funcionando direitinho, mas nгo consigo colocar um tempo para esperar atй poder usar o comando novamente. Nenhum dos tutoriais e tуpicos com pessoas pedindo a mesma coisa deu certo aqui.

Eis o meu cуdigo:

Код:
CMD:medkit(playerid, params[])
	{
		new targetid;
    	
		if(class[playerid]!=0)
		return SendClientMessage(playerid,COLOR_RED,"[ You must to be ASSAULT to heal players. ]");
		if(sscanf(params, "u", targetid))
		return SendClientMessage(playerid, COLOR_RED, "Syntax: /medkit [id]"); // syntax
  		if(targetid == INVALID_PLAYER_ID)
		return SendClientMessage(playerid, COLOR_RED, "That player is not connected to the server!"); // valid id

		else if(targetid == playerid)
		{
		SendClientMessage(playerid, COLOR_BLUE, "You healed youself!");
		SetPlayerHealth(playerid,100); // yourself
		
		return 1;
		}
		
  		else if(GetDistanceBetweenPlayers(playerid, targetid) > 5.00)
	  	return SendClientMessage(playerid, COLOR_RED, "That player is too far away!"); // in order to check if they are closely
			else
			{
			new Float:hp;
		    	GetPlayerHealth(targetid,hp);
		    	if(hp>=100) return SendClientMessage(playerid,COLOR_RED,"[ The player has full health. ]");
		    	else
		    	{
            	         	SetPlayerHealth(targetid,100);
				SendClientMessage(playerid,COLOR_BLUE,"[ You healed the player. ]");
				SendClientMessage(targetid,COLOR_BLUE,"[ An ASSAULT player has healed you. ]");

				return 1;
				}
			}
   }
Se ainda ficou difнcil para alguйm entender, eu quero que o player realize o comando e tenha que esperar 1 minuto para conseguir fazer de novo.

Obrigado
Reply
#2

Sу usar gettime.

https://forum.sa-mp.com/showpost.php...62&postcount=2
Reply
#3

Pois й, meu brother. Se puder dar uma ajuda ai sobre como fazer isso. Tudo o que eu fiz deu erro. :/

Enquanto isso vou dar uma olhada nos tutoriais de GetTime.
Reply
#4

Quote:
Originally Posted by doutorgori
Посмотреть сообщение
Pois й, meu brother. Se puder dar uma ajuda ai sobre como fazer isso. Tudo o que eu fiz deu erro. :/

Enquanto isso vou dar uma olhada nos tutoriais de GetTime.
Vocк chegou a olhar o link que te enviei?
Reply
#5

Olhei sim, mano. Me tira uma dъvida aqui.

Код:
if(gettime() - TempoComando[playerid] < 20)     
return SendClientMessage(playerid, 0xFF0000FF, "Vocк tem que esperar 20 segundos para poder usar o comando novamente !");
Essa parte ai acima eu coloco assim que usar o comando. Vai checar se o tempo ta correndo e impedir caso ainda nгo tenha dado o tempo pra usar o comando novamente.

Код:
TempoComando[playerid] = gettime();
E essa parte acima eu devo colocar caso ele consiga usar o comando? Nesse caso pra comeзar a contar o tempo pra usar o comando de novo?
Reply
#6

Vou te ensinar como й.

Criamos a variбvel:
PHP код:
new tempoComando[MAX_PLAYERS]; 
Resetamos a variбvel:
PHP код:
public OnPlayerConnect(playerid) {
    
tempoComando[playerid] = 0;
    return 
1;

Definimos o tempo (em segundos):
PHP код:
tempoComando[playerid] = gettime() + 60
Fazemos entгo a verificaзгo:
PHP код:
if(tempoComando[playerid] > gettime()) return SendClientMessage(playerid, -1"Espere 60 segundos para enviar o comando novamente."); 
Simples assim.
Reply
#7

Muito obrigado. Sу faltou eu resetar no OnPlayerConnect
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)