Fahrzeug KM-Stand Include Problem

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
  • Hey,
    Ich habe hier ein Include, dass ich benutzen will, um den KM-Stand eines Fahrzeuges zu ermitteln. (bzw. soll er mir dies in eine Vehicle Data Variable speichern)


    Folgendes Include wird genutzt:
    https://forum.sa-mp.com/showthread.php?t=404367



    So habe ich versucht es anzuwenden:

    C
    if((newstate == PLAYER_STATE_DRIVER) || (newstate == PLAYER_STATE_PASSENGER))
    	{
            new string[32], idx = GetVehicleModel(GetPlayerVehicleID(playerid)) - 400;
            vehData[idx][e_km] += GetKilometers(idx);
    		format(string, sizeof(string), "%0.2f", vehData[idx][e_km]);
    		PlayerTextDrawSetString(playerid, textdraw[11][playerid], string);
    	}


    Allerdings passiert nichts, was mache ich falsch, oder habe ich was übersehen?

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

  • Das speichert den Wert ja so in einer Datenbank und ich will da nichts drum rum bearbeiten, nicht das ich was falsches Lösche.
    Vor allem, weil der Timer beim OnGameModeInt gesetzt wird, das verstehe ich nicht.
    Gibt es keine andere Lösung, die für mich einfacher ist :D


    //Edit - Eigenes "include" ins Gamemode packen



    Hoffe ihr könnt mir helfen, den Timer public zu füllen, ich habe echt keinen Plan...
    Unten steht die Km Variable zum anzeigen und speichern. Hoffe habe keine Informationen vergessen.



    C
    SetTimer("KMCounter", 4500, true); //OnGameModeInit



    C
    forward KMCounter();
    public KMCounter()
    {
    	return 1;
    }


    C
    if((newstate == PLAYER_STATE_DRIVER || (newstate == PLAYER_STATE_PASSENGER))
    	{
    	    new vehicleid = GetVehicleModel(GetPlayerVehicleID(playerid)) - 400;
    		UpdateVehicleKM(playerid, vehicleid);
    	}
    C
    stock UpdateVehicleKM(playerid, vehicleid)
    {
    	new string[32];
    	format(string, sizeof(string), "%0.2f", vehData[vehicleid][e_km]);
    	PlayerTextDrawSetString(playerid, textdraw[11][playerid], string);
    	return 1;
    }
    
    
    //Km Anzeigen lassen

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

    Einmal editiert, zuletzt von Jameso ()

  • So habe ich versucht es anzuwenden:

    C
    if((newstate == PLAYER_STATE_DRIVER) || (newstate == PLAYER_STATE_PASSENGER))
    	{
            new string[32], idx = GetVehicleModel(GetPlayerVehicleID(playerid)) - 400;
            vehData[idx][e_km] += GetKilometers(idx);
    		format(string, sizeof(string), "%0.2f", vehData[idx][e_km]);
    		PlayerTextDrawSetString(playerid, textdraw[11][playerid], string);
    	}

    Allerdings passiert nichts, was mache ich falsch, oder habe ich was übersehen?

    Ja, schau mal du nutzt idx nicht als vehicleid sonder als Model!?
    Das bedeutet jedes Modell hat den selben Kilometer!?


    Ich meine laut dem Include brauchst du auch die vehicleid siehe:

    GetKilometers(vehicleid);...............Checks the distance traveled in kilometers


    und das mit vehData wird wahrscheinlich auch über vehicleid laufen, bzw. sollte?
    falls nicht bitte ich mal um erklärung damit ich das nachvollziehen kann. :D
    Mfg. Mogly1


    Also sollte es doch eifnach nur so sein

    idx = GetPlayerVehicleID(playerid);

    und dann sollte das gehen oder nicht :P ?

  • Kann das Include nicht benutzten (eDistance), weil dies komplett nur für ein Fahrzeug gedacht ist. Dies hatte Jeffry mal herausgefunden.


    Aber du hast Recht!
    Ich hatte mich vertauscht mit VehData und VehDefaultData da brauchte ich nämlich das Model, Vollidiot... :D


    Also:
    - Problem gelöst - Include funktioniert.

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

    Einmal editiert, zuletzt von Jameso ()