Am Ende der Zeile 33 sollte sicherlich ein Semikolon stehen
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Am Ende der Zeile 33 sollte sicherlich ein Semikolon stehen
Gleicher Error besteht leider weiterhin.
-
mysql_log(LOG_ALL);else print(">> [MYSQL]: Die Verbindung zur Datenbank konnte NICHT erfolreich hergestellt werden. Der Server wird nun heruntergefahren."),
Mach mal das else eine Zeile drunter.
-
Mach mal das else eine Zeile drunter.
Der Fehler ist es darf zwischen einem if und einem else kein Statement stehen.
Sprich:
C//Das okay if(a) {...bla} else {...bla} //Das nicht okay if(a) {...bla} Funktion(); else {...bla} //Weil worauf bezieht sich jetzt das else?!
Also so schreiben:C
Alles anzeigenpublic OnGameModeInit() { SetGameModeText("The new Generation of Roleplay!"); mysql_log(LOG_ALL); Handle=mysql_connect(mysql_host, mysql_user, mysql_data, mysql_pass); if(mysql_errno() < 1) print(">> [MYSQL]: Die Verbindung zur Datenbank wurde erfolgreich hergestellt."); else print(">> [MYSQL]: Die Verbindung zur Datenbank konnte NICHT erfolreich hergestellt werden. Der Server wird nun heruntergefahren."), SendRconCommand("exit"); return 1; }
-
Hey,
Kurze frage...
Wie kann ich den Verbrauch auf 100km rechnen das heißt.
Ich gehe davon aus das das Fahrzeug einen Verbrauch von 13.1 L bei 100 Kilometer hat.
Wie kann ich das machen das es so abgezeogen wird das es bei 100 Kilometer aufgeht?
Trotzallem Realistisch bleibt.Code
Alles anzeigenpublic OnVehicleTimer(vehicleid) { new model, engine, lights, alarm, doors, bonnet, boot, objective; new i = vehicleid; if(IsValidVehicle(i)) { model = GetVehicleModel(i); if(!IsAFahrrad(model)) { Vehicle[i][vehKMStandCount] += GetDistanceToLastPoint(i); if(Vehicle[i][vehKMStandCount] > 100) { GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective); if(engine == 1){ Vehicle[i][vehKMStand] += 0.1; Vehicle[i][vehKMStandCount] = 0; } } if(Vehicle[i][vehMotor] == true) { if(Vehicle[i][vehFuel] > 0.0) { Vehicle[i][vehTankKM] += GetDistanceToLastPoint(i); if(Vehicle[i][vehTankKM] > 150) { Vehicle[i][vehFuel] -= VehicleData[GetVehicleModel(i)-400][vehTankVerbrauch]/1000; Vehicle[i][vehTankKM] = 0; } SaveVehicleCoords(i); } else if(Vehicle[i][vehFuel] <= 0.0) { Vehicle[i][vehFuel] = 0; Vehicle[i][vehMotor] = false; KillTimer(Vehicle[i][VehicleTimer]); GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(i, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective); for(new j=0;i<GetMaxPlayers();j++) { if(IsPlayerConnected(j)) { if(GetPlayerVehicleID(j) == i) { if(GetPlayerVehicleSeat(j) == 0) { SendClientMessage(j, COLOR_WHITE, "{AFAFAF}Das Fahrzeug hat keinen Tank mehr!"); break; } } } } } } } } return 1; }
Code
Alles anzeigenpublic OnMinuteTimer() { for(new i=0;i<MAX_VEHICLES;i++) { if(IsValidVehicle(i)) { new model, engine, lights, alarm, doors, bonnet, boot, objective; model = GetVehicleModel(i); if(!IsAFahrrad(model)) { if(Vehicle[i][vehMotor] == true) { if(Vehicle[i][vehFuel] > 0.0) { Vehicle[i][vehFuel] -= 0.1; } else if(Vehicle[i][vehFuel] <= 0.0) { Vehicle[i][vehFuel] = 0; Vehicle[i][vehMotor] = false; GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(i, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective); } } } } } return 1; }
-
Vehicle[i][vehKMStand] += 0.1;
Das ist Zeile 15, da hat er also 100m zurückgelegt, da kannst du also Ansetzen mit dem Abziehen:
Das ist einfacher Dreisatz:
100km = 13.1L
1km = 0.131L
//Ergo
1000m = 0.131L
100m = 0.0131L (oder eben 13.1ml)Wir gehen also davon aus, dass Vehicle[i][Verbrauch] = 13.1 ist.
Dann könntest du das in Zeile 16 z.B. einfach so abziehen:
Vehicle[i][vehFuel] -= floatdiv(Vehicle[i][Verbrauch], 1000);
Dann würde er alle 100m 13.1ml verbrauchen.
Wenn das nicht zu frequentiert ist, einfach auf 50 oder 10m gehen.
Einfach mit dem Dreisatz umrechnen
-
Das soll jetzt was heißen?
1km sind 0.131 L
Ok das heißt:
1000 = 1km
wen ich jetzt aber her gehe
mache daraus 10000 = 10 Kilometer Richtig?
Und wen ich 100000 = 100 Kilometer? -
-
Naja der Tankverbrauch ist ja bei jeden Fahrzeug verscheiden ist schon etwas seltsam wen ich da alles umändern muss.
-
Mit Kalibers Quellcode musst du bloß die Variable Verbrauch anpassen pro Fahrzeug, der Rest ist in der Rechnung berücksichtigt
-
Naja der Tankverbrauch ist ja bei jeden Fahrzeug verscheiden ist schon etwas seltsam wen ich da alles umändern muss.
Musst du doch nicht.
Ich habe dir doch die Formel gegeben:
Vehicle[i][vehFuel] -= floatdiv(Vehicle[i][Verbrauch], 1000);
Egal was der Verbrauch ist (solange du ihn in L auf 100km angibst) wird der so umgerechnet, dass alle 100m das richtige abgezogen wird.
-
Vehicle[i][vehFuel] -= floatdiv(Vehicle[i][vehTankVerbrauch], 1000); //74991
Muss ich das floatdiv nutzen? -> vehTankVerbrauch wird als Float:vehTankVerbrauch definiert.
C:\Users\User\Desktop\Selfmade\gamemodes\German.pwn(74991) : warning 213: tag mismatch
-
Wenn ich es richtig Verstanden habe, dann sollst du dir für jedes Fahrzeug, ein realistischen Verbrauch ausdenken, deklarieren & die Rechnungsmethode von Kaliber nutzen, es sollte dann automatisch bei jeden gefahrenen 100 Meter, so viel abziehen, dass du auf deine Rechnung kommst.
-
Muss ich das floatdiv nutzen? -> vehTankVerbrauch wird als Float:vehTankVerbrauch definiert.
Und vehFuel ist auch ein Float?
Wenn ja, dann evtl mal so schreiben:
Vehicle[i][vehFuel] -= floatdiv(Vehicle[i][vehTankVerbrauch], 1000.0);
-
Mal ne klitze kleine Frage zur Pawn Syntax.
Also wenn ich etwas als "Float" deklarieren soll, dann muss ich das F ja auch groß schreiben.
Aber wenn ich float klein schreibe, dann wird es mir Blau gefärbt & ich kriege eine Warnung dass ich es falsch verwende.. was steckt dahinter? -
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Musste Vehicle zu Vehicledata umändern logischerweise weil da die verbrauche definiert sind. (). -
Aber wenn ich float klein schreibe, dann wird es mir Blau gefärbt & ich kriege eine Warnung dass ich es falsch verwende.. was steckt dahinter?
In der PAWN Syntax gibt es viele Relikte von Keywords
Wie private, float, class, auto, struct, ....
Diese kommen von der Sprache C.
Allerdings haben diese Keywords nicht zwingend eine Bedeutung bzw sind in die Sprache implementiert.
Dass diese als Keywords angezeigt werden, hat also keine Bedeutung.
Allerdings ist float in diesem Fall wirklich eine Funktion: https://wiki.sa-mp.com/wiki/Float
Diese verwandelt Integer (also ganze Zahlen) in Floats
-
Moin,
bin iwi total durch und kriege es nicht gebacken diesen komplett simplen Timer zu basteln.
Server[Sekunden]--;
if(Server[Sekunden]<=0)
{
Server[Minuten]--;
//if(Server[Sekunden]<=0 && Server[Minuten]!=0){Server[Sekunden]=59;}
if(Server[Minuten]<=0)
{
Server[Minuten]=0;
if(Server[Sekunden]<=0)
{
// Ende
}
}
else
{
Server[Minuten]=0;
Server[Sekunden]=59;
}
} -
bin iwi total durch und kriege es nicht gebacken diesen komplett simplen Timer zu basteln.
Mach es dir nicht so kompliziert:
-
Kaliber das letzte wusste ich doch
Okay aber danke wegen der Syntax Information.