.ini will nicht wie ich will

  • GM 8

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

  • .ini will nicht wie ich will

    Hallo liebe com,

    versuche einen score aufm Handy über ne ini-datei zu speichern.

    Der Code:

    GML-Quellcode

    1. if global.punkte >= global.points
    2. {
    3. ini_open("datei")
    4. ini_write_real("Punkte","Score",global.punkte)
    5. ini_close()
    6. }



    Dann kommt aber ne Fehlermeldung bei dem >= und ich verstehe einfach nicht wieso. Kann es ja nicht anders machen soll ja den Highscore nur überschreiben wenn man mehr Punkte wie vorher hat. Bitte dringend um hilfe :)
  • ___________________________________________
    ############################################################################################
    FATAL ERROR in
    action number 1
    of Other Event: Room End
    for object punkte_obj:

    Push :: Execution Error - Variable Get -5.points(100003, -1)
    at gml_Object_punkte_obj_Other_5 (line 1) - if global.punkte >= global.points
    ############################################################################################
  • MiLoPi schrieb:

    ist im selben Event wie die .ini speicher Funktion. Also denke ich das, dass mit dem finden eig nicht sein kan


    Die Fehlermeldung besagt aber eindeutig, dass global.points zum Zeitpunkt des Vergleichs nicht initialisiert ist. Vielleicht postest du ja deinen code mal
  • ich weis ja nicht wie gut du in game maker bist, aber kann es auch sein das du das erst danach ,also darunter deklariert hast? also wie him66 schon sagte ohne code koennen wir nichts anfangen.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Das Punkte object = global.punkte

    Der code dafür:

    :event_create:

    GML-Quellcode

    1. global.punkte = 0


    :event_other: RoomEnd

    GML-Quellcode

    1. if global.punkte>= global.points
    2. {
    3. ini_open("datei")
    4. ini_write_real("Punkte","Score",global.punkte)
    5. ini_close()
    6. }


    :event_draw:

    GML-Quellcode

    1. draw_text(x,y,string(global.punkte))


    Dann habe ich noch ein zweites punkte objek wo im "GameOver-Raum" die geschafften punkte anzeigen soll
    GameOver_Punkte = global.points

    Der Code:

    :event_create:

    GML-Quellcode

    1. global.points=0


    :event_other: RoomStart

    GML-Quellcode

    1. ini_open("datei")
    2. global.points = ini_read_real("Punkte","Score",0)
    3. ini_close()


    und dann wie oben das drawevent.
    Das alles habe ich mir eben so ausgedacht. Wenn man verliert endet der Raum und wenn die Punktzahl größer ist wie die im GameOver wird die .ini Datei überschrieben, um sie auszulesen wird wenn der GameOver Raum gestartet wird die .ini geöffnet und bei global.points eingesetzt. Könnt ihr mir jz vll meinen fehler erläutern? Bzw. kann man die >= abfrage in der .ini einbauen so das der wert intern immer geändert oder eben nicht geändert wird?:))
  • HIM666 schrieb:

    Ich bin mir gerade nicht 100% ig sicher aber ich glaube das room start event wird vor dem create event ausgeführt. Das solltest du mal testen.

    Nein, das Create Event wird immer als erstes ausgeführt, sogar früher als der Creation Code des Raumes. Versuche zusätzlich zum Code:

    GML-Quellcode

    1. global.punkte = 0

    noch folgendes zu Ergänzen:

    GML-Quellcode

    1. global.punkte = 0
    2. ini_open("datei")
    3. global.points = ini_read_real("Punkte","Score",0)
    4. ini_close()

    Dann sollte er auch im Spiel und nicht nur im Game Over Berreich die Variable kennen.
  • so leute habs endlich geschafft und zwar habe ich das Prob. wie folgt gelöst:

    •punkte_obj

    :event_other: RoomStart

    GML-Quellcode

    1. global.punkte = 0
    2. global.points = 0
    3. ini_open("datei")
    4. global.points = ini_read_real("Punkte","Score",0)
    5. ini_close()


    :event_other: RoomEnd

    GML-Quellcode

    1. global.inipunkte = global.punkte
    2. global.inipoints = global.points
    3. if global.inipunkte>= global.inipoints
    4. {
    5. ini_open("datei")
    6. ini_write_real("Punkte","Score",global.inipunkte)
    7. ini_close()
    8. }


    •highscore_obj

    :event_other: RoomStart

    GML-Quellcode

    1. global.punkte=0
    2. ini_open("datei")
    3. global.points = ini_read_real("Punkte","Score",0)
    4. ini_close()



    vielen dank für die ganzen hilfreichen Antworten. Hoffe das hilft anderen die ähnliche/gleiche Probleme damit haben/hatten.