04.08.2017, 14:36
Quote:
Cum ma folosesc de un timer la o comanda care sa fie accesata doar la un anumit timp?
|
De fiecare data cand un player foloseste comanda, variabila aia ia valoarea 1 si timerul porneste.
Cand timerul se termina, variabila ia din nou valoarea zero.
Practic inainte sa dai instructiunile comenzii, trebuie sa verifici valoarea acelei variabile.
PHP код:
new index[MAX_PLAYERS] = 0;
forward blockcommand();
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/help", true))
{
if(index[playerid] == 0) //verifici daca variabila are 0
{
//pui aici ce sa faca comanda
index[playerid] = 1; //pui valoarea 1 la index la sfarsit. cand comanda va fi data din nou, va reiesi ca indexul este 1, deci comanda va fi blocata.
SetTimer("blockcommand", 45000, false); //setezi timerul sa inceapa. Eu l-am pus la 45 de secunde
}
else //daca variabila nu are valoarea zero
{
SendClientMessage(playerid, -1, "trebuie sa mai treaca timp"); // trimiti un mesaj in care ii spui playerului ca nu poate folosi comanda.
return 1;
}
}
}
public blockcommand()
{
index[playerid] = 0; //cand timerul termina de numarat, indexul trebuie sa ia valoarea 0.
}