Irgendwie habe ich einen Logikfehler in meinen Gameslots. Bzw. Übergabeproblem zwischen den Widgets.

  • Hi zusammen.

    Ich arbeite gerade an meinen Savegame-Slots. Dazu habe ich einen Button erstellt, der aus Screenshot, Datum, Levelname und Slotnummer besteht. Des Weiteren habe ich noch eine Enum-Auswahl hinzugefügt, damit ich einstellen kann, ob der Button gerade für Speichern oder Laden benutzt wird.

    Letzteres ist in der Hinsicht wichtig, weil, ich grundsätzlich 9 Slots zur Verfügung stelle. Wenn diese 9 Slots beim Laden benutzt werden, dann sollen nur die Buttons, eneabled sein, die auch einen gespeicherten Spielstand haben, alle anderen sollen disabled sein.

    Werden die Buttons fürs Speichern verwendet, dann sollen alle Buttons enabled sein, weil ergibt ja wenig Sinn, wenn man nur speichern kann, wenn bereits ein Spielstand vorhanden ist. So weit, so gut.

    Folgenden Code habe ich da bisher verwendet.

    Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Jetzt ist aber halt das Problem, dass die Buttons immer disabled sind, egal ob ich auf Load oder Save gestellt habe.

    Also muss da irgendwo ein logischer Fehler stecken, den ich nicht erkenne. Standardmäßig stehen sie ja auf enabled. Also muss er irgendwo in die abzweigung gehen, dass sie alle disabled werden sollen.

    Der Vollständigkeithalber noch die Art, wie ich den Status vom Menü aus setze.



    Setstus entsprich dem Enum mit der Auswahl für Load oder Save. In meinem Fall jetzt mal zum Testen auf Save gestellt, was aber halt nicht funktioniert.

  • Hat wirklich niemand eine Idee, wo ich falsch abgebogen bin? Irgendwie sehe ich den Fehler nicht.


    Ich weiß nur, an der Stelle wo getestet wird, ob die Einstellung des Buttons == Load ist, ergibt das immer true. Also muss eigentlich etwas an der Übergabe schieflaufen.

    Aber was?

  • Tomarr

    Hat den Titel des Themas von „Irgendwie habe ich einen Logikfehler in meinen Gameslots.“ zu „Irgendwie habe ich einen Logikfehler in meinen Gameslots. Bzw. Übergabeproblem zwischen den Widgets.“ geändert.
  • Was wird denn im Menü gesetzt? Der Enumerator oder set Status? Die müssen ja unabhängig voneinander gesetzt werden, oder? Also

    wenn set Status im Menü gesetzt werden würde, müsste der Enumerator immer auf Load bleiben. Wenn der Enum im Menü Gesetz wird, müsste halt set Status immer auf Laod sein, wenn ich das richtig verstanden habe.;)

  • Nein, das siehst du im BP unter dem Kommentar Differences between empty Load and Save.

    Da ist die erste Node der Vergleich. Diese steht bei mir auf "Load". Wird nur leider nicht richtig dargestellt von "blueprintue.com", weil ich dort ja die Enumdatei nicht einfügen kann.

  • Also ich kann ja die Abfragereihenfolge noch einmal zusammenfassen.

    Zuerst wird überprüft, ob ein Savegame existiert. Wenn ja, dann ist der Button so oder so enabled.
    Wenn nicht, wird geprüft, ob er zum Speichern oder Laden benutzt wird. Wenn er zum Laden benutzt wird, dann ist er nicht enabled, weil ja auch kein Savegame existiert. Wenn er zum Speichern verwendet wird, dann soll er in jedem Fall enabled sein.

  • Dann setz doch mal gleich nach dem Event Construct alle Buttons (Set Is Enabled) auf true, also alle erst nochmal auf sichtbar, vor der abfrage, ob sie existieren. Wenn dann der Vergleich == funktioniert, müssten die nicht vorhandenen wieder auf disabled sein.

  • Noch ein kleiner Nachtrag. Ich habe einfach mal die Enabled Bedingungen vertauscht, also so das bei Load alle Enabled sind und bei Save halt nicht. Da sind dann tatsächlich alle Buttons Enabled.


    ABER ... Wenn ich den Aufruf jetzt in Load ändere, sind erstens alle noch immer enabled, was schon nicht stimmen kann. Aber er unterscheidet trotzdem den Aufruf. Denn wenn ich mit Savemodus aufrufe und den Button dann anklicke, dann speichert er den Spielstand auch. Wenn ich im Loadmodus starte, dann speichert er nicht, sondern er lädt.

    Also muss der Status doch irgendwie richtig übergeben werden. Was mich jetzt vollends irritiert.

  • Zitat

    Da ist die erste Node der Vergleich. Diese steht bei mir auf "Load". Wird nur leider nicht richtig dargestellt von "blueprintue.com", weil ich dort ja die Enumdatei nicht einfügen kann.

    Und wenn du den mal auf "Save" stellst, und die Enabled Bedingungen wieder original sind.

  • Und wenn du den mal auf "Save" stellst, und die Enabled Bedingungen wieder original sind.

    Ja, wie gesagt, wenn ich es umkehre, also bei Loadbutton alle auf enabled, dann sind auch alle enabled.

    Wenn ich auf Load schalte und ein Savegame vorhanden ist, dann sind auch alle disabled, bis auf der belegte Loadbutton, wo ein Savegame vorhanden ist, auch so wie es sein soll.

    Wenn ich jetzt experimentell immer alle Buttons auf Enabled schalte, und auf Load schalte, dann verhält sich der Button auch wie ein Loadbutton und bei Save speichert er den Spielstand wie es sein soll. Also auch da scheint alles richtig zu funktionieren.

    Lediglich enabled und disabled scheint nicht richtig gesetzt zu werden. Das macht mich irgendwie irre.

  • Ich kann ja noch einmal die Codes direkt alle posten. Aber bedenke, blueprintue, die Enumdatei, die kann ich halt nicht mit einfügen.

    Also, das hier ist der Button Load/Save

    Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Das ist also die Grundlage des Übels und ist nur ein einzelner Button. Der enthält eine Variable mit dem Status vom Typ Enum. Ich pack mal einen Screenshot dazu, zwecks Übersicht.



    Dann habe ich eine Page erstellt, in der alle 9 Slots angeordnet sind, auch diese enthält eine Variable Typ Enum, um eben halt den Status aufzunehmen und an die Buttons weiterzugeben.

    Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.




    Und dann halt das Hauptmenü, welches alles aufruft.


    Externer Inhalt blueprintue.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.