Objekt nach erstem Start ändern

  • GM 8
  • Objekt nach erstem Start ändern

    In meinem ersten raum setze ich ein paar globale Variablen.
    Eine dieser Variablen heißt "global.level". Im ersten Raum wird sie auf 0 gesetzt.
    Diese wird während des Spiels immer geändert. Jedes Level um +1.
    Nach dem speichern bleibt theoretisch ja dieser Wert erhalten.
    Wenn ich allerdings das Spiel neu starte, wird diese aber wieder auf 0 gesetzt.
    Kann ich das irgendwie verhindern?

    Ein bestimmtes object soll nämlich in ein anderes geändert werden, sobald die Variable mindestens den Wert 1 hat.
  • DragonGamer schrieb:

    Benutzst du die normale game_save Funktion? Wenn ja, dürfte dieser Fehler eigentlich nicht auftreten... ist sonst alles andere im geladenen Level richtig?

    Ja, ich benutz die eingebaute Game Save Funktion. Die funktioniert auch, aber dadurch dass die im ersten Raum auf null gesetzt wird, funktioniert das was ich vorhabe nicht.
    Ich erklärs mal kurz.

    Die Variable wird auf 0 gesetzt.
    Ich klicke auf den Start button und gelange zur Levelauswahl.
    Bei jedem Level wir die Variable um eins erhöht.
    Nun möchte ich aber dass beim nächsten Start der Startbutton nicht mehr der Startbutton ist, sondern sich in den Continue button "verwandelt" hat.
    Erst durch den klick auf den Continue button würde das savegame geladen werden.

    Dadurch dass die Variable sich aber wieder auf 0 setzt, bleibt der button unverändert.

    Ich könnte natürlich 1 Start und 1 Continue button extra machen, aber das will ich nicht.
    Der Start button soll beim zweiten Start quasi weg sein.

    Ich hoffe das war einigermaßen verständlich beschrieben. :D
  • Mit "Start" meinst du ein alden mit der Game_load funktion, oder das Starten des Spiels?
    Wenn letzteres dann musst du einen externen Mechanismus einbauen. Z.B. überprüfen ob die Datai continue.sav existiert (die Datei in der der Spielstand gespeichert wird) und wenn das so ist, die Variable ändern.
    Wenn du noch andere Daten extern speichern willst, solltest du dir ini-Dateien anschauen.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • DragonGamer schrieb:

    Mit "Start" meinst du ein alden mit der Game_load funktion, oder das Starten des Spiels?
    Wenn letzteres dann musst du einen externen Mechanismus einbauen. Z.B. überprüfen ob die Datai continue.sav existiert (die Datei in der der Spielstand gespeichert wird) und wenn das so ist, die Variable ändern.
    Wenn du noch andere Daten extern speichern willst, solltest du dir ini-Dateien anschauen.


    Ich meine damit Starten des spiels.
    Das mit dem überprüfen der savedatei hab ich schon versucht. bekomm dann aber ne fehlermeldung.
    war ungefähr sowas:
    if
    file_exists(savegame) {...}

    funktioniert aber nicht.
    gibts da nen unterschied zwischen gm8 und gms?
  • Hi,

    mohinder schrieb:

    In meinem ersten raum setze ich ein paar globale Variablen.
    Eine dieser Variablen heißt "global.level". Im ersten Raum wird sie auf 0 gesetzt.
    kann es sein, dass du die globalvars definierst, bevor du überprüfen möchtest, ob ein spielstand in einer externen datei existiert und dabei deine "global.level" immer wieder auf null setzen lässt?
    dann kann der button auch nicht nach "continue" wechseln...aber ich kann dich auch falsch verstanden haben.

    mohinder schrieb:

    Dadurch dass die Variable sich aber wieder auf 0 setzt, bleibt der button unverändert.
    genau, deshalb die frage oben...und die idee von DragonGamer, lieber nach der datei zu fragen.

    mohinder schrieb:

    Das mit dem überprüfen der savedatei hab ich schon versucht. bekomm dann aber ne fehlermeldung.
    war ungefähr sowas:
    if
    file_exists(savegame) {...}
    evtl. fehlt hier die dateierweiterung?

    also die buttons danach zu kontrollieren, ob die datei existiert oder nicht, ist hier (denke ich) sinnvoller, als über die abfrage der globalvars zu gehen...wahrscheinlich passiert beides im ersten raum (globalvars setzen und fragen ob datei existiert)...
    magst du mal deine fehlermeldung zeigen, wenn du überprüfst, ob die datei existiert?
    OC
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
    (Albert Einstein)
  • OraCom schrieb:

    Hi,

    mohinder schrieb:

    In meinem ersten raum setze ich ein paar globale Variablen.
    Eine dieser Variablen heißt "global.level". Im ersten Raum wird sie auf 0 gesetzt.
    kann es sein, dass du die globalvars definierst, bevor du überprüfen möchtest, ob ein spielstand in einer externen datei existiert und dabei deine "global.level" immer wieder auf null setzen lässt?
    dann kann der button auch nicht nach "continue" wechseln...aber ich kann dich auch falsch verstanden haben.

    mohinder schrieb:

    Dadurch dass die Variable sich aber wieder auf 0 setzt, bleibt der button unverändert.
    genau, deshalb die frage oben...und die idee von DragonGamer, lieber nach der datei zu fragen.

    mohinder schrieb:

    Das mit dem überprüfen der savedatei hab ich schon versucht. bekomm dann aber ne fehlermeldung.
    war ungefähr sowas:
    if
    file_exists(savegame) {...}
    evtl. fehlt hier die dateierweiterung?

    also die buttons danach zu kontrollieren, ob die datei existiert oder nicht, ist hier (denke ich) sinnvoller, als über die abfrage der globalvars zu gehen...wahrscheinlich passiert beides im ersten raum (globalvars setzen und fragen ob datei existiert)...
    magst du mal deine fehlermeldung zeigen, wenn du überprüfst, ob die datei existiert?
    OC


    Die Variablen werden ganz zu beginn definiert, wenn ich sie erst später definiere dann gibts nämlich auch ne fehlermeldung. aber das hängt ja nicht mit dem überprüfen der save datei zusammen. ich hab hier ja zwei unterschiedliche dinge ausprobiert.

    wenn ich das savegame überprüfen will, kommt folgendes:


    ___________________________________________
    ############################################################################################
    FATAL ERROR in
    action number 1
    of <Unknown Event>
    for object geldo:

    Push :: Execution Error - Variable Get -1.savegame(100008, 0)
    at gml_Room_Level_Start_Create (line 1) - file_exists(savegame.sav)
    ############################################################################################

    egal ob ich versuche "savegame" oder "savegame.sav" zu überprüfen.
    die datei heißt aber definitiv "savegame"

    der code der die meldung verursacht sieht übrigens so aus:

    if
    file_exists(savegame.sav)
    with (Starten) {
    instance_change(weida,1)}

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

  • Benutzer online 2

    2 Besucher