| Gegner und Grünzeug

###### Vorüberlegungen I - Grünzeug

Hier im letztem Kapitel des AKS geht es für den Anfang darum, dass euer Hauptchara gewisse Stellen der Spielwelt mit seiner Waffe bearbeiten kann. Dies können Büsche, alte Fässer und Truhen oder andere leblose Gegenstände sein, die den Weg blockieren und/oder eventuell auch Beute in sich tragen. Die Grafiken dafür könnt ihr von dem ChipSet her verwenden, mit dem ihr die Spielwelt gestaltet, oder ihn erstellt euch selbst eigene CharSets aus einzelnen Büschen, Sträuchern, Fässern und Truhen anderer CharSets. Euch stehen vielerlei Möglichkeiten offen. Für die Darstellung eventuell gefundener Items werden wir in unserem Beispiel die Grafiken aus dem Paket [items.zip] verwenden und zur Veranschaulichung einen Busch in der Spielwelt anlegen.

| Begebt euch in die Spielwelt und dort in den Ereignismodus/Event Editing Mode. Klickt dann an einer beliebigen Stelle doppelt, woraufhin sich der Ereigniseditor öffnet. Hier legt ihr als erstes drei Ereignis-Seiten an. Seite 1 soll als Grafik die eines Busches darstellen, per Tastendruck starten und auf der selben Ebene wie der Held sich befinden. Seite 2 soll die Grafik eines kleinen Heiltranks (aus dem Paket [items.zip] die Grafik "Items7.png" und daraus in Blickrichtung rechts-mitte aus der zweiten CharSet-Zeile das dritte Bild von rechts.) darstellen (Wichtig ist, dass ihr als Animationstyp "Fixed Graphic/Fixierte Grafik" wählt, damit auch wirklich die gewählte CharSet-Einzelgrafik angezeigt wird), ebenfalls per Tastendruck starten, sich aber unter dem Held befinden. Auch soll es nur dann verfügbar sein, wenn ein neuer Schalter mit Namen "Busch #1 - Beute" aktiv ist. Seite 3 soll als Grafik den transparenten Chip des ChipSets darstellen, per Tastendruck starten und sich unter dem Held befinden. Diese Seite soll nur dann aktiv werden, wenn ein neuer Schalter namens "Busch #1" aktiv ist. Die dritte Seite dieses Ereignisses wird leer bleiben.
| Begebt euch nun auf die erste Seite des Ereignisses. Beginnt hier mit einer Bedingung samt Nein-Fall, die prüfen soll, ob der Schalter "Waffe 01 aktiv" auf AUS steht.
| Im Ja-Fall der Bedingung soll eine Nachricht/Message dem Spieler mitteilen, dass sich dieser Busch nicht ohne weiteres aus dem Weg räumen lässt. Diese Nachricht ist nicht zwingend Pflicht, kann aber an gewissen Stellen das Spiel-Ambiente ein wenig steigern. In unserem Beispiel sollte folgender Nachrichtentext seinen Zweck erfüllen: "Der Busch versperrt mir den Weg. Wenn ich nur eine Möglichkeit hätte, ihn irgendwie aus dem Weg zu räumen..."
| Im Nein-Fall der Bedingung geht es damit weiter, dass eine neue, freie Variable, die ihr "Random" nennt, eine Zufallszahl (!) zwischen 0 und 100 aufnimmt.
| Hiernach soll eine neue Bedingung prüfen, ob der Wert der Variable "Random" größer oder gleich dem Wert 66 ist. Im Ja-Fall soll der Schalter "Busch #1 - Beute", im Nein-Fall der Schalter "Busch #1" auf AN gestellt werden.
| Begebt euch nun auf die zweite Seite des Ereignisses. Hier gibt es die Beute. Beginnt hier damit, indem ihr eine Nachricht anlegt, die über das informiert, was gefunden wird. In unserem Fall soll der Text "Ein kleiner Heiltrank..." ausreichen.
| Direkt danach soll dem Inventar ein Item "Kleiner Heiltrank" hinzugefügt werden.
| Zum Abschluss wird noch der Schalter "Busch #1" auf AN gestellt.

###### Darstellung der Stichpunkte in MML

Busch-Ereignis
[Ereignisseite 1][Aufrufart [ENTER]] [Bedingung][Schalter][Waffe 01 aktiv][AUS]
| [Ja-Fall]
| [Nachricht] [Der Busch versperrt mir den Weg] [Wenn ich nur eine Möglichkeit hätte,] [ihn irgendwie aus dem Weg zu räumen] [...]
| [Nein-Fall]
| [Variable [Random]][<-- [Wert setzen][Zufall zwischen [0] und [100]]] [Bedingung][Variable][Random][größer oder gleich][66]
| [Ja-Fall]
| [Schalter [Busch #1 - Beute]][<-- [AN]]
| [Nein-Fall]
| [Schalter [Busch #1]][<-- [AN]]
[Ereignisseite 2][Aufrufart [ENTER]][Schalter [Busch #1 - Beute]] [Nachricht] [Ein kleiner Heiltrank] [Item][+][Kleiner Heiltrank][Manuelle Anzahl [1]] [Schalter [Busch #1]][<-- [AN]]
[Ereignisseite 3][Aufrufart [ENTER]][Schalter [Busch #1]]

###### Der erstellte Maker-Code

Im englischem Maker
//Code auf Seite 1 des Ereignisses <>If Switch (Waffe 01 aktiv) is OFF <>Message: Der Busch versperrt mir den Weg. : : Wenn ich nur eine Möglichkeit hätte, : : ihn irgendwie aus dem Weg zu räumen : : ... <> :Else Case <>Change Var: Var[Random] (Set)-Random(0 to 100) <>If Var (Random) 66 (>=) <>Change Switch: Var[Busch #1 - Beute] Switch ON <> :Else Case <>Change Switch: Var[Busch #1] Switch ON <> :End Case <> :End Case <>
//Code auf Seite 2 des Ereignisses <>Message: Ein kleiner Heiltrank... <>Chng Item Count:(Kleiner Heiltrank) 1 (Add) <>Change Switch: Var[Busch #1] Switch ON <>
//Code auf Seite 3 des Ereignisses <>
Im deutschem Maker (V1.10c)
//Code auf Seite 1 des Ereignisses <>Bedingung:Schalter[Waffe 01 aktiv]- Aus <>Nachr: Der Busch versperrt mir den Weg. : : Wenn ich nur eine Möglichkeit hätte, : : ihn irgendwie aus dem Weg zu räumen : : ... <> :Ansonsten <>Var. ändern:[Random]Wert, Zufll(0 * 100) <>Bedingung:Varbl[Random]- 66 >= <>Schalter ändern:[Busch #1 - Beute]-[An] <> :Ansonsten <>Schalter ändern:[Busch #1]-[An] <> :End-Fall <> :End-Fall <>
//Code auf Seite 2 des Ereignisses <>Nachr: Ein kleiner Heiltrank... <>+/- Item: Kleiner Heiltrank -> 1 erhö. <>Schalter ändern: [Busch #1]-[An] <>
//Code auf Seite 3 des Ereignisses <>

###### Vorüberlegungen II - Die Gegner im Spiel... aber wie?

Bevor es darum geht, die Gegner anzulegen, sollten wir uns überlegen, welchen Teil des Codes - von dem wir nicht wissen, wie abartig lang er werden könnte - wir in die Datenbank auslagern könnten. Dafür müssen wir uns erst überlegen, was das Ereignis, das in der Spielwelt den Gegner darstellt, alles können muss:
Zum Einen soll sich der Gegner später in der Spielwelt umherbewegen. Dies kann nicht ausgelagert werden.
Der Gegner soll angreifen. Die Art des Angriffs kann von Gegner zu Gegner unterschiedlich sein, weshalb wir auch dies nicht auslagern werden.
Der Gegner wie auch der Held werden sich gegenseitig verwunden. Wie schwer eine solche Verwundung sein kann, bestimmt die Schadensberechnung, die wir auslagern sollten - allein schon in Anbetracht dessen, dass ihr zahllose Gegner anlegen werdet.
Auch müssen die Attribute der Gegner vor (!) dem Kampf bereits feststehen. Dies muss zwangsläufig ausgelagert werden, jedoch in ein separates Ereignis, das sich auf der Map mit den Gegnern befindet.
Nun ist in Etwa klar, wie die weitere Vorgehensweise beim Erstellen der Gegner ablaufen wird...

###### Vorüberlegungen III - Die Attribute der Gegner

Für den Anfang sollen nun die Attribute des Gegners in Variablen geschrieben werden, um sie später in der Schadensberechnung verwenden zu können. Dies betrifft die Attribute "HP", "MP", "Max HP", "Max MP", "Angriffskraft", "Abwehr" und "Agilität" des Gegners. Auch sind zwei Schalter nötig.
Erinnert ihr euch noch an das Ereignis auf der Spielfeld-Map, welches das Datenbankereignis "Startaufstellung" aufruft? Hier werden die Gegnerattribute abgelegt.

| Begebt euch auf die erste Seite des Ereignisses, welches das Datenbankereignis "Startaufstellung" aufruft.
| Direkt unter dem Aufruf des Ereignisses "Startaufstellung" legt ihr sieben Variablen an. Gegner 1 - HP: Sie soll einen frei bestimmbaren Wert für die HP des Gegners in sich speichern (in unserem Beispiel 10) Gegner 1 - HP MAX: Sie soll den Maximalwert der HP des Gegners aufnehmen und sollte den gleichen Startwert wie die HP des betreffenden Gegners haben (in unserem Beispiel 10) Gegner 1 - MP: Auch hier legt ihr einen frei bestimmbaren Wert für die Magiekraft des Gegners fest (in unserem Beispiel 0) Gegner 1 - MP MAX: In dieser Variable soll die Maximalgrenze an MP des betreffenden Gegners abgelegt werden. Sie sollte nicht höher als der Startwerd der MP liegen (in unserem Beispiel 0) Gegner 1 - ATK: In dieser Variable soll ein Wert für die Stärke des Gegners abgelegt werden (In unserem Beispiel 5) Gegner 1 - Def: Diese Variable soll den Wert der Verteidigungsfähigkeit des Gegners aufnehmen (in unserem Beispiel 10) Gegner 1 - Agi: Diese Variable soll das Geschick des Gegners widerspiegeln, was später Einfluss auf die Schadensberechnung haben wird (in unserem Beispiel 50)
| Nach der letzten angelegten Variable legt ihr noch zwei Schalter an, denen ihr die Namen "Gegner 1 - Tot" und "Gegner 1 -Beute- Tot" gebt. Beide sollen auf AUS gestellt werden.
| Wiederholt die beiden vorangegangenen Punkte für jeden weiteren Gegner, der in der Spielwelt auf den Hauptchara lauern soll. Verwendet immer neue Variablen und Schalter (wichtig)

###### Darstellung der Stichpunkte in MML auf Seite 1 des Ereignisses

Was neu hinzugekommen ist, ist fett hervorgehoben

AKS-Display-Ereignis
[Ereignisseite 1][Automatischer start] [Ereignisaufruf][Datenbankereignis [Startaufstellung]] [Variable [Gegner 1 - HP]][<-- [Wert setzen][10]] [Variable [Gegner 1 - HP MAX]][<-- [Wert setzen][10]] [Variable [Gegner 1 - MP]][<-- [Wert setzen][0]] [Variable [Gegner 1 - MP MAX]][<-- [Wert setzen][0]] [Variable [Gegner 1 - ATK]][<-- [Wert setzen][5]] [Variable [Gegner 1 - Def]][<-- [Wert setzen][10]] [Variable [Gegner 1 - Agi]][<-- [Wert setzen][50]] [Schalter [Gegner 1 - Tot]][<-- [AUS]] [Schalter [Gegner 1 -Beute- Tot]][<-- [AUS]] [Schalter [AKS-Display DONE]][<-- [AN]

###### Der erstellte Maker-Code auf Seite 1 des Ereignisses

Was neu hinzugekommen ist, ist fett hervorgehoben

Im englischem Maker
<>Call Event: Startaufstellung <>Change Var: Var[Gegner 1 - HP] (Set)- 10 <>Change Var: Var[Gegner 1 - HP MAX] (Set)- 10 <>Change Var: Var[Gegner 1 - MP] (Set)- 0 <>Change Var: Var[Gegner 1 - MP MAX] (Set)- 0 <>Change Var: Var[Gegner 1 - ATK] (Set)- 5 <>Change Var: Var[Gegner 1 - Def] (Set)- 10 <>Change Var: Var[Gegner 1 - Agi] (Set)- 50 <>Change Switch: Var[Gegner 1 - Tot] Switch OFF <>Change Switch: Var[Gegner 1 -Beute- Tot] Switch OFF <>Change Switch: Var [AKS-Display DONE] Switch ON <>
Im deutschem Maker (V1.10c)
<>Ereignis aufrufen: Startaufstellung <>Var. ändern:[Gegner 1 - HP]Wert, 10 <>Var. ändern:[Gegner 1 - HP MAX]]Wert, 10 <>Var. ändern:[Gegner 1 - MP]Wert, 0 <>Var. ändern:[Gegner 1 - MP MAX]Wert, 0 <>Var. ändern:[Gegner 1 - ATK]Wert, 5 <>Var. ändern:[Gegner 1 - Def]Wert, 10 <>Var. ändern:[Gegner 1 - Agi]Wert, 50 <>Schalter ändern:[Gegner 1 - Tot]-[Aus] <>Schalter ändern:[Gegner 1 -Beute- Tot]-[Aus] <>Schalter ändern:[AKS-Display DONE]-[An] <>

###### Vorüberlegungen IV - Die Schadensberechnung

Nun geht es darum, eine globale Schadensberechnung in der Datenbank eures Projekts abzulegen, die sowohl für Angriffe des Hauptcharas als auch für Angriffe des Gegners verwendbar sein soll. Es mag kompliziert klingen, ist es aber nicht.

| Euch muss an dieser Stelle klar sein, dass das Ereignis, dass wir hier erstellen werden NICHT für Abzüge auf HP, MP oder sonst etwas sorgt. Es berechnet lediglich aus den Werten der verwendeten Variablen den anzurichtenden Schaden. Was mit diesem Wert weiter geschieht, wird später beim Erstellen der Gegner zum Einsatz kommen.

| Begebt euch in die Datenbank und erstellt ein neues Common Event/Häufig benötigtes Ereignis, dem ihr den Namen "Schadensberechnung" gebt. Es soll durch Call/Aufruf gestartet werden.
| Ganz zu Anfang setzt ihr zwei neue, freie Variablen, die ihr "Calc-Ergebnis" und "Calc-Abzug" nennt, auf 0. Eine dritte Variable, die ihr "Calc-Random" nennt, soll eine Zufallszahl (Random) zwischen 0 und 100 in sich aufnehmen.
| Nach der dritten Variable soll eine Bedingung prüfen, ob der Wert der Variable "Calc-Random" kleiner oder gleich dem Wert einer neuen, freien Variable ist, die ihr "Calc-AttackerAGI" nennt. Die Bedingung braucht keinen Nein-Fall.
| Im Ja-Fall der Bedingung beginnt alles mit einer Endlos-Schleife.
| In dieser Endlosschleife soll zuerst eine Bedingung prüfen, ob der Wert einer neuen, freien Variable - nennt sie "Calc-AttackerATK" - genau dem Wert 0 entspricht. Im Ja-Fall soll ein Schleifenausbruch erfolgen, ein Nein-Fall ist hier nicht erforderlich.
| Nach dem End-Fall dieser Bedingung, aber noch innerhalb der Endlosschleife, soll der Wert der Variable "Calc-Ergebnis" um eine Zufallszahl (Random) zwischen 0 und 1 erhöht werden. Danach soll vom Wert der Variable "Calc-AttackerATK" der Wert 1 abgezogen werden.
| In der leeren Zeile direkt nach dem Ende der Endlosschleife soll in die Variable, die ihr "Calc-Random" genannt habt, wieder eine Zufallszahl zwischen 0 und 100 geschrieben werden.
| Nach dieser Variablenfunktion soll eine Bedingung prüfen, ob der Wert der Variable "Calc-Random" kleiner oder gleich dem Wert einer neuen Variable ist, der ihr den Namen "Calc-EnemyAGI" gebt. Einen Nein-Fall braucht ihr hier wieder nicht.
| Auch in dieser Bedingung macht eine Endlosschleife den Anfang.
| Innerhalb dieser Endlosschleife soll eine weitere Bedingung ohne Nein-Fall prüfen, ob der Wert einer neuen Variable - nennt sie "Calc-EnemyDEF" - genau dem Wert 0 entspricht. Im Ja-Fall soll dann ein Schleifenausbruch erfolgen.
| Direkt nach dem End-Fall dieser Bedingung, aber noch innerhalb der Endlosschleife, soll zuerst in die Variable "Calc-Abzug" eine Zufallszahl (Random) zwischen 0 und 1 geschrieben und dann von der Variable "Calc-EnemyDEF" der Wert 1 abgezogen werden.
| Scrollt nun an das Ende des Codes. Hier soll von der Variable "Calc-Ergebnis" der Wert der Variable "Calc-Abzug" abgezogen werden.

###### Darstellung der Stichpunkte in MML

Schadensberechnung-Ereignis
[Variable [Calc-Ergebnis]][<-- [Wert setzen][0]] [Variable [Calc-Abzug]][<-- [Wert setzen][0]] [Variable [Calc-Random]][<-- [Wert setzen][Zufallszahl zwischen [0] und [100]]] [Bedingung][Variable][Calc-Random][kleiner oder gleich][Calc-AttackerAGI]
| [Ja-Fall]
| [Schleife Beginn]
| [Bedingung][Variable][Calc-AttackerATK][gleich][0]
| [Ja-Fall]
| [Schleifenausbruch]
[Variable [Calc-Ergebnis]][<-- [+][Zufallszahl zwischen [0] und [1]]] [Variable [Calc-AttackerATK]][<-- [-][1]]
[Schleife Ende] [Variable [Calc-Random]][<-- [Wert setzen][Zufallszahl zwischen [0] und [100]]] [Bedingung][Variable][Calc-Random][kleiner oder gleich][Calc-EnemyAGI]
| [Ja-Fall]
| [Schleife Beginn]
| [Bedingung][Variable][Calc-EnemyDEF][gleich][0]
| [Ja-Fall]
| [Schleifenausbruch]
[Variable [Calc-Abzug]][<-- [+][Zufallszahl zwischen [0] und [1]]] [Variable [Calc-EnemyDEF]][<-- [-][1]]
[Schleife Ende]
[Variable [Calc-Ergebnis]][<-- [-][Calc-Abzug]]

###### Der erstellte Maker-Code

Im englischem Maker
<>Change Var: Var[Calc-Ergebnis] (Set)- 0 <>Change Var: Var(Calc-Abzug] (Set)- 0 <>Change Var: Var[Calc-Random] (Set)-Random(0 to 100) <>If Var (Calc-Random) Calc-AttackerAGI (<=) <>Loop <>If Var(Calc-AttackerATK) 0 <>Break <> :End Case <>Change Var: Var[Calc-Ergebnis] (+)-Ramdon(0 to 1) <>Change Var: Var[Calc-AttackerATK] (-)- 1 <> :End Loop <>Change Var: Var[Calc-Random] (Set)-Random(0 to 100) <>If Var(Calc-Random) Calc-EnemyAGI (<=) <>Loop <>If Var(Calc-EnemyDEF) 0 <>Break <> :End Case <>Change Var: Var[Calc-Abzug] (+)-Random(0 to 1) <>Change Var: Var[Calc-EnemyDEF] (-)- 1 <> :End Loop <> :End Case <> :End Case <>Change Var: Var[Calc-Ergebnis] (-)- Calc-Abzug <>
Im deutschem Maker (V1.10c)
<>Var. ändern:[Calc-Ergebnis]Wert, 0 <>Var. ändern:[Calc-Abzug]Wert, 0 <>Var. ändern:[Calc-Random]Wert, Zufll[0 * 100] <>Bedingung:Varbl[Calc-Random]- Calc-AttackerAGI < <>Schleife <>Bedingung:Varbl[Calc-AttackerATK]-0 <>Schleife stoppen <> :End-Fall <>Var. ändern:[Calc-Ergebnis]+, Zufll [0 * 1] <>Var. ändern:[Calc-AttackerATK]-, 1 <> :Schleifenende <>Var. ändern:[Calc-Random]Wert, Zufll[0 * 100] <>Bedingung:Varbl[Calc-Random]- Calc-EnemyAGI < <>Schleife <>Bedingung:Varbl[Calc-EnemyDEF]- 0 <>Schleife stoppen <> :End-Fall <>Var. ändern:[Calc-Abzug]+, Zufll[0 * 1] <>Var. ändern:[Calc-EnemyDEF]-, 1 <> :Schleifenende <> :End-Fall <> :End-Fall <>Var. ändern:[Calc-Ergebnis]-, [Calc-Abzug]Wert <>

###### Vorüberlegungen Va - Der Gegner greift an...

Nun geht es langsam dem Ende entgegen. Ihr sorgt nun für Leben in der Spielwelt, indem ihr eurem Hauptchara einige Gegner in den Weg stellt. In diesem Unterkapitel soll es für den Anfang lediglich darum gehen, dass der Gegner angreift und Schaden anrichtet... wenn er denn trifft.
Erst soll dafür der Schadensberechnung das Geschick und die Angriffskraft des Gegners wie auch das Geschick und die Abwehrfähigkeit des Hauptcharas in die entsprechenden Variablen der Schadensberechnung geschrieben werden; dann startet die Schadensberechnung selbst. Wenn das Ergebnis 0 ist, verfehlt der Gegner. Ist es anders als 0, so soll der Gegner treffen, ein entsprechender Sound abgespielt und Schaden angerichtet werden. Wichtig ist hier, dass die HP-Anzeige des Hauptcharas aktualisiert wird, was am Ende durch Aufrufen des Ereignisses "Startaufstellung" geschehen wird.
In unserem Beispiel erstellen wir den "Gegner 1".

| Erstellt auf der Map, auf der gekämpft werden soll, ein neues Ereignis. Bestimmt als Bild das eines Gegners, der euch am ehestem zusagt (in unserem Beispiel ein Slime). Starten soll das Ereignis "bei Berührung (Ereignis, Held)". Es soll sich auf der selben Ebene wie der Held befinden und sich auf selbigen zu bewegen.
| Los geht es auf der ersten Seite des Ereignisses: Hier legt ihr eine Bedingung ohne Nein-Fall an, die prüft, ob der Wert der Variable "PressedButton" anders als 5 ist. Grund hierfür: Dies hilft bei der Unterscheidung, ob nun der Gegner den Helden berührt oder ob der Held mit dem Schwert nach dem Gegner schlägt. Der Held muss dabei den Gegner ansehen und ihn auch zwangsläufig "ansprechen". Würden wir diese Bedingung nicht anlegen, würden sowohl der Gegner, als auch der Held IMMER gleichzeitig angreifen, was nicht möglich sein soll. Alleine bei starken Gegnern kann dies zu einem schwerem Problem werden.
| Im Ja-Fall dieser Bedingung soll nun in vier Variablen jeweils ein besonderer Wert geschrieben werden: Calc-AttackerAGI <-- Hier soll der Wert der Variable "Gegner 1 - Agi" geschrieben werden Calc-AttackerATK <-- Hier landet der Wert der Variable "Gegner 1 - ATK Calc-EnemyAGI <-- Hier landet die Geschicklichkeit/Agility eures Hauptcharakters (in unserem Beispiel die des Helden "Alex" Calc-EnemyDEF <-- Zuletzt landet hier die Abwehr/Defense des Hauptcharakters (in unserem Beispiel Alex's)
| Hiernach soll das Common Event/Häufig benötigte Ereignis "Schadensberechnung" aufgerufen werden.
| Nach dem Ereignisaufruf ist eine Bedingung mit Nein-Fall nötig, die prüft, ob der wert der Variable "Calc-Ergebnis" anders als 0 ist.
| Im Ja-Fall der Bedingung soll zuerst die HP des Hauptcharaktes (in unserem Fall die von Alex) um den Wert der Variable "Calc-Ergebnis" verringert werden. Beachtet, dass ihr das Häkchen bei "Impossible Death/Tod ermöglichen" setzt.
| Hiernach soll ein Soundeffekt für den Treffer abgespielt und das Ereignis "Held" für ca. 0,5 Sekunden rot blinken. Als Soundeffekt eignet sich "Damage1" aus dem Standard-RTP. Beim Ereignisblinken soll NICHT gewartet werden, bis es fertig ist.
| Hiernach soll das Common Event/Häufig benötigte Ereignis "Startaufstellung" aufgerufen und ca. 0,5 Sekunden gewartet werden.
| Im Nein-Fall der Bedingung folgt lediglich ein Soundeffekt für den Fehlschlag. Hierfür eignet sich beispielsweise "Evasion1" aus dem Standard-RTP.

###### Darstellung der Stichpunkte in MML

Gegner 1-Ereignis
[Ereignisseite 1][Mehrfachberührung] [Bedingung][Variable][Pressed Button][anders als][5]
| [Ja-Fall]
| [Variable [Calc-AttackerAGI]][<-- [Wert setzen][Gegner 1 - Agi]] [Variable [Calc-AttackerATK]][<-- [Wert setzen][Gegner 1 - ATK]] [Variable [Calc-EnemyAGI]][<-- [Wert setzen][Held [Alex][Agility]]] [Variable [Calc-EnemyDEF]][<-- [Wert setzen][Held [Alex][Defense]]] [Ereignisaufruf][Datenbankereignis [Schadensberechnung]] [Bedingung][Variable][Calc-Ergebnis][anders als][0]
| [Ja-Fall]
| [Alex][<-- [HP][-][Variable [Calc-Ergebnis]]] [Soundeffekt [Damage1]] [Ereignisblinken][Ziel [Held]][RPG-Wirkung-Werte: [R=31][G=0][B=0][W=31]] [Blinkzeit [5]] [Ereignisaufruf][Datenbankereignis [Startaufstellung]] [Warten [0,5 Sekunden]]
| [Nein-Fall]
| [Soundeffekt [Evasion1]]

###### Der erstellte Maker-Code

Im englischem Maker
<>If Var (PressedButton) 5 (<>) <>Change Var: Var[Calc-AttackerAGI] (Set)- Var[Gegner 1 - Agi] <>Change Var: Var[Calc-AttackerATK] (Set)- Var[Gegner 1 - ATK] <>Change Var: Var[Calc-EnemyAGI] (Set)- Alex's Agilit <>Change Var: Var[Calc-EnemyDEF] (Set)- Alex's Defence <>Call Event: Schadensberechnung <>If Var (Calc-Ergebnis) 0 (<>) <>Change HP: Alex's HP V[Calc-Ergebnis] (Rem) <>Play SE: Damage1 <>Flash Event: Hero-0.5 sec <>Call Event: Startaufstellung <>Wait: 0.5sec <> :Else Case <>Play SE: Evasion1 <> :End Case <> :End Case <>
Im deutschem Maker (V1.10c)
<>Bedingung:Varbl[PressedButton]-5andr <>Var. ändern:[Calc-AttackerAGI]Wert, Var[Gegner 1 - Agi]Wert <>Var. ändern:[Calc-AttackerATK]Wert, Var[Gegner 1 - ATK]Wert <>Var. ändern:[Calc-EnemyAGI]Wert, Alex Bewegl. <>Var. ändern:[Calc-EnemyDEF]Wert, Alex Vertd. <>Ereignis aufrufen: Schadensberechnung <>Bedingung:Varbl[Calc-Ergebnis]-0andr <>LP ändern:AlexLP um V[Calc-Ergebnis] verm. <>Soundeffekt: Damage1 <>Char. blinken ...: Held, 0.5S. <>Ereignis aufrufen: Startaufstellung <>Warten: 0.5S. <> :Ansonsten <>Soundeffekt: Evasion1 <> :End-Fall <> :End-Fall <>

###### Vorüberlegungen Vb - ... und der Held schlägt zurück

Wenn ihr nun einen Testlauf macht, kann der Gegner bereits euren Helden angreifen. Schön und gut. Nur sollte sich der Held auch wehren können.
Nur haben wir es hier ein wenig komplizierter. Der Gegner muss selbst prüfen, ob er angegriffen wird und darf erst dann den erlittenen Schaden berechnen lassen. Es muss also jeweils die X- und Y-Koordinate des Gegners und die des Helden abgefragt und miteinander verglichen werden. Dann noch abgleiche, ob der Hauptchara auch jedes Mal ein Feld neben, über oder unter dem Gegner steht und ihn anschaut und schon wird der Schaden berechnet.
Hier wird lediglich der Angriff des Helden angelegt. Ob der Gegner hinterher noch lebt oder nicht könnt im Punkt danach.

| Begebt euch in das Ereignis des Gegners, den ihr gerade anlegt (in unserem Beispiel heißt das Ereignis "Gegner 1"). Legt hier rechts von der bestehenden Ereignisseite zwei weitere an. Auf beiden Seiten soll die Grafik des Gegners gezeigt und die Seite via AutoStart aktiv werden. Auch soll sich der Gegner in beiden Fällen auf den Hauptchara zu bewegen. Der Unterschied kommt nun: Die Ereignisseite 2 soll aktiv werden, wenn der Schalter "Schadensberechnung" auf AN steht, während Seite 3 aktiv werden soll, wenn ein neuer, freier Schalter - den nennt ihr "ProofOfLife" - auf AN steht.
| Begebt euch auf die zweite Ereignisseite (sie wird aktiv, wenn der Schalter "Schadensberechnung" auf AN steht). Zuerst wird hier mit Variablen gearbeitet. Eine neue, freie Variable, die ihr "X-Unterschied" nennt, soll die X-Koordinate des Ereignisses "Gegner 1" aufnehmen. Eine weitere, neue Variable, die ihr "Y-Unterschied" nennt, soll die Y-Koordinate des Ereignisses aufnehmen. Nun soll von der Variable "X-Unterschied" die X-Koordinate des Ereignisses "Held" abgezogen werden. Mit der Variable "Y-Unterschied" macht ihr das Selbe, nur mit der Y-Koordinate des Ereignisses "Held":
| Als nächstes werden die Variablen für die Schadensberechnung vorbereitet: Calc-AttackerAGI <-- Hier soll die Geschicklichkeit des Hauptcharas (Alex) abgelegt werden Calc-AttackerATK <-- Hier landet der Wert der Angriffskraft des Hauptcharas (Alex) Calc-EnemyAGI <-- Hier landet der Wert der Variable "Gegner 1 - Agi" Calc-EnemyDEF <-- Zuletzt landet hier der Wert der Variable "Gegner 1 - DEF"
| Nun soll eine Bedingung mit Nein-Fall prüfen, ob der Wert der Variable "X-Unterschied" genau dem Wert "0" entspricht.
| Im Ja-Fall dieser Bedingung soll eine weitere mit Nein-Fall folgen, die prüft, ob der Wert der Variable "Y-Unterschied" genau 1 ist.
| Im Ja-Fall dieser Bedingung folgt eine neue ohne Nein-Fall, die prüfen soll, ob das Ereignis "Held" nach unten schaut. In deren Ja-Fall (Der Held steht über dem Gegner und schaut direkt runter auf ihn) soll lediglich ein neuer, freier Schalter namens "Schaden errechnen" auf AN gestellt werden.
| Im Nein-Fall der Bedingung, die prüft, ob der Wert der Variable "Y-Unterschied genau 1 ist, legt ihr eine neue ohne Nein-Fall an, die prüfen soll, ob der Wert der Variable "Y-Unterschied" genau "-1" ist.
| Im Ja-Fall dieser Bedingung folgt eine neue ohne Nein-Fall, die prüfen soll, ob das Ereignis "Held" nach oben schaut. In deren Ja-Fall (Der Held steht unter dem Gegner und schaut direkt nach oben) soll lediglich ein neuer, freier Schalter namens "Schaden errechnen" auf AN gestellt werden.
| Im Nein-Fall der Bedingung, die prüft, ob der Wert der Variable "X-Unterschied genau 0 ist, legt ihr eine neue ohne Nein-Fall an, die prüfen soll, ob der Wert der Variable "Y-Unterschied" genau "0" ist.
| Im Ja-Fall dieser Bedingung folgt eine Weitere mit Nein-Fall, die prüfen soll, ob der Wert der Variable "X-Unterschied" genau 1 ist.
| Im Ja-Fall dieser Bedingung folgt eine neue ohne Nein-Fall, die prüfen soll, ob das Ereignis "Held" nach rechts schaut. In deren Ja-Fall (Der Held steht links neben dem Gegner und schaut nach rechts) soll lediglich ein neuer, freier Schalter namens "Schaden errechnen" auf AN gestellt werden.
| Im Nein-Fall legt ihr eine weitere Bedingung ohne Nein-Fall an, die prüft, ob der Wert der Variable "X-Unterschied" genau "-1" ist.
| Im Ja-Fall dieser Bedingung folgt eine neue ohne Nein-Fall, die prüfen soll, ob das Ereignis "Held" nach links schaut. In deren Ja-Fall (Der Held steht rechts neben dem Gegner und schaut nach links) soll lediglich ein neuer, freier Schalter namens "Schaden errechnen" auf AN gestellt werden.
| Scrollt nun an das Ende des angelegten Maker-Codes und legt in der untersten leeren Zeile eine neue Bedingung ohne Nein-Fall an, die prüft, ob der "Schaden errechnen" auf AN steht.
| Im Ja-Fall dieser Bedingung wird der Schalter "Schaden errechnen" auf AUS gestellt und danach Datenbankereignis "Schadensberechnung" aufgerufen.
| Direkt danach soll eine letzte Bedingung prüfen, ob der Wert der Variable "Calc-Ergebnis" anders als 0 ist.
| Im Ja-Fall soll zuerst von der Variable "Gegner 1 - HP" der Wert der Variable "Calc-Ergebnis" abgezogen und ein Soundeffekt für den erfolgreichen Angriff (Damage1 aus dem Standard-RTP) abgespielt werden. Auch soll das Ereignis, das ihr gerade bearbeitet ("Gegner 1" in unserem Beispiel) für 0,5 Sekunden rot blinken.
| Im Nein-Fall der Bedingung soll lediglich ein Soundeffekt für einen Fehlschlag abgespielt werden (Evasion1 aus dem Standard-RTP).
| Scrollt erneut an das Ende des Makercodes und legt in der untersten, leeren Zeile eine Funktion an, die den Schalter "Schadensberechnung" auf AUS und den Schalter "ProofOfLife" auf AN stellt.

###### Darstellung der Stichpunkte in MML auf Seite 2 des Ereignisses "Gegner 1"

Gegner 1-Ereignis
[Variable [X-Unterschied]][<-- [Wert setzen][Ereignis [Gegner 1][X-Koordinate]]] [Variable [Y-Unterschied]][<-- [Wert setzen][Ereignis [Gegner 1][Y-Koordinate]]] [Variable [X-Unterschied]][<-- [-][Ereignis [Held][X-Koordinate]]] [Variable [Y-Unterschied]][<-- [-][Ereignis [Held][Y-Koordinate]]] [Variable [Calc-AttackerAGI]][<-- [Wert setzen][Held [Alex][Agility]]] [Variable [Calc-AttackerATK]][<-- [Wert setzen][Held [Alex][Attack]]] [Variable [Calc-EnemyAGI]][<-- [Wert setzen][Gegner 1 - Agi]] [Variable [Calc-EnemyDEF]][<-- [Wert setzen][Gegner 1 - DEF]] [Bedingung][Variable][X-Unterschied][gleich][0]
| [Ja-Fall]
| [Bedingung][Variable][Y-Unterschied][gleich][1]
| [Ja-Fall]
| [Bedingung][Ereignisblickrichtung [Held][runter]]
| [Ja-Fall]
| [Schalter [Schaden errechnen]][<-- [AN]]
| [Nein-Fall]
| [Bedingung][Variable][Y-Unterschied][gleich][-1]
| [Ja-Fall]
| [Bedingung][Ereignisblickrichtung [Held][hoch]]
| [Ja-Fall]
| [Schalter [Schaden errechnen]][<-- [AN]]
| [Nein-Fall]
| [Bedingung][Variable][Y-Unterschied][gleich][0]
| [Ja-Fall]
| [Bedingung][Variable][X-Unterschied][gleich][1]
| [Ja-Fall]
| [Bedingung][Ereignisblickrichtung [Held][rechts]]
| [Ja-Fall]
| [Schalter [Schaden errechnen]][<-- [AN]]
| [Nein-Fall]
| [Bedingung][Variable][X-Unterschied][gleich][-1]
| [Ja-Fall]
| [Bedingung][Ereignisblickrichtung [Held][Links]]
| [Ja-Fall]
| [Schalter [Schaden errechnen]][<-- [AN]]
[Bedingung][Schalter][Schaden errechnen][AN]
| [Ja-Fall]
| [Schalter [Schaden errechnen]][<-- [AUS]] [Ereignisaufruf][Datenbankereignis [Schadensberechnung]] [Bedingung][Variable][Calc-Ergebnis][anders als][0]
| [Ja-Fall]
| [Variable [Gegner 1 - HP]][<-- [-][Calc-Ergebnis]] [Soundeffekt [Damage1]] [Ereignisblinken][Ziel [Gegner 1]][RPG-Wirkung-Werte: [R=31][G=0][B=0][W=31]] [Blinkzeit [5]] [Warten bis fertig]
| [Nein-Fall]
| [Soundeffekt [Evasion1]]
[Schalter [Schadensberechnung]][<-- [AUS]] [Schalter [ProofOfLife]][<-- [AN]]

###### Der erstellte Maker-Code auf Seite 2 des Ereignisses "Gegner 1"

Im englischem Maker
<>Change Var: Var[X-Unterschied] (Set)-Gegner 1's X Pos. <>Change Var: Var[Y-Unterschied] (Set)-Gegner 1's Y Pos. <>Change Var: Var[X-Unterschied] (-)- Hero's X Pos. <>Change Var: Var[Y-Unterschied] (-)- Hero's Y Pos. <>Change Var: Var[Calc-AttackerAGI] (Set)- Alex's Agilit <>Change Var: Var[Calc-AttackerATK] (Set)- Alex's Attack <>Change Var: Var[Calc-EnemyAGI] (Set)- Var[Gegner 1 - Agi] <>Change Var: Var[Calc-EnemyDEF] (Set)- Var[Gegner 1 - DEF] <>If Var (X-Unterschied) 0 <>If Var (Y-Unterschied) 1 <>If Hero ==> Down (Direction) <>Change Switch: Var [Schaden errechnen] Switch ON <> :End Case <> :Else Case <>If Var (Y-Unterschied) -1 <>If Hero ==> Up (Direction) <>Change Switch: Var[Schaden errechnen] Switch ON <> :End Case <> :End Case <> :End Case <> :Else Case <>If Var (Y-Unterschied) 0 <>If Var (X-Unterschied) 1 <>If Var (Hero ==> Rigt (Direction) <>Change Switch: Var[Schaden errechnen] Switch ON <> :End Case <> :Else Case <>If Var (X-Unterschied) -1 <>If Var (Hero ==> Left (Direction) <>Change Switch: Var[Schaden errechnen] Switch ON <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <>If Switch (Schaden errechnen) is ON <>Change Switch: Var[Schaden errechnen] Switch OFF <>Call Event: Schadensberechnung <>If Var (Calc-Ergebnis) 0 (<>) <>Change Var: Var[Gegner 1 - HP] (-)- Var[Calc-Ergebnis] <>Play SE: Damage 1 <>Flash Event: Gegner 1-0.5sec (W) <> :Else Case <>Play SE: Evasion1 <> :End Case <> :End Case <>Change Switch: Var[Schadensberechnung] Switch OFF <>Change Switch: Var[ProofOfLife] Switch ON <>
Im deutschem Maker (V1.10c)
<>Var. ändern: [X-Unterschied]Wert, Gegner 1 X-Pos <>Var. ändern: [Y-Unterschied]Wert, Gegner 1 Y-Pos <>Var. ändern: [X-Unterschied]-, Held X-Pos <>Var. ändern: [Y-Unterschied]-, Held Y-Pos <>Var. ändern: [Calc-AttackerAGI]Wert, Alex Bewegl. <>Var. ändern: [Calc-AttackerATK]Wert, Alex Angriff <>Var. ändern: [Calc-EnemyAGI]Wert, Gegner 1 - Agi <>Var. ändern: [Calc-EnemyDEF]Wert, Gegner 1 - DEF <>Bedingung:Varbl[X-Unterschied]-0 <>Bedingung:Varbl[Y-Unterschied]- 1 <>Bedingung:Held - Un[Ges.Richt.] <>Schalter ändern:[Schaden errechnen]-[An] <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[Y-Unterschied]- -1 <>Bedingung:Held - Ob[Ges.Richt.] <>Schalter ändern:[Schaden errechnen]-[An] <> :End-Fall <> :End-Fall <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[Y-Unterschied]- 0 <>Bedingung:Varbl[X-Unterschied]- 1 <>Bedingung:Held - Rc(Ges.Richt.) <>Schalter ändern:[Schaden errechnen]-[An] <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[X-Unterschied]- -1 <>Bedingung:Held - Ln(Ges.Richt.) <>Schalter ändern:[Schaden errechnen]-[An] <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <>Bedingung:SChalter[Schaden errechnen]- An <>Schalter ändern:[Schaden errechnen]-[Aus] <>Ereignis aufrufen: Schadensberechnung <>Bedingung:Varbl[Calc-Ergebnis]- 0andr <>Var. ändern:[Gegner 1 - HP]-, Var[Calc-Ergebnis]Wert <>Soundeffekt: Damage1 <>Char. blinken ...: Gegner 1, 0.5S.(W) <> :Ansonsten <>Soundeffekt: Evasion1 <> :End-Fall <> :End-Fall <>Schalter ändern:[Schadensberechnung]-[Aus] <>Schalter ändern:[ProofOfLife]-[An] <>

###### Vorüberlegungen VI - "Lebt denn der alte Gegner 1 noch, Gegner 1 noch, Gegner 1 noch...?"

Das kann nur der Gegner selbst sagen, da es von Gegner zu Gegner eine unterschiedliche Variable gibt, die Auskunft darüber gibt, ob der Gegner noch lebt oder tot ist. Seine HP-Variable. Ist deren Wert kleiner oder gleich 0, so ist der Gegner tot. Via Zufallsprinzip soll dann bestimmt werden, ob es Beute gibt (Gegner 1 -Beute- Tot wird angeschaltet) oder nicht (Gegner 1 - Tot wird angeschaltet).

| Legt nach der dritten Ereignisseite zwei weitere an. Sie beide sollen still stehen, per Tastendruck starten und sich von ihrer Position her unter dem Held befinden. Ereignisseite 4 soll nur dann startbar sein, wenn der Schalter "Gegner 1 -Beute- Tot", Seite 5 wenn der Schalter "Gegner 1 - Tot" aktiv ist.
| Begebt euch nun auf die dritte Ereignisseite des Ereignisses "Gegner 1" (Sie wird aktiv, wenn der Schalter "ProofOfLife" aktiviert wird). Beginnt hier mit einer Bedingung, die prüft, ob der Wert der Variable "Gegner 1 - HP" kleiner oder gleich 0 ist. Einen Nein-Fall braucht ihr hier nicht.
| Im Ja-Fall dieser Bedingung soll nun in die Variable "Random" eine Zufallszahl zwischen 0 und 100 geschrieben werden.
| Direkt danach soll eine Bedingung mit Nein-Fall prüfen, ob der Wert der Variable "Random" kleiner oder gleich 50 ist.
| Im Ja-Fall soll der Schalter "Gegner 1 -Beute- Tot" auf AN gestellt werden.
| Im Nein-Fall hingegen ist es der Schalter "Gegner 1 - Tot", der auf AN gestellt werden soll.
| Nach dem End-Fall der Bedingung, die prüft, ob der Wert in der Variable "Random" kleiner oder gleich 50 ist, soll nun eine Kampfanimation angezeigt werden, die das Sterben des Gegners darstellt. Wenn ihr die Grafik [enemy_death.png] verwendet, bietet sich hier die Rauchwolke mit Totenkopf dafür an (vorher müsst ihr in der Datenbank damit eine Kampfanimation erstellen).
| Scrollt nun in die letzte Zeile des Maker-Codes. Dort soll der Schalter "ProofOfLife" auf AUS gestellt werden.

###### Darstellung der Stichpunkte in MML auf Seite 3 des Ereignisses "Gegner 1"

Gegner 1-Ereignis
[Bedingung][Variable][Gegner 1 - HP][kleiner oder gleich][0]
| [Ja-Fall]
| [Variable [Random]][<-- [Wert setzen][Zufallszahl zwischen [0] und [100]] [Bedingung][Variable][Random][kleiner oder gleich][50]
| [Ja-Fall]
| [Schalter [Gegner 1 -Beute- Tot]][<-- [AN]]
| [Nein-Fall]
| [Schalter [Gegner 1 - Tot]][<-- [AN]]
[Kampfanimation zeigen][Animationsname [EnemyDeath]][Ziel [Gegner 1]] [Warten bis fertig]
[Schalter [ProofOfLife]][<-- [AUS]]

###### Der erstellte Maker-Code auf Seite 3 des Ereignisses "Gegner 1"

Im englischem Maker
<>If Var (Gegner 1 - HP) 0 (<=) <>Change Var: Var[Random] (Set)-Random(0 to 100) <>If Var (Random) 50 (<=) <>Change Switch: Var[Gegner 1 -Beute- Tot] Switch ON <> :Else Case <>Change Switch: Var[Gegner 1 - Tot] Switch ON <> :End Case <>Show Batte Animation: EnemyDeath-Gegner 1 (W) <> :End Case <>Change Switch: Var[ProofOfLife] Switch OFF <>
Im deutschem Maker (V1.10c)
<>Bedingung:Varbl[Gegner 1 - HP]- 0< <>Var. ändern:[Random]Wert, Zufll[0 * 100] <>Bedingung:Varbl[Random]-50< <>Schalter ändern:[Gegner 1 -Beute- Tot]-[An] <> :Ansonsten <>Schalter ändern:[Gegner 1 - Tot]-[An] <> :End-Fall <>Kampfanimation: EnemyDeath, Gegner 1 (W) <> :End-Fall <>Schalter ändern:[ProofOfLife]-[Aus] <>

###### Vorüberlegungen VII - Was der Gegner bei sich hat...

Falls der Gegner etwas bei sich hatte, was der Haupt-Chara auch mitnehmen könnte, so soll dies auf dem Boden der Spielwelt herumliegen, wenn der Gegner geschlagen würde. In unserem Beispiel deutet das der Schalter "Gegner 1 -Beute- Tot" an. Auch die dafür vorgesehene Ereignisseite ist schon da. Sie muss nur noch mit dem "Beute-Code" gefüllt werden:

| Begebt euch vierte Seite des Ereignisses "Gegner 1". Die Grafik, mit der das Ereignis dann, wenn es Beute gibt, dargestellt werden soll, könnt ihr an dieser Stelle ändern. Die Position muss aber so gewählt werden, dass sich das Ereignis unter dem Held befindet. In unserem Beispiel soll die Grafik eines kleinen Heiltranks (aus dem Paket [items.zip] die Grafik "Items7.png" und daraus in Blickrichtung rechts-mitte aus der zweiten CharSet-Zeile das dritte Bild von rechts.) darstellen (Wichtig ist, dass ihr als Animationstyp "Fixed Graphic/Fixierte Grafik" wählt, damit auch wirklich die gewählte CharSet-Einzelgrafik angezeigt wird)
| Beginnt hier damit, indem ihr eine Nachricht anlegt, die über das informiert, was gefunden wird. In unserem Fall soll der Text "Ein kleiner Heiltrank..." ausreichen.
| Direkt danach soll dem Inventar ein Item "Kleiner Heiltrank" hinzugefügt werden.
| Zum Abschluss bestimmt ihr noch, dass der Schalter "Gegner 1 - Tot" auf AN und der Schalter "Gegner 1 -Beute- Tot" auf AUS gestellt wird.

###### Darstellung der Stichpunkte in MML auf Seite 4 des Ereignisses "Gegner 1"

Gegner 1-Ereignis
[Nachricht] [Ein kleiner Heiltrank] [Item][+][Kleiner Heiltrank][Manuelle Anzahl [1]] [Schalter [Gegner 1 - Tot]][<-- [AN]] [Schalter [Gegner 1 -Beute- Tot]][<-- [AUS]]

###### Der erstellte Maker-Code auf Seite 4 des Ereignisses "Gegner 1"

Im englischem Maker
<>Message: Ein kleiner Heiltrank... <>Chng Item Count:(Kleiner Heiltrank) 1 (Add) <>Change Switch: Var[Gegner 1 - Tot] Switch ON <>Change Switch: Var[Gegner 1 -Beute- Tot] Switch OFF <>
Im deutschem Maker (V1.10c)
<>Nachr: Ein kleiner Heiltrank... <>+/- Item: Kleiner Heiltrank -> 1 erhö. <>Schalter ändern: [Gegner 1 -Tot]-[An] <>Schalter ändern: [Gegner 1 -Beute- Tot]-[AUS] <>

###### Schlusswort zu diesem Kapitel

Wenn ihr alles der Reihe nach bis an diese Stelle gemacht habt, habt ihr nun ein fertiges AKS vor euch. Beachtet jedoch - wenn ihr weitere Gegner nachrüsten wollt, dass ihr für JEDEN Gegner neue Variablen und Schalter nehmt. Die, die es betrifft, erkennt ihr an ihren Namen. In unserem Beispiel begannen alle betreffenden Variablen und Schalter mit "Gegner 1".
Auch die Variablen "X-Unterschied" und "Y-Unterschied" MÜSSEN je Gegner frische, noch unbenutzte Variablen sein, damit hier bei der Schadensberechnung nicht mit einem Hieb das ganze Spielfeld leergefegt wird.
Ansonsten sei an dieser Stelle gesagt, dass dies lediglich ein Grundgerüst für ein AKS ist. Wenn ihr mehr Funktionen einbauen wollt, so liegt dies an euch. Das Wissen habt ihr, wenn ihr euch der Rubrik "Das eigene Action-KS" gestellt habt. Viel Spaß beim Herumprobieren und Verwenden des AKS.