Hallo,
Ich hab ein kleines Problem. Ich hab einen Befehl geschrieben mitdem man die Position eines Autos abspeichert und dann beim Serverstart die Datei lädt. Läuft alles per Dini. Aufjedenfall hab ich ein Problem. Und zwar wenn ich z. B. ein Turismo die Position abspeichere, und dann nochmal einen Turismo nehme und wieder die Position abspeichere überschreibt er die Datei des alten Turismos. Ich weiß nicht wie ich das beheben kann.
Hier der Befehl:
ocmd:sveh(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return 1;
new Autodatei[64];
new Float:x,Float:y,Float:z,Float:rotation;
new vehicle=GetPlayerVehicleID(playerid);
new vehicleid=GetVehicleModel(vehicle);
GetPlayerPos(playerid,x,y,z);
GetVehicleZAngle(vehicle,rotation);
format(Autodatei,sizeof(Autodatei),"/Autos/%d.dat",vehicleid);
if(dini_Exists(Autodatei))
{
dini_IntSet(Autodatei,"Modelid",vehicleid);
dini_FloatSet(Autodatei,"x_pos",x);
dini_FloatSet(Autodatei,"y_pos",y);
dini_FloatSet(Autodatei,"z_pos",z);
dini_FloatSet(Autodatei,"Rotation",rotation);
}
else
{
dini_Create(Autodatei);
dini_IntSet(Autodatei,"Modelid",vehicleid);
dini_FloatSet(Autodatei,"x_pos",x);
dini_FloatSet(Autodatei,"y_pos",y);
dini_FloatSet(Autodatei,"z_pos",z);
dini_FloatSet(Autodatei,"Rotation",rotation);
}
SendClientMessage(playerid,-1,"Auto erfolgreich gespeichert");
return 1;
}
Stock:
stock AutoLaden()
{
new Autodatei[64];
for(new i=0;i<612;i++)
{
new Float:X, Float:Y, Float:Z,Float:R;
format(Autodatei,sizeof(Autodatei),"/Autos/%d.dat",i);
dini_Int(Autodatei,"Modelid");
X=dini_Float(Autodatei,"x_pos");
Y=dini_Float(Autodatei,"y_pos");
Z=dini_Float(Autodatei,"z_pos");
R=dini_Float(Autodatei,"Rotation");
CreateVehicle(i,X,Y,Z,R,-1,-1,-1);
}
return 1;
}