Speicher und Lade Problem - GM speichert und/oder lädt strings fehlerhaft

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

  • Speicher und Lade Problem - GM speichert und/oder lädt strings fehlerhaft

    In meinem Projekt Space Spelunker werden Terraindaten eines Raumes gespeichert, damit man auch zurück gehen kann. Ich speicher dazu einen Grid (für die Landschaft) und einen Random Seed (für die Bauminstanzen) in einer ini ab. Mein Code vom speichern sieht z.B. so aus:

    GML-Quellcode

    1. ini_open("save.ini");
    2. ini_write_string("game"+string(gameSeed)+"_planet"+string(planet)+"_sector"+string(roomX)+","+string(roomY), "0", ds_grid_write(varTerrain));
    3. ini_write_string("game"+string(gameSeed)+"_planet"+string(planet)+"_sector"+string(roomX)+","+string(roomY)+"_seed", "0", string(plantSeed));
    4. ini_close();


    und das Skript fürs Laden so:

    GML-Quellcode

    1. ini_open("save.ini");
    2. if ini_section_exists("game"+string(gameSeed)+"_planet"+string(planet)+"_sector"+string(roomX)+","+string(roomY))
    3. {
    4. ds_grid_read(varTerrain, ini_read_string("game"+string(gameSeed)+"_planet"+string(planet)+"_sector"+string(roomX)+","+string(roomY), "0", ""));
    5. plantSeed = real(ini_read_string("game"+string(gameSeed)+"_planet"+string(planet)+"_sector"+string(roomX)+","+string(roomY)+"_seed", "0" , ""));
    6. ini_close();
    7. return 1;
    8. }
    9. ini_close();
    10. return 0;



    Es lädt speichert und lädt auch aber nicht korrekt. Der Grid ist fehlerhaft. Man kann das gut an den Bergen sehen. Wo vorher ein Berg war sind nach dem laden nur noch Teile des Berges, also wird der Gird entweder falsch abgespeichert oder falsch geladen. Der random Seed für die Pflanzen ist nach dem laden zwar der Gleiche aber die Pflanzen werden dennoch anders generiert. Da hab ich die Frage, ob random Funktionen bei gleichbleibendem Seed dennoch andere Ergebnisse liefern.

    Was mache ich falsch oder ist das vielleicht sogar ein Fehler des GMs. Ich hoffe nicht :(