Hey Leute also ich möchte das leute mit dem Beruf "Farmer" nur alle 60 minuten /ernten eingeben können und so Geld verdienen
Das hab ich so gelöst
Code
if(strcmp(cmd, "/ernten", true) == 0){ if(PlayerInfo[playerid][pJob] != 6) { SendClientMessage(playerid, COLOR_GRAD1, "Das können nur Farmer!"); return 1; } if(erntetimer[playerid] != 0) //Der spieler hat den Befehl vorher schonmal nicht ausgeführt, denn sonst wäre die variable ja 0 { if( (gettime() - erntetimer[playerid]) < 3600) { // gettime() gibt den aktuellen Timestamp zurück. Das sind die Sekunden vom 1. Januar 1970 00:00 bis jetzt. // erntetimer[playerid] beinhaltet ja den Timestamp des letzten males als der Spieler den befehl erfolgreich genutzt hat. // also ist die Differenz der beiden, die Anzahl an Sekunden zwischen dem letzten ausführen des Befehls und jetzt. // Jetzt kannst du abfragen, ob die zeit lang genug war, oder ob er noch nicht lange genug gewartet hat um den befehl erneut nutzen zu können. // in dem Fall hier habe ich 600 Sekunden (=10 Minuten) genommen. Das musst du nach deinen wünschen ändern. SendClientMessage(playerid, COLOR_GRAD1, "Du musst 60 Minuten zwischen dem Farmen warten"); return 1; } } erntetimer[playerid] = gettime(); // Wir speichern den aktuellen Timestamp in der Variable new vehicle = GetPlayerVehicleID(playerid); if(AktuellerCP[playerid] != INVALID_FARMER_CP)return SendClientMessage(playerid,COLOR_GRAD1, "Du hast kein Mähdrescher!"); if(!FarmerFahrzeug(vehicle))return SendClientMessage(playerid,COLOR_GRAD1, "Du bist in keinem Mähdrescher"); if(PlayerInfo[playerid][pFarmTime] > 0)return SendClientMessage(playerid, COLOR_GRAD1, "Die Pflanzen sind noch nicht gewachsen!"); AktuellerCP[playerid]++; SetPlayerCheckpoint(playerid,FarmerCPS[AktuellerCP[playerid]][0],FarmerCPS[AktuellerCP[playerid]][1],FarmerCPS[AktuellerCP[playerid]][2], 8.0); SendClientMessage(playerid,COLOR_LIGHTBLUE, "*Fahre nun die Checkpoints ab, um das Feld abzuernten."); return 1;}
Nur leider hab ich jetzt keine Ahnung wie ich das anstellen soll das man erst den erntetimer aktiviert wenn man im Mähdrescher sitzt
Man soll also /ernten so oft wie möglich eingeben können(solang man nicht im mähdrescher ist) und wenn man im Mähdrescher drin hockt und /ernten eingibt soll der 60 Minuten timer starten und dem zeitpunkt aus soll man erst wieder nach 60 minuten ernten können