Dynamisches Autoabspeicherungssystem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    Ich habe ein kleines Problem mit meinem dynamischen Parksystem :) In der Anwendung Funktioniert es, jedoch gibt es ein paar Probleme dabei.


    • Server ladet 210 Fahrzeuge
    • Am Nullpunkt (Fleischberg) werden 210 Fahrzeuge erstellt. Sobald man in der Nähe ist bekommt man eine Exe
    • Sobald ich ein Auto des gleichen Types abschreibe, überschreibt es die Datei des anderen Fahrzeuges, das die gleiche ID besitzt. (z. B. Turismo A wird abgespeichert. Turismo B wird danach abgespeichert und überschreibt die Daten von Turismo A.


    Es ist eigentlich ganz logisch wieso diese Fehler auftreten, jedoch weiß ich nicht, wie ich das Problem lösen kann.


    Codes:


    ocmd:sveh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return 1;
    new Autodatei[64];
    new Float:x,Float:y,Float:z,Float:rotation,Float:health;
    new vehicle=GetPlayerVehicleID(playerid);
    new vehicleid=GetVehicleModel(vehicle);
    new vehiclelife=GetVehicleHealth(vehicle,health);
    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);
    dini_FloatSet(Autodatei,"Vehicle-Leben",vehiclelife);
    }
    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);
    dini_FloatSet(Autodatei,"Vehicle-Leben",vehiclelife);
    }
    SendClientMessage(playerid,-1,"Auto erfolgreich gespeichert");
    return 1;
    }


    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;
    }


    Ich hoffe jemand kann mir helfen...

  • format(Autodatei,sizeof(Autodatei),"/Autos/%d.dat",vehicleid);
    format(Autodatei,sizeof(Autodatei),"/Autos/%d.dat",vehicle);


    dini_Int(Autodatei,"Modelid");
    if(!dini_Exists(Autodatei)) continue;
    new Model = dini_Int(Autodatei,"Modelid");


    CreateVehicle(i,X,Y,Z,R,-1,-1,-1);
    CreateVehicle(Model,X,Y,Z,R,-1,-1,-1);



    Jeweils das obige mit dem unteren ersetzen. Dann sollte es eigentlich funktionieren.