Problem beim Speichern einer .ini-Datei

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem beim Speichern einer .ini-Datei

    Guten Abend liebe Leute,

    ich habe für mein Spiel ein Optionenmenü gemacht, zuerst mit den file_text-Funktionen (was auch wunderbar geklappt hat) aber dann habe ich mir überlegt es mit einer .ini-Datei umzusetzen. Hierzu habe ich auch gleich brav im Forum gestöbert, aber dann ist ein Problem aufgetreten, an dem ich seit Stunden scheitere ...

    Wenn ich etwas außerhalb des GMs in die .ini-Datei schreibe wird es korrekt gelesen,
    wenn ich allerdings dann im Spiel die Optionen verändere und wieder abspeichere dann musste ich feststellen dass beim Wiederaufrufen des Optionenmenüs alle Werte auf 0 sind.
    Edit/ Korrektur: Die Werte werden Ingame einfach nicht gespeichert, es wird immer wieder auf die Werte zurückgesetzt die ich extern in die .ini-Datei eingegeben habe.

    Im Moment bildet sich nur ein großes Fragezeichen in meinem Kopf, ich hoffe ihr könnt mir weiterhelfen, wobei ich mir ganz sicher bin dass ihr das könnt, habe sicher nur eine Kleinigkeit vergessen, aber irgendwie ist man wohl manchmal blind. ?(

    So sieht das Speichern-Skript aus:

    GML-Quellcode

    1. if file_exists("settings.ini")
    2. {
    3. ini_open("settings.ini");
    4. ini_write_real("options","show_visualisation",string(VGvisuvisible));
    5. ini_write_real("options","visualisation_follows_ship",string(VGvisufollow));
    6. ini_write_real("options","advanced_interface",string(VGintadvanced));
    7. ini_write_real("options","fullscreen",string(VGfullscreen));
    8. ini_write_real("options","resolution",string(VGresolution));
    9. ini_write_real("sound","volume",string(VGglobvolume));
    10. ini_close()
    11. }
    Alles anzeigen


    Und so das Ladeskript:

    GML-Quellcode

    1. if file_exists("settings.ini")
    2. {
    3. ini_open("settings.ini");
    4. VGvisuvisible=ini_read_real("options","show_visualisation","1");
    5. VGvisufollow=ini_read_real("options","visualisation_follows_ship","0");
    6. VGintadvanced=ini_read_real("options","advanced_interface","0");
    7. VGfullscreen=ini_read_real("options","fullscreen","1");
    8. VGresolution=ini_read_real("options","resolution","1");
    9. VGglobvolume=ini_read_real("sound","volume",100);
    10. ini_close()
    11. }
    Alles anzeigen


    So sieht es innerhalb der .ini-Datei aus:

    Spoiler anzeigen
    [options]
    show_visualisation=0
    visualisation_follows_ship=0
    advanced_interface=0
    fullscreen=0
    resolution=0

    [sound]
    volume=0

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von RLP ()

  • Zuerst, file_exists brauchst du nicht, da ini_open die Datei automatisch erstellt (falls es sie nicht gibt) und zweites die Defaultwerte, fehlende Werte abfangen.
    Dein Hauptfehler ist aber, das du strings versuchst als Reals zu Speichern, d.h. du brauchst das string beim Speichern nicht und du musst die " " beim Lesen wegmachen (also das dritte Argument ist da immer falsch).

    GML-Quellcode

    1. //...
    2. ini_write_real("options","show_visualisation",VGvisuvisible);
    3. ini_write_real("options","visualisation_follows_ship",VGvisufollow);
    4. //...

    GML-Quellcode

    1. //...
    2. VGvisuvisible=ini_read_real("options","show_visualisation",1);
    3. VGvisufollow=ini_read_real("options","visualisation_follows_ship",0);
    4. //...
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Vielen Dank für die schnelle und verständliche Hilfe, jetzt klappt alles!

    ini_write_real("options","show_visualisation",string(VGvisuvisible));
    Wie konnte ich nur auf die Idee kommen einen string als real-Variable abzuspeichern?:wacko: