Hi,
ich habe einen Kilometerzähler gebastelt. Leider macht er nicht das, was er soll.
Sobald ich in das Fahrzeug einsteige zählt der Zähler hoch bis auf ca. 131 Millionen und bleibt dann stehen.
Er zieht nichts mehr ab, bzw rechnet etwas drauf.
Hier der Code:
GetVehiclePos(veh,pNewKM[0][i],pNewKM[1][i],pNewKM[2][i]);
new Distance=floatsqroot((pNewKM[0][i]-pOldKM[0][i])*(pNewKM[0][i]-pOldKM[0][i])+(pNewKM[1][i]-pOldKM[1][i])*(pNewKM[1][i]-pOldKM[1][i])+(pNewKM[2][i]-pOldKM[2][i])*(pNewKM[2][i]-pOldKM[2][i]));
KM[veh] += Distance;
GetVehiclePos(veh,pOldKM[0][i],pOldKM[1][i],pOldKM[2][i]);
format(string,sizeof string,"%d KM",KM[veh]);
TextDrawSetString(KManzeige[veh],string);
Das floatsqroot habe ich aus dem allerseits bekannten GetDistanceFromPointToPoint genommen und umgeschrieben.
Das erste OldKM wird hier gesetzt:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new str[512],veh;
veh=GetPlayerVehicleID(playerid);
GetVehiclePos(veh,pOldKM[0][playerid],pOldKM[1][playerid],pOldKM[2][playerid]);
Warum zeigt er so eine immens hohe Zahl an?
(Vielleicht Jeffry: ?)
lg