Hey,
ich benutze folgendes Tachosystem:
forward VehStateCheck();
public VehStateCheck()
{
new Float:Speedo_X,Float:Speedo_Y,Float:Speedo_Z;
new Float:Speedo_HP;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && GetPlayerVehicleSeat(i) == 0)
{
GetPlayerPos(i, Speedo_X, Speedo_Y, Speedo_Z);
GetPlayerVehicleID(i);
GetVehicleHealth(GetPlayerVehicleID(i), Speedo_HP);
new str1[256],str2[256],str3[256],str4[256];
if(SpeedoON[i] == 0)
{
TextDrawShowForPlayer(i, kmh[i]); TextDrawShowForPlayer(i, hoehe[i]);
SpeedoON[i] = 1;
}
//new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
new veh = GetPlayerVehicleID(i);
//GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
//final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667; // 136.666667 = kmph // 85.4166672= mph
//final_speed_int = floatround(final_speed,floatround_round);
//new kmh_anzahl = final_speed_int;
new kmh_anzahl = ErmittleGeschwindigkeit(i,true);
format(str1,sizeof(str1),"Fahrzeug: ~y~%s",VehicleName[veh-400]);
if(kmh_anzahl >= 150)
{
format(str2,sizeof(str2),"km / h: ~g~%d",kmh_anzahl);
TextDrawSetString(kmh[i], str2);
}
else if(kmh_anzahl >= 90)
{
format(str2,sizeof(str2),"km / h: ~g~%d",kmh_anzahl);
TextDrawSetString(kmh[i], str2);
}
else if(kmh_anzahl >= 40)
{
format(str2,sizeof(str2),"km / h: ~g~%d",kmh_anzahl);
TextDrawSetString(kmh[i], str2);
}
else
{
format(str2,sizeof(str2),"km / h: ~g~%d",kmh_anzahl);
TextDrawSetString(kmh[i], str2);
}
new vehicleid = GetPlayerVehicleID(i);
format(str3,sizeof(str3),"Tank: ~r~%d/100", Tank[vehicleid]);
TextDrawSetString(hoehe[i], str3);
if(Speedo_HP >= 551)
{
format(str4,sizeof(str4),"Zustand: ~g~%.2f", Speedo_HP);
}
else if(Speedo_HP >= 361)
{
format(str4,sizeof(str4),"Zustand: ~y~%.2f", Speedo_HP);
}
else
{
format(str4,sizeof(str4),"Zustand: ~r~%.2f", Speedo_HP);
}
}
else
{
TextDrawHideForPlayer(i, kmh[i]); TextDrawHideForPlayer(i, hoehe[i]);
SpeedoON[i] = 0;
}
}
return 1;
}
Dieser Code: "TextDrawShowForPlayer(i, kmh[i]); TextDrawShowForPlayer(i, hoehe[i]);" wird abgefragt, allerdings wird dannach kein Wert angegeben...
Geschwindigkeit:
stock ErmittleGeschwindigkeit(playerid, bool:kmh2)
{
new Float:x,Float:y,Float:z,Float:rtn;
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z); else GetPlayerVelocity(playerid,x,y,z);
rtn = floatsqroot(x*x+y*y+z*z);
return kmh2?floatround(rtn * 100 * 1.11):floatround(rtn * 100);
}
Danke im Vorraus!