Hallo,
ich habe ein Tanksystem, was beim einsteigen in ein veh. die Rest-tank Menge aus der Veh Datei ausliest,
Und beim verlassen die restmenge speichert.
Funktioniert mit einem Spieler an sich auch gut.
(Mit mehreren Vehs)
Wenn jetz aber ein zweiter Spieler kommt, dann streikt das System.
Mal ein Beispiel:
Spieler 1 fährt Veh1 bis auf 90 Liter (von 100) leer.
Wenn er in ein anderes steigt, zeigt der Tacho die richtige Restmenge des anderen Vehs.
Wenn er wieder zurück in das erste steigt, werden wieder die 90 Liter von vorhin angezeigt.
Jetzt steigt Spieler 2 in das erste, und plötzlich hat der Tank 100 O.o
Der Code:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new string[256];
new tmp[256];
format(string, sizeof(string),"vehicle_%d.sav",vehicleid);
tmp = dini_Get(string,"Tank");
AUTOX[vehicleid][tank] = strval(tmp);
SetTimer("Tank",90000,1);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
new string[256];
new kmsav[256];
new Float:x,Float:y,Float:z,Float:a;
GetVehiclePos(vehicleid,x,y,z);
GetVehicleZAngle(vehicleid,a);
new Vi;
Vi=GetPlayerVehicleID(playerid);
GetVehicleHealth(Vi, health);
format(string, sizeof(string),"vehicle_%d.sav",vehicleid);
if(dini_Exists(string)){
dini_FloatSet(string,"x",x);
dini_FloatSet(string,"y",y);
dini_FloatSet(string,"z",z);
dini_FloatSet(string,"a",a);
dini_FloatSet(string,"health",health);
dini_FloatSet(string,"Tank",AUTOX[vehicleid][tank]);
format(kmsav,sizeof(kmsav),"%f",kmstand[vehicleid]);
dini_Set(string,"kmstand",kmsav);
}
return 1;
}
Was mache ich falsch?