Tankanzeige ändern von 1 Liter auf 1.00

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
  • Beitrag zum Thread verschoben.


    Ziel:
    Aus einer ganz normalen Liter anzeige eine Anzeige mit nach Komma stellen erstellen.


    Code
    if((newstate == PLAYER_STATE_DRIVER) || (newstate == PLAYER_STATE_PASSENGER))
    	{
    	    new vid = GetPlayerVehicleID(playerid);
    		new string[128], modelid = GetVehicleModel(GetPlayerVehicleID(playerid)), idx = modelid-400;
    		format(string, sizeof(string), "%d/%dLiter", vehData[vid][e_fuel],vehDefaultData[idx][e_maxFuel]);
      		PlayerTextDrawSetString(playerid, textdraw[5][playerid], string);
    	}


    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Naja, einfach aus %d im format überall %.02f machen :)


    Und eben entsprechend den Typ der Variable dann auf Float: ändern.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • e_fuel muss im enum als Float deklariert werden.


    Dann muss die Tankanzeige wie im großen Code in Zeile 25 mit %0.2f gemacht werden.


    Anschließend musst du die Stellen anpassen, an denen Tankwerte gesetzt werden, je nach dem, welche Werte du dann da neu haben willst (mit Kommazahlen?).


    Zusätzlich musst du folgende Abfragen (und ähnliche) anpassen:
    if(vehData[vehicleid][e_fuel] < 1)
    auf:
    if(vehData[vehicleid][e_fuel] <= 0)


    Da sonst ab 0.99 bereits der Tank leer wäre.

  • Wurde als Float deklariert.
    Die Tankzeige auf Float angepasst.


    Da irgendwie aus - und - ein + wird kriege ich die ganze Zeit alle 6 Sekunden 1 Liter dazu
    Ich will aber das er 0.01 Liter abzieht.


    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ist getan, er zieht es korrekt ab aber,


    aber weil:
    es funktioniert, speichern tut auch alles.
    Nur wenn ich nicht im Fahrzeug wird beim Nächten eigentlichen Abzug das Fahrzeug ausgeschaltet.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Also wenn das ganz über VEHICLE läuft.
    Wenn ich nicht im Fahrzeug bin und der Motor an ist, und eigentlich ja Tank abgezogen werden soll geht der Motor aus


    Bin ich aber im Fahrzeug geht es.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Code
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    	{
    		new vehicleid = GetPlayerVehicleID(playerid);
    		if(vehData[vehicleid][e_fuel] == -1)
    		{
    			new idx = GetVehicleModel(vehicleid) - 400;
    			vehData[vehicleid][e_fuel] = vehDefaultData[idx][e_maxFuel];
    		}
    	}

    Ich hab einmal diesen Code der in meinen Augen einfach nur den Tank füllt (?)
    Ansonsten gibt es nichts




    Hier wird doch der Motor aus gemacht?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Einmal editiert, zuletzt von Jameso ()