Hi Leute ich habe etwas gefunden..
Ein Kilometerzähler nur das Problem ist das er sofort auf 2 Springt und nicht auf 0
und ich möchte das er die Kilometer von Jedem Auto einzelnd zählt..
z.B:
Man steigt in ein Auto und fährt los man ist in SF angekommen und hat 20 KM auf der Anzeige stehen.
Nun steigt man in ein Motorrad und die anzeige ist auf 0 nicht auf 20
und fährt eine kleine runde um ein Block,kommt wieder zum Alten auto und hat 5 KM auf der anzeige ,steigt wieder in das Alte auto ein und auf der Anzeige steht auf
20...
Bei mir ist es so:
Man steigt in ein Auto fährt nach Sf hat 20 KM auf der anzeige steigt in ein anderes Auto und hat wieder 20 KM auf der Anzeige.
Hier mein code:
new Float:Xv[MAX_VEHICLES], Float:Yv[MAX_VEHICLES], Float:Zv[MAX_VEHICLES];
new Meters[MAX_VEHICLES];
forward KilometerTimer();
#define COLOR_COUNTER 0x00C0FFCC
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print("Kilometerzähler");
print("--------------------------------------\n");
SetTimer("KilometerTimer", 1000, 1);
for(new i=0; i<max_vehicles; i++)="" {
Meters[i]=0;
SaveCoords(i);
}
return 1;
}
public KilometerTimer()
{
new string[256];
for(new i=0; i<max_vehicles; i++)="" {
Meters[i]+=GetDistanceToLastPoint(i);
format(string, 256, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Kilometer: ~b~%03d", Meters[i]/1000);
GameTextForVehiclePlayers(i, string, 3000, 3);
SaveCoords(i);
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
SaveCoords(vehicleid);
Meters[vehicleid]=0;
return 1;
}
stock GameTextForVehiclePlayers(vehicleid, message[], time, style)
{
for(new a=0; a<max_players; a++)
if (IsPlayerInVehicle(a, vehicleid)) GameTextForPlayer(a, message, time, style);
return 1;
}
stock GetDistanceToLastPoint(vehicleid)
{
new Float:x2, Float:y2, Float:z2, Float:output;
GetVehiclePos(vehicleid, x2, y2, z2);
output = floatsqroot(floatpower(floatabs(floatsub(x2, Xv[vehicleid])), 2)+floatpower(floatabs(floatsub(y2, Yv[vehicleid])), 2)+floatpower(floatabs(floatsub(z2, Zv[vehicleid])), 2));
return floatround(output);
}
stock SaveCoords(vehicleid)
{
new Float:X, Float:Y, Float:Z;
GetVehiclePos(vehicleid, X, Y, Z);
Xv[vehicleid]=X;
Yv[vehicleid]=Y;
Zv[vehicleid]=Z;
}