Tacho bleibt auf 0 Kmh

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
  • Hei, mein tacho bleibt dauernd bei 0 km/h und der Zustand wird garnet angezeigt:



    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 / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    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.
    PlayerTextDrawSetString(i, Tacho2[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
    PlayerTextDrawShow(i, Tacho2[i]);
    new vehicle;
    vehicle = GetPlayerVehicleID(i);
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]);
    new Float:zustand,Float:zustand2;
    new Zustandstring[20];
    zustand = zustand2/10;
    format(Zustandstring, sizeof(Zustandstring), "Zustand: %d", floatround(zustand));
    GetVehicleHealth(vehicle, zustand);
    PlayerTextDrawSetString(i, Tacho3[i], Zustandstring);
    }
    else
    {
    PlayerTextDrawHide(i, Tacho2[i]);
    }
    }
    return 1;
    }

  • ok ich teste eben


    //Edit KM/H Klappt aber sonst ist nichts
    der Zustand nicht und Fahrzeugname+Box
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    PlayerTextDrawSetString(playerid, Tacho0[playerid], VehicleName[GetPlayerVehicleID(playerid)-400]);
    PlayerTextDrawShow(playerid, Tacho0[playerid]);
    PlayerTextDrawShow(playerid, Tacho1[playerid]);
    PlayerTextDrawShow(playerid, Tacho3[playerid]);
    PlayerTextDrawShow(playerid, Tacho4[playerid]);
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    PlayerTextDrawHide(playerid, Tacho0[playerid]);
    PlayerTextDrawHide(playerid, Tacho1[playerid]);
    PlayerTextDrawHide(playerid, Tacho3[playerid]);
    PlayerTextDrawHide(playerid, Tacho4[playerid]);
    return 1;
    }

  • PlayerTextDrawSetString(playerid, Tacho0[playerid], VehicleName[GetPlayerVehicleID(playerid)-400]);


    Man, Man, Man ;) VehicleID


    versuche es mal so:



    new VName[64];
    format(VName,sizeof(VName),"Fahrzeug: %s",VehicleName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(Tacho[0],VName);

  • Mach doch das komplette ding in TachoTimer statt Teils in TachoTimer und anzeigen im "onplayerentervehicle"


    also ich meine es so: (Mein Tacho ist so aufgebaut und funktioniert perfekt)

    public UpdateTacho()
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsPlayerNPC(i))
    {
    // FAHRZEUGNAME
    //SPEED
    //ZUSTAND
    //TANK
    //ANZEIGE
    TextDrawShowForPlayer(i,FName[i]);
    TextDrawShowForPlayer(i,Speed[i]);
    TextDrawShowForPlayer(i,Zustand[i]);
    TextDrawShowForPlayer(i,Tank[i]);
    }
    else
    {
    TextDrawHideForPlayer(i,Speed[i]);
    TextDrawHideForPlayer(i,Zustand[i]);
    TextDrawHideForPlayer(i,Tank[i]);
    TextDrawHideForPlayer(i,FName[i]);
    }
    }
    return 1;
    }

  • Danke alles auser Zustand Klappt:



    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 / (TACHOTIMER/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    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.
    PlayerTextDrawSetString(i, Tacho2[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
    PlayerTextDrawShow(i, Tacho2[i]);
    new vehicle, Tanks[48];
    format(Tanks, sizeof(Tanks), "Tank: %d", Tank[vehicle]);
    PlayerTextDrawSetString(i, Tacho4[i], Tanks);
    vehicle = GetPlayerVehicleID(i);
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]);
    new Float:zustand,Float:zustand2;
    new Zustandstring[20];
    zustand = zustand2/10;
    format(Zustandstring, sizeof(Zustandstring), "Zustand: %d", floatround(zustand2));
    GetVehicleHealth(vehicle, zustand);
    PlayerTextDrawSetString(i, Tacho3[i], Zustandstring);
    new VName[64];
    format(VName,sizeof(VName),"Fahrzeug: %s",VehicleName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    PlayerTextDrawSetString(i, Tacho0[i], VName);
    PlayerTextDrawShow(i, Tacho0[i]);
    PlayerTextDrawShow(i, Tacho1[i]);
    PlayerTextDrawShow(i, Tacho3[i]);
    PlayerTextDrawShow(i, Tacho4[i]);
    }
    else
    {
    PlayerTextDrawHide(i, Tacho2[i]);
    }
    }
    return 1;
    }