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;
}