Tacho läuft nicht Flüssig sondern in Sprüngen

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
  • Ja hallo com ich habe mir einen Tacho gesfriptet doch er läuft nicht so wie ich will,
    ich hätte gerne das er die ganze zeit steigt oder jenachdem fällt also immr genau ist und nicht immer ganz kleine pasuen hat und dan mal auf eine Hohe zahl springt und dann auf eine niedriegere zahl obwohl ich gas gebe ich hoffe ihr
    könnt mir helfen?


    Hier mal die berechnung und der Timer


    Timer

    Code
    SetTimer("UpdateSpeedo",200,1);


    Die Berechnung

    Code
    GetPlayerPos(i, xfloat, yfloat, zfloat);
                    distance = floatsqroot(floatpower(floatabs(floatsub(xfloat,TachoX[i])),3)+floatpower(floatabs(floatsub(yfloat,TachoY[i])),3)+floatpower(floatabs(floatsub(zfloat,TachoZ[i])),3));
                    value = floatround(distance * 11000);
                    TachoX[i] = xfloat;
                    TachoY[i] = yfloat;
                    TachoZ[i] = zfloat;


    Und hier wies es angezeigt wird

    Code
    format(speed,sizeof(speed),"Km/H: %d",floatround(value/3200));


    MFG uzii

  • okay das ist gut aber er bleibt jetzt so immer auf 0 stehen und springt immer ganz schnell auf andere zahlen ist meistens aber auf also er rechtnet nicht wirklich durchgehend hoch sondern springt jetzt immer ganz schnell zwischen den zahlen

  • habe immer noch diese riesen sprünge drin


    Gegen die Sprünge war das auch nicht gedacht ^^ war nur zum "logischen Aufbau" des Codes.


    Das geht leider nicht mit kleineren Zahlen (im Timer) ohne diese Sprünge. Du musst es schon auf 200 lassen :P


    Soweit ich weiß, kann man ein Flüssiges Tachometer mit GetVehicleVelocity ercoden :huh:


  • Da stell ich mir doch immer die Frage:
    Wie kann man mit dieser Methode eine KM/H Zahl rausbekommen? :D

  • jetzt habe ich es so jetzt ist das aber ganz komisch :D


    Code
    new Float:Velocity[3];
    		GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
    		GetVehiclePos(vehicleid, xfloat, yfloat, zfloat);
                    distance = floatsqroot(floatpower(floatabs(floatsub(Velocity[0],TachoX[i])),3)+floatpower(floatabs(floatsub(Velocity[1],TachoY[i])),3)+floatpower(floatabs(floatsub(Velocity[2],TachoZ[i])),3));
                    value = floatround(distance * 11000);
                    TachoX[i] = xfloat;
                    TachoY[i] = yfloat;
                    TachoZ[i] = zfloat;
                    format(speed,sizeof(speed),"Km/H: %d",floatround(value/3200));
  • Code
    stock GetPlayerSpeed(playerid)
    {
        new Float:ST[4];
        if(IsPlayerInAnyVehicle(playerid))
        GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
        else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
        ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
        return floatround(ST[3]);
    }


    #Brotfischbaron


    In schā'a llāh