Zeige Ergebnis 1 bis 5 von 5
  1. #1
    Maps Benutzerbild von Swordman
    Registriert seit
    Okt 2008
    Beiträge
    171
    Likes
    0

    [Trigger] Daten abspeichern und Laden (Bank System)

    Moin, liebe Mapperlinge.

    Da ich grade nichts zu tun habe, erklär ich euch mal, wie ihr bestimmte Werte abspeichern bzw. beim nächsten Start wieder laden könnt.
    Ich muss aber Anmerken, dass ihr über Trigger grundkenntnisse verfügen Solltet.

    Wie fange ich an?

    Als erstes müssen wir mal eine Bank anlegen (in diesem Beispiel für 4 Spieler).

    Dazu erstellt ihr zuerst eine Globale Variable.
    Als Typ wählt ihr "Ablage" (Wo hat blizzard nur seine Übersetzer her?).
    Da es für 4 Spieler gedacht ist, macht ihr ein Häkchen unter "Datenliste" und schreibt eine 4 rein.
    Nun erstellt ihr einen neuen Trigger, der am besten am anfang gestartet wird (also Karten-Initialisierung oder Verstrichene Zeit 0).
    Als erstes verwendet ihr den Trigger "jeden Integer auswählen" unter "Allgemein", und wählt von 1 bis 4 aus.

            Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen

    Nun erstellt ihr eine weitere Aktion.Wählt in der Liste "Bank", und wählt "Preload von Bank" aus.
    Dann gebt ihr einen passenden Namen für eure Bank ein, und unter Spieler wählt ihr unter "Allgemein" "Ausgewählte Integer-Zahl".

            Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen
    Bank - Preload von Bank "Mapname" für Spieler (Ausgewählte Integer-Zahl) ausführen und synchronisieren

    Dieser Trigger bewirkt, dass die daten der Bereits gespeicherten Bank in die Map übertragen werden.

    Nun wollen wir aber die neue Bank erstellen, bzw. zum Speichern öffnen.
    Also wählt ihr als nächstes die Aktion "Bank Öffnen" aus, und wählt als Namen GENAU denselben Namen, den ihr auch beim Preload verwendet habt.
    Unter Spieler wählt ihr nochmal "Ausgewählte Integer-Zahl".

            Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen
    Bank - Preload von Bank "Mapname" für Spieler (Ausgewählte Integer-Zahl) ausführen und synchronisieren
    Bank - Bank "Mapname" eröffnen für Spieler (Ausgewählte Integer-Zahl)

    Damit wir die Bank nun auch für Später verwenden können, müssen wir sie noch der am anfang erstellten Variable zuordnen.

    Erstellt eine neue "Variable Festlegen" - Aktion.
    Wählt eure Erstellte Variable aus, und wählt in der Zahl "Ausgewählte Integer-Zahl" aus. Als wert wählt ihr "Zuletzt geöffnete Bank" aus.

            Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen
    Bank - Preload von Bank "Mapname" für Spieler (Ausgewählte Integer-Zahl) ausführen und synchronisieren
    Bank - Bank "Mapname" eröffnen für Spieler (Ausgewählte Integer-Zahl)
    Variable - Bank[(Ausgewählte Integer-Zahl)] = (Zuletzt geöffnete Bank) festlegen

    Die Bank wurde nun erstellt.


    Wert Abspeichern

    In unserem Beispiel haben wir einen Helden, dem man einen Namen geben kann, und den Man Leveln kann. Also wollen wir Name, Level und EXP speichern.

    Dazu erstellt ihr für jeden dieser Werte eine Variable, mit Datenliste 4.
    Also 2 Mal Integer, und einmal Text mit jeweils Datenliste vier.
    Erstelle nun einen neuen Trigger. Als Ereigniss wählst du aus, wann gespeichert werden soll. In den Aktionen erstellst du wieder eine Integer-Schleife von 1 bis 4.
    Erstelle eine neue "Integer Speichern" - Aktion.
    Wähle unter Integer deine Level Variable aus, und in der Zahl wählst du "Ausgewählte Integer-Zahl aus.
    Als Taste wählst du etwas aus, dass du dir merken kannst, und am besten komplett klein.In unserem Beispiel verwenden wir "level" als Taste.
    Unter Sektion verwenden wir "hero" , da es ja um unseren Hero geht.
    Als Bank wählt ihr die Bank-Variable, und die Zahl ändert ihr in "Ausgewählte Integer-Zahl" um.Das selbe macht ihr nun auch mit EXP und Namen.

    Achtung: Um den Namen zu speichern, musst du "Text speichern" als Aktion verwenden.


    Zum schluss erstellt ihr noch eine "Bank speichern" - Aktion.
    Dort wählt ihr eure Bank-Variable aus, und wählt als Zahl "Ausgewählte Integer-Zahl".
    Sollte dies zu viel für euch gewesen sein, hier der code:

            Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen
    Bank - Integer Level[(Ausgewählte Integer-Zahl)] als "level" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] speichern
    Bank - Integer EXP[(Ausgewählte Integer-Zahl)] als "exp" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] speichern
    Bank - Text Name[(Ausgewählte Integer-Zahl)] als "name" von Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] speichern
    Bank - Bank Bank[(Ausgewählte Integer-Zahl)] speichern


    Die Variablen Laden

    So, geht nun wieder zum Ersten Trigger zurück (in dem ihr die Banks erstellt habt). Setzt nun den Wert eurer Level, EXP und Namen Variablen auf die Gespeicherten Bank Werte.
    Erstellt eine "Variable Festlegen" Aktion , und wählt eure Variablen aus.
    Die Zahlen wieder auf "Ausgewählte Integer-Zahl" setzen.
    Als wert geht ihr nun Links in der Liste auf "Bank" und wählt dann "Integer-Wert laden"
    Als Taste und Sektion wählt ihr Haargenau das selbe aus, wie beim speichern.
    Als Bank wählt ihr eure Bank Variable aus, und die Zahl setzt ihr auf "Ausgewählte Integer-Zahl.

    Variable - Level[(Ausgewählte Integer-Zahl)] = ("level" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] als Integer-Wert laden) festlegen
    Variable - EXP[(Ausgewählte Integer-Zahl)] = ("exp" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] als Integer-Wert laden) festlegen
    Variable - Name[(Ausgewählte Integer-Zahl)] = (Key "name" der Sektion "hero" von Bank Bank[(Ausgewählte Integer-Zahl)] als Text laden) festlegen


    fertig.


    Zusammenfassung

    Hier nocheinmal die Liste der zu verwendeten Variablen:

    Code:
    Bank = Keine Bank <Ablage[4]>
    Level = 0 <Integer[4]>
    EXP = 0 <Integer[4]>
    Name = Kein Text <Text[4]>
    Hier die Aktionen des "Erstellen und Laden" Triggers :

    Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen
    Bank - Preload von Bank "Mapname" für Spieler (Ausgewählte Integer-Zahl) ausführen und synchronisieren
    Bank - Bank "Mapname" eröffnen für Spieler (Ausgewählte Integer-Zahl)
    Variable - Bank[(Ausgewählte Integer-Zahl)] = (Zuletzt geöffnete Bank) festlegen
    Variable - Level[(Ausgewählte Integer-Zahl)] = ("level" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] als Integer-Wert laden) festlegen
    Variable - EXP[(Ausgewählte Integer-Zahl)] = ("exp" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] als Integer-Wert laden) festlegen
    Variable - Name[(Ausgewählte Integer-Zahl)] = (Key "name" der Sektion "hero" von Bank Bank[(Ausgewählte Integer-Zahl)] als Text laden) festlegen


    Hier die Aktionen des Speichern Triggers:

            Allgemein - Jeden Integer von 1 bis 4 aufsammeln und ausführen (Aktionen)
    Aktionen
    Bank - Integer Level[(Ausgewählte Integer-Zahl)] als "level" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] speichern
    Bank - Integer EXP[(Ausgewählte Integer-Zahl)] als "exp" der Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] speichern
    Bank - Text Name[(Ausgewählte Integer-Zahl)] als "name" von Sektion "hero" in Bank Bank[(Ausgewählte Integer-Zahl)] speichern
    Bank - Bank Bank[(Ausgewählte Integer-Zahl)] speichern



    Fazit

    Ihr habt nun euer Speichern/Ladesystem erstellt, welches bestimmte Variablen speichert, und Ladet. Die Variablen müsst ihr nurnoch Anpassen.
    Denkt daran, dass Banks im Multiplayer ein gewisses Limit haben (einfach mal googeln).


    Hoffentlich habe ich euch hiermit ein Wenig geholfen.
    Bei Problemen (oder wenn ich einen Fehler gemacht habe), sagt bitte bescheid.
    Geändert von RipperRoo (11. März 2012 um 14:05 Uhr)


  2. #2
    Benutzerbild von Akkount
    Registriert seit
    Dez 2007
    Ort
    Gosen (am Rande von B)
    Beiträge
    179
    Likes
    0
    Schönes Tut;-) danke dafür.
    Hier noch ein paar Bank-Facts(eng)

    mfg Akk

  3. #3
    Benutzerbild von SpeedMaster22
    Registriert seit
    Apr 2011
    Ort
    NRW
    Beiträge
    271
    Likes
    0
    Sehr gutes Tutorial, hab schon darauf gewartet das jemand eins über save/load macht.
    Danke für deine mühe.

    Mfg

    Vielleicht solltest du noch dazuschreiben wie mann die werte von exp und level auf die eiheit wieder berträgt.
    Die Werte sind zwar gespeichert und können geladen werden aber meine Eiheit übernimmt die werte nicht.
    Geändert von SpeedMaster22 (11. März 2012 um 17:10 Uhr)

  4. #4
    Maps Benutzerbild von Küken
    Registriert seit
    Jul 2007
    Beiträge
    451
    Likes
    0
    Dein Tutorial beinhaltet leider kleine Fehler; beispielsweise kann die Preload Bank - Funktion nicht mit einer Schleife und einer Variablen ausgeführt werden; sie funktioniert nur, wenn man direkt den Banknamen und die Spielernummer eingibt.

    Ich schau später nochmal drüber.

    € Die Groß - und Kleinschreibung ist grauenhaft

    Zitat Zitat von SpeedMaster22 Beitrag anzeigen
    Vielleicht solltest du noch dazuschreiben wie mann die werte von exp und level auf die eiheit wieder berträgt.
    Die Werte sind zwar gespeichert und können geladen werden aber meine Eiheit übernimmt die werte nicht.
    Die Erfahrung solltest du einfach per UnitSetProperty auf deine Einheit übertragen können. Die Level sollte sie dann ja automatisch bekommen.
    Geändert von Küken (12. März 2012 um 11:12 Uhr)
    There's no spark.
    No light in the dark.

  5. #5
    Benutzerbild von SpeedMaster22
    Registriert seit
    Apr 2011
    Ort
    NRW
    Beiträge
    271
    Likes
    0
    Möchte noch anmerken das die Stats wie HP,Shield Reele werte sind und nicht Interger.
    Bei mir funktioniert es zumindest nur wenn ich Reele werte verwende.

    mfg

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •