Externe Dateien / Speichern

  • Externe Dateien / Speichern

    Hi Community! =)

    Ich möchte bei meinem Spiel eine externe Datei erstellen,
    die gespeicherte Spiele beinhaltet.
    Wie zB. bei vielen anderen Spielen, wo die savegames im Verzeichnis abgespeichert werden.
    Ich habs echt oft versucht, aber es ist nür Müll rausgekommen. =(

    lg, Lev.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Du erstellst eine Variable für den Raum und speicherst diese in eine Datei und beim Laden gehst du zu dem Raum deiner Variable!

    Laden:

    GML-Quellcode

    1. if file_exists("save.x")
    2. {
    3. file = file_text_open_read("save.x");
    4. global.rm = file_text_read_string(file);
    5. file_text_close(file);
    6. room_goto(global.rm);
    7. }
    8. else
    9. {
    10. show_message("Laden fehlgeschlagen!")
    11. }
    Alles anzeigen


    Speichern:

    GML-Quellcode

    1. file = file_text_open_write("save.x");
    2. file_text_write_string(file,string(global.rm));
    3. file_text_close(file);


    Die Variable global.rm muss vor dem Speichern zum Raumnamen geändert werden!
    So:

    GML-Quellcode

    1. global.rm=room0
  • Funktioniert eigentlich einwandfrei,
    aber wenn man laden möchte,
    springt man in einen komplett falschen room ohne Berücksichtugung der global.-Variablen,
    Wie zB. Munition, Level, Leben, usw...

    lg, Lev
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Probier mal das:

    GML-Quellcode

    1. if file_exists("save.x")
    2. {
    3. file = file_text_open_read("save.x");
    4. global.rm = file_text_read_string(file);
    5. file_text_close(file);
    6. room_goto(real(global.rm));
    7. }
    8. else
    9. {
    10. show_message("Laden fehlgeschlagen!")
    11. }
    Alles anzeigen
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Save:

    GML-Quellcode

    1. global.rm=room
    2. file1 = file_text_open_write("save.x");
    3. file_text_write_string(file1,string(global.rm));
    4. file_text_close(file1);
    5. file2 = file_text_open_write("save2.x");
    6. file_text_write_string(file2,string(global.pistol_mun));
    7. file_text_close(file2);
    8. file3 = file_text_open_write("save3.x");
    9. file_text_write_string(file3,string(global.pistol_rounds));
    10. file_text_close(file3);
    11. file4 = file_text_open_write("save4.x");
    12. file_text_write_string(file4,string(global.smg_mun));
    13. file_text_close(file4);
    14. file5 = file_text_open_write("save5.x");
    15. file_text_write_string(file5,string(global.smg_rounds));
    16. file_text_close(file5);
    17. file6 = file_text_open_write("save6.x");
    18. file_text_write_string(file6,string(global.mg_mun));
    19. file_text_close(file6);
    20. file7 = file_text_open_write("save7.x");
    21. file_text_write_string(file7,string(global.mg_rounds));
    22. file_text_close(file7);
    23. file8 = file_text_open_write("save8.x");
    24. file_text_write_string(file8,string(global.mg2_mun));
    25. file_text_close(file8);
    26. file9 = file_text_open_write("save9.x");
    27. file_text_write_string(file9,string(global.mg2_rounds));
    28. file_text_close(file9);
    29. file10 = file_text_open_write("save10.x");
    30. file_text_write_string(file10,string(global.pumpgun_mun));
    31. file_text_close(file10);
    32. file11 = file_text_open_write("save11.x");
    33. file_text_write_string(file11,string(global.pumpgun_rounds));
    34. file_text_close(file11);
    35. file12 = file_text_open_write("save12.x");
    36. file_text_write_string(file12,string(global.sniper_mun));
    37. file_text_close(file12);
    38. file13 = file_text_open_write("save13.x");
    39. file_text_write_string(file13,string(global.sniper_rounds));
    40. file_text_close(file13);
    41. file14 = file_text_open_write("save14.x");
    42. file_text_write_string(file14,string(global.RRW_mun));
    43. file_text_close(file14);
    44. file15 = file_text_open_write("save15.x");
    45. file_text_write_string(file15,string(global.RRW_rounds));
    46. file_text_close(file15);
    47. file16 = file_text_open_write("save16.x");
    48. file_text_write_string(file16,string(global.level));
    49. file_text_close(file16);
    50. file17 = file_text_open_write("save17.x");
    51. file_text_write_string(file17,string(global.ep));
    52. file_text_close(file17);
    53. file18 = file_text_open_write("save18.x");
    54. file_text_write_string(file18,string(global.life));
    55. file_text_close(file18);
    56. file19 = file_text_open_write("save19.x");
    57. file_text_write_string(file19,string(global.shield));
    58. file_text_close(file19);
    59. show_message("Spiel gespeichert!")
    Alles anzeigen


    Load:

    GML-Quellcode

    1. if file_exists("save.x")
    2. {
    3. file1 = file_text_open_read("save.x");
    4. global.rm = file_text_read_string(file1);
    5. file_text_close(file1);
    6. file3 = file_text_open_read("save3.x");
    7. global.pistol_rounds = file_text_read_string(file3);
    8. file_text_close(file3);
    9. file2 = file_text_open_read("save2.x");
    10. global.pistol_mun = file_text_read_string(file2);
    11. file_text_close(file2);
    12. file5 = file_text_open_read("save5.x");
    13. global.smg_rounds = file_text_read_string(file5);
    14. file_text_close(file5);
    15. file4 = file_text_open_read("save4.x");
    16. global.smg_mun = file_text_read_string(file4);
    17. file_text_close(file4);
    18. file7 = file_text_open_read("save7.x");
    19. global.mg_rounds = file_text_read_string(file7);
    20. file_text_close(file7);
    21. file6 = file_text_open_read("save6.x");
    22. global.mg_mun = file_text_read_string(file6);
    23. file_text_close(file6);
    24. file9 = file_text_open_read("save9.x");
    25. global.mg2_rounds = file_text_read_string(file9);
    26. file_text_close(file9);
    27. file8 = file_text_open_read("save8.x");
    28. global.mg2_mun = file_text_read_string(file8);
    29. file_text_close(file8);
    30. file11 = file_text_open_read("save11.x");
    31. global.pumpgun_rounds = file_text_read_string(file11);
    32. file_text_close(file11);
    33. file10 = file_text_open_read("save10.x");
    34. global.pumpgun_mun = file_text_read_string(file10);
    35. file_text_close(file10);
    36. file13 = file_text_open_read("save13.x");
    37. global.sniper_rounds = file_text_read_string(file13);
    38. file_text_close(file13);
    39. file12 = file_text_open_read("save12.x");
    40. global.sniper_mun = file_text_read_string(file12);
    41. file_text_close(file12);
    42. file15 = file_text_open_read("save15.x");
    43. global.RRW_rounds = file_text_read_string(file15);
    44. file_text_close(file15);
    45. file14 = file_text_open_read("save14.x");
    46. global.RRW_mun = file_text_read_string(file14);
    47. file_text_close(file14);
    48. file17 = file_text_open_read("save17.x");
    49. global.ep = file_text_read_string(file17);
    50. file_text_close(file17);
    51. file16 = file_text_open_read("save16.x");
    52. global.level = file_text_read_string(file16);
    53. file_text_close(file16);
    54. file18 = file_text_open_read("save18.x");
    55. global.life = file_text_read_string(file18);
    56. file_text_close(file18);
    57. file19 = file_text_open_read("save19.x");
    58. global.shield = file_text_read_string(file19);
    59. file_text_close(file19);
    60. room_goto(global.rm);
    61. }
    62. else
    63. {
    64. show_message("Laden fehlgeschlagen!")
    65. }
    Alles anzeigen


    Ist bisschen kompliziert.
    Funzt natürlich auch nicht.

    @ henrik:

    lol :D
    Geht nicht, weil ich nicht weiß wie ich die room-id speichern soll ?(

    lg, Lev
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Sorry aber ich versteh nicht wieso du tausende Files machst und immer auf und zu etc.
    Viel einfacher ist es doch, alles in eine Datei zu packen. Am Besten ich geb dir mal eben ein Example zum speichern laden das ich eben gemacht habe.

    STRG = Zufällige Variablen-Werte
    ENTER = Variablen a bis j speichern
    SPACE = Variablen a bis j laden

    Die Variablenwerte werden links angezeigt.

    Hab ich halt gemacht, damit du mal das Grundprinzip davon verstehst.

    -Speedy
    Dateien
    • save_load.rar

      (12,4 kB, 142 mal heruntergeladen, zuletzt: )