Gespielte Zeit mit abspeichern

  • GM 7

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

  • Gespielte Zeit mit abspeichern

    Hallo zusammen!

    Bei mir im Spiel wird die gespielte Zeit mit erfasst. Jede Sekunde zieht dem Spieler 10 Punkte ab. Nun habe ich eine Speicherfunktion eingebaut, aber diese Zeit (Variable = global.zeit) wird nicht in die Savegame übernommen. Nun könnte ich die gespielte Zeit auch extra in eine INI speichern, was ich aber recht umständlich finde.

    Gibt es da eine andere Lösung? Wenn ich momentan das Spiel speichere und dann lade, beginnt die Zeit wieder bei 0 Sekunden.
  • Gut, ich sehe, ein, dass ich nicht darum herum komme. So werde ich wohl für jedes Profil eine eigene INI anlegen und die Namen der Profile in einer settings.ini speichern. Die Profile liste ich dann in sections [Profile] auf. So weit, so gut.

    Wenn jetzt aber in den sections noch nichts existiert... wie frage ich ab, ob ein Eintrag überhaupt da ist? Wenn eine Datei nicht existiert ist es klar.

    GML-Quellcode

    1. global.datei2 = "settings.ini"; // Name der Settings-Datei
    2. if not file_exists(global.datei2){
    3. file = file_text_open_write(global.datei2);
    4. file_text_write_string(file,"[Profile]");
    5. file_text_writeln(file);
    6. file_text_close(file);
    7. }


    Jetzt nehmen wir aber an, die Datei existiert, aber in [Profile] steht nichts. Wie prüfe ich das?

    EDIT:

    ini_key_exists(section,key) ist mir bekannt, ich weiß nur nicht wie ich es benutzen soll, wenn der key nicht bekannt ist. Es soll also geprüft werden, ob da überhaupt etwas steht.
  • Mein Vorschlag wäre:

    GML-Quellcode

    1. file = file_text_open_read(global.datei2);
    2. if !file_text_read_string(file) == "" {
    3. file_text_close(file);
    4. file = file_text_open_write(global.datei2)
    5. file_text_write_string(file,"[Profile]");
    6. file_text_writeln(file);
    7. file_text_close(file) } else file_text_close(file);
    8. ;