Autos In-Game speichern

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 Breadfishs,
    ich habe ein Problem mit einem Befehl unzwar lautet er


    if(strcmp(strget(cmdtext,0),"/savethiscar", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    new vehid = GetPlayerVehicleID(playerid);
    new modelid = GetVehicleModel(vehid);
    new string[180];
    new float:x,float:y,float:z,float:zangel;
    new File:cars;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,zangel);
    format(string,sizeof(string),"%d,%d,%d,%d,%d\r\n",modelid,x,y,z,zangel);
    cars = fopen("Cars.cfg",io_append);
    fwrite(cars,string);
    fclose(cars);
    SendClientMessage(playerid,COLOR_YELLOW,"Car gesaved!");
    }
    }
    return 1;
    }


    Der Befehl klappt auch und es wird auch alles gespeichert das so aussieht
    /scriptfiles/Cars.cfg
    522,1153256596,-993014699,1095877326,1017366015
    Immer wen man in ein neues Auto geht und saved speichert es sich darunter ab was es auch soll.
    Nur wie soll ich dann wen ich einen Server Restart gemacht habe die Autos wieder hinzufügen ich habe
    daran gedacht bei OnGamemodeInit habe ich so angefangen aber ich weiß einfach nicht weiter
    //================================ CARS AUSLESEN =============================================
    new File:cars,line[255];
    format(string,sizeof(string),"%d,%d,%d,%d,%d\r\n");
    cars = fopen("Cars.cfg",io_read);
    fread(cars,
    //================================ CARS AUSLESEN =============================================


    Hoffentlich kann mir jemand helfen.
    Mit Freundlichen Grüßen Purex

  • sorry warte probier mal, strval(); && floatstr();


    strval = um zahlen auszulesen
    floatstr = um Floats auzulesen


    du musst jetzt angeben wie viele daten zum auslesen da sind, wenn du das hast müsstes du nun z.B. new model; verwenden und dann
    z.B. model = strval(0);


    dann hast du schon die model id. die verwendest du dann im string und erstellst es dann einfach.


    MfG: Apoolecu

  • Wie also mal ein beispiel ich habe nun folgende zahlen
    522,1153256596,-993014699,1095877326,1017366015
    Wie müsste das jetzt aussehen?
    also floatstr(3); ? Für die 522 also die ModelID?


    //EDIT: new modelid = floatstr(3) ?

    Einmal editiert, zuletzt von Purex ()

  • new Coords[5][64],line[256],ModelID,posX,posY,posZ,Angle;/*Erstellen der Variablen
    Coords[5][64] brauchen wir um darin nachher die einzelnen datein wie model id etc zu speichern. Die 5 steht für die Anzahl (sind ja 5 daten die du speicherst und auslesen willst) und die 64 ist die größe des strings
    line[256] ist der string in dem die Zeile gespeichert wird die wir auslesen
    ModelID,posX,posY,posZ und Angle sind die variablen an die wir die einzelnen daten aus der datei weiter geben um sie nachher zum erstellen des fahrzeuges zu benutzen*/
    new File: file = fopen("Cars.cfg",io_read);//Öffnet die Datei
    while(fread(file, line))//Liest die datei zeile für zeile aus
    {
    split(line, Coords, ',');//Teilt die ganze zeile in einzelne strings auf die durch komma getrennt wurden
    ModelID = strval(Coords[0]);//der erste teil wird an die variable "ModelID" weiter gegeben
    posX = floatstr(Coords[1]);//der zweite teil wird an die variable "posX" weiter gegeben
    posY = floatstr(Coords[2]);//der dritte teil wird an die variable "posY" weiter gegeben
    posZ = floatstr(Coords[3]);//der vierte teil wird an die variable "posZ" weiter gegeben
    Angle = floatstr(Coords[4]);//der fünfte teil wird an die variable "Angle" weiter gegeben
    CreateVehicle(ModelID, posX, posY, posZ, Angle, -1, -1, -1);//Da wir die einzelnen werte jetzt haben, erstellen wir damit das auto. Die -1,-1,-1 am ende stehen für die beiden farben und die Respawn zeit. Da du diese ja nicht in der Datei gespeichert hast wird durch -1 eine zufalls farbe angegeben. Und die -1 Bei der Respawnzeit sagt dass das fahrzeug erst dann respawnt wenn es zerstört wird.
    }
    fclose(file);//Nachdem wir alle Zeilen ausgelesen haben wir die datei wieder geschlossen
    Mfg.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7094) : warning 219: local variable "Coords" shadows a variable at a preceding level
    C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7101) : error 035: argument type mismatch (argument 2)
    C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7102) : error 028: invalid subscript (not an array or too many subscripts): "Coords"
    C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7102) : warning 215: expression has no effect
    C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7102) : error 001: expected token: ";", but found "]"
    C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7102) : error 029: invalid expression, assumed zero
    C:\Users\Predator\Desktop\Perfect Roleplays 3.00\GM.pwn(7102) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.