*hust*
Lieber nochmal ganz von Vorne ^^°

Aaaalso:
Wie das Koordinatensystem des Makers funktioniert weißt du hoffentlich. Der Ursprung liegt oben links (0|0) (kannst ja einfach mal im Event-Layer den Cursor an verschiedene Stellen setzten und am unteren Rand des Maker-Fensters nachschauen, was da für Koordinaten stehen. Sollte alles recht leicht verständlich sein.).
Nun hast du den Helden und 4 Gegner. Für jeden davon gibt es 2 Variablen die die interessieren:
Code:
- Held X-Koordinate
- Held Y-Koordinate
- Gegner 1 X-Koordinate
- Gegner 1 Y-Koordinate
- Gegner 2 X-Koordinate
- Gegner 2 Y-Koordinate
- Gegner 3 X-Koordinate
- Gegner 3 Y-Koordinate
- Gegner 4 X-Koordinate
- Gegner 4 Y-Koordinate
Für dein AKS brauchst du sie alle.
Da ich mir dein AKS Dingens nicht angeschaut habe, weiß ich nicht genau wie es dort geregelt ist, ich baue es jetzt einfach mal in ein PP CE (Parallel Process Common Event) ein.
Zu beginn die Abfrage ob der Held die Leertaste (bzw. Enter) gedrückt hat. Es soll ja nur ein Schlag ausgeführt werden, wenn der Spieler dies auch will.
Code:
<>Enter Password (5) [Wait until key hit]
<>
Danach werden sofort alle Variablen eingelesen (dieser Part wird erst dann (und nur dann) ausgeführt, wenn der Spieler die Leertaste gedrückt hat):
Code:
<>Change Variable "Held X", set [(Hero) X-Coord.]
<>Change Variable "Held Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 1 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 1 Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 2 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 2 Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 3 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 3 Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 4 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 4 Y", set [(Hero) Y-Coord.]
<>
(Mag sein das es etwas übertrieben ist, jedesmal alle Gegner mit aufzuführen, aber da es scheinbar zuvor damit Probleme gab, gehe ich lieber auf Nummer sicher )
Nun wollen wir feststellen ob einer der Gegner getroffen wurde. Dazu müssen wir uns das Koordinatensystem des Makers nochmal etwas genauer anschaun.
Sagen wir mal der Held steht auf dem Feld (12|8) und schaut nach rechts. Würde er nun zuschlagen würde der Schlag das Feld rechts neben ihm treffen. Würde dort nun ein Gegner stehen, hätte dieser (welcher ja nun getroffen werden sollte) die Koordinaten (13|8). Wie erreichen wir es also, dass wir mit einer einfachen Abfrage überprüfen können, ob der Held einen der Gegner trifft?
Indem wir nicht die Koordinaten des Helden, sondern die seines Schlages betrachten. Dieser ist ja (zumindest im Normalfall) direkt ein Feld vor ihm. D.h. konkret, dass wir die Koordinaten des Helden an seine Blickrichtung anpassen müssen. Diese Änderung ist leicht durch logisches Denken nachvollziehbar:
Code:
Held schaut nach oben: Y-Koordinate -1
Held schaut nach unten: Y-Koordinate +1
Held schaut nach links: X-Koordinate -1
Held schaut nach rechts: X-Koordinate +1
Wenn du es nicht sofort verstehst, geh nochmal in den Maker, such dir ein beliebiges Feld aus, schau unten auf die Koordinatenangaben und geh dann jeweils ein Feld in eine der 4 Richtungen und betrachte die Änderung der unten sichtbaren Werte .
Nun aber weiter im Code. So müsste das dann aussehen:
Code:
<>Fork Event [(Hero) Up-Face Dir.]
<><>Change Variable "Held Y" - 1
<>Else:
<>Fork Event [(Hero) Down-Face Dir.]
<><>Change Variable "Held Y" + 1
<>Else:
<>Fork Event [(Hero) Left-Face Dir.]
<><>Change Variable "Held X" - 1
<>Else:
<>Fork Event [(Hero) Rigth-Face Dir.]
<><>Change Variable "Held X" + 1
<>End:
<>
Nun haben wir herausgefunden wo der Schlag des Helden landen wird. Jetzt müssen wir nur noch nachschaun, ob sich einer der Gegner auf diesem Feld befindet. Sollte dem so sein, müssten die Koordinaten des Gegners, denen des Schlages genau entsprechen. Also so:
Code:
<>Fork Variable "Held X" = "Gegner 1 X"
<><>Fork Variable "Held Y" = "Gegner 1 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>Fork Variable "Held X" = "Gegner 2 X"
<><>Fork Variable "Held Y" = "Gegner 2 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>Fork Variable "Held X" = "Gegner 3 X"
<><>Fork Variable "Held Y" = "Gegner 3 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>Fork Variable "Held X" = "Gegner 4 X"
<><>Fork Variable "Held Y" = "Gegner 4 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>
Damit ist die Sache mit den Gegnern erledigt.
Optional noch ein Beispielhafter

Nun nur noch zu den Gegnerevents. Hierbei kannst du natürlich den obigen Code auf die Gegner umdichten, jedoch geht es auch einfach mit "On Touch (Event / Hero)"-Events.
Code:
Gegner 1 | On Touch (Event / Hero) | No starting condition | Step towards Hero

<>Fork Switch "Gegnerangriff" = ON
<><>Show Battle Animation "Gegner XYZ Angriff" at [Hero]
<><>Change Variable "Held HP" - "Gegner 1 Schaden" //bzw: Change HP (Held 1), "Gegner 1 Schaden" dec. [posible Death]
<><>Change Switch "Gegnerangriff" -> OFF
<>End:
Zu guter Letzt noch das PP CE, welches den Gegnerangriff koordiniert:
Code:
<>Change Switch "Gegnerangriff" -> ON
<>Wait 0,1 secs
<>Change Switch "Gegnerangriff" -> OFF
<>Wait 1,0 secs
<>
Je nachdem wie schwierig es sein soll, musst du ein bisschen mit den beiden Waits spielen. Außerdem kannst du noch das "Change Switch "Gegneragriff" -> OFF" im Gegnerevent selbst weglassen um es nochmal ein bisschen schwerer zu machen.
So, ich glaube ich habe jetzt alles wichtige erwähnt. Falls noch Fragen sind, ... öhm ... ja ^^°. Dann stell sie

Ganz am Schluss nochmal optional der ganze Code des Helden - Gegner Angriffs PP CE:


mfg
Phönix Tear