Ein HP-/MP-Zähler mit Zahlen...

 [zurück]

Betrachten wir uns, bevor es mit der eigentlichen Arbeit los geht betrachten wir uns ein Beispiel des Kampfsystems, wie es am Ende dieses Tutorials aussehen könnte:


Hier wird die HP/MP durch Zahlen angezeigt...

So in Etwa wird euer Kampfsystem aussehen, wenn ihr dieses Kapitel durchgearbeitet habt. Die Helden (in diesem Beispiel nur einer) sind oben auf dem Schauplatz des Kampfes positioniert und im kleinem Menü unten hat es eine Anzeige für die Lebens- und Zauberkraft der Helden, jeweils mit dem aktuellem Stand links und dem Maximalstand rechts. Zur Trennung der beiden Werte dienen die (in diesem Fall kaum erkennbaren) Doppelpunkte. Und so gehts...

Schritt 1: Die Grafiken

Sehr wichtig: Entscheidet euch schon jetzt, wie euer Held während des Spiels aussehen soll. Denn jetzt ist der Punkt erreicht, an dem ihr Posen für eure(n) Helden kreieren müsst.
CharSets mit lebendigen Charakteren hat es viele, doch tote Helden sind wirklich selten unter den Resourcensammlungen. Hier habt ihr ein Beispiel für einige tote Helden, die ihr in eurem Projekt verwenden könnt. Das Beispiel stammt aus meinem durch einen Hardwarefehler zerstörtem Projekt "Forgotten Stories":

Den zweiten Satz von Grafiken, den ihr braucht, ist der für die Anzeige der Lebens- und Zauberkraft eurer Helden. Hierfür hat es noch weniger Ressourcen im Web, also werdet ihr auch hier nicht daran vorbei kommen, selbst Hand anzulegen, wenn ihr einen bestimmten Schriftstil wollt. Hier ein Satz fertiger Zahlen, die ihr in eurem Projekt verwenden könnt:

Für die Darstellung mit Zahlen

Beachtet, dass das CharSet für die Darstellung der Lebens- und Zauberkraft mit Grafiken nach dem gleichem Schema aufgebaut ist wie das oben abgebildete mit den Zahlen. Diese sollten nicht größer als die oben abgebildeten sein, weil ihr die Anzeigen für euer Kampfsystem auf einer recht kleinen Fläche unterbringen müsst. Aber nun genug geredet... jetzt geht es ans Coden...

Schritt 2: Die HP-/MP-Berechnung für die Darstellung mit Zahlen

Vom Code her etwas anspruchsvoller als bei der Darstellung mit Grafiken, da ihr hier von der HP die Hunderter, Zehner und Einer trennen und in einzelnen Variablen speichern müsst. Außerdem sollten noch die Maximalwerte dargestellt werden, also müsst ihr auch hiervon die Hunderter, Zehner und Einer trennen und wiederum in separaten Variablen speichern. Wie das geht?

  1. Begebt euch auf die Map eures Kampfsystems und dort in den "Event Editing Mode, indem ihr die Taste [F7] drückt oder auf den Button mit dem gelbem Quadrat klickt.
    Klickt dann doppelt an eine beliebige Stelle des Kampfsystems, das Fenster des "Event Editors" öffnet sich. Wählt hier im Feld "Event Start Condition" die Option "Parallel Process".
  2. Klickt im Feld "Events Commands" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten eine freie Variable aus, der ihr den Namen "HP-[Heldenname]" gebt, wobei [Heldenname] für den Namen des Helden steht, dessen HP nun berechnet werden sollen.
    Wählt im Feld "Set" die Option "Set" und im Feld "Operand" die Option "Hero".
    Wählt im ersten Drop-Down-Menü den Helden aus, dessen HP erfasst werden sollen. Im zweiten wählt ihr dann die Option "HP" und klickt auf OK.
  3. Klickt direkt unter der eben erstellten Variable doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Cycle".
  4. Klickt nun innerhalb des Cycles doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Wählt hier auf der ersten Registerkarte die Option "Variable" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt.
    Wählt darunter die Option "Set" und gebt in das Textfeld daneben eine "100" ein. Wählt noch im Drop-Down-Menü darunter die Option "above", setzt das Häkchen bei "Add ELSE-Case" und klickt auf OK.
  5. Klickt über den Worten "ELSE Case" doppelt in die leere Zeile, wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt.
    Wählt im Feld "Set" die Option "-" (Minus) und im Feld "Operand" die Option "Set". Gebt im Textfeld daneben eine "100" ein und klickt auf OK.
  6. Direkt unter der eben erstellten Variable, noch über den Worten "ELSE-Case" klickt ihr wieder doppelt in die leere Zeile und wählt im darauf folgendem Fenster wieder die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" aus und mit Klick auf den Button mit den drei Punkten eine Freie Variable, der ihr den Namen "[Heldenname] HP-100" gebt.
    Wählt im Feld "Set" die Option "+" (Plus) und im Feld "Operand" die Option "Set" und gebt im Textfeld daneben eine "1" ein.
    Bestätigt das ganze dann mit OK.
  7. Direkt unter den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Wählt hier auf der ersten Registerkarte die Option "Variable" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt.
    Wählt darunter die Option "Set" und gebt in das Textfeld daneben eine "10" ein. Wählt noch im Drop-Down-Menü darunter die Option "above", setzt das Häkchen bei "Add ELSE-Case" und klickt auf OK.
  8. Über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile, wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt.
    Wählt im Feld "Set" die Option "-" (Minus) und im Feld "Operand" die Option "Set". Gebt im Textfeld daneben eine "10" ein und klickt auf OK.
  9. Unter der eben erstellten Variable, doch noch über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster wieder die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" aus und mit Klick auf den Button mit den drei Punkten eine Freie Variable, der ihr den Namen "[Heldenname] HP-10" gebt.
    Wählt im Feld "Set" die Option "+" (Plus) und im Feld "Operand" die Option "Set" und gebt im Textfeld daneben eine "1" ein.
    Bestätigt das ganze dann mit OK.
  10. Unter den Worten "ELSE Case" klickt ihr wieder doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Wählt hier auf der ersten Registerkarte die Option "Variable" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt.
    Wählt darunter die Option "Set" und gebt in das Textfeld daneben eine "1" ein. Wählt noch im Drop-Down-Menü darunter die Option "above", setzt das Häkchen bei "Add ELSE-Case" und klickt auf OK.
  11. Über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile, wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt.
    Wählt im Feld "Set" die Option "-" (Minus) und im Feld "Operand" die Option "Set". Gebt im Textfeld daneben eine "1" ein und klickt auf OK.
  12. Unter der eben erstellten Variable, doch noch über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster wieder die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" aus und mit Klick auf den Button mit den drei Punkten eine Freie Variable, der ihr den Namen "[Heldenname] HP-1" gebt.
    Wählt im Feld "Set" die Option "+" (Plus) und im Feld "Operand" die Option "Set" und gebt im Textfeld daneben eine "1" ein.
    Bestätigt das ganze dann mit OK.
  13. Klickt direkt unter den Worten "ELSE-Case" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Break Cycle".
  14. Wiederholt nun die Punkte 2 - 13 für die MP, die maximale HP und maximalen MP, indem ihr immer wieder frische Variablen nach folgender Tabelle benennt (Die ersten vier sind noch als Beispiel aufgeführt, damit das Schema der Variablen-Verwendung und -Benennung noch etwas deutlicher wird. Sie sind daher etwas dunkler dargestellt):
    Zu erfassende Zahl Variablenname
    aktuelle Helden-HP HP-[Heldenname]
    100er-Stellen der Helden-HP [Heldenname] HP-100
    10er-Stellen der Helden-HP [Heldenname] HP-10
    1er-Stellen der Helden-HP [Heldenname] HP-1
    aktuelle Helden-MP MP-[Heldenname]
    100er-Stellen der Helden-MP [Heldenname] MP-100
    10er-Stellen der Helden-MP [Heldenname] MP-10
    1er-Stellen der Helden-MP [Heldenname] MP-1
    maximale Helden-HP HP-MAX-[Heldenname]
    100er-Stellen der max. Helden-HP [Heldenname] MAX-HP-100
    10er-Stellen der max. Helden-HP [Heldenname] MAX-HP-10
    1er-Stellen der max. Helden-HP [Heldenname] MAX-HP-1
    maximale Helden-MP HP-MAX-[Heldenname]
    100er-Stellen der max. Helden-MP [Heldenname] MAX-HP-100
    10er-Stellen der max. Helden-MP [Heldenname] MAX-HP-10
    1er-Stellen der max. Helden-MP [Heldenname] MAX-HP-1
  15. Scrollt nun an das Ende des Codes und klickt doppelt in die unterste leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-[Heldenname]" gegeben habt. Wählt im Feld "Set" die Option "Set" und im Feld "Operand" die Option "Hero".
    Wählt im ersten Drop-Down-Menü den Helden aus, dessen HP erfasst werden sollen. Im zweiten wählt ihr dann die Option "HP" und klickt auf OK.
  16. Direkt unter der eben erstellten Variable klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Conditions".
    Wählt dort auf der ersten Registerkarte die Option "Variable" und mit Klick auf den Button mit den drei Punkten die Variable aus, der ihr den Namen "HP-Heldenname" gegeben habt.
    Wählt darunter die Option "Set" und gebt im Textfeld daneben eine "0" (Null) ein. Wählt noch im Drop-Down-Menü darunter die Option "Same", setzt das Häkchen bei "Add ELSE-Case" und klickt auf OK.
  17. Über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Switch".
    Wählt im Feld "Choose Switch(es)" die Option "One" und mit Klick auf den Button mit den drei Punkten einen freien Switch aus, dem ihr den Namen "[Heldname] Tot" gebt. Beachtet hier auch wieder, dass anstelle von [Heldname] der Name des betreffenden Helden eingetragen wird.
    Wählt dann noch im Feld "Set" die Option "ON" und klickt auf OK.
  18. Direkt unter Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Switch".
    Wählt im Feld "Choose Switch(es)" die Option "One" und mit Klick auf den Button mit den drei Punkten den Switch aus, dem ihr den Namen "[Heldname] Tot" gegeben habt.
    Wählt dann noch im Feld "Set" die Option "ON" und klickt auf OK.
  19. Die Punkte 2 - 18 müsst ihr nun für jeden der Helden machen, die im Kampf dabei sein sollen. Beachtet, dass ihr für jeden Helden nach dem genanntem Schema frische Variablen nehmt.
  20. Habt ihr nun für jeden Helden, der in den Kämpfen dabei sein soll, die Funktionen zur HP-, MP-, Max. HP- und Max. MP-Berechnung angelegt, scrollt ihr ans unterste Ende eures Codes und klickt dort doppelt in die leere Zeile. Wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Switch".
    Wählt im Feld "Choose Switch(es)" die Option "One" und mit Klick auf den Button mit den drei Punkten einen freien Switch aus, dem ihr den Namen "HP-Anzeige aktual." gebt.
    Wählt noch im Feld "Set" die Option "ON" und klickt auf OK. Hier nun ein kleines Code-Beispiel, das zeigt, wie das von euch fabrizierte aussehen könnte. Hier im Beispiel ist aus Platzgründen nur der Code für einen Helden aufgeführt:
  21. Klickt auf den Button "New Page" und wechselt auf diese neue Seite. Wählt im Feld "Event Conditions" die Option "Switch" und mit Klick auf den Button mit den drei Punkten den Switch aus, den ihr "HP-Anzeige aktual." genannt habt.
    Wählt noch als "Event Start Condition" die Option "Push Key" und klickt auf OK.

Somit wäre nun die Berechnung von HP, MP, maximaler HP und maximaler MP fertig. Der Switch "HP-Anzeige aktual." schaltet die fortlaufende HP-/MP-Berechnung ab, die bei Bedarf (Bei Angriffen durch die Feinde oder dem Gebrauch von Heilmitteln) wieder angeschaltet werden muss. Wie, das erfahrt ihr in den entsprechenden Kapiteln des Baukastens.

Beachtet, dass ihr, wenn ihr den Code soweit für JEDEN (!) Helden, der am Kampf teilnehmen soll, die Variablen ganz am Anfang des Codes wieder auf einen Wert von "0" (Null) zurücksetzt.

  1. Einfach doppelt an die oberste Zeile des Codes klicken und im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable" auswählen.
  2. Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten die Variablen aus, die ihr während des Codens eben alle benutzt habt.
    Wählt dann im Feld "Set" die Option "Set" und um Feld "Operand" die Option "Set". Gebt im Textfeld daneben eine "0" (Null) ein und klickt auf OK
  3. Macht das eben beschriebene für jede Variable, die ihr zur HP/MP-Ermittlung benutzt habt.

Warum das nötig ist?
Weil sonst bei jeder folgenden Berechnung die Darstellung nicht stimmen würde. Die in den Variablen gespeicherten Werte werden immer weiter aufaddiert, was ja, wenn die Berechnung zum achten mal läuft, falsch wäre...

Fehlt eigentlich nur noch die Darstellung...

Schritt 3: Die Darstellung von HP und MP...

Sehen wir uns, bevor es weitergeht, noch einmal das oben gezeigte Bild des Kampfsystems an...

Die größeren Zahlen stellen den Maximalwert der Lebens- und Zauberkraft dar, während die kleineren die aktuellen Werte der Lebens- und Zauberkraft anzeigen.
Was nicht zu sehen ist: Im Hintergrund läuft ein Event das für die Darstellung der Zehner über das der Einer legt, also die Event-Position verändert. Wie das alles geht, erfahrt ihr, wenn ihr weiterlest ^^. Beachtet, dass im Folgendem davon ausgegangen wird, dass ihr den oben gezeigten Kampfsystemhintergrund für die Tabelle (im unterem Bildteil) verwendet...

  1. Beginnen wir mit der Darstellung der aktuellen Lebenskraft, also der Zahl links außen von den vieren gesehen.
    Bleibt im Event-Editing-Mode und klickt doppelt in das zweite Kästchen von links in der Tabelle "Lebenskraft". Der Event-Editor öffnet sich.
    Wählt im Feld "Event Conditions" die Option "Variable" aus und mit Klick auf den Button mit den drei Punkten die Variable, der ihr den Namen "[Heldenname] HP-100" gegeben habt. Gebt im Textfeld darunter eine "0" (Null) ein, wählt im Feld "Select Graphic" aus den Charsets das Bild für eine rechtsbündige"0" (Null) aus. Wählt noch unbedingt als "Animation Type" die Option "Fixed Graphic" und klickt dann auf den Button "New Page".
  2. Wählt hier wieder die Option "Variable" und mit Klick auf den Button mit den drei Punkten die Variable mit dem Namen "[Heldenname] HP-100" aus. Gebt in das Textfeld darunter eine "1" ein und wählt im Feld "Select Graphic" das Bild einer rechtsbündigen "1" aus. Wählt noch als "Animation Type" die Option "Fixed Graphic" und klickt auf den Button "New Page".
  3. Führt dies weiter, bis ihr schließlich auf der letzten Event-Seite in das Textfeld unter der Variable eine "9" eingegeben und im Feld "Select Graphic" das Bild einer rechtsbündigen "9" ausgewählt habt. Euer Event müsste nun aus zehn Event-Seiten bestehen. Klickt auf OK, wenn es soweit fertig ist.
  4. Klickt ein Feld rechts neben dem eben erstellten Event doppelt auf die Map und wiederholt die Punkte 1 - 3, nur dass ihr statt der Variable "[Heldenname] HP-100" die Variable "[Heldenname] HP-1" wählt. Auch dieses Event wird aus Zehn Event-Seiten bestehen, wenn es fertig ist.
  5. Wenn ihr nun das zweite Event fertig habt klickt ihr doppelt auf der Map über das zuletzt erstellte Event. Ihr gelangt wieder in den Event-Editor, in dem ihr im Feld "Event Commands" die Option "Variable" auswählt. Klickt auf den Button mit den drei Punkten und wählt die Variable aus, der ihr den Namen "[Heldenname] HP-10" gegeben habt. Gebt im Textfeld darunter eine "0" (Null) ein und wählt im Feld "Select Graphic" das Bild einer linksbündigen Null. Gebt dem Event für die "Zehner-Stellen" noch einen entsprechenden Namen. (Wichtig)
    Wählt noch im Feld "Animation Type" die Option "Fixed Graphic" und klickt dann auf den Button "New Page". Verfahrt dann weiter nach dem selben Schema wie unter den Punkten 1 - 3, bis auch dieses Event aus zehn Seiten besteht, die von den Variablenwerten Null bis Neun reichen.
  6. Führt das unter den Punkten 1 - 5 beschriebene Schema nun auch für die maximale HP (in der rechten Hälfte der Spalte Lebenskraft), der MP (in der linken Hälfte der Spalte Zauberkraft) und der maximalen MP (in der rechten Hälfte der Spalte Zauberkraft) durch. Das Ergebnis müsste bei euch im Maker dann wie folgt aussehen...

    Die Doppelpunkte zwischen den Zahlen sollen als "Trennung" zwischen den dargestellten aktuellen und maximalen Werten für die Lebens- und Zauberkraft dienen. Was ihr letztlich zum Trennen verwendet, sei an dieser Stelle euch überlassen.
    Das Event in der Ecke links oben ist das unter Schritt 2 erstellte Event, das die dort beschriebenen Berechnungen vornimmt.
    Ihr seht aber, dass bei den dargestellten Zahlen die Zehner-Werte immer über den Einerwerten stehen... auch bei einem Testlauf. Also müsst ihr noch etwas tun...
  7. Klickt doppelt an irgendeine Stelle der Kampfsystem-Map und ihr landet im Event-Editor. Wählt hier als "Event Start Condition" die Option "Parallel Process" und widmet euch nun dem Feld "Events Commands".
  8. Klickt hier im Feld "Events Commands" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die zweite Registerkarte und dort den Button "Set Event Place". Wählt im Feld "Event" durch Klick auf das Drop-Down-Menü das Event aus, das bei die Zehner-Stellen der aktuellen HP anzeigt.
    Wählt im Feld "Move to Place" die Option "Position" aus und klickt auf den Button mit den drei Punkten. Eure Kampfsystem-Map wird angezeigt. Klickt auf der Map nun an die Stelle, an die das Event hinteleportiert werden soll (in unserem Fall direkt an die Stelle, auf der sich das Event für die 1er-Stelle der aktuellen HP befindet. Klickt, wenn ihr fertig seid, auf OK.
  9. Macht das selbe wie unter Punkt 8 nun auch für die drei anderen Zahlen. Beachtet, dass
    1. das Event für die Zehner-Stellen der maximalen HP direkt auf das Event der Einer-Stellen der maximalen HP kommt
    2. das Event für die Zehner-Stellen der aktuellen MP direkt auf das Event der Einer-Stellen der aktuellen MP kommt
    3. das Event für die Zehner-Stellen der maximalen MP direkt auf das Event der Einer-Stellen der maximalen MP kommt
    Besondere Sorgfalt ist geboten, dass die Events für die Zehner-Stellen auch an der richtigen Stelle sitzen und ihr durch die Helden im Team nicht durcheinander kommt... geht also hierbei sehr sorgfältig vor...
  10. Nun fehlt nur noch die Darstellung der Helden auf der Kampfsystem-Map...
    Klickt hierfür im "Event Editing Mode" doppelt an eine Stelle der Map. In unserem Beispiel wäre das im rechtem Bereich, recht weit hinten.
    Gebt dem Event im Feld "Name" den Namen des betreffenden Helden.
    Wählt im Feld "Event Conditions" die Option "Hero" und im Drop-Down-Menü daneben den betreffenden Helden aus, der dargestellt werden soll.
    Wählt im Feld "Select Graphic" aus euren CharSets die Animationsgrafik eures Helden aus, die ihr auch schon in der DataBase gewählt habt.
    Wenn ihr soweit fertig seid, klickt ihr auf den Button "New Page"
  11. Auf dieser neuen Seite wählt ihr zuerst die Option "Switch" und mit Klick auf den Button mit den drei Punkten den Switch aus, den ihr im Schritt 2, Punkt 7 als "[Heldname] Tot" bezeichnet habt, wobei darauf zu achten ist, dass ihr den "[Heldname] Tot"-Switch wählt, der den Namen des gewählten Helden trägt. Nicht, dass ihr einen Helden namens "Daniel" darstellen wollt und den Switch "Igor Tot" wählt...
    Wählt dann noch die Option "Hero" und im Drop-Down-Menü daneben wieder den gleichen Helden wie auf der Event-Seite zuvor.
    Im Feld "Select Graphic" wählt ihr dann aus euren CharSets eine Grafik, die euren Helden als toten oder bewusstlosen Charakter darstellt. Klickt, wenn ihr fertig seid, auf OK.
  12. Wiederholt Schritt 9 und 10 für jeden weiteren Helden, der im Kampf dabei sein soll.

Dies wäre nun alles, was es über die Darstellung der Lebens- und Zauberkraft durch Zahlen zu sagen gäbe.


 [zurück]