Speichern funktioniert nicht / Variable speichern

  • Versuch mal folgendes an Stelle von Cast to im Widget.


    Ich nehme einfach mal an, das deine Anzeige ein Textblock ist.


    Für den erstellst du ein Binding.

    Wenn du das gemacht hast öffnet sich automatisch eine neue Funktion Get_Text.... für das Widget. Diese hat am Anfang nur eine Eingangs und eine Ausgangsnode


    Die veränderst du wie folgt...




    Als Actor Class nimmst du den Actor in dem deine Variable steckt, die du anzeigen willst.

    Bei Return Value wählst du die Variable, die du anzeigen willst.


    Dann eventuell noch in Text konvertieren und das dann an Return Value.


    Sollte eigentlich funktionieren. Wenn da nicht noch zig andere Fehler in deinem Programm sind.

  • Sollte eigentlich funktionieren. Wenn da nicht noch zig andere Fehler in deinem Programm sind.

    Exakt das hab ich gemacht (Siehe Bild). Habe auch deins gemacht und es geht.

    Nun muss ich aber zu einer Game Instance und das geht mit dem Block anscheinend nicht, oder? Kann sie zumindest nicht erreichen

  • Wie der Name der Node schon sagt, geht das nur mit Actors. Aber was ist den SpeicherGI.


    Das Problem ist halt, das du wahrscheinlich für deine Routinen andere Namen nimmst als meine Wenigkeit. Deswegen muss man ja immer ein wenig raten. Aber mit SpeicherGI kann ich jetzt nicht so viel anfangen.


    Und warum greifst du auf eine Gameinstance zu die du per Text ausgeben willst, aber nichts ist verbinden bis auf die Execverbindung?

  • Und warum greifst du auf eine Gameinstance zu die du per Text ausgeben willst, aber nichts ist verbinden bis auf die Execverbindung?

    Wollte illustrieren dass ich beides angewendet habe.

    Das Problem ist halt, das du wahrscheinlich für deine Routinen andere Namen nimmst als meine Wenigkeit. Deswegen muss man ja immer ein wenig raten. Aber mit SpeicherGI kann ich jetzt nicht so viel anfangen.

    Sorry, tut mir leid. SpeicherGI ist eine Game Instance. Bei den bleiben während des spielens doch die Variablen erhalten, oder?

    Zu blöd für Unreal. Aber Unity wär noch schlimmer... *dead*

    ==== P.S.: ====
    Wer ist das?

    :gamemaker:

    == P.S. Ende ==

  • Hey!



    Ich hatte mal ein ähnliches Problem, habe auch viel dazu angeschaut und es irgendwann hinbekommen



    Ein paar Tipps zu dem was ich bisher an deinen Screenshots erkenne



    - wenn du bei jeder Funktion den "Does Savegame Exist -> False -> Create" Weg gehst, gibt das nur noch mehr Fehlerquellen ... schau mal in deinen Projects Ordner /Saved/Savegames/****.sav.

    Wenn du hier unmengen Testversuche hast - kann das System ja nicht wissen aus welchem Savegame die info geladen werden soll


    - erstell für ein Singeplayer Spiel ein Savegamemaster in dem du alles speichern willst, Name, XP usw.

    Korrigiert mich wenn ich falsch liege, aber die Werte XP und Name müssen im Master auf Instance editable Variable gesetzt sein (das Auge)

    (wie es bei Multiplayer Spielen und Servern aussieht, weiß ich nicht, so weit bin ich auch noch lange nicht)



    - Die Slot Name Variable hat bei mir anfangs auch oft Fehler verursacht, hab es deshalb ohne Variable gemacht und den Filename so eingegeben (kann auch ein Fehler meinerseits gewesen sein)

    dann weiß das System es gibt EINE Savefile "Speicher" und bezieht sich darauf


    - Erstell ein Widget welches das Savegame erstellt und du deinem spieler einen Namen geben kannst

    - Ich hab ein Leeres Start Level erstellt, das den Check einmal macht: Does Save Game exist -> Branch(false) -> Create Widget -> Add to Viewport

    Branch (true) -> Open Level "Hauptmenü" z.b.


    - Dadurch das dieses Savegame erstellt werden MUSS beim ersten Spielstart, musst du nicht überall die "Does Savegame Exist" Abfrage machen (weil du ja weißt das es das Savegame gibt) und musst auch nicht die Branch Create setzen (wie gesagt fehlerquelle) ... so kannst du direkt die "Load Game from Slot -> Cast to savegame -> *event* -> Save game to slot" wege gehen



    ----

    ich hab dir meine Variante mit den Tipps als kleines Beispiel erstellt (ist 4.24, lässt sich sicher downgraden oder den Content Ordner einfach rüberkopieren)


    http://www.mediafire.com/file/…ouxpjvvh/SaveTut.rar/file


    Hab dir pro Schritt noch Kommentare eingefügt - Reihenfolge zum verständnis ist:

    Savegame_Tutorial: (MasterSave) das Name und XP speichert


    0_Start_Level: (LevelBlueprint) Begin Play -> Does Savegame Exist -> False -> Create Widget (0_Start_Menu)

    0_Start_Menu: (Widget) Textfeld ermöglicht dir deinen Charakter zu benenen - der Button erstellt Savegame "Speicher" und führt zur nächsten widget

    0_Profile_Created: (Widget) Button zum Level "Third Person Example Map"

    ExampleMap: (LevelBlueprint) erstellt Interface Widget und du siehst Kugeln am Boden

    Hindernis_XP: (ActorBlueprint) Overlapping all -> Addiert BP_Variable "Mesh_XP" zu Savegame XP


    1_IngameInterface: (Widget) zeigt deinen Spielernamen und aktualisiert XP



    Das ist sicher nicht der perfekte Weg, funktioniert aber für mich bisher ganz gut ... ich hoffe das hilft dir auf die Sprünge und löst die Denkblockade :)

  • Heilige Kacke... da hatte wohl jemand einen Schreibrausch :D

    Zuerst einmal: Vielen Dank!
    Ich habe mir dein Programm mal angesehen. Bei mir läuft das eigentlich ähnlich. Ich werde beides jetzt mal miteinander Vergleichen und gucken wo bei mir der Fehler ist.


    ich melde mich wieder!


    Danke nochmal <3:saint:

    Zu blöd für Unreal. Aber Unity wär noch schlimmer... *dead*

    ==== P.S.: ====
    Wer ist das?

    :gamemaker:

    == P.S. Ende ==

  • So. Habe das jetzt mit Guki besprochen. Werde morgen alles ausführlich schreiben.


    Vielen Dank an alle die mitgemacht haben :) Ich danke euch von ganzem Herzen

    Zu blöd für Unreal. Aber Unity wär noch schlimmer... *dead*

    ==== P.S.: ====
    Wer ist das?

    :gamemaker:

    == P.S. Ende ==