Hi,
ich würde gerne einen befehl machen, den mann nur alle 30min eingeben kann!
z.b. /reparieren
den soll man nur alle 30min eingeben können!
Wie macht man das kann mir da jemand helfen?
Nur mal so bin noch anfänger
Hi,
ich würde gerne einen befehl machen, den mann nur alle 30min eingeben kann!
z.b. /reparieren
den soll man nur alle 30min eingeben können!
Wie macht man das kann mir da jemand helfen?
Nur mal so bin noch anfänger
Bin grad in der Schule und kann leider grad ned richtig testen, ob der Befehl funktioniert, sollte aber
#define MAX_REPAIR_TIME 30 //Einheit in Minuten
new gRepairTime;
public OnGameModeInit()
{
gRepairTime = gettime();
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext,"/reparieren", false))
{
new string[128];
if((gettime()-gRepairTime) < (MAX_REPAIR_TIME * 60))
{
format(string,sizeof(string)," Diesen Befehl können Sie erst in %.0f Minuten...", floatsub(MAX_REPAIR_TIME, floatdiv(gettime()-gRepairTime)));
return SendClientMessage(playerid,COLOR_GREY,string);
}
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_GREY," Du sitzt in keinem Fahrzeug...");
new vehicleid = GetPlayerVehicleID(playerid);
RepairVehicle(vehicleid);
SetVehicleHealth(vehicleid, 1000);
return SendClientMessage(playerid,COLOR_GREEN,"* Fahrzeug repariert...");
}
}
Ich würde eher Gettickcount empfehlen, dS ist meiner Meinung nach zuverlässiger
Bitte sag mir was zuverlässiger an GetTickCount ist im Gegensatz zu gettime...
Ich finde es ist einfacher damit zu rechnen,
ma muss nur die Milisekunden umrechnen, arbeite persönlich lieber damit
Jeder hat einen anderen Scriptstil.
Ich selber würde es genauso wie Templer machen.
Müsste die Repairzeit nicht Spieler bezogen sein, denn so kann, wenn einer den Befehl genutzt hat, den Befehl 30 Minuten lang nicht nutzen,
Das ist glaub ich nicht sinn der Sache^^