Realistischer Benzinverbrauch

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
  • Klappt alles sehr gut, nur dass beim Motor-Start -0.1 / -0.2 direkt abgezogen werden, obwohl ich nicht mal fahre. ^^


    Das hier passiert, wenn ich den Motor anschalte. <.<

    Code
    Debug 1
    Neuer Tank: 1114610074


    //Edit

    Code
    Debug 1
    Neuer Tank: 29.899999


    Habe mal aus dem "Neuer Tank: %d" = "Neuer Tank: %f" gemacht.
    PS: Das mit dem Neuer Tank was ich gepostet habe, kommt dann wenn ich den Motor starte.
    Ich weiß nicht woran es liegt.
    Habe auch mal "valueOne" mit [MAX_VEHICLES]; verseht. ;)


  • jo da hast oben ja recht ich hab ein kleinen Fehler gemacht ^^ naja hätte mir ja auch klar sein müssen weil du ja dezimalzahlen
    abziehst vom Tank.


    Mal so eine frage was gibt valueOne in dem moment aus und wie viel tank verbrauchst das auto auf 1 km in dem zu hockst

  • Auf 1km = 0.1. ^^
    Mal schauen was valueOne ausgibt. Mom


    //Edit

    if(valueOne[i] > 1000){
    printf("valueOne: %d", valueOne);
    vehFuel[i] -= GetVehicleVerbrauch(i) / 100;
    valueOne[i] = 0;
    printf("Neuer Tank: %f", vehFuel[i]);
    }
    Wenn ich das so habe kommt nur:

    Code
    valueOne: 0
    Neuer Tank: 29.899999


    Also, Car Spawnen -> 1km Fahren. ^^


  • setzt mal die print abfrage vor der Abfrage if(valueOne[i] > 1000){
    hin


    weil das ist schon ziemlich komisch


    aber du hast die variabel
    valueOne als globale varaibel benutzt ?


    kannst es ja mal so testen
    valueOne[MAX_VEHICLES];


    /edit


    sonst kann es ja nur noch an der berechnung liegen


  • new valueOne[MAX_VEHICLES]; // <- Already done .. ;D


    Code
    valueOne: 1003


    Goldkiller
    Ist mir auch aufgefallen, habs eben direkt behoben. ^^


    dann fällt mir nur noch eins ein


    dass fügst du mal bei public OnVehicleSpawn(vehicleid) ein


    valueOne[vehicleid]=0;


    und für die im script erstellten fahrzeuge machst du mal eine for schleife
    bei ongamemodini


    new i;
    for(; i<MAX_VEHICLES; i++) {
    valueOne[i]=0;
    }


    mehr würde mir jetzt auch nicht mehr einfallen
    bei OnVehicleDeath könntest du es auch einschieben wäre jedoch egal
    da OnVehicleSpawn so wieso danach angesteuert wird

  • valueOne[vehicleid] = 0;
    Hab ich auch bereits drin...^^


    dann sollte es so sein wenn du das machst was ich dir hier geschrieben habe.
    Das die ganzen fahrzeuge beim respawnen diesen "bug" nicht haben oder die fahrzeuge die direkt
    vom script erstellt werden also wenn du allein schon beim erstellen deines fahrzeuges die variabel
    auf 0 für das erstellte auto settest sollte der bug nicht mehr existieren. Meine ich dazu.

  • Und jetzt nochmal so, dass ich es verstehe? 8|


    Also. Wenn du die Autos vom Script aus erstellen lässt in OnGameModeInit


    new i;
    for(; i<MAX_VEHICLES; i++) {
    valueOne[i]=0;
    }


    sollte der bug wenn du diesen code dort einfügst nicht mehr für diese Fahrzeuge existieren.


    Wenn du das Auto welches du erstellt hast über ein command sofort respawnst oder zerstörst
    und du hast den code valueOne[vehicleid]=0;
    bei OnVehicleSpawn drinne sollte der bug für das auto auch beseitigt sein. Denk ich jetzt.


    Das kannst du ja mal testen wenn es so ist dann hast du die möglichkeit , wenn du ein fahrzeug erstellst
    diese variabel für das Auto sofort auf 0 zu setzen.

  • Ich hab bei OnVehicleSpawn "valueOne[vehicleid] = 0;" stehen, und in meinen stocks (CreateVehicleEx, AddStaticVehicle_V, AddStaticVehicleEx_V) steht "OnVehicleSpawn" drin.

    stock CreateVehicleEx(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay){
    new vID = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);
    OnVehicleSpawn(vID);
    return vID;
    }


    ;)