Punkte werden nicht gespeichert

  • Punkte werden nicht gespeichert

    Ich habe ein Problem das ich nicht lösen kann. Komischerweise werden meine Punkte die ich in eine eigene .sav dateien speichern will nicht gespeichert.

    Ich finde keine Fehler im Quelltext. Die Variable wird nähmlich nicht gespeichert sondern mit " " (Leere stelle) überschreieben. auch wenn ich von anfang an in die Sav datei einen wert eintrage wird er später überschrieben...
    Hier mal der Code:

    GML-Quellcode

    1. var file;
    2. if not file_exists("./data/save.sav"){
    3. file = file_text_open_write("./data/save.sav");
    4. file_text_write_string(file,string(punkte));
    5. file_text_close(file);
    6. exit;
    7. }else{
    8. file = file_text_open_read("./data/save.sav");
    9. maxscore = file_text_read_string(file);
    10. file_text_close(file);
    11. if (real(punkte) < real(maxscore)){
    12. file = file_text_open_write("./data/save.sav");
    13. file_text_write_string(file,string(punkte));
    14. file_text_close(file);
    15. }
    16. }
    Alles anzeigen
  • Ich hoffe das macht dir nichts aus, dass ich den Code etwas aufgeräumt habe ^^
    Was ich gerne wissen würde ist, ob du die höchste Anzahl Punkte oder die niedrigste Anzahl speichern willst. Wenn letzeres der Fall ist, war punkte < maxscore falsch :P Außerdem ist das exit; sowie das real() für die Punkte nicht nötig. Da maxscore scheinbar nur in dem Skript gebraucht wird, hab ich es oben dazugeschrieben. Wenn das so nicht stimmt, möchtest du die Variable vielleicht auch updaten, wenn du speicherst. Das real() dafür hab ich in die Zeile verschoben, in der es ausgelesen wird.

    GML-Quellcode

    1. var file,maxscore;
    2. if (!file_exists("save.sav")) {
    3. file = file_text_open_write("save.sav");
    4. file_text_write_string(file,string(punkte));
    5. file_text_close(file);
    6. } else {
    7. file = file_text_open_read("save.sav");
    8. maxscore = real(file_text_read_string(file));
    9. file_text_close(file);
    10. if (punkte > maxscore) {
    11. file = file_text_open_write("save.sav");
    12. file_text_write_string(file,string(punkte));
    13. file_text_close(file);
    14. }
    15. }
    Alles anzeigen
  • Danke! :)

    Jetzt habe ich wieder ein Problem mit dem Script. (Habe noch einiges hinzugefügt.)
    Der Fehler wird anscheinend verursacht wenn bei der If Überprüfung rauskommt, das die Datei existiert.

    Dann kommt ein Error "File is not opened for reading".
    Und das owohl ich klar und deutlich definiere

    file = file_text_open_read("./data/save.sav");

    Wieso passiert das? (PS: die Variable lastname wird am anfang des Spiels von der Datei geladen.)
    der code:

    GML-Quellcode

    1. var name,file,maxscore;
    2. name = get_string("Bitte Namen eingeben:",lastname);
    3. if (!file_exists("./data/save.sav")) {
    4. file = file_text_open_write("./data/save.sav");
    5. file_text_write_string(file,string(punkte));
    6. file_text_writeln(file);
    7. file_text_write_string(file,string(name));
    8. file_text_close(file);
    9. } else {
    10. file = file_text_open_read("./data/save.sav");
    11. maxscore = real(file_text_read_string(file));
    12. file_text_readln(file);
    13. lastname = file_text_read_string(file);
    14. file_text_close(file);
    15. if (punkte > maxscore) {
    16. file = file_text_open_write("./data/save.sav");
    17. file_text_write_string(file,string(punkte));
    18. }
    19. file_text_writeln(file);
    20. file_text_write_string(file,string(name));
    21. file_text_close(file);
    22. }
    Alles anzeigen