![]() ![]() |
Die Zielauswahl |
Wenn die Helden angreifen oder einen Zauber gegen einen Gegner oder Helden wirken sollen, muss vorher eine Zielauswahl stattfinden. Am Einfachsten ist es, wenn direkt darauf gezeigt wird, was den Angriff oder den Fertigkeiteneinsatz erfahren soll.
![]() |
Hierfür soll ein neues Ereignis dienen, das ihr schlicht und ergreifend
"Gegnerzeiger" nennt. Als CharSet soll die dem E-Book beigefügte Grafik [cursors.png]
dienen, genauer gesagt ein Zeiger, der nach links deutet. |
![]() |
Legt eine zweite Ereignis-Seite an, die genau dann aktiv werden soll, wenn ein neuer, freier Schalter namens "Cursor auf Held" AN ist. Als CharSet soll wieder aus der Grafik [cursors.png] ein Zeiger dienen, der diesmal nach rechts deutet. |
Hier soll es für den Anfang nur darum gehen, die Bewegungsrichtung des Zielauswahlcursors zu bestimmen, sowie den Einsatz eines Angriffs oder die Auswahl der Fertigkeit bei Drücken von ENTER bzw. das Verlassen der Zielauswahl durch drücken von ESC.
![]() |
Legt zunächst ein neues Ereignis an, das ihr "Heldenskills" nennt, und
sorgt dafür, dass es zwei Ereignis-Seiten hat, die allesamt als Push-Key
starten. |
![]() |
Zuerst legt ihr eine neue Variable an, die auf den Wert "5" gesetzt wird
(Cursor soll auf den Gegner 1 zeigen). Nennt die Variable "Ziel - Gewählt". |
![]() |
Danach soll die zweite Seite dieses Ereignisses aufgerufen werden (die
übernimmt später das Positionieren des Cursors für die Ziel-Auswahl) |
![]() |
Hiernach folgt eine Endlos-Schleife, in der das erste eine Tastenabfrage
(Enter Password) ist, die sämtliche Tasten (Cursor, ENTER, ESC) abfragt.
Stellt sicher, dass unbedingt gewartet wird, bis eine Taste gedrückt wird
(Wichtig). Nehmt für die Tastenabfrage eine neue, freie Variable, die ihr
"Zielauswahl-Button" nennt. |
![]() |
Die erste danach folgende Bedingung soll nun prüfen, ob der Wert der
Variable "Zielauswahl-Button" kleiner oder gleich 2 ist (Die Cursortasten
"runter" und "links" wurden gedrückt). Im Ja-Fall soll der Wert der Variable
"Ziel-Gewählt" um "1" erhöht werden. |
![]() |
Im Nein-Fall soll eine weitere Bedingung folgen, die nun prüft, ob der
Wert der Variable kleiner oder gleich 4 ist (Die Cursortasten "rechts" und
"hoch" wurden gedrückt). Im Ja-Fall der Bedingung soll der Wert der Variable
"Ziel-Gewählt" um "1" verringert werden. |
![]() |
Im Nein-Fall folgt eine dritte Bedingung, die nun prüfen soll, ob der
Wert der Variable "5" ist (ENTER wurde gedrückt). Im Ja-Fall soll
zuerst das Cursor-Ereignis an eine Stelle teleportiert werden, wo es nicht
mehr sichtbar ist. Dann folgt ein Schleifenausbruch. |
![]() |
Im Nein-Fall soll eine letzte Bedingung prüfen, ob der Wert der Variable
"6" ist (ESC wurde gedrückt). Im Ja-Fall soll zuerst das
Cursor-Ereignis an eine Stelle teleportiert werden, wo es nicht mehr
sichtbar ist. Dann soll ein neuer Schalter, den ihr "Kein Ziel" nennt, auf
AN gestellt werden, dem ein Schleifenausbruch folgt. Ein Nein-Fall ist hier nicht nötig. |
![]() |
Nun müssen noch die Grenzwerte abgefangen werden: Scrollt hierfür an das Ende des von euch angelegten Maker-Codes, aber noch innerhalb der Endlosschleife. Hier legt ihr eine Bedingung an, die prüfen soll, ob der Wert der Variable "Ziel-Gewählt" genau dem Wert "9" entspricht. Im Ja-Fall soll der Wert der Variable auf "1" gesetzt werden. |
![]() |
Im Nein-Fall soll eine weitere Bedingung prüfen, ob der Wert der
Variable "0" ist. Im Ja-Fall soll der Wert der Variable auf "8" gesetzt
werden. Ein Nein-Fall ist nicht nötig. |
![]() |
Außerhalb der Bedingungen, aber noch innerhalb der Endlos-Schleife, soll die zweite Seite des aktuell bearbeiteten Ereignisses aufgerufen werden. |
Heldenskills-Ereignis | ||||||||||||||||||||||||||||||||||||||||||||||||||
[Ereignisseite 1][Push Key] [Variable [Ziel-Gewählt]][<-- [Wert setzen][5]] [Ereignis aufrufen][Kartenereignis [Heldenskills]][Ereignisseite [2]] [Schleife Beginn]
|
||||||||||||||||||||||||||||||||||||||||||||||||||
[Ereignisseite 2][Push Key] |
Im englischem Maker |
<>Change Var: Var[eee1:Ziel-Gewählt] (Set)-
5 <>Call Event: HeldenskillsPG[2] <>Loop <>Enter Password: Var[eee2:Zielauswahl-Button] <>If Var(eee2:Zielauswahl-Button) 2(<=) <>Change Var: Var[eee1: Ziel-Gewählt] (+)- 1 <> :Else Case <>If Var(eee2:Zielauswahl-Button) 4 (<=) <>Change Var: Var[eee1: Ziel-Gewählt] (-)- 1 <> :Else Case <>If Var(eee2:Zielauswahl-Button) 5 <>Teleport Event: Gegnerzeiger-(000,000) <>Break <> :Else Case <>If Var(eee2:Zielauswahl-Button) 6 <>Teleport Event: Gegnerzeiger-(000,000) <>Change Switch: Var[eeee:Kein Ziel] Switch ON <>Break <> :End Case <> :End Case <> :End Case <> :End Case <>If Var(eee1:Ziel-Gewählt) 9 <>Change Var: Var[eee1:Ziel-Gewählt] (Set)- 1 <> :Else Case <>If Var(eee1:Ziel-Gewählt) 0 <>Change Var: Var[eee1:Ziel-Gewählt] (Set)- 8 <> :End Case <> :End Case <>Call Event: HeldenskillsPG[2] <> :End Loop <> |
Im deutschem Maker (V1.10c) |
<>Var. ändern:[eee1:Ziel-Gewählt]Wert, 5 <>Ereignis aufrufen:Heldenskills[2] <>Schleife <>Tasten abfragen:[eee2:Zielauswahl-Button] <>Bedingung:Varbl[eee2:Zielauswahl-Button]- 2< <>Var. ändern:[eee1:Ziel-Gewählt]+, 1 <> :Ansonsten <>Bedingung:Varbl[eee2:Zielauswahl-Button]- 4< <>Var. ändern:[eee1:Ziel-Gewählt]-, 1 <> :Ansonsten <>Bedingung:Varbl[eee2:Zielauswahl-Button]- 5 <>Ereign.-Platz setzn: Gegnerzeiger, (000,000) <>Schleife stoppen <> :Ansonsten <>Bedingung:Varbl[eee2:Zielauswahl-Button]- 6 <>Ereign.-Platz setzn: Gegnerzeiger, (000,000) <>Schalter ändern:[eeee:Kein Ziel]-[AN] <>Schleife stoppen <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 9 <>Var. ändern:[eee1:Ziel-Gewählt]Wert, 1 <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 0 <>Var. ändern:[eee1:Ziel-Gewählt]Wert, 8 <> :End-Fall <> :End-Fall <>Ereignis aufrufen:Heldenskills[2] <> :Schleifenende <> |
Hier soll von der Theorie her der Cursor immer vor das gemäß der nachfolgend gezeigten Tabelle nummerierte Ziel gesetzt werden:
Nummer: | Charakter: |
1 | Held 1 |
2 | Held 2 |
3 | Held 3 |
4 | Held 4 |
5 | Gegner 1 |
6 | Gegner 2 |
7 | Gegner 3 |
8 | Gegner 4 |
Der Haken an der Sache ist, dass der Cursor selbst wissen muss, ob das Ziel
überhaupt am Leben ist bzw. ob es überhaupt am Kampf teil nimmt. Das
Beispiel-SKS dieses Gesamt-Tutorials ist auf einen Kampf 4 gegen 4 ausgelegt,
jedoch kann es auch vorkommen, dass es weniger als insgesamt 8 Kontrahenten
geben kann. Und hier muss der Cursor wissen, welches Ziel im Kampf überhaupt
verfügbar ist... nicht, dass er irgendwann während eines Kampfes ins Leere
gesetzt wird.
Auch kommt hier der Schalter "Cursor auf Held" zum Einsatz, den ihr ganz am
Anfang dem Cursor-Ereignis gegeben habt.
![]() |
Alles beginnt damit, dass ihr eine Endlos-Schleife anlegt |
||||||||||||||
![]() |
In dieser Endlosschleife soll eine Bedingung prüfen, ob der Wert der
Variable "Ziel-Gewählt" dem Wert 1 entspricht. Ein Nein-Fall ist hier
zwingend notwendig.
|
||||||||||||||
![]() |
Im Nein-Fall der ersten Bedingung wiederholt ihr das Schema. Macht
jedoch anstelle der dunkelrot hervorgehobenen Punkte immer ein
Ereigniskommando, das einen Sprung zum Label #1 durchführt. |
||||||||||||||
![]() |
Habt ihr alle acht Charas (4 Helden, 4 Gegner) soweit angelegt, dann
scrollt an das Ende des Codes und legt in der letzten Zeile innerhalb der
Endlosschleife eine Bedingung an, die prüft, ob der Wert der Variable "Ziel-Gewählt"
dem Wert 9 entspricht. Im Ja-Fall soll der Wert der Variable "Ziel-Gewählt"
auf 1 gesetzt werden. |
||||||||||||||
![]() |
Im Nein-Fall soll hingegen geprüft werden, ob der Wert der Variable 0 ist. Im Ja-Fall soll er auf 8 gesetzt werden, während ein Nein-Fall nicht nötig ist. |
Was neu hinzugekommen ist, ist fett und kursiv hervorgehoben
Heldenskills-Ereignis | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[Ereignisseite 1][Push Key] [Variable [Ziel-Gewählt]][<-- [Wert setzen][5]] [Ereignis aufrufen][Kartenereignis [Heldenskills]][Ereignisseite [2]] [Schleife Beginn]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[Ereignisseite 2][Push Key] [Schleife Beginn]
|
Im englischem Maker |
<>Loop <>If Var(eee1: Ziel-Gewählt) 1 <>If Var(aaa1: Held #1) 0 (<>) <>If Switch(xxx1: Held 1 - Tot) is OFF <>Change Switch: Var[fff1:Cursor auf Held] Switch ON <>Teleport Event: Gegnerzeiger-(011,008) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>Label #1 <>If Var(eee2:Zielauswahl-Button) 2(<=) <>Change Var: Var[eee1:Ziel-Gewählt] (+)- 1 <> :Else Case <>If Var(eee2:Zielauswahl-Button) 4(<=) <>Change Var: Var[eee1:Ziel-Gewählt] (-)- 1 <> :End Case <> :End Case <> ;End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 2 <>If Var(aaa2: Held #2) 0 (<>) <>If Switch(xxx2: Held 2 - Tot) is OFF <>Change Switch: Var[fff1:Cursor auf Held] Switch ON <>Teleport Event: Gegnerzeiger-(012,010) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>Goto Label 1# <> ;End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 3 <>If Var(aaa3: Held #3) 0 (<>) <>If Switch(xxx3: Held 3 - Tot) is OFF <>Change Switch: Var[fff1:Cursor auf Held] Switch ON <>Teleport Event: Gegnerzeiger-(013,007) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>Goto Label 1# <> ;End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 4 <>If Var(aaa4: Held #4) 0 (<>) <>If Switch(xxx4: Held 4 - Tot) is OFF <>Change Switch: Var[fff1:Cursor auf Held] Switch ON <>Teleport Event: Gegnerzeiger-(012,010) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>Goto Label 1# <> ;End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 5 <>If Var(1xxx: HP - Gegner 1) 0 (<>) <>Change Switch: Var[fff1:Cursor auf Held] Switch AUS <>Teleport Event: Gegnerzeiger-(008,007) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 6 <>If Var(2xxx: HP - Gegner 2) 0 (<>) <>Change Switch: Var[fff1:Cursor auf Held] Switch AUS <>Teleport Event: Gegnerzeiger-(007,009) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 7 <>If Var(3xxx: HP - Gegner 3) 0 (<>) <>Change Switch: Var[fff1:Cursor auf Held] Switch AUS <>Teleport Event: Gegnerzeiger-(008,011) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :Else Case <>If Var(eee1: Ziel-Gewählt) 8 <>If Var(4xxx: HP - Gegner 4) 0 (<>) <>Change Switch: Var[fff1:Cursor auf Held] Switch AUS <>Teleport Event: Gegnerzeiger-(006,005) <>Break <> :Else Case <>Goto Label 1# <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <> :End Case <>If Var(eee1:Ziel-Gewählt) 9 <>Change Var: Var[eee1:Ziel-Gewählt] (Set)- 1 <> :Else Case <>If Var(eee1:Ziel-Gewählt) 0 <>Change Var: Var[eee1:Ziel-Gewählt] (Set)- 8 <> :End Case <> :End Case <> :End Loop <> |
Im deutschem Maker (V1.10c) |
<>Schleife <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 1 <>Bedingung:Varbl[aaa1:Held #1]- 0andr <>Bedingung:Schalter[xxx1:Held 1 - Tot]- AUS <>Schalter ändern:[fff1:Cursor auf Held]-[AN] <>Ereign.-Platz setzn: Gegnerzeiger, (011,008) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <> -> Label:1Nr <>Bedingung:Varbl[eee2:Zielauswahl-Button]-2< <>Var. ändern:[eee1:Ziel-Gewählt]+, 1 <> :Ansonsten <>Bedingung:Varbl[eee2:Zielauswahl-Button]-4< <>Var. ändern:[eee1:Ziel-Gewählt]-, 1 <> :End-Fall <> :End-Fall <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 2 <>Bedingung:Varbl[aaa2:Held #2]- 0andr <>Bedingung:Schalter[xxx2:Held 2 - Tot]- AUS <>Schalter ändern:[fff1:Cursor auf Held]-[AN] <>Ereign.-Platz setzn: Gegnerzeiger, (012,010) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 3 <>Bedingung:Varbl[aaa3:Held #3]- 0andr <>Bedingung:Schalter[xxx3:Held 3 - Tot]- AUS <>Schalter ändern:[fff1:Cursor auf Held]-[AN] <>Ereign.-Platz setzn: Gegnerzeiger, (013,007) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 4 <>Bedingung:Varbl[aaa4:Held #4]- 0andr <>Bedingung:Schalter[xxx4:Held 4 - Tot]- AUS <>Schalter ändern:[fff1:Cursor auf Held]-[AN] <>Ereign.-Platz setzn: Gegnerzeiger, (014,009) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 5 <>Bedingung:Varbl[1xxx:HP - Gegner 1]-0 > <>Schalter ändern:[fff1:Cursor auf Held]-[AUS] <>Ereign.-Platz setzn: Gegnerzeiger, (008,007) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 6 <>Bedingung:Varbl[2xxx:HP - Gegner 2]-0 > <>Schalter ändern:[fff1:Cursor auf Held]-[AUS] <>Ereign.-Platz setzn: Gegnerzeiger, (007,009) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 7 <>Bedingung:Varbl[3xxx:HP - Gegner 3]-0 > <>Schalter ändern:[fff1:Cursor auf Held]-[AUS] <>Ereign.-Platz setzn: Gegnerzeiger, (008,011) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 8 <>Bedingung:Varbl[4xxx:HP - Gegner 4]-0 > <>Schalter ändern:[fff1:Cursor auf Held]-[AUS] <>Ereign.-Platz setzn: Gegnerzeiger, (006,005) <>Schleife stoppen <> :Ansonsten <>Gehe zu Label: 1Nr <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <> :End-Fall <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 9 <>Var. ändern:[eee1:Ziel-Gewählt]Wert, 1 <> :Ansonsten <>Bedingung:Varbl[eee1:Ziel-Gewählt]- 0 <>Var. ändern:[eee1:Ziel-Gewählt]Wert, 8 <> :End-Fall <> :End-Fall <> :Schleifenende <> |