Esperar para realizar comando novamente. -
doutorgori - 12.11.2018
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
Re: Esperar para realizar comando novamente. -
ipsLuan - 12.11.2018
Sу usar
gettime.
https://forum.sa-mp.com/showpost.php...62&postcount=2
Re: Esperar para realizar comando novamente. -
doutorgori - 12.11.2018
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.
Re: Esperar para realizar comando novamente. -
ipsLuan - 12.11.2018
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?
Re: Esperar para realizar comando novamente. -
doutorgori - 12.11.2018
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?
Re: Esperar para realizar comando novamente. -
ipsLuan - 12.11.2018
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.
Re: Esperar para realizar comando novamente. -
doutorgori - 12.11.2018
Muito obrigado. Sу faltou eu resetar no OnPlayerConnect