Speicher-/ Ladestände Variabler Name

    • GM 8

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

    • Speicher-/ Ladestände Variabler Name

      Hallo zusammen.

      Ich dacht mir einfach mal ich lasse meine neu gewonnen Erkenntnis, in einem Tutorial hier ein fließen.
      Das Thema lautet.

      -Wie erstelle ich ein Speicherstand System das auch variable Spielstandnamen ermöglicht und diese auch im Laden Menü anzeigt.-


      1.Schritt...... was brauchen wir.
      Eigentlich nicht viel.
      Nur eine "*.ini" Datei.
      Die ich hier einfach mal "savegame.ini" nenne.

      Diese habe ich wie folgt aufgebaut, für zb 6 zur verfügung stehende Speicherplätzte.
      Natürlich könnt ihr mehr hinzufügen, wenn ihr das wollt.
      Bestehend aus 2 sections. und jeweils 6 key's

      [save values]
      1=0
      2=0
      3=0
      4=0
      5=0
      6=0
      [save string]
      1=unbenannt
      2=unbenannt
      3=unbenannt
      4=unbenannt
      5=unbenannt
      6=unbenannt



      Die Section "[save values]", gibt an ob ein Spielstand belegt ist oder nicht.
      Die Section "[save string]", beinhaltet den von Euch im Spiel vergebenen Namen des zu speichernden Spielstandes.


      2. Menü Gestalltung / Daten ausgabe
      Beispiel


      Die Daten für die Spielstände müst Ihr euch nun aus der "savegame.ini" herholen.
      Das gilt für das Speicher, sowie für das Lademenü.
      Damit ihr beim Spieln auch immr wist.Welchen Spielstand habe ich bereits.
      Das geht wie folgt.

      GML-Quellcode

      1. ini_open("savegame.ini")
      2. save_1=ini_read_real("save values","1",0)
      3. save_2=ini_read_real("save values","2",0)
      4. save_3=ini_read_real("save values","3",0)
      5. save_4=ini_read_real("save values","4",0)
      6. save_5=ini_read_real("save values","5",0)
      7. save_6=ini_read_real("save values","6",0)
      8. save_1_info=ini_read_string("save string","1",0)
      9. save_2_info=ini_read_string("save string","2",0)
      10. save_3_info=ini_read_string("save string","3",0)
      11. save_4_info=ini_read_string("save string","4",0)
      12. save_5_info=ini_read_string("save string","5",0)
      13. save_6_info=ini_read_string("save string","6",0)
      14. ini_close()
      Alles anzeigen

      Dies gibt euch erstmal Information, wie der Stand der Dinge ist.
      Wie und wo ihr euch die Text ausgeben last ist Eure Entscheidung. Oben ist ein Beispiel wie es aussehen könnte
      Ich habe sie mit "draw_text" unter einander aufgelistet. // PS die Zahl 1-6vor den Speicherstand Plaätzen ist per extra draw_Text gezeichnet. Dies übernicht nicht dieses Tutrial hier.

      Die Variablen save_1-6 geben euch Information ob ein Spielstand 1-6 vorhanden ist bzw die Variable save_info_1-6 wie der dazu gehörige Name ist.

      3.Schritt....Das Speichern
      Der Code für das Speichern sieht wie folgt aus, inklusive einer Überprüfung, zwecks Überschreiben eine Spielstandes.

      GML-Quellcode

      1. if save_1=0 then{
      2. if show_question("Spielstand speicher ?")=1 then
      3. {
      4. save_text=get_string("Spiestand Bezeichnung","Spielstand 1")//wirdder Spielstandbezeichnung gefragt
      5. ini_open("savegame.ini")
      6. ini_write_real("save values","1",1)
      7. ini_write_string("save string","1",string(save_text))
      8. ini_close()
      9. game_save("01")
      10. }
      11. }
      12. else
      13. if show_question("Spielstand überschreiben ?")=1 then
      14. {
      15. save_text=get_string("Spiestand Bezeichnung","Spielstand 1") //wirdder Spielstandbezeichnung gefragt
      16. ini_open("savegame.ini")
      17. ini_write_real("save values","1",1)
      18. ini_write_string("save string","1",string(save_text))
      19. ini_close()
      20. game_save("01")
      21. }
      Alles anzeigen

      Nun könnt Ihr in eure "savegame.ini" datei schauen und sehen, das sie sich verändert hat.

      [save values]
      1=1 //hier steht nun eine 1 da spielstand ein verwendet wurde aber immer überschrieben werden kann von euch
      2=0
      3=0
      4=0
      5=0
      6=0
      [save string]
      1=euer Name //steht dann euer im Spiel eingegeben text
      2=unbenannt
      3=unbenannt
      4=unbenannt
      5=unbenannt
      6=unbenannt


      4.Schritt....Das Laden

      Hier wird wieder die "savegame.ini" ausgelesen um euch erstmal mit Informationen zu versorgen, ob Spielständer vorhanden sind und wie sie heisen.
      Erneut gebt Ihr die abfrage ein...

      GML-Quellcode

      1. ini_open("savegame.ini")
      2. save_1=ini_read_real("save values","1",0)
      3. save_2=ini_read_real("save values","2",0)
      4. save_3=ini_read_real("save values","3",0)
      5. save_4=ini_read_real("save values","4",0)
      6. save_5=ini_read_real("save values","5",0)
      7. save_6=ini_read_real("save values","6",0)
      8. save_1_info=ini_read_string("save string","1",0)
      9. save_2_info=ini_read_string("save string","2",0)
      10. save_3_info=ini_read_string("save string","3",0)
      11. save_4_info=ini_read_string("save string","4",0)
      12. save_5_info=ini_read_string("save string","5",0)
      13. save_6_info=ini_read_string("save string","6",0)
      14. ini_close()
      Alles anzeigen


      Um nun ein Spielstand zu laden der Verfügbar ist, könnt ihr nun mit den Variablen save_1-6 abfragen ob sie vorhanden sind oder nicht.
      Kurzgesagt sieht das wie folgt aus

      GML-Quellcode

      1. if save_1=1 then if show_question("Spielstand laden ?")=1 then game_load("01")

      Natürlich muss über all ein Maustasten abfrage vor...ist ja klar.
      Wie ihr das einbaut und durch welche aktionen ist ja euch über lassen.

      Bei mir hab ich das durch kleine anzeige hilfen aus gebaut.
      zb durch farbliche abhebung der Schrift, im Fall ein Spielstand ist vorhanden.
      So könnt ihr gleich mit einem Blick sehen was zu laden, möglich ist.
      Hier noch mal ein Anwendungsbeispiel...


      Anmerkung. Dieses Speicher Menü macht es einen recht einfach. Zumindest wenn das Gerüst drum herum stimmt. Bis ich es so hatte wie ich es brauchte sind es schon ein paar 100 zeilen mehr als im Tutrial geworden.

      Mann kann auch jeder Zeit von außen an die "*.ini" Datei heran und die Variablen per Hand ändern. Was einen aber auch keinen direkten Vor- und/oder Nachteil bringt.
      Die Spielstände verschwinden ja nicht. Nur das Programm gibt sie auf Grund der Variablen änderung von 1 auf 0 nicht frei.

      Ich hoffe das ich etwas Konstruktieves zum Tutorial Bereich hinzufügen konnte.

      Für Schreibfehler entschuldige ich mich schon mal im voraus. //Die werden beim 2 Mal lesen erst ausgebessert :)
      Meine Signatur hat kein Visum für das GM Forum erhalten.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von x-sascha ()

    • Huhu,
      magst du mir vielleicht einmal dein Spiel schicken, wo dieser Speicherskirpt nackt eingefügt ist? Ich lerne immer am besten, wenn ich die Dinge sehe :D
      Das wäre mega cool :D
      Danke!
      True story!
    • Wieso hast Du keine for-schleifen (mit arrays ^^) verwendet?
      Soll kein Vorwurf sein, aber es würde das ganze um viele Zeilen Code verringern.
      Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)

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

    • Benutzer online 1

      1 Besucher