| Balken zur Anzeige der Chara-Attribute

###### Vorüberlegungen I - Vorarbeit

Bevor ihr überhaupt mit der Darstellung der Chara-Attribute loslegen könnt, muss euch klar sein, dass diese - wie der Geldzähler und die Spielzeiterfassung auch - grafisch dargestellt werden sollen. Doch soll hier eine Alternative zur Darstellung mit Zahlen gewählt werden. In unserem Beispiel kommen "Lebensbalken" zum Einsatz, die in dieser [Beispielgrafik] dem E-Book beigefügt sind. Alternativ könnt ihr euch auch der [Zahlen-Vorlage] bedienen, da dort das zweifarbige Quardrat die Begrenzungen für Balkengrafiken darstellt. Auch andere grafische Elemente zur Darstellung der Chara-Attribute könnt ihr darauf anpassen, um sie in eurem Projekt zu verwenden.

###### Vorüberlegung II - Das Erfassen der Chara-Attribute in Prozenten

Da die Chara-Attribute nicht in Form von Zahlen, sondern mit grafischen Hilfsmitteln dargestellt werden sollen, müsst ihr den Weg über Prozentzahlen gehen. Nur wie lassen sich diese so ausrechnen, dass sie vom Maker so mühelos wie möglich dargestellt werden?
Zur Darstellung soll die oben erwähnte [Beispielgrafik] dienen. Diese Balken sind jeweils 16 Pixel breit. Auf der Heldeninfo lassen sich für die Darstellung von HP und MP jeweils vier dieser Balken nebeneinander darstellen, bei den restlichen Attributen jeweils zwei. Somit ist klar, dass die Lebens- und Manabalken maximal 64 Pixel breit sind, während die für die restlichen Attribute nur 32 Pixel lang sind. Fehlt eigentlich nur noch eine Berechnungsformel:
[Aktueller Attributwert] * [100%-Basis] / [Maximalwert des Attributs]
Für die HP und MP ist der Maximalwert jeweils das Attribut "MAX-HP" und "MAX-MP", während für die restlichen Attribute jeweils 999 als Maximalwert dienen soll.

| Im ersten Ja-Fall des "Heldenkarten-Ereignisses geht es los, genauer gesagt in der Leerzeile direkt unter dem Panoramawechsel, der für den ersten Helden die entsprechende Panoramagrafik anzeigt (in unserem Beispiel ist dieser Held "Alex"
| Bestimmt nun eine freie, unbenutzte Variable, die den Wert der Helden-HP eures ersten Helden (in unserem Beispiel der Held "Alex" speichern soll.
| Direkt danach soll die selbe Variable mit 64 malgenommen werden.
| Dann soll sie durch den Wert der maximalen HP von Alex geteilt werden.
| Wiederholt die violett hervorgehobenen Punkte für die MP von Alex.
| Nun geht es an die verbliebenen vier Attribute. Bestimmt nun eine dritte, freie Variable, welche die "Attack/Angriffskraft" eures ersten Helden speichern soll.
| Direkt danach soll dieser Wert mit 32 malgenommen werden.
| Zuletzt wird der Wert der Variable durch 999 geteilt.
| Wiederholt die pink hervorgehobenen Punkte für die restlichen Attribute "Defense/Abwehr", "Mind/IQ" und "Agility/Geschick".

###### Darstellung der Stichpunkte in MML

Heldenkarten-Ereignis
[Ereignisseite 1][Automatisch] [Bedingung][Variable][Gewählter Held][gleich][1]
| [Ja-Fall]
| [Panoramawechsel][Grafik [Heldenkarte Alex]] [Variable [HP-Balken]][<-- [Wert setzen][Held [Alex][MP]]] [Variable [HP-Balken]][<-- [*][64]] [Variable [HP-Balken]][<-- [/][Held [Alex][Max HP]]] [Variable [MP-Balken]][<-- [Wert setzen][Held [Alex][MP]]] [Variable [MP-Balken]][<-- [*][64]] [Variable [MP-Balken]][<-- [/][Held [Alex][Max HP]]] [Variable [Attack-Balken]][<-- [Wert setzen][Held [Alex][Angriff]]] [Variable [Attack-Balken]][<-- [*][32]] [Variable [Attack-Balken]][<-- [/][999] [Variable [Defense-Balken]][<-- [Wert setzen][Held [Alex][Abwehr]]] [Variable [Defense-Balken]][<-- [*][32]] [Variable [Defense-Balken]][<-- [/][999] [Variable [Mind-Balken]][<-- [Wert setzen][Held [Alex][IQ]]] [Variable [Mind-Balken]][<-- [*][32]] [Variable [Mind-Balken]][<-- [/][999] [Variable [Agility-Balken]][<-- [Wert setzen][Held [Alex][Geschick]]] [Variable [Agility-Balken]][<-- [*][32]] [Variable [Agility-Balken]][<-- [/][999]
| [Nein-Fall]
| [Bedingung][Variable][Gewählter Held][gleich][2]
| [Ja-Fall]
| [Panoramawechsel][Grafik [Heldenkarte Annie]] /* * Wiederholt hier das fett hervorgehobene, das sich im JA-Fall * des Helden "Alex" befindet */
[Schalter [HeroCard shown]] [<-- [AN]]
[Ereignisseite 2][ENTER-Taste]

Das fett hervorgehobene beschreibt das, was neu in das "Heldenkarten-Ereignis" hinzugekommen ist.

###### Der erstellte Maker-Code

Im englischem Maker
<>If Var(xxxx: Gewählter Held) 1 <>ChangeParalx: alex_card <>Change Var: Var[xy01: HP-Balken] (Set)-Alex's HP <>Change Var: Var[xy01: HP-Balken] (*)- 64 <>Change Var: Var[xy01: HP-Balken] (/)-Alex's Max HP <>Change Var: Var[xy02: MP-Balken] (Set)-Alex's MP <>Change Var: Var[xy02: MP-Balken] (*)- 64 <>Change Var: Var[xy02: MP-Balken] (/)-Alex's Max MP <>Change Var: Var[xy03: Attack-Balken] (Set)-Alex's Attack <>Change Var: Var[xy03: Attack-Balken] (*)- 32 <>Change Var: Var[xy03: Attack-Balken] (/)- 999 <>Change Var: Var[xy04: Defense-Balken] (Set)-Alex's Defence <>Change Var: Var[xy04: Defense-Balken] (*)- 32 <>Change Var: Var[xy04: Defense-Balken] (/)- 999 <>Change Var: Var[xy05: Mind-Balken] (Set)-Alex's Mind <>Change Var: Var[xy05: Mind-Balken] (*)- 32 <>Change Var: Var[xy05: Mind-Balken] (/)- 999 <>Change Var: Var[xy06: Agility-Balken] (Set)-Alex's Agilit <>Change Var: Var[xy06: Agility-Balken] (*)- 32 <>Change Var: Var[xy06:Agility-Balken] (/)- 999 <> :Else Case <>If Var(xxxx: Gewählter Held) 2 <>Change Paralx: annie_card <>Note: Das Fett hervorgehobene würde - entsprechend angepasst, : : hier folgen. Es müsste lediglich das fett hervorgehobene : : von Alex hier her kopiert und Alex durch Annie ersetzt : : werden. <> :End Case <> :End Case <>Change Switch: Var[xxxx: HeroCard shown] Switch ON <>
Im deutschem Maker (V1.10c)
<>Bedingung: Varb[xxxx:Gewählter Held]-1 <>Pan. ändern: alex_card <>Var. ändern:[xy01: HP-Balken]Wert, Alex LP <>Var. ändern:[xy01: HP-Balken] *, 64 <>Var. ändern:[xy01: HP-Balken] /, Alex Max LP <>Var. ändern:[xy02: MP-Balken]Wert, Alex MP <>Var. ändern:[xy02: MP-Balken] *, 64 <>Var. ändern:[xy02: MP-Balken] /, Alex Max MP <>Var. ändern:[xy03: Attack-Balken]Wert, Alex Angriff <>Var. ändern:[xy03: Attack-Balken] *, 32 <>Var. ändern:[xy03: Attack-Balken] /, 999 <>Var. ändern:[xy04: Defense-Balken]Wert, Alex Vertd. <>Var. ändern:[xy04: Defense-Balken] *, 32 <>Var. ändern:[xy04: Defense-Balken] /, 999 <>Var. ändern:[xy05: Mind-Balken]Wert, Alex IQ <>Var. ändern:[xy05: Mind-Balken] *, 32 <>Var. ändern:[xy05: Mind-Balken] /, 999 <>Var. ändern:[xy06: Agility-Balken]Wert, Alex Bewegl. <>Var. ändern:[xy06: Agility-Balken] *, 32 <>Var. ändern:[xy06: Agility-Balken] /, 999 <> :Ansonsten <>Bedingung: Varb[xxxx:Gewählter Held]-2 <>Pan. ändern: annie_card <>Notiz: Das Fett hervorgehobene würde - entsprechend angepasst, : : hier folgen. Es müsste lediglich das fett hervorgehobene : : von Alex hier her kopiert und Alex durch Annie ersetzt : : werden. <> :End-Fall <> :End-Fall <>Schalter ändern:[xxxx: HeroCard shown]-[AN] <>

Das fett hervorgehobene beschreibt das, was neu in das "Heldenkarten-Ereignis hinzugekommen" ist. Im Gegensatz zur Darstellung in MML, die das Schema der Erstellung der Attributerfassung verdeutlichen sollte, ist die Makercode-Darstellung vollständig für den ersten Helden (damit es nicht zu viel wird.

###### Vorüberlegung III - Die Darstellung der Charakterattribute

Nun kommt das ganz am Anfang erwähnte CharSet zum Einsatz, das für die Balkendarstellung zuständig sein wird. Importiert nun das CharSet mit Hilfe "des RAW-Material-Editors/der Materialverwaltung" des Makers. Das Anlegen der einzelnen Balken ist einfacher als das mit den Zahlen. Warum, erfahrt ihr gleich:

| Ihr habt sechs Variablen: HP-Balken, MP-Balken, Attack-Balken, Defense-Balken, Mind-Balken und Agility-Balken. Sie alle werden jeweils eine eigene Balkendarstellung bekommen, sodass ihr am Ende sechs Balken habt.
| Die HP- und MP-Balken werden aus vier Ereignissen bestehen, welche die Balkenwerte der Variablen darstellen sollen. Die anderen vier Balken (Attack-Balken, Defense-Balken, Mind-Balken und Agility-Balken) bestehen jeweils aus zwei Ereignissen. Somit kommt ihr insgesamt auf 16 Ereignisse.
| Jedes dieser 16 Ereignisse wird 17 Ereignisseiten haben, da bei dem oben erwähntem Beispiel-Charset die Balken immer Pixelweise in 16 Schritten gegen 0 gehen. Der 17. Schritt ist dann die 0 selbst.
| Die Werte der Balken-Variablen sollen nach folgendem Schema in jedem der sechs Ereignisse von jeder der Variablen abgefragt werden:
Erster Balken Seite 1: 0 Seite 2: 1 Seite 3: 2 ... Seite 17: 16 | Zweiter Balken Seite 1: 0 Seite 2: 17 Seite 3: 18 ... Seite 17: 32 | Dritter Balken Seite 1: 0 Seite 2: 33 Seite 3: 34 ... Seite 17: 48 | Vierter Balken Seite 1: 0 Seite 2: 49 Seite 3: 50 ... Seite 17: 64
| Die 24 Ereignisse werden keine Ereigniskommandos beinhalten, sondern lediglich zur Zahlendarstellung dienen.
| Wichtig: Damit auch immer die richtigen Zahlen angezeigt werden, muss jedes einzelne gewählte Char-Set in den Ereignissen, welche die Charakterattribute darstellen werden, als "Fixed Graphic/Fixierte Grafik" angezeigt werden.

###### Schemenhafte Darstellung der Stichpunkte in MML

Lebensbalken, Teil 1 Ereignis
[Ereignisseite 1][Variable [HP-Balken]] >= [0]
[Ereignisseite 2][Variable [HP-Balken]] >= [1]
[Ereignisseite 3][Variable [HP-Balken]] >= [2]
[Ereignisseite 4][Variable [HP-Balken]] >= [3]
[Ereignisseite 5][Variable [HP-Balken]] >= [4]
[Ereignisseite 6][Variable [HP-Balken]] >= [5]
[Ereignisseite 7][Variable [HP-Balken]] >= [6]
[Ereignisseite 8][Variable [HP-Balken]] >= [7]
[Ereignisseite 9][Variable [HP-Balken]] >= [8]
[Ereignisseite 10][Variable [HP-Balken]] >= [9]
[Ereignisseite 11][Variable [HP-Balken]] >= [10]
[Ereignisseite 12][Variable [HP-Balken]] >= [11]
[Ereignisseite 13][Variable [HP-Balken]] >= [12]
[Ereignisseite 14][Variable [HP-Balken]] >= [13]
[Ereignisseite 15][Variable [HP-Balken]] >= [14]
[Ereignisseite 16][Variable [HP-Balken]] >= [15]
[Ereignisseite 17][Variable [HP-Balken]] >= [16]

Nach diesem Schema solltet ihr am Ende 16 Ereignisse haben, die jede der 6 Variablen komplett abfragen. Die Hauptseite eures Inventars könnte nun wie folgt aussehen:
[Beispiel-Darstellung]