Frage zum Dini abspeichern

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 versuche, etwas per Dini in einer File abzuspeichern. Ich habe zudem noch ein paar Fragen


    1.)Wie kann ich das LoadNewCar-Stock aufrufen ?
    Nachdem ich die Daten in die File geschrieben habe,


    dcmd_createcar(playerid,params[])
    {
    #pragma unused params
    new modelid, farbe1, farbe2, preis;
    if(sscanf(params, "dddd", modelid, farbe1, farbe2, preis)) SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /createcar ModelID Farbe1 Farbe2 Preis");
    else
    {
    CreateNewCar(playerid, modelid, farbe1, farbe2, preis);
    }
    return 1;
    }


    stock CreateNewCar(playerid, modelid, farbe1, farbe2, preis);
    {
    new modelid,Float:sX, Float:sY, Float:sZ, Float:sA, farbe1, farbe2, preis;
    GetPlayerPos(playerid, sX, sY, sZ);
    GetPlayerAngle(playerid, sA);
    if(!dini_Exists(car))
    {
    dini_Create(car);
    dini_IntSet(car, "ModelID", modelid);
    dini_IntSet(car, "Farbe1", farbe1);
    dini_IntSet(car, "Farbe2", farbe2);
    dini_IntSet(car, "Preis", preis);
    dini_FloatSet(car, "XParken", sX);
    dini_FloatSet(car, "YParken", sY);
    dini_FloatSet(car, "ZParken", sZ);
    dini_FloatSet(car, "AParken", sA);
    }
    return true;
    }


    Ein LoadNewCar und ein SaveNewCar fehlen noch, wie kann ich aber LoadNewCar aufrufen (ein Stock), damit das Auto erstellt wird ?


    MfG dUDA

  • Zitat

    Ein LoadNewCar und ein SaveNewCar fehlen noch, wie kann ich aber LoadNewCar aufrufen (ein Public), damit das Auto erstellt wird ?

    1. Funktion erstellen.
    2. Funktion aufrufen. z.B. LoadNewCar(); oder LoadNewCar( /* hier die parameter*/ );

  • Hallo


    Ich habe es mal versucht, jedoch habe ich einige Errors zuviel :P


    forward SaveNewCar(carid);
    LoadNewCar(carnewid);]


    dcmd_createcar(playerid,params[])
    {
    #pragma unused params
    new modelid, farbe1, farbe2, preis;
    if(sscanf(params, "dddd", carmodelid, farbe1, farbe2, preis)) SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /createcar ModelID Farbe1 Farbe2 Preis");
    else
    {
    CreateNewCar(playerid, carmodelid, farbe1, farbe2, preis);
    }
    return 1;
    }


    stock CreateNewCar(playerid, carmodelid, farbe1, farbe2, preis);
    {
    new carnewid, car[64];
    new carmodelid,Float:sX, Float:sY, Float:sZ, Float:sA, farbe1, farbe2, preis;
    GetPlayerPos(playerid, sX, sY, sZ);
    GetPlayerAngle(playerid, sA);
    format(car, sizeof(car), "/Carsystem/%d.ini", carnewid);
    if(!dini_Exists(car))
    {
    dini_Create(car);
    dini_IntSet(car, "ModelID", carmodelid);
    dini_IntSet(car, "Farbe1", farbe1);
    dini_IntSet(car, "Farbe2", farbe2);
    dini_IntSet(car, "Preis", preis);
    dini_FloatSet(car, "XParken", sX);
    dini_FloatSet(car, "YParken", sY);
    dini_FloatSet(car, "ZParken", sZ);
    dini_FloatSet(car, "AParken", sA);
    LoadNewCar(carnewid);
    }
    return true;
    }


    stock LoadNewCar(carnewid)
    {
    new car[64]; format(car, sizeof(car), "/Carsystem/%d.ini", carnewid);

    if(dini_Exists(car))
    {
    carmodelid = dini_Int(car, "ModelID");
    farbe1 = dini_Int(car, "Farbe1");
    farbe2 = dini_Int(car, "Farbe2");
    preis = dini_Int(car, "Preis");
    sX = dini_FloatSet(car, "XParken", sX);
    sY = dini_FloatSet(car, "YParken", sY);
    sZ = dini_FloatSet(car, "ZParken", sZ);
    sA = dini_FloatSet(car, "AParken", s);
    new Carcreate = CreateVehicle(carmodelid, sX, sY, sZ, sA, farbe1, farbe2, 60000);
    }
    return true;
    }


    public SaveNewCar(carnewid)
    {
    new car[64]; format(car, sizeof(car), "/Carsystem/%d.ini", carnewid);
    if(dini_Exists(car))
    {
    dini_IntSet(car, "ModelID", carmodelid);
    dini_IntSet(car, "Farbe1", farbe1);
    dini_IntSet(car, "Farbe2", farbe2);
    dini_IntSet(car, "Preis", preis);
    dini_FloatSet(car, "XParken", sX);
    dini_FloatSet(car, "YParken", sY);
    dini_FloatSet(car, "ZParken", sZ);
    dini_FloatSet(car, "AParken", sA);
    return true;
    }
    }

  • Zeig bitte noch das enum dazu... Da du im enum Sachen definiert hast, welche sich überlappen zB wenn du sagen wir farbe drinnen stehen hast, solltest du vor dem eine kleine definition machen zB privatFarbe oder soaws, damit es keinen Konflikte gibt..

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Hallo


    Nach der Erkenntnis, dass der 1.Code Mist ist/war, habe ich mich mal daran gesetz, nur die ModelID und alle 3(4) Koordinaten zu speichern. Jedoch geht es nochnicht ganz ;)


    forward SavePlayerFahrzeuge(fahrid);
    #define MAX_FAHRZEUGE 100 // Maximale Anzahl an Fahrzeugen
    enum fInfo
    {
    fModelID,
    Float:carX,
    Float:carY,
    Float:carZ,
    Float:carA
    };


    for(new f = 0; f <= MAX_FAHRZEUGE; f++) // Fahrzeuge der Spieler
    {
    LoadPlayerFahrzeuge(f);
    }
    stock CreatePlayerFahrzeuge(playerid, cmodelid) //Zeile 10922
    {
    new fahrzeug[64], Float:X, Float:Y, Float:Z, Float:A; GetPlayerPos(playerid, X, Y, Z);
    GetPlayerAngle(playerid, A);
    format(fahrzeug, sizeof(fahrzeug), "/Carsystem/test.ini");
    if(!dini_Exists(fahrzeug))
    {
    dini_Create(fahrzeug);
    dini_IntSet(fahrzeug, "ModelID", cmodelid);
    dini_FloatSet(fahrzeug,"X", X);
    dini_FloatSet(fahrzeug,"Y", Y);
    dini_FloatSet(fahrzeug,"Z", Z);
    dini_FloatSet(fahrzeug,"A", A);
    LoadPlayerFahrzeuge(test);
    SendClientMessage(playerid, COLOR_GREEN, "Fahrzeug wurde erfolgreich erstellt");
    }
    return true;
    }


    stock LoadPlayerFahrzeuge(test) //Zeile 10967
    {
    new fahrzeug[64]; format(fahrzeug, sizeof(fahrzeug), "/Carsystem/test.ini");
    if(dini_Exists(fahrzeug))
    {
    FahrzeugeInfo[test][fModelID] = dini_Int(fahrzeug, "ModelID");
    FahrzeugeInfo[test][carX] = dini_Float(fahrzeug, "X");
    FahrzeugeInfo[test][carY] = dini_Float(fahrzeug, "Y");
    FahrzeugeInfo[test][carZ] = dini_Float(fahrzeug, "Z");
    FahrzeugeInfo[test][carA] = dini_Float(fahrzeug, "A");
    CreateVehicle(fModelID,FahrzeugeInfo[fahrzeug][X], FahrzeugeInfo[fahrzeug][Y], FahrzeugeInfo[fahrzeug][Z], FahrzeugeInfo[fahrzeug][A], 1, 1, 6000);


    }
    return true;
    }


    public SavePlayerFahrzeuge(test) //Zeile 11001
    {
    new fahrzeug[64]; format(fahrzeug, sizeof(fahrzeug), "/Carsystem/test.ini");
    if(dini_Exists(fahrzeug))
    {
    dini_IntSet(fahrzeug, "ModelID", FahrzeugeInfo[test][fModelID]);
    dini_FloatSet(fahrzeug, "X", FahrzeugeInfo[test][carX]);
    dini_FloatSet(fahrzeug, "Y", FahrzeugeInfo[test][carY]);
    dini_FloatSet(fahrzeug, "Z", FahrzeugeInfo[test][carZ]);
    dini_FloatSet(fahrzeug, "A", FahrzeugeInfo[test][carA]);
    }
    return true;
    }


    Errors:
    C:\Users\X\Desktop\dudalus152.pwn(10925) : error 017: undefined symbol "GetPlayerAngle"
    C:\Users\X\Desktop\dudalus152.pwn(10935) : error 017: undefined symbol "test"
    C:\Users\X\Desktop\dudalus152.pwn(10977) : error 033: array must be indexed (variable "fahrzeug")
    C:\Users\X\Desktop\dudalus152.pwn(11001) : error 025: function heading differs from prototype
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • Hallo
    Nun habe ich den Code ohne Errors


    1.)Wie kann ich die Rotation des Players auslesen ?
    Sollte doch mit GetPlayerAngle gehen ?


    2.)Der Car wird in einer File abgespeichert jedoch wird er nicht createt oder beim Serverstart geladen


    #define MAX_FAHRZEUGE 100 // Maximale Anzahl an Fahrzeugen
    forward SavePlayerFahrzeuge(test);
    enum fInfo
    {
    fModelID,
    Float:carX,
    Float:carY,
    Float:carZ,
    Float:carA
    };
    new FahrzeugeInfo[MAX_FAHRZEUGE][fInfo];
    for(new f = 0; f <= MAX_FAHRZEUGE; f++) // Fahrzeuge der Spieler
    {
    LoadPlayerFahrzeuge(f);
    }
    stock CreatePlayerFahrzeuge(playerid, cmodelid)
    {
    new fahrzeug[64], Float:X, Float:Y, Float:Z, Float:A; GetPlayerPos(playerid, X, Y, Z);
    new test = test;
    // GetPlayerAngle(playerid, A);
    format(fahrzeug, sizeof(fahrzeug), "/Carsystem/test.ini");
    if(!dini_Exists(fahrzeug))
    {
    dini_Create(fahrzeug);
    dini_IntSet(fahrzeug, "ModelID", cmodelid);
    dini_FloatSet(fahrzeug,"XParken", X);
    dini_FloatSet(fahrzeug,"YParken", Y);
    dini_FloatSet(fahrzeug,"ZParken", Z);
    dini_FloatSet(fahrzeug,"AParken", A);
    LoadPlayerFahrzeuge(test);
    SendClientMessage(playerid, COLOR_GREEN, "Fahrzeug wurde erfolgreich erstellt");
    }
    return true;
    }


    stock LoadPlayerFahrzeuge(test)
    {
    new fahrzeug[64]; format(fahrzeug, sizeof(fahrzeug), "/Carsystem/test.ini");
    if(dini_Exists(fahrzeug))
    {
    FahrzeugeInfo[test][fModelID] = dini_Int(fahrzeug, "ModelID");
    FahrzeugeInfo[test][carX] = dini_Float(fahrzeug, "XParken");
    FahrzeugeInfo[test][carY] = dini_Float(fahrzeug, "YParken");
    FahrzeugeInfo[test][carZ] = dini_Float(fahrzeug, "ZParken");
    FahrzeugeInfo[test][carA] = dini_Float(fahrzeug, "AParken");
    CreateVehicle(FahrzeugeInfo[test][fModelID],FahrzeugeInfo[test][carX], FahrzeugeInfo[test][carY], FahrzeugeInfo[test][carZ], 10, 1, 1, 6000);


    }
    return true;
    }



    public SavePlayerFahrzeuge(test)
    {
    new fahrzeug[64]; format(fahrzeug, sizeof(fahrzeug), "/Carsystem/test.ini");
    if(dini_Exists(fahrzeug))
    {
    dini_IntSet(fahrzeug, "ModelID", FahrzeugeInfo[test][fModelID]);
    dini_FloatSet(fahrzeug, "XParken", FahrzeugeInfo[test][carX]);
    dini_FloatSet(fahrzeug, "YParken", FahrzeugeInfo[test][carY]);
    dini_FloatSet(fahrzeug, "ZParken", FahrzeugeInfo[test][carZ]);
    dini_FloatSet(fahrzeug, "AParken", FahrzeugeInfo[test][carA]);
    }
    return true;
    }


    MfG dUDA