Tacho updatet nicht

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 hab mal nen Tacho editiert.
    Dabei muss ich feststellen, dass die KM/h immer auf 0 bleibt.


    hier der Code:
    forward TachoTimer();
    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit; // Die definierten Floats die mit den Werten gefüttert werden
    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 / (TACHOUPDATE/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    new Tacho2string[30];
    format(Tachostring, sizeof(Tachostring), "Km/h: %d", floatround(Geschwindigkeit)); //Hier das format, was es macht siehe oben im Wiki-Link. floatround rundet die Kommerzahl (Float:Geschwindigkeit) zu einer normalen ganzzahligen zahl, damit wir den Integer %d der für ganze zahlen ist, verwenden können.
    TextDrawSetString(Tacho[i], Tachostring); //Setzt den String für das Textdraw für den Spieler mit der ID "i"
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    }
    return 1;
    }


    oben:
    #define TACHOUPDATE 500


    und unter OnGameModeInit:
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Tacho[i] = TextDrawCreate(516.000000, 360.000000, "KM/h:---");
    TextDrawBackgroundColor(Tacho[i], 255);
    TextDrawFont(Tacho[i], 2);
    TextDrawLetterSize(Tacho[i], 0.320000, 1.000000);
    TextDrawColor(Tacho[i], -1);
    TextDrawSetOutline(Tacho[i], 1);
    TextDrawSetProportional(Tacho[i], 1);
    }
    SetTimer("TachoTimer", TACHOUPDATE, true);


    Lg

  • Setz das Intervall mal lieber auf 1000, man misst ja meter in der sekunde und nicht meter in der halben sekunde.
    Dann kommt na nämlich nur mist raus ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Am besten ist es immer beim OnGameModeInit die TD reinzustellen.


    Und warum das?


    Dann hast du von anfang an 500 Textdraws belegt -> nicht sinnvoll.


    Es reicht vollkommen das in OnPlayerConnect zu machen, man muss es allerdings nicht ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • jo wusste ich nicht, hab mir das Tutorial von Rodelflopi angesehn & das als "Stüzte" genommen, und er hats so gemeistert.