EventsProfessional  Position der Kämpfer
Vorüberlegungen I - Von Gegnern und nötigen Grafiken...

Eigentlich gibt es nur zwei Arten von Gegnern, die ihr in einem Sideview-Kampfsystem anlegen könnt:

. Gegner, deren Erscheinung durch Char-Sets bestimmt wird:
Hierfür kann jedes (!) CharSet dienen, womit also eure Heldentruppe gegen jeden kämpfen kann, dem sie auf ihrer Reise begegnen können. Auch der Fall eines Gegners lässt sich ohne größere Probleme; am Einfachsten macht ihr das mit Hilfe einer Kampfanimation, wobei die Grafik [enemy_death.png], die dem E-Book beigefügt ist, für diesen Zweck ausrechen sollte.
 
. Gegner, deren Erscheinung durch Pictures dargestellt wird
Auch hier sieht es nicht ganz so schwer aus, wie es den Anschein hat. Worauf ihr achten solltet ist, dass ihr nur für die wirklich großen Gegner, beispielsweise Drachen, Riesen und sonstige großen Gegner Pictures zur Gegner-Darstellung verwendet, damit ein gewisser Grad an "Realität" erhalten bleibt.
Vorüberlegung IIa - Die "CharSet-Gegner"

Sie sollen lediglich ihre eigene Darstellung übernehmen, also den "lebendigen" und "toten" Zustand sowie den Übergang von Leben zum Tod. Das "Leben" soll das Charset [monster1.png] übernehmen, während für "das Sterben" die Kampfanimation [enemy_death.png] zuständig sein soll. Auch braucht jeder CharSet-Gegner zwei Ereignisseiten, eine für den Zustand "Lebend" und eine für den Zustand "Tot".

. In unserem Beispiel legen wir drei Ereignisse an einer zufällig gewählten Position (linker Bereich des Bildes) in derartigen Abständen an, dass sie sich nicht ganz oder teilweise überdecken (Wichtig, da ja jeder Gegner klar zu sehen sein soll). Gebt den Ereignissen entsprechende Namen wie "Gegner 1", "Gegner 2" und "Gegner 3".
 
. Es muss klar sein, dass die zweite Ereignisseite nichts darstellen darf, also der transparente Chip des für die Map gewählten ChipSets zu wählen ist.
 
. Auf der ersten Ereignisseite eines jeden CharSet-Gegners soll nun eine Bedingung abfragen, ob eine neue, freie Variable einen Wert hat, der kleiner oder gleich "0" ist. Nennt diese Variable "HP - Gegner 1", für den ersten, "HP - Gegner 2" für den zweiten und "HP - Gegner 3" für den dritten Gegner. Ein Nein-Fall ist nicht nötig.
 
. Direkt danach, im Ja-Fall der Bedingung, soll eine Kampfanimation abgespielt werden, die aus den Sterbewolken der Kampfanimationsgrafik [enemy_death.png] besteht. So soll das Sterben des Gegners dargestellt werden. Wichtig ist hierbei, dass nicht gewartet wird, bis die Kamfanimation fertig ist, damit ein fließender Übergang zwischen "Sterben" und "Tod" des Gegners gewährleistet ist.
Handelt es sich um einen Picture-Gegner, so soll das Picture zuerst ein rötliches Farbschema bekommen, sich dann in Nichts auflösen und letztlich gelöscht werden. Das Färben und Ausblenden geschieht mittels Bildbewegung.
 
. Direkt nach der Kampfanimation soll ein neuer, freier Schalter auf AN gestellt werden. Gebt ihm den Namen "Gegner 1 - Tot" für den ersten, "Gegner 2 - Tot" für den zweiten und "Gegner 3 - Tot" für den dritten Gegner.
 
. Wechselt auf die zweite Ereignisseite. Diese soll genau dann aktiv werden, wenn der Schalter "Gegner 1 - Tot" aktiv ist, wenn es sich um den Gegner 1 handelt. Bei Gegner 2 und Gegner 3 verfahrt ihr entsprechend.
 
Darstellung der Stichpunkte in MML
 Gegner-1-Ereignis
[Ereignisseite 1][ENTER-Taste]
[Bedingung][Variable][HP - Gegner 1][kleiner oder gleich][0]
  [Ja-Fall]
  [Kampfanimation zeigen][EnemyDeath][Ziel [Gegner-1-Ereignis]]
[Schalter [Gegner 1 - Tot]][<-- [AN]
[Ereignisseite 2][ENTER-Taste][Schalter [Gegner 1 - Tot]]
Der erstellte Maker-Code
Im englischem Maker
<>If Var(xxx1: HP - Gegner 1) 0 (<=)
 <>Show Battle Animation: EnemyDeath-Gegner-1-Ereignis
 <>Change Switch: Var[yyy1: Gegner 1 - Tot] Switch ON
 <>Note: Bei Picture-Gegnern noch folgenden Code (als Kommentar hier genannt)
 :     : Move Picture: ID: 1(60,100), 0.1sec(W) <-- Setzt das Picture auf einen Rot-Ton
 :     : Wait: 0.1sec
 :     : Move Picture: ID: 1(60,100), 1.0sec(W) <-- Steigert die Transparenz auf 100%
 :     : Wait: 0.1sec
 :     : Erase Picture: ID: 1
:End Case
<>
<>
Im deutschem Maker (V1.10c)
<>Bedingung:Varbl[xxx1:HP - Gegner 1]-0 <=
 <>Kampfanimation: EnemyDeath, Gegner-1-Ereignis
 <>Schalter ändern:[yyy1: Gegner 1 - Tot]-[AN]
 <>Notiz: Bei Picture-Gegnern noch folgenden Code (Als Kommentar hier genannt)
 :      : Bild bewegen: 1, (60,100), 0.1Sek(W) <-- Setzt das Picture auf einen Rot-Ton
 :      : Warten: 0.1S.
 :      : Bild bewegen: 1, (60,100), 0.1Sek(W) <-- Steigert die Transparenz auf 100%
 :      : Warten: 0.1S.
 :      : Bild löschen: 1
:End-Fall
<>
<>
Vorüberlegung IIb - Die "Picture-Gegner"

Gegner, die aus Pictures bestehen, sind ein wenig komplizierter anzulegen, als dies bei CharSet-Gegnern der Fall ist. Alles, was ich dafür braucht, ist das Bild eines Gegners als Picture. In unserem Beispiel soll [Dieser Beispielgegner] dazu dienen.

. Hierfür brauchen wir ein neues Ereignis, das ihr am Besten in der linken oberen Ecke der Map anlegt. In unserem Beispiel werden wir das Ereignis "Steuerung" nennen. Die erste Ereignisseite soll "automatisch starten".
 
. Mit einer "Show Picture/Bild anzeigen"-Funktion soll nun unser [Beispielgegner] angezeigt werden. Gebt ihm die Pic-Number bzw. Bildnummer 1, reduziert die Bildgröße (Magnification) auf 90% und wählt bei unserem Beispielgegner die Koordinaten "X = 60" und "Y = 100". Er wird also hinter den drei zuvor angelegten Gegnern positioniert sein. Auch soll die transparente Farbe der Gegnergrafik auch als solche behandelt werden (Wichtig).
 
. Direkt danach soll ein neuer, freier Schalter, dem ihr den Namen "SKS-Start - Done" gebt, auf AN gestellt werden.
 
. Eine zweite Ereignisseite ist erforderlich, die dann aktiv wird, wenn der Schalter "SKS-Start - Done" auf AN steht. Mehr soll vorerst nicht passieren.
 
. Legt noch ein neues Ereignis an, dem ihr einen eindeutigen Namen gebt (in unserem Beispiel "Gegner #4"). Lasst jedoch sämtliche Ereignis-Seiten von "Gegner #4" leer.
Darstellung der Stichpunkte in MML
 Steuerung
[Ereignisseite 1][Automatisch]
[Picture zeigen][Bildnummer][Beispielgegner][X = 60][Y = 100][Transparent]
[Schalter [SKS-Start - Done]][<-- [AN]
[Ereignisseite 2][Automatisch][Schalter [SKS-Start - Done]]
Der erstellte Maker-Code
Im englischem Maker
<>Show Picture: ID:1-Beispielgegner-(60,100)
<>Change Switch: Var[yyy2: SKS-Start - Done] Switch ON
<>
Im deutschem Maker (V1.10c)
<>Bild anzeigen: 1, Beispielgegner, (60,100)
<>Schalter ändern:[yyy2: SKS-Start - Done]-[AN]
<>
Vorüberlegungen IIc - Die Gegner leben

Damit die Gegner nicht gleich im ersten Kampf komplett sterben (noch hat ihre Variable "HP - Gegner X" den Wert 0). Daran muss sich noch etwas ändern, bevor der eigentliche Kampf losgeht.

. Dafür verwenden wir einfach das Ereignis, das zuvor für die "Picture-Gegner" angelegt wurde. Falls ihr keine Picture-Gegner verwendet, müsst ihr ein neues anlegen (nennt es "Steuerung"), dessen erste Ereignisseite automatisch startet.
 
. Legt, falls noch nicht geschehen, eine "Change Switch/Schalterzustand ändern"-Funktion, mit der ein Schalter, den ihr "SKS-Start - Done" nennt, auf AN gestellt wird. Ebenso sollen die Schalter "Gegner 1 - Tot" bis "Gegner 4 - Tot" auf AUS gestellt werden.
 
. Legt (falls euer Ereignis noch aus einer Ereignisseite besteht, eine neue an, die automatisch genau dann startet, wenn der Schalter "SKS-Start - Done" auf AN steht.
 
. Zurück auf der ersten Ereignisseite legt ihr über dem Schalter eine Variablenfunktion an. Diese soll den Wert der Variable "HP - Gegner 1" auf einen beliebigen Wert (in unserem Beispiel 50" setzen.
Verfahrt ebenso mit den bereits festgelegten Variablen "HP - Gegner 2" und "HP - Gegner 3".
Legt auch eine neue Variable "HP - Gegner 4" (Der Picture-Gegner unseres Beispiels) an, in die ein weiterer, beliebiger Wert geschrieben werden soll (in unserem Beispiel 100)
 
. Verfahrt nach selbigem Schema mit vier weiteren Variablen, die ihr "MP - Gegner 1", "MP - Gegner 2", "MP - Gegner 3" (die in unserem Beispiel jeweils den Wert 0 haben) und "MP - Gegner 4" (hat in unserem Beispiel den Wert 20).
 
. Auch die Angriffskraft der Gegner sollte nicht vergessen werden. Vier weitere Variablen, die ihr "Attack - Gegner #1" und so weiter nennt, müssen angelegt werden, von denen die ersten drei den Wert "15" und die letzte den Wert "10" aufnehmen soll.
 
. Macht das gleiche für weitere vier Variablen, die ihr "Defense - Gegner 1" und so weiter benennt, von denen die ersten drei in unserem Beispiel den Wert "12" und die letzte den Wert "30" speichern soll.
 
. Zum Abschluss braucht ihr noch vier letzte Variablen, die ihr "Mind - Gegner 1" und so weiter nennt. Von ihnen sollen in unserem Beispiel die ersten drei den Wert "10" und die letzte den Wert "20" haben.
Darstellung der Stichpunkte in MML

Neuerungen sind fett hervorgehoben

 Steuerung-Ereignis
[Ereignisseite 1][Automatisch]
[Picture zeigen][Bildnummer][Beispielgegner][X = 60][Y = 100][Transparent]
[Schalter [Gegner 1 - Tot]][<-- [AUS]]
[Schalter [Gegner 2 - Tot]][<-- [AUS]]
[Schalter [Gegner 3 - Tot]][<-- [AUS]]
[Schalter [Gegner 4 - Tot]][<-- [AUS]]

[Variable [HP - Gegner 1]][<-- [Wert setzen][50]]
[Variable [HP - Gegner 2]][<-- [Wert setzen][50]]
[Variable [HP - Gegner 3]][<-- [Wert setzen][50]]
[Variable [HP - Gegner 4]][<-- [Wert setzen][100]]
[Variable [MP - Gegner 1]][<-- [Wert setzen][0]]
[Variable [MP - Gegner 2]][<-- [Wert setzen][0]]
[Variable [MP - Gegner 3]][<-- [Wert setzen][0]]
[Variable [MP - Gegner 4]][<-- [Wert setzen][20]]
[Variable [Defense - Gegner 1]][<-- [Wert setzen][12]]
[Variable [Defense - Gegner 2]][<-- [Wert setzen][12]]
[Variable [Defense - Gegner 3]][<-- [Wert setzen][12]]
[Variable [Defense - Gegner 4]][<-- [Wert setzen][30]]
[Variable [Mind - Gegner 1]][<-- [Wert setzen][10]]
[Variable [Mind - Gegner 2]][<-- [Wert setzen][10]]
[Variable [Mind - Gegner 3]][<-- [Wert setzen][10]]
[Variable [Mind - Gegner 4]][<-- [Wert setzen][20]]
[Variable [Attack - Gegner 1]][<-- [Wert setzen][15]]
[Variable [Attack - Gegner 2]][<-- [Wert setzen][15]]
[Variable [Attack - Gegner 3]][<-- [Wert setzen][15]]
[Variable [Attack - Gegner 4]][<-- [Wert setzen][10]]

[Schalter [SKS-Start - Done]][<-- [AN]
[Ereignisseite 2][Automatisch][Schalter [SKS-Start - Done]]
Der erstellte Maker-Code
Im englischem Maker
<>Show Picture: ID:1-Beispielgegner-(60,100)
<>Change Switch: Var[Gegner 1 - Tot] Switch OFF
<>Change Switch: Var[Gegner 2 - Tot] Switch OFF
<>Change Switch: Var[Gegner 3 - Tot] Switch OFF
<>Change Switch: Var[Gegner 4 - Tot] Switch OFF

<>Change Var: Var[xxx1: HP - Gegner 1] (Set)-50
<>Change Var: Var[xxx2: HP - Gegner 2] (Set)-50
<>Change Var: Var[xxx3: HP - Gegner 3] (Set)-50
<>Change Var: Var[xxx4: HP - Gegner 4] (Set)-100
<>Change Var: Var[xxx5: MP - Gegner 1] (Set)-0
<>Change Var: Var[xxx6: MP - Gegner 2] (Set)-0
<>Change Var: Var[xxx7: MP - Gegner 3] (Set)-0
<>Change Var: Var[xxx8: MP - Gegner 4] (Set)-20
<>Change Var: Var[xxx9: Defense - Gegner 1] (Set)-12
<>Change Var: Var[xx10: Defense - Gegner 2] (Set)-12
<>Change Var: Var[xx11: Defense - Gegner 3] (Set)-12
<>Change Var: Var[xx12: Defense - Gegner 4] (Set)-30
<>Change Var: Var[xx13: Mind - Gegner 1] (Set)-10
<>Change Var: Var[xx14: Mind - Gegner 2] (Set)-10
<>Change Var: Var[xx15: Mind - Gegner 3] (Set)-10
<>Change Var: Var[xx16: Mind - Gegner 4] (Set)-20
<>Change Var: Var[xx17: Attack - Gegner 1] (Set)-15
<>Change Var: Var[xx18: Attack - Gegner 2] (Set)-15
<>Change Var: Var[xx19: Attack - Gegner 3] (Set)-15
<>Change Var: Var[xx20: Attack - Gegner 4] (Set)-10

<>Change Switch: Var[yyy2: SKS-Start - Done] Switch ON
<>
Im deutschem Maker (V1.10c)
<>Bild anzeigen: 1, Beispielgegner, (60,100)
<>Schalter ändern:[Gegner 1 - Tot]-[Aus]
<>Schalter ändern:[Gegner 2 - Tot]-[Aus]
<>Schalter ändern:[Gegner 3 - Tot]-[Aus]
<>Schalter ändern:[Gegner 4 - Tot]-[Aus]

<>Var. ändern: [xxx1: HP - Gegner 1] Wert, 50
<>Var. ändern: [xxx2: HP - Gegner 2] Wert, 50
<>Var. ändern: [xxx3: HP - Gegner 3] Wert, 50
<>Var. ändern: [xxx4: HP - Gegner 4] Wert, 100
<>Var. ändern: [xxx5: MP - Gegner 1] Wert, 0
<>Var. ändern: [xxx6: MP - Gegner 2] Wert, 0
<>Var. ändern: [xxx7: MP - Gegner 3] Wert, 0
<>Var. ändern: [xxx8: MP - Gegner 4] Wert, 20
<>Var. ändern: [xxx9: Defense - Gegner 1] Wert, 12
<>Var. ändern: [xx10: Defense - Gegner 2] Wert, 12
<>Var. ändern: [xx11: Defense - Gegner 3] Wert, 12
<>Var. ändern: [xx12: Defense - Gegner 4] Wert, 30
<>Var. ändern: [xx13: Mind - Gegner 1] Wert, 10
<>Var. ändern: [xx14: Mind - Gegner 2] Wert, 10
<>Var. ändern: [xx15: Mind - Gegner 3] Wert, 10
<>Var. ändern: [xx16: Mind - Gegner 4] Wert, 20
<>Var. ändern: [xx17: Attack - Gegner 1] Wert, 15
<>Var. ändern: [xx18: Attack - Gegner 2] Wert, 15
<>Var. ändern: [xx19: Attack - Gegner 3] Wert, 15
<>Var. ändern: [xx20: Attack - Gegner 4] Wert, 10

<>Schalter ändern:[yyy2: SKS-Start - Done]-[AN]
<>
Vorüberlegungen IId - Das ziehen der Helden-Attribute...

... machen wir an dieser Stelle auch gleich mit. Diese werden in Variablen benötigt, wenn es um den Einsatz der Gegnerattribute und der damit verbundenen Schadensberechnung geht. Losgehen soll es direkt über dem Schalter "SKS-Start - Done"...

. Zunächst greifen wir die Variable "Hero-Variable-No" aus dem Kapitel "Einstieg und Verlassen des SKS" wieder auf. Sie soll als Wert die Nummer der Variable aufnehmen, die ihr "Held #1" genannt habt.
 
. Direkt danach brauchen wir eine weitere Variable, die ihr "Hero-Attrib-Pointer" nennt. Sie soll als Startwert die Nummer der Variable haben, die ihr von der Nummer her folgt (in unserem Beispiel wäre diese nach der Variable folgende die mit der Nummer 159). Benennt die 12 danach folgenden Variablen "Attack - Held #1", "Defense - Held #1" und "Mind - Held #1" und so weiter bis "Mind - Held #4"
 
. Direkt danach brauchen wir eine Endlosschleife, in der eine neue, noch unbenannte Variable den Namen "Temp-Hero-ID" bekommt. Sie soll den Wert der Variable aufnehmen, deren Nummer von der Variable "Hero-Variable-No" übergeben wird.
 
. Nun soll eine Bedingung abfragen, ob der Wert der Variable "Temp-Hero-ID" dem Wert "1" entspricht. Hier brauchen wir einen Nein-Fall.
 
. Im Ja-Fall der Bedingung soll in die Variable, deren Nummer von der Variable "Hero-Attrib-Pointer" vorgegeben wird, der Wert der Angriffskraft von dem Helden gespeichert werden, dem ihr die ID 1 zugewiesen habt (in unserem Fall "Alex".
Danach soll der WErt der Variable "Hero-Attrib-Pointer" um 1 erhöht werden.
 
. Danach soll in der Variable, deren Nummer von "Hero-Attrib-Pointer" vorgegeben wird, die Abwehrfähigkeit des selben (!) Helden gespeichert und danch der Wert der Variable "Hero-Attrib-Pointer" um 1 erhöht werden.
 
. Das gleiche Spiel soll nun auch mit dem Attribut "Mind" passieren, worauf der Wert der Variable "Hero-Attrib-Pointer" erneut um 1 gesteigert werden soll.
 
. Im Nein-Fall der Bedingung verfahrt ihr für jeden weiteren Helden, der jemals im SKS kämpfen kann, nach dem selbem Schema: Erst die Bedingung anlegen und dann in den jeweiligen Ja-Fällen der Bedingungen die dunkelgrün hervorgehobenen Punkte.
 
. Nach dem End-Fall der ersten Bedingung - noch innerhalb der Endlosschleife - soll der Wert der Variable "Hero-Variable-No" um 1 erhöht werden.
 
. Zum Abschluss soll noch eine Bedingung abfragen, ob der Wert der Variable "Hero-Variable-No" dem Wert der Variablennummer von "Held #4" + 1 entspricht (in unserem Beispiel hat die Variable "Held #4" die Nummer 34. Also soll die Bedingung abfragen, ob der Wert der Variable "Hero-Variable-No" dem Wert 35 entspricht). Im Ja-Fall soll ein Schleifenausbruch erfolgen, einen Nein-Fall brauchen wir hierbei nicht.
Darstellung der Stichpunkte in MML

Was neu hinzugekommen ist, wurde fett hervorgehoben

 Steuerung-Ereignis
[Ereignisseite 1][Automatisch]
[Picture zeigen][Bildnummer][Beispielgegner][X = 60][Y = 100][Transparent]
[Variable [HP - Gegner 1]][<-- [Wert setzen][50]]
[Variable [HP - Gegner 2]][<-- [Wert setzen][50]]
[Variable [HP - Gegner 3]][<-- [Wert setzen][50]]
[Variable [HP - Gegner 4]][<-- [Wert setzen][100]]
[Variable [MP - Gegner 1]][<-- [Wert setzen][0]]
[Variable [MP - Gegner 2]][<-- [Wert setzen][0]]
[Variable [MP - Gegner 3]][<-- [Wert setzen][0]]
[Variable [MP - Gegner 4]][<-- [Wert setzen][20]]
[Variable [Defense - Gegner 1]][<-- [Wert setzen][12]]
[Variable [Defense - Gegner 2]][<-- [Wert setzen][12]]
[Variable [Defense - Gegner 3]][<-- [Wert setzen][12]]
[Variable [Defense - Gegner 4]][<-- [Wert setzen][30]]
[Variable [Mind - Gegner 1]][<-- [Wert setzen][10]]
[Variable [Mind - Gegner 2]][<-- [Wert setzen][10]]
[Variable [Mind - Gegner 3]][<-- [Wert setzen][10]]
[Variable [Mind - Gegner 4]][<-- [Wert setzen][20]]
[Variable [Attack - Gegner 1]][<-- [Wert setzen][15]]
[Variable [Attack - Gegner 2]][<-- [Wert setzen][15]]
[Variable [Attack - Gegner 3]][<-- [Wert setzen][15]]
[Variable [Attack - Gegner 4]][<-- [Wert setzen][10]]
[Variable [Hero-Variable-No]][<-- [Wert setzen][31]]
[Variable [Hero-Attrib-Pointer]][<-- [Wert setzen][159]]
[Schleife Beginn]
  [Variable [Temp-Hero-ID]][<-- [Wert setzen][Variable [Variable [Held-Variable-No] übergibt Nummer]]]
[Bedingung][Variable][Temp-Hero-ID][gleich][1]
  [Ja-Fall]
  [Variable [Variable [Hero-Attrib-Pointer] übergibt Nummer]]
    [<-- [Wert setzen][Alex's Angriffskraft]]
[Variable [Hero-Attrib-Pointer]][<-- [+][1]]
[Variable [Variable [Hero-Attrib-Pointer] übergibt Nummer]]
    [<-- [Wert setzen][Alex's Verteidigung]]
[Variable [Hero-Attrib-Pointer]][<-- [+][1]]
[Variable [Variable [Hero-Attrib-Pointer] übergibt Nummer]]
    [<-- [Wert setzen][Alex's Mind]]
[Variable [Hero-Attrib-Pointer]][<-- [+][1]]
transparent transparent
  [Nein-Fall]
  [Bedingung][Variable][Temp-Hero-ID][gleich][2]
  [Ja-Fall]
  [Variable [Variable [Hero-Attrib-Pointer] übergibt Nummer]]
    [<-- [Wert setzen][Annie's Angriffskraft]]
[Variable [Hero-Attrib-Pointer]][<-- [+][1]]
[Variable [Variable [Hero-Attrib-Pointer] übergibt Nummer]]
    [<-- [Wert setzen][Annie's Verteidigung]]
[Variable [Hero-Attrib-Pointer]][<-- [+][1]]
[Variable [Variable [Hero-Attrib-Pointer] übergibt Nummer]]
    [<-- [Wert setzen][Annie's Mind]]
[Variable [Hero-Attrib-Pointer]][<-- [+][1]]
[Variable [Hero-Variable-No]][<-- [+][1]
[Bedingung][Variable][Hero-Variable-No][gleich][35]
  [Ja-Fall]
  [Schleifenausbruch]
[Schleife Ende]
[Schalter [SKS-Start - Done]][<-- [AN]
[Ereignisseite 2][Automatisch][Schalter [SKS-Start - Done]]
Der erstellte Maker-Code auf Seite 1 des Ereignisses

Was neu hinzugekommen ist, wurde fett hervorgehoben

Im englischem Maker
<>Show Picture: ID:1-Beispielgegner-(60,100)
<>Change Var: Var[xxx1: HP - Gegner 1] (Set)-50
<>Change Var: Var[xxx2: HP - Gegner 2] (Set)-50
<>Change Var: Var[xxx3: HP - Gegner 3] (Set)-50
<>Change Var: Var[xxx4: HP - Gegner 4] (Set)-100
<>Change Var: Var[xxx5: MP - Gegner 1] (Set)-0
<>Change Var: Var[xxx6: MP - Gegner 2] (Set)-0
<>Change Var: Var[xxx7: MP - Gegner 3] (Set)-0
<>Change Var: Var[xxx8: MP - Gegner 4] (Set)-20
<>Change Var: Var[xxx9: Defense - Gegner 1] (Set)-12
<>Change Var: Var[xx10: Defense - Gegner 2] (Set)-12
<>Change Var: Var[xx11: Defense - Gegner 3] (Set)-12
<>Change Var: Var[xx12: Defense - Gegner 4] (Set)-30
<>Change Var: Var[xx13: Mind - Gegner 1] (Set)-10
<>Change Var: Var[xx14: Mind - Gegner 2] (Set)-10
<>Change Var: Var[xx15: Mind - Gegner 3] (Set)-10
<>Change Var: Var[xx16: Mind - Gegner 4] (Set)-20
<>Change Var: Var[xx17: Attack - Gegner 1] (Set)-15
<>Change Var: Var[xx18: Attack - Gegner 2] (Set)-15
<>Change Var: Var[xx19: Attack - Gegner 3] (Set)-15
<>Change Var: Var[xx20: Attack - Gegner 4] (Set)-10
<>Change Var: Var[aaab: Hero-Variable-No] (Set)- 31
<>Change Var: Var[jjj1: Hero-Attrib-Pointer] (Set)- 159
<>Loop
 <>Change Var: Var[jjj2: Temp-Hero-ID] (Set)- Var[Var[aaab]]
 <>If Var(jjj2: Temp-Hero-ID) 1
  <>Change Var: [Var[jjj1]] (Set)-Alex's Attack
  <>Change Var: Var[jjj1: Hero-Attrib-Pointer] (+)- 1
  <>Change Var: [Var[jjj1]] (Set)-Alex's Defence
  <>Change Var: Var[jjj1: Hero-Attrib-Pointer] (+)- 1
  <>Change Var: [Var[jjj1]] (Set)-Alex's Mind
  <>Change Var: Var[jjj1: Hero-Attrib-Pointer] (+)- 1
  <>
 :Else Case
  <>If Var(jjj2: Temp-Hero-ID) 2
   <>Change Var: [Var[jjj1]] (Set)-Annie's Attack
   <>Change Var: Var[jjj1: Hero-Attrib-Pointer] (+)- 1
   <>Change Var: [Var[jjj1]] (Set)-Annie's Defence
   <>Change Var: Var[jjj1: Hero-Attrib-Pointer] (+)- 1
   <>Change Var: [Var[jjj1]] (Set)-Annie's Mind
   <>Change Var: Var[jjj1: Hero-Attrib-Pointer] (+)- 1
   <>
  :End Case
  <>
 :End Case
 <>Change Var: Var[aaab: Hero-Variable-No] (+)- 1
 <>If Var(aaab: Hero-Variable-No) 35
  <>Break
  <>
 :End Case
 <>
:End Loop

<>Change Switch: Var[yyy2: SKS-Start - Done] Switch ON
Im deutschem Maker (V1.10c)
<>Bild anzeigen: 1, Beispielgegner, (60,100)
<>Var. ändern: [xxx1: HP - Gegner 1] Wert, 50
<>Var. ändern: [xxx2: HP - Gegner 2] Wert, 50
<>Var. ändern: [xxx3: HP - Gegner 3] Wert, 50
<>Var. ändern: [xxx4: HP - Gegner 4] Wert, 100
<>Var. ändern: [xxx5: MP - Gegner 1] Wert, 0
<>Var. ändern: [xxx6: MP - Gegner 2] Wert, 0
<>Var. ändern: [xxx7: MP - Gegner 3] Wert, 0
<>Var. ändern: [xxx8: MP - Gegner 4] Wert, 20
<>Var. ändern: [xxx9: Defense - Gegner 1] Wert, 12
<>Var. ändern: [xx10: Defense - Gegner 2] Wert, 12
<>Var. ändern: [xx11: Defense - Gegner 3] Wert, 12
<>Var. ändern: [xx12: Defense - Gegner 4] Wert, 30
<>Var. ändern: [xx13: Mind - Gegner 1] Wert, 10
<>Var. ändern: [xx14: Mind - Gegner 2] Wert, 10
<>Var. ändern: [xx15: Mind - Gegner 3] Wert, 10
<>Var. ändern: [xx16: Mind - Gegner 4] Wert, 20
<>Var. ändern: [xx17: Attack - Gegner 1] Wert, 15
<>Var. ändern: [xx18: Attack - Gegner 2] Wert, 15
<>Var. ändern: [xx19: Attack - Gegner 3] Wert, 15
<>Var. ändern: [xx20: Attack - Gegner 4] Wert, 10
<>Var. ändern: [aaab: Hero-Variable-No]Wert, 31
<>Var. ändern: [jjj1: Hero-Attrib-Pointer]Wert, 159
<>Schleife
 <>Var. ändern:[jjj2: Temp-Hero-ID]Wert, Var[V[aaab]]Inh.
 <>Bedingung:Varbl[jjj2: Temp-Hero-ID]- 1
  <>Var. ändern:[V[jjj1]]Wert, Alex Angriff
  <>Var. ändern:[jjj1: Hero-Attrib-Pointer]+, 1
  <>Var. ändern:[V[jjj1]]Wert, Alex Vertd.
  <>Var. ändern:[jjj1: Hero-Attrib-Pointer]+, 1
  <>Var. ändern:[V[jjj1]]Wert, Alex IQ
  <>Var. ändern:[jjj1: Hero-Attrib-Pointer]+, 1
  <>
 :Ansonsten
  <>Bedingung:Varbl[jjj2: Temp-Hero-ID]- 2
   <>Var. ändern:[V[jjj1]]Wert, Annie Angriff
   <>Var. ändern:[jjj1: Hero-Attrib-Pointer]+, 1
   <>Var. ändern:[V[jjj1]]Wert, Annie Vertd.
   <>Var. ändern:[jjj1: Hero-Attrib-Pointer]+, 1
   <>Var. ändern:[V[jjj1]]Wert, Annie IQ
   <>Var. ändern:[jjj1: Hero-Attrib-Pointer]+, 1
   <>
  :End-Fall
  <>
 :End-Fall
 <>
 Var. ändern:[aaab: Hero-Variable-No]+, 1
 <>Bedingung:Varbl[aaab:Hero-Variable-No]-35
  <>Schleife stoppen
  <>
 :End-Fall
 <>
:Schleifenende

<>Schalter ändern:[yyy2: SKS-Start - Done]-[AN]
 
Vorüberlegung IIIa - Die Heldentruppe...

Die sollte in CharSets dargestellt werden, wenn ihr nicht grafisch begabt seid und zu den einzelnen Pictures noch Animationen für Schwertschläge und dergleichen machen kännt. Hier braucht ihr euch lediglich daran zurückzuerinnern, was ihr im Kapitel [Einstieg und Verlassen des SKS] gemacht habt und euch da nur an vier Variablen zu erinnern, in die ihr die Helden-IDs gespeichert habt. Ebenfalls braucht ihr eine Pose für den Zustand, dass die einzelnen Helden bewusstlos am Boden liegen. Hierfür soll in unserem Beispiel die Grafik [dead_heros.png] dienen, die "Alex" und "Annie" bewusstlos am Boden liegend zeigt. Dann geht es eigentlich nur noch darum, vier Helden-Ereignisse im rechtem Bereich des Kampfsystem-Bildes zu platzieren...

. Im Vorfeld solltet ihr wissen, wo ihr die Variablen findet, die ihr im Kapitel [Einstieg und Verlassen des SKS] angelegt habt. In ihnen liegt die jeweilige Nummer des Helden an einer gewissen Rangfolge der Heldentruppe.
 
. Erstellt auf der rechten Seite ein neues Ereignis, das ihr "Held #1" nennt.
 
. Die erste Ereignisseite soll genau dann aktiv werden, wenn die zuvor beim Kapitel [Einstieg und Verlassen des SKS] verwendete Variable "Held #1" den Wert 1 hat.
Als Darstellungsgrafik soll das CharSet dienen, das dem Helden entspricht, dem ihr die Heldennummer 1 zugewiesen habt.
(In unserem Beispiel ist der Held mit der Nummer 1 "Alex")
 
. Erstellt eine neue Ereignisseite, die genau dann aktiv wirt, wenn die selbe Variable "Held #1" den Wert 1 hat. Zusätzlich bestimmt ihr noch, dass ein neuer, freier Schalter, den ihr "Held 1 - Tot" nennt, auf AN sein muss, ehe die Ereignisseite wirklich aktiv wird.
Als Darstellungsgrafik soll hier aus [dead_heros.png] der am Boden liegende Alex verwendet werden.
 
. Wiederholt dieses Schema für die Heldennummer 2, 3 und so weiter, bis ihr jeden der Helden, die sich jemals im Team befinden können, auf diese Weise angelegt habt.
 
. Das ganze Ereignis, um das es hier geht, müsst ihr noch im Bezug auf die Variablen "Held #2", "Held #3" und "Held #4" machen. Verwendet hier entsprechend neue Schalter, die ihr "Held 2 - Tot", "Held 3 - Tot" und "Held 4 - Tot" nennt.
Darstellung der Stichpunkte in MML
 Held #1
[Ereignisseite 1][ENTER-Taste][Variable [Held #1]>=[1]]
/*
 * Hier wird von den Charsets das Bild eines normal aussehenden
 * Alex gezeigt
 */
[Ereignisseite 2][ENTER-Taste][Variable [Held #1]>=[1]][Schalter [Held 1 - Tot]]
/*
 * Hier wird von den Charsets das Bild eines bewusstlos am Boden liegendem
 * Alex gezeigt
 */
[Ereignisseite 3][ENTER-Taste][Variable [Held #1]>=[2]]
/*
 * Hier wird von den Charsets das Bild einer normal aussehenden
 * Annie gezeigt
 */
[Ereignisseite 4][ENTER-Taste][Variable [Held #1]>=[2]][Schalter [Held 1 - Tot]]
/*
 * Hier wird von den Charsets das Bild einer bewusstlos am Boden liegendem
 * Annie gezeigt
 */
Vorüberlegung IIIb - Die bewusstlosen Helden...

Nun geht es noch darum, ohne irgendwelche Verzögerungen die Helden, die bereits bewusstlos (tot) sind, auch als solche im SKS anzeigen zu lassen (Ihr erinnert euch: Sie sind bewusstlos, wenn der Schalter "Held X - Tot" auf AN steht; X steht für die Nummer des Helden im SKS). Erinnert euch noch etwas weiter an das Kapitel [Einstieg und Verlassen des SKS] zurück. Dort wurden zwei "Common Events/Häufig benötigte Ereignisse" angelegt, die den Helden ihre abnormen Zustände abnehmen und Nummern in Variablen schreiben und am Ende aus diesen Nummern den Helden die abnormen Zustände wieder zuweisen.

. Zuerst widmen wir uns dem "Common Event/Häufig benötigtem Ereignis", das ihr "Conditions Remove" genannt habt
 
. Ganz am Ende des angelegten Codes legt ihr eine Bedingung an, die abfragen soll, ob der Wert der Variable "Zustand - Held 1" auf 1 steht.
Im Ja-Fall (Einen Nein-Fall brauchen wir nicht) soll der Schalter "Held 1 - Tot auf AN gestellt werden.
 
. Wiederholt dies für "Zustand - Held 2" ("Held 2 - Tot"), "Zustand - Held 3" ("Held 3 - Tot") und "Zustand - Held 4" ("Held 4 - Tot")
 
. Zuletzt widmen wir uns noch dem "Common Event/Häufig benötigtem Ereignis", das ihr "Conditions - Add" genannt habt. Hier passiert eigentlich das zuvor gemachte, nur umgekehrt
 
. Ganz am Anfang des Ereignisses "Conditions - Add" legt ihr eine Bedingung an, die abfragt, ob der SChalter "Held 1 - Tot" auf AN steht.
Im Ja-Fall der Bedingung (einen Nein-Fall brauchen wir nicht) soll die Variable "Zustand - Held 1" auf 1 gesetzt werden (1 war der Wert für "Tot").
 
. Wiederholt dies für "Held 2 - Tot" (Zustand - Held 2), "Held 3 - Tot" (Zustand - Held 3) und "Held 4  -Tot" (Zustand - Held 4)

Auf eine MML-Darstellung wird aufgrund der Einfachheit der Ereiterung der beiden genannten Ereignisse verzichtet und gleich zu den Codebeispielen übergegangen:

Der erstellte Makercode des Ereignisses "Conditions - Remove"

Ersetzt yyy1 durch die Nummer der Variable, die direkt nach der Variable "Zustände No." folgt
Die Erweiterungen sind fett hervorgehoben

Im englischem Maker
<>Change Var: Var[xxx1: Zustände No] (Set)-yyy1
<>If Alex is in the party
 <>If Alex==>Tot is Condition
  <>Condition: (Alex's Tot (Rem)
  <>Change Var: [Var[xxx1]] (Set)-1
  <>
 :Else Case
  <>If Alex==>Vergiftet is Condition
   <>Condition: (Alex's Vergiftet (Rem)
   <>Change Var: [Var[xxx1]] (Set)-2
   <>
  :End Case
  <>
 :End Case
 <>Change Var: Var[xxx1: Zustände No] (+)-1
 <>
:End Case
<>If Annie is in the party
 <>If Annie==>Tot is Condition
  <>Condition: (Annie's Tot (Rem)
  <>Change Var: [Var[xxx1]] (Set)-1
  <>
 :Else Case
  <>If Annie==>Vergiftet is Condition
   <>Condition: (Annie's Vergiftet (Rem)
   <>Change Var: [Var[xxx1]] (Set)-2
   <>
  :End Case
  <>
 :End Case
 <>Change Var: Var[xxx1: Zustände No] (+)-1
 <>
:End Case
<>If var(xxxa: Zustand - Held 1) 1
 <>Change Switch: Var[aaa1: Held 1 - Tot] Switch ON
 <>
:End Case
<>If var(xxxb: Zustand - Held 2) 1
 <>Change Switch: Var[aaa2: Held 2 - Tot] Switch ON
 <>
:End Case
<>If var(xxxc: Zustand - Held 3) 1
 <>Change Switch: Var[aaa3: Held 3 - Tot] Switch ON
 <>
:End Case
<>If var(xxxd: Zustand - Held 4) 1
 <>Change Switch: Var[aaa4: Held 4 - Tot] Switch ON
 <>
:End Case
<>
Im deutschem Maker (V1.10c)
<>Var ändern: [xxx1: Zustände No]Wert, yyy1
<>Bedingung: Alex ist in Patrie
 <>Bedingung: Alex-Tot (Zustand)
  <>Zustand: Alex Gefallen Abbuch
  <>Var ändern:[V[xxx1]]Wert, 1
  <>
 :Ansonsten
  <>Bedingung: Alex-Vergiftet (Zustand)
   <>Zustand: Alex Vergiftet Abbruch
   <>Var ändern:[V[xxx1]]Wert, 2
   <>
  :End Fall
  <>
 :End Fall
 <>Var ändern: [xxx1: Zustände No]+, 1
 <>
:End Fall
<>Bedingung: Annie ist in Patrie
 <>Bedingung: Annie-Tot (Zustand)
  <>Zustand: Annie Gefallen Abbuch
  <>Var ändern:[V[xxx1]]Wert, 1
  <>
 :Ansonsten
  <>Bedingung: Annie-Vergiftet (Zustand)
   <>Zustand: Annie Vergiftet Abbruch
   <>Var ändern:[V[xxx1]]Wert, 2
   <>
  :End Fall
  <>
 :End Fall
 <>Var ändern: [xxx1: Zustände No]+, 1
 <>
:End Fall
<>Bedingung: Varb[xxxa: Zustand - Held 1) 1
 <>Schalter ändern: [aaa1: Held 1 - Tot]-[AN]
 <>
:End-Fall
<>Bedingung: Varb[xxxb: Zustand - Held 2) 1
 <>Schalter ändern: [aaa2: Held 2 - Tot]-[AN]
 <>
:End-Fall
<>Bedingung: Varb[xxxc: Zustand - Held 3) 1
 <>Schalter ändern: [aaa3: Held 3 - Tot]-[AN]
 <>
:End-Fall
<>Bedingung: Varb[xxxd: Zustand - Held 4) 1
 <>Schalter ändern: [aaa4: Held 4 - Tot]-[AN]
 <>
:End-Fall
Der erstellte Makercode des Ereignisses "Conditions - Add"

Die Erweiterungen sind fett hervorgehoben

Im englischem Maker
<>If Switch(aaa1: Held 1 - Tot) is ON
 <>Change Var: Var[xxxa: Zustand - Held 1] (Set)-1
 <>
:End Case
<>If Switch(aaa2: Held 2 - Tot) is ON
 <>Change Var: Var[xxxb: Zustand - Held 2] (Set)-1
 <>
:End Case
<>If Switch(aaa3: Held 3 - Tot) is ON
 <>Change Var: Var[xxxc: Zustand - Held 3] (Set)-1
 <>
:End Case
<>If Switch(aaa4: Held 4 - Tot) is ON
 <>Change Var: Var[xxxd: Zustand - Held 4] (Set)-1
 <>
:End Case

<>If Var(xxxa: Zustand - Held 1) 1
 <>Condition: (V[Held #1]) Tot (Add)
 <>
:Else Case
 <>If Var(xxxa: Zustand - Held 1) 2
  <>Condition: (V[Held #1]) Vergiftet (Add)
  <>
 :End Case
 <>
:End Case
<>
<>If Var(xxxb: Zustand - Held 2) 1
 <>Condition: (V[Held #2]) Tot (Add)
 <>
:Else Case
 <>If Var(xxxb: Zustand - Held 2) 2
  <>Condition: (V[Held #2]) Vergiftet (Add)
  <>
 :End Case
 <>
:End Case
<>
<>If Var(xxxc: Zustand - Held 3) 1
 <>Condition: (V[Held #3]) Tot (Add)
 <>
:Else Case
 <>If Var(xxxc: Zustand - Held 3) 2
  <>Condition: (V[Held #31]) Vergiftet (Add)
  <>
 :End Case
 <>
:End Case
<>
<>If Var(xxxd: Zustand - Held 4) 1
 <>Condition: (V[Held #4]) Tot (Add)
 <>
:Else Case
 <>If Var(xxxd: Zustand - Held 4) 2
  <>Condition: (V[Held #4]) Vergiftet (Add)
  <>
 :End Case
 <>
:End Case
<>Change Var: [Zustand - Held 1 to Zustand - Held 4] (Set)-0
<>
Im deutschem Maker (V1.10c)
<>Bedingung:Schalter[aaa1: Held 1 - Tot]- AN
 <>Var. ändern: [xxxa: Zustand - Held 1]Wert, 1
 <>
:End-Fall
<>Bedingung:Schalter[aaa2: Held 2 - Tot]- AN
 <>Var. ändern: [xxxb: Zustand - Held 2]Wert, 1
 <>
:End-Fall
<>Bedingung:Schalter[aaa3: Held 3 - Tot]- AN
 <>Var. ändern: [xxxc: Zustand - Held 3]Wert, 1
 <>
:End-Fall
<>Bedingung:Schalter[aaa4: Held 4 - Tot]- AN
 <>Var. ändern: [xxxd: Zustand - Held 4]Wert, 1
 <>
:End-Fall

<>Bedingung: Varb[xxxa: Zustand - Held 1]-1
 <>Zustand: V[Held #1]->TotZustand
 <>
:Ansonsten
 <>Bedingung: Varb[xxxa: Zustand - Held 1]-2
  <>Zustand: V[Held #1]->VergiftetZustand
  <>
 :End Fall
 <>
:End Fall
<>
<>Bedingung: Varb[xxxb: Zustand - Held 2]-1
 <>Zustand: V[Held #2]->TotZustand
 <>
:Ansonsten
 <>Bedingung: Varb[xxxb: Zustand - Held 2]-2
  <>Zustand: V[Held #2]->VergiftetZustand
  <>
 :End Fall
 <>
:End Fall
<>
<>Bedingung: Varb[xxxc: Zustand - Held 3]-1
 <>Zustand: V[Held #3]->TotZustand
 <>
:Ansonsten
 <>Bedingung: Varb[xxxc: Zustand - Held 3]-2
  <>Zustand: V[Held #3]->VergiftetZustand
  <>
 :End Fall
 <>
:End Fall
<>
<>Bedingung: Varb[xxxc: Zustand - Held 4]-1
 <>Zustand: V[Held #4]->TotZustand
 <>
:Ansonsten
 <>Bedingung: Varb[xxxc: Zustand - Held 4]-2
  <>Zustand: V[Held #4]->VergiftetZustand
  <>
 :End Fall
 <>
:End Fall
<>Var ändern: [Zustand - Held 1*Zustand - Held 4]Wert, 0
<>
Schlusswort für dieses Kapitel

Ihr habt nun auf eurer Kampfsystemkarte die Gegner und Helden platziert, die gegeneinander kämpfen werden. Dabei habt ihr (wenn ihr nach unserem gesamtem Beispiel vorgegangen seid) drei CharSet-Gegner, einen Picture-Gegner und 4 CharSet-Helden angelegt.

[Beispielhaftes Aussehen der Karte im Maker]

[Beispielhaftes Aussehen während des Testspiels]