Rang speicherung

  • GM 8

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

  • Rang speicherung

    Hi
    ich hab in meinem Spiel Ränge eingeführt das wenn man z.b 5 XP sammelt rang 2 ist wenn man in Level 2 ist speichert sich der rang oder wenn man stirbt.Aber wenn ich z.b Level 2 bin bin ich immernoch rang 2 aber wenn ich von neu anfange XP zu sammeln bin ich wieder rang 1,2...Also nach dem tot,neues Level speichert sich zwar der Rang aber er wird wenn ich von neu anfange XP zu sammeln beginnt er wieder bei Rang 1.
    *Tzzzzzzsschhhhhhhhhhhhhhhhhhhhhhh*
  • Hallo! :D

    Arbeite unbedingt an deiner Schreibweise. Die ist schwer leserlich.

    Nun, so wie ich das verstanden habe, setzt du irgendwo in einem Start Event :event_create: die Variable Rang auf 1. Stimmt das?
    Denn dann wird bei jedem Restart dieser Rang auf 1 gesetzt.

    Es gibt verschiedene Wege, den Rang zu speichern. Am besten in einer INI-Datei (mehr dazu siehe Hilfe).
    Wenn du nun restartest bzw. stirbst, lässt du überprüfen ob der Rang Level 1 ist. Wenn ja, restart. Wenn nein, erst restarten und dann gleich Level aus der INI laden.

    Sollte ich dich falsch verstanden haben, schreibe genau, was du eigentlich meinst. Oo
  • INI Dateien
    Um bestimmte Programmeinstellungen zu speichern, wird oft eine INI-Datei verwendet. INI-Dateien enthalten verschiedene Bereiche. Jeder Bereich enthält einige Name-Wert-Paare. Eine typische INI-Datei sieht etwa so aus:

    [Form]
    Top=100
    Left=100
    Caption=Das beste Spiel aller Zeiten
    [Game]
    MaxScore=12324

    Diese Datei enthält zwei Bereiche: Einen mit Namen "Fenster" und einen Bereich "Spiel". Der erste Bereich enthält drei Paare. Die ersten beiden sind Zahlen, während das dritte ein String ist. S olche INI-Dateien sind einfach zu erstellen und zu verändern. Die folgenden Funktionen existieren im Game Maker, um Daten zu lesen und zu schreiben:

    ini_open(name) Öffnet die INI-Datei mit dem gegebenen Namen. Die Datei muss sich im selben Ordner wie das Spiel befinden!
    ini_close() Schliesst die aktuell geöffnete INI-Datei.
    ini_read_string(section,key,default) Liest den String mit dem Namen key im Bereich section. Existiert der String nicht, wird default zurückgegeben.
    ini_read_real(section,key,default) Liest die Zahl mit dem Namen key im Bereich section. Existiert die Zahl nicht, wird default zurückgegeben.
    ini_write_string(section,key,value) Schreibt einen String mit dem Namen key in den Bereich section.
    ini_write_real(section,key,value) Schreibt eine Zahl mit dem Namen key in den Bereich section.
    ini_key_exists(section,key) Gibt zurück, ob der Name key in dem Bereich section existiert.
    ini_section_exists(section) Gibt zurück, ob der Bereich section existiert.
    ini_key_delete(section,key) Löscht den Schlüssel key aus dem Bereich section.
    ini_section_delete(section) Löscht den Bereich section.


    //EDIT
    Wichtig ist: Datei öffnen, in Datei schreiben, Datei wieder schliessen.

    //EDIT

    Speichere am besten auch deine XPs.

    INI-Datei

    Quellcode

    1. [level]
    2. level = 3;
    3. [xp]
    4. xp = 60;


    Oder so in der Art.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Michaelp800 ()

  • mertcan schrieb:

    Egal ich hab schon ne lösung gefunden
    Trotzdem Danke

    Die Lösung interessiert mich brennendst.
    Schreib' bitte immer, wie du ein Problem gelöst hast. Das hilft anderen Usern mit ähnlichen Problemen.

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

  • Vectorhead schrieb:

    hallo

    Würde auch gern wissen wie du das Problem gelöst hast, da ich gerade das gleiche problem habe.
    Danke im voraus.

    lg vectorhead

    Was für ein Problem hast du?
    Eröffne gegebenenfalls ein neues Thema, da dieses als "gelöst" abgehakt worden ist.

  • Was für ein Problem hast du?
    Eröffne gegebenenfalls ein neues Thema, da dieses als "gelöst" abgehakt worden ist.


    Bei meinem Spiel Rush gibt es Powerups, wenn ich nun einen neuen Level also Raum eröffne sind die Powerups natürlich wieder auf 0. :(
    Da ich ein Drag and Drop anfänger bin und gerade erst begonnen habe mich in GML einzulernen ist das mit der ini ein grosses Problem für mich. ?(

    Zwar ist in diesem Threat ein lösungs Vorschlag mit der ini, aber ich bräuchte eher ein funktionierendes Example um mich einzulesen und zu verstehen. ;(

    Ich denke ich werde keinen neuen Raum erstellen, sondern mein Problem vorerst umgehen und alles in einem Raum mit Timelines zu lösen.

    lg vectorhead
    lg Vectorhead
  • mit ini ist doch nun wirklich schwierig.....
    Zwei Möglichkeiten:
    a Die Hilfe lesen ( die wurde oben schon zitiert)
    b einfach mal die Suchfunktion oder Dr. google benutzen da gibt es tausende Beispiele und Examples
    (und wenn du des englischen mächtig bist, wovon ich einfach mal ausgehe gibt es auch noch das englische Yoyogames Forum wo man auf fast alles eine Antwort findet.)



    Aber ich bin mal so nett und geb dir ne Hilfestellung ;)

    GML-Quellcode

    1. INI_open(xyz) zum initialiesiren
    2. ini_read_real/string(xy,yx,zx) zum lesen
    3. ini_write_real/string(xy,yx,zx) zum schreiben
    4. ini_close(xyz) zum "schließen" der ini (wichtig)
    :rage:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von meav33 ()


  • mit ini ist doch nun wirklich schwierig.....


    tut mir leid das ich ein absoluter anfänger bin in GML :(

    ich habe eine ini mit dem namen schuss im gameordner erstellt, in der steht:

    [schuss]
    schuss = 4;

    Dann habe ich ein script erstellt das ausgeführ wird wenn das raumschiff spawnt, in dem steht:

    ini_open(schuss)
    ini_read_real(schuss,schuss,0)
    ini_close()

    Ich dachte das es funzt aber er schreibt:

    ERROR in
    action number 11
    of Create Event
    for object obj_schiff1:

    Error directory does not exist when opening ini file -


    Kann mir Bitte jemand helfen, sorry ich bin einfach zu Dämlich. :headtouch:

    Danke und Frohe Weihnacht im voraus

    lg vectorhead
    lg Vectorhead
  • ähh erstmal alle schuss ins "schuss" ändern
    und ini_read_real(schuss,schuss,0) ist so direkt auch sinnlos, vielleicht zahl=ini_read_real(schuss,schuss,0)?
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D