Meter werden einfach dazu gezählt

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 in meinem Tacho jetzt noch eine Meter/KM anzeige hinzugefügt, aber dort werde einfach immer mehr Meter dazu gezählt ob wohl ich das fahrzeug gar nicht bewege :O bitte helft mir :/


    Code:


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit, vehids = GetPlayerVehicleID(i);// Die definierten Floats die mit den Werten gefüttert werden
    new m = GetDistanceToLastPoint(vehids);
    CarInfo[vehids][aMeter]+=m;
    CarInfo[GetPlayerVehicleID(i)][aKM] = CarInfo[GetPlayerVehicleID(i)][aMeter]/500;
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2)); //Berechnung der Entfernung
    Geschwindigkeit = (Entfernung / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[125];
    format(Tachostring, sizeof(Tachostring), "Km/h: %d~n~Benzin: %dL/%dL~n~Besitzer: %s~n~KM: %d", floatround(Geschwindigkeit), CarInfo[vehids][aBenzin],CarInfo[vehids][aMBenzin],CarInfo[vehids][aBesitzer],CarInfo[vehids][aMeter]/500);
    TextDrawSetString(Tacho[i], Tachostring);
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    if(CarInfo[GetPlayerVehicleID(i)][aKM] == 20)
    {
    CarInfo[GetPlayerVehicleID(i)][aBenzin]--;
    CarInfo[GetPlayerVehicleID(i)][aKM] = 0;
    }
    }
    return 1;
    }

  • hey,



    hier ist die Funktion :


    stock GetDistanceToLastPoint(vehicleid)
    {
    new Float:x2, Float:y2, Float:z2, Float:output;
    GetVehiclePos(vehicleid, x2, y2, z2);
    output = floatsqroot(floatpower(floatabs(floatsub(x2, Xv[vehicleid])), 2)+floatpower(floatabs(floatsub(y2, Yv[vehicleid])), 2)+floatpower(floatabs(floatsub(z2, Zv[vehicleid])), 2));
    return floatround(output);
    }

  • Hi


    Und da haben wir schon den Fehler ;)


    Oder wo nimmst du die Posis Xv, Yv und Zv her?


    Wenn garnicht, dann machs in den tachotimer ;)
    Oder benutze am besten X2, Y2 und Z2, da du diese Posis ja sowieso schon für das Tacho brauchst und diese Lokal definiert sind. Ist rescourcensparender :D


    MFG, Robdeflop®