Speichern in Gamemaker: Studio?

1 Antwort

Ich habs geschafft! Aber für alle, bei denen es nicht klappt, hier die lösung:

Man braucht 2 Scripte. Zum speichern:

if (file_exists("Save1.sav")) file_delete("Save.sav");
ini_open("Save1.sav");
var SavedRoom = room;
ini_write_real("Save1","room",SavedRoom);
ini_write_real("Save1","level2",global.level_2);
ini_write_real("Save1","level3",global.level_3);
ini_write_real("Save1","level4",global.level_4);
ini_write_real("Save1","level5",global.level_5);
ini_close();

(global.level_2/3/4/5 schalten die Level frei)

Und zum Laden:

if (file_exists("Save1.sav"))
{
ini_open("Save1.sav");
var LoadedRoom = ini_read_real("Save1","room",RoomW1);
global.level_2 = ini_read_real("Save1","level2",0);
global.level_3 = ini_read_real("Save1","level3",0);
global.level_4 = ini_read_real("Save1","level4",0);
global.level_5 = ini_read_real("Save1","level5",0);
ini_close();
room_goto(LoadedRoom);
}

(RoomW1 ist der Standartraum (Wird ausgewählt, wenn noch nicht gespeichert wurde))

In der Levelauswahl habe ich ein anderes objekt, als in den Leveln. Dieses Objekt kann speichern und laden. Bei mir funktioniert die Script-Auswahl bei einigen events leider nicht. Es denke aber, dass es irgendwie anders geht.

Wenn ihr wissen wollt, ob es geklappt hat, könnt ihr einfach laden, oder in der datei nachsehen. Dafür braucht ihr zugang zum AppData-Ordner (Seht im Internet nach, wie das geht). Dann geht ihr auf den Datenträger, auf dem Gamemaker ist, geht in den Benutzer-Ordner, dann auf den Ordner in dem der AppData-Ordner ist (ich glaube der heißt immer anders), dann natürlich in den AppData-Ordner, dann in den Local-Ordner und dort sucht ihr einen Ordner der den Project-namen trägt. Dann öffnet ihr die Datei "Save1.sav" und wenn alles geklapt hat, sieht dieser Ordner so aus:

[Save1]
level5="0.000000"
level4="0.000000"
level3="0.000000"
level2="1.000000"

(Der Abschnitt "room" ist unterschiedlich)

Wenn ihr fragen habt, irgendewtas nicht versteht, ich was vergessen habe oder etwas anderes ist, dann antwortet.