Problem mit Levelspeicherung

  • GM 7
  • Problem mit Levelspeicherung

    es passieren seltsame dinge wenn ich den code ausführe.. nach dem laden ist entweder das level (vor allem die zuletzt gesetzten blöcke) sehr zerstückelt oder es gibt eine reihe fehler..

    Ich finde den fehler einfach nicht..
    ich setz jez einfach mal alles daran, das hier n paar schleuere leute als ich sind :D


    Jez klappt alles file_text_close() niemals vergessen!!!

    Spoiler anzeigen
    file_text_write_really

    GML-Quellcode

    1. file_text_write_string(argument0,string(argument1));


    file_text_read_really

    GML-Quellcode

    1. return real(file_text_read_string(argument0));



    Save-Script

    GML-Quellcode

    1. filename = get_save_filename("Mana Roomfiles|*.mrf","");
    2. if filename == ""
    3. exit;
    4. else
    5. filename += ".mrf"
    6. newfile = file_text_open_write(filename);
    7. file_text_write_really(newfile,obj_player.x);//player xy
    8. file_text_writeln(newfile);
    9. file_text_write_really(newfile,obj_player.y);
    10. file_text_writeln(newfile);
    11. bc = instance_number(obj_box);//anzahl boxen
    12. file_text_write_really(newfile,bc);
    13. file_text_writeln(newfile);
    14. for (i=0; i<bc; i+=1) //boxen
    15. {
    16. o = instance_find(obj_box,i);
    17. file_text_write_really(newfile,round(o.x));
    18. file_text_writeln(newfile);
    19. file_text_write_really(newfile,round(o.y));
    20. file_text_writeln(newfile);
    21. }
    22. file_text_close(newfile);
    23. show_message("Finished saving! ("+string(bc)+" blocks saved)");
    Alles anzeigen


    Load-Script

    GML-Quellcode

    1. filename = get_open_filename("Mana Roomfiles|*.mrf","");
    2. if filename == ""
    3. exit;
    4. newfile = file_text_open_read(filename);
    5. instance_create(0,0,obj_player);
    6. obj_player.x = file_text_read_really(newfile);//player xy
    7. file_text_readln(newfile);
    8. obj_player.y = file_text_read_really(newfile);
    9. file_text_readln(newfile);
    10. bc = file_text_read_really(newfile);//anzahl boxen
    11. file_text_readln(newfile);
    12. for (i=0; i<bc; i+=1) //boxen
    13. {
    14. o = instance_create(0,0,obj_box);
    15. o.x = file_text_read_really(newfile);
    16. file_text_readln(newfile);
    17. o.y = file_text_read_really(newfile);
    18. file_text_readln(newfile);
    19. }
    20. file_text_close(newfile);
    21. show_message("Finished loading! ("+string(bc)+" blocks loaded)");
    Alles anzeigen

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

  • haha file_text_read_really?! Guter Name xP
    Wäre sogar weniger Code ohne das Skript direkt mit (real) ...

    Direkt seh ich auch keinen Fehler..
    Das File solltest am Ende immer noch schliessen.
    Vergleich mal das File das er speichert direkt mit den Instanzen im Spiel...
    "das war meine letzte flamewar PM an dich ."
  • Also du kannst bestätigen, dass das File korrekt abgespeichert ist und alle Daten korrekt sind?
    Häng mal an den Schluss von der Ladefunktion nochmal ein file_text_read_string ran, und schau, was es ausgibt, müsste ja eig "end" ausgeben..

    file_text_read_really(newfile)
    vs.
    real(file_text_read_string(newfile))
    Naja.. Geschmackssache aber würd wenn schon ausgeschrieben nen anständigen Namen geben, oder aber einfach was kurzes wie freadreal oder so... :P
    "das war meine letzte flamewar PM an dich ."
  • Benutzer online 1

    1 Besucher