Trainer

Dieser Artikel beschreibt, wie man Trainer erstellt.

Weiterführende Links
  • Trainer definieren
    • Wie Trainer und Trainertypen definiert sind.
  • Zeitbasierende Events
    • Dieser Artikel beschreibt, wie Events nur bei einer bestimmten Tageszeit aktiv sind. Wird normalerweise für Polizisten benutzt, die nur nachts kämpfen oder Events, die nur am bestimmten Tagen auftauchen.
  • Kämpfe
    • Gegnerische Trainer werden den Spieler zu einem Kampf herausfordern.

 

Inhalt

Trainerevent erstellen

Um dies zu tun, erstellt man ein Event und nennt diesen Trainer(X), wobei X die Sichtweise in Tiles angibt. Wenn der Spieler innerhalb dieser Sichtweise steht, wird er vom Trainer bemerkt. Dieser bewegt sich dann auf dem Spieler zu und redet mit ihm. Wenn man nicht möchte, dass das Event diesen sichtbaren Bereich hat (z.B bei Arenaleitern der Fall), dann muss man dem Event einen anderen Namen geben.

Anschließend fügt man ein paar Comments (Kommentare) hinzu. Wenn das Spiel compiliert wurde, werden diese Kommentare in richtige Event-Befehle umgewandelt, die für einen Trainer-Event nötig sind (die Kommentare sollen nur die Arbeit mit solchen Events erleichtern).

Mögliche Befehle sind:

Befehl Bedeutung
Battle: Battle me now! Der Text, den der Trainer vor einem Kampf sagt. Der Befehl wird später in eine Textnachricht umgewandelt. Benutze \m , um dem Text in mehrere Textboxen zu splitten.

Dieser Befehl kann mehrfach vorhanden sein. Alle weitere Instanzen dienen als Anfangsrede für Rückkämpfe. Sollte auch mehr als ein Battle-Befehl vorhanden sein, wird der Spieler den Trainer im Telefon registrieren, nachdem er diesen besiegt hat. Für jeden Rückkampf sollte man einen eigenen Battle-Befehl haben, selbst wenn diese immer dasselbe sagen.

EndSpeech: I enjoyed that. Der Text, den der Trainer sagt, wenn er den Kampf verloren hat.Es können mehrere Instanzen von diesem Befehl vorhanden sein, wenn man mindestens einen Rückkampf hat. Man sollte von diesen Befehl genau so viele haben, wie von den Battle-Befehlen.
EndBattle: I’ll trainer even harder! Der Text, den der Trainer sagt, wenn man ihn nach einem gewonnenen Kampf erneut anspricht. Benutze \m , um den Text in mehrere Textboxen zu splitten.

Es können mehrere Instanzen von diesem Befehl vorhanden sein, wenn man mindestens einen Rückkampf hat. Man sollte von diesen Befehl genau so viele haben, wie von den Battle-Befehlen.

RegSpeech: Here’s my number. Der Text, den der Trainer sagt, wenn der Spieler dessen Telefonnummer speichert.
Type: CAMPER Der interne Name vom Trainertyp
Name: Dave Der Name vom Trainer
BattleID: 1 Sind mehrere Versionen vom Trainer vorhanden, wird die Battle ID zur Unterscheidung dieser Trainer benutzt (siehe oben). Dies sollte ausschließlich für unterschiedliche Kämpfe gegen den selben Trainer verwendet werden (z.B der Rivale, den man mehrmals während des Spieleverlaufs begegnet) oder für Trainer mit den selben Namen (z.B Team Rocket Rüpel). Für reguläre Trainer, die stets am selben Ort bleiben, sollte man stattdessen die verschiedene Battle-Befehle verwenden.
DoubleBattle: true Falls dieser Kampf ein Doppelkampf ist. Wird normalerweise für Trainer benutzt, die zwar technisch gesehen nur ein Trainer sind, aber zwei Trainer darstellen (z.B die Trainerklasse Geschwister, bestehend aus einem weiblichen Schwimmer und einem männlichen Planscher). Man kann diesen Befehl aber auch für normale Doppelkämpfe nutzen.
Continue: true Der Spieler kann nach einer Niederlage mit dem Spiel fortsetzen (sein Team wird vollständig geheilt), anstatt dass dieser ohnmächtig wird und zum Pokémon-Center teleportiert wird. Wenn der Trainer Rückkämpfe erlaubt (durch mehrere Battle-Befehlen), gilt der Continue-Effekt auch für alle Rückkämpfe.
EndIfSwitch: 42 Wenn dieser globale Switch auf On ist, wird dieser Kampf schon von Beginn an als Erledigt angesehen. Wird normalerweise für die Trainer in einer Pokémon-Arena benutzt, die nach dem Besiegen des Arenaleiters kein Interesse mehr daran haben, einen herauszufordern.
VanishIfSwitch: 42 Ist dieser globale Switch auf On, wird dieses Event komplett verschwinden. Das ist jedoch erst dann sichtbar, wenn man die aktuelle Map wechselt.
Backdrop: Mystic Setzt den aktuellen Kampfhintergrund. In diesem Beispiel werden die Grafiken namens battlebgMystic.png, playerbaseMystic.png und enemybaseMystic.png benutzt.
Outcome: 42 Der Ausgang dieses Kampfes wird in dieser globalen Variable gespeichert.

Nachdem diese Kommentare in richtige Event-Befehle umgewandelt wurden, kann man diese Event-Befehle anpassen, wie man möchte (z.B um noch Texte vor dem eigentlichen Kampf einzufügen).

Achtung: Jedes Mal, wenn das Spiel compiliert wird, werden alle Events mit dem Namen Trainer oder Trainer(X) auf ihre Basisform zurückgesetzt, indem die Kommentare (sofern sie existieren) erneut in Event-Befehle umgewandelt werden. Um dies zu verhindern, sollte man die Kommentare nach dem compilieren löschen. So kann man das Event anpassen, ohne Angst haben zu müssen, dass alles wieder zurückgesetzt wird.

Verhalten der Trainer

Da alle Trainer im Spiel auch Events sind, können sie auf dieselbe Art und Weise angepasst werden, wie andere Events. Sie können zufällig in eine Richtung gucken, oder umherschauen, oder sich nach einem bestimmten Bewegungsmuster bewegen. Sie können den Spieler bei einer bestimmten Tageszeit herausfordern (z.B Polizisten bei Nacht), oder ab einem bestimmten Spielefortschritt, oder sie können sich wegbewegen, wenn der Kampf vorbei ist. Es gibt eine Reihe von Möglichkeiten; man muss lediglich wissen, wie man Events im RPG Maker erstellt (Siehe hier).

Aufbau von Trainer-Events

Ein normales Trainer-Event besitzt zwei Seiten, wie im nachfolgendem beschrieben. Es können auch komplexere Trainer-Events erstellt werden (entweder durch das Nutzen von mehr Kommentaren oder indem man das Event selbst gestaltet).

Seite 1

Die erste Seite beinhaltet folgendes:

pbTrainerIntro spielt das Trainer-Intro ab (in diesem Fall die vom Camper). Sollte der Trainer keine Intromusik haben, wird auch keine abgespielt. Zudem werden während dieses Befehls alle Events eingefroren, sodass diese nicht den Kampf stören (z.B Andere Trainer, die den Spieler bemerken und zu ihm hinlaufen).

pbNoticePlayer lässt den Trainer dem Spieler bemerken und zu ihm hinlaufen. Der Abstand (angegeben in Tiles) ist die Nummer, die im Eventnamen steht (z.B Trainer(3) wird den Spieler bei einem Radius von 3 Tiles bemerken). Dieser Befehl kann auch für Nicht-Trainer verwendet werden, da der Befehl nichts mit Kämpfen an sich zu tun hat.

Der Kampf an sich wird als Bedingung geschrieben. Wenn der Kampf gewonnen wurde, wird der Inhalt dieser Bedingung ausgegeben (z.B weitere Texte nach dem Kampf). Die Bedingung muss zudem einen Befehl haben, welches den Self Switch A auf On stellt, damit der Kampf nach dem erneuten Ansprechen nicht wieder stattfindet.

pbTrainerBattle besitzt sechs Parameter:

  1. Der Trainertyp
  2. Der Name des Trainers
  3. Den Text, den der Trainer sagt, nachdem der Kampf beendet wurde (bevor die Kampfszene zu Ende ist).
  4. Optional. Ob dieser Kampf ein Doppelkampf ist. true bedeutet Ja, false bedeutet Nein. Wenn es sich hierbei um einen Doppelkampf handelt, muss vorher überprüft werden, ob der Spieler mindestens zwei kampfbereite Pokémon besitzt. Wenn nicht, dann muss dem Spieler der Kampf verweigert werden.
  5. Optional. Eine Nummer, um dieselben Trainer voneinander zu unterscheiden (siehe oben). Nehme 0, wenn es vom dem Trainer nur eine Version gibt. Standard ist 0.
  6. Optional. Entscheidet, ob der Spieler nach einer Niederlage direkt wieder fortsetzen kann oder nicht. Wenn auf true, wird das Team vom Spieler komplett geheilt. Du solltest bei der Bedingung noch die Option Set handling when conditions do not apply setzen (also einen else-Part). Dort solltest du dann den Teil reinpacken, der erscheint, wenn man den Kampf verloren hat (ebenfalls solltest du den Self Switch A auf On setzen, damit auch hier der Kampf nicht immer wieder wiederholt wird). Standard ist false (d.h der Spieler wird nach der Niederlage ohnmächtig und kehrt zum Pokémon-Center zurück).

Zum Schluss noch pbTrainerEnd. Dieser „befreit“ die anderen Events wieder.

Seite 2

Die zweite Seite erfordert Self Switch A is ON als Bedingung und beinhaltet meistens eine simple Textnachricht, die der Trainer sagt, wenn der Spieler diesen nach dem Kampf erneut anspricht.

Doppelkämpfe

Man kann gegen folgende Personen einen Doppelkampf austragen:

  • Einen Trainer
  • Zwei NPCs, die als ein Trainer behandelt werden (Trainertypen, die zwei Trainer zeigen, z.B Geschwister).
  • Zwei NPCS, die gegenseitig als Partner fungieren.
  • Zwei unabhängige NPCs, die dich zur gleichen Zeit bemerken.

Beachte, dass der zweite und der dritte Typ sich unterscheiden. Der zweite ist als ein einzelner Trainer definiert, während der dritte zwei separate Trainer sind, die immer zusammen bekämpft werden.

Der dritte und vierte Typ sind ebenfalls unterschiedlich: Der dritte ist immer ein Doppelkampf, egal wen man anspricht, während beim vierten beide Trainer auch einzeln bekämpft werden können.

Gegen einen Trainer oder zwei NPCs, die als einen Trainer behandelt werden

Beides sind einzelne Trainer, außer dass die Version mit den zwei NPCs ein Trainertyp ist, welches zwei Personen darstellt.

Bevor der Kampf beginnt, muss vorher überprüft werden, ob der Spieler mindestens zwei kampffähige Pokémon besitzt. Diese Überprüfung wird vor dem Kampf erledigt und zwar als Bedingung:

Beachte, dass am Ende der Überprüfung Exit Event Processing steht. Das Event stoppt dann an der Stelle, ohne den restlichen Teil des Events auszuführen.

Um einen Doppelkampf gegen einen einzelnen Trainer oder einen Paar zu haben, fügt man den DoubleBattle-Kommentar im Trainer-Event hinzu. Dieser setzt den entsprechenden Parameter von pbTrainerBattle auf true.

Bei einem Doppelkampf gegen zwei NPCs stehen zwei Events nebeneinander und man muss eines der beiden ansprechen, um zu kämpfen. Allerdings wäre es hier möglich, nach dem Kampf den anderen NPC anzusprechen und somit den selben Kampf erneut zu starten. Um dies zu verhindern, muss der Self Switch A beider NPCs zur selben Zeit auf On gesetzt werden. Um dies zu bewerkstelligen, fügt man den Code pbSetSelfSwitch(event,switch,status) in beide Events hinzu, wobei event die ID Nummer des anderen Events ist, switch ist der Buchstabe vom Self Switch, der umgeschaltet werden soll (in Anführungszeichen zu schreiben!), während status angibt, ob der Self Switch an (true) oder aus (false) sein soll. Beispiel:

Jedes der beiden NPCs sollte identisch sein, außer der gerade erwähnte Code, welches auf die ID des anderen Events verweist.

Gegen zwei verschiedene NPCs, die Partner sind

Hierbei handelt es sich um zwei Trainer, welche immer zusammen kämpfen. Jedes dieser beiden Trainer sollte drei oder weniger Pokémon besitzen.

Bevor der Kampf beginnt, muss vorher überprüft werden, ob der Spieler mindestens zwei kampffähige Pokémon besitzt. Diese Überprüfung wird vor dem Kampf erledigt und zwar als Bedingung:

Beachte, dass am Ende der Überprüfung Exit Event Processing steht. Das Event stoppt dann an der Stelle, ohne den restlichen Teil des Events auszuführen.

Ebenfalls müssen die Event-Befehle geändert werden, indem pbTrainerBattle durch pbDoubleTrainerBattle ersetzt wird. Dieser Befehl startet einen Doppelkampf gegen zwei separate Trainer. pbDoubleTrainerBattle besitzt folgende Parameter:

  1. Trainertyp von Trainer 1 (z.B PBTrainers::CAMPER)
  2. Name von Trainer 1
  3. Eine Nummer, um verschiedene Versionen von Trainer 1 zu unterscheiden (siehe oben). Nehme 0, wenn es vom dem Trainer nur eine Version gibt. Dieser Parameter ist diesmal nicht optional.
  4. Den Text, den Trainer 1 sagt, nachdem der Kampf beendet wurde (bevor die Kampfszene zu Ende ist).
  5. Trainertyp von Trainer 2
  6. Name von Trainer 2
  7. Eine Nummer, um verschiedene Versionen von Trainer 2 zu unterscheiden (siehe oben). Nehme 0, wenn es vom dem Trainer nur eine Version gibt. Dieser Parameter ist diesmal nicht optional.
  8. Den Text, den Trainer 2 sagt, nachdem der Kampf beendet wurde (bevor die Kampfszene zu Ende ist).

Zum Beispiel:

Beide Events stehen nebeneinander und man muss eines der beiden ansprechen, um zu kämpfen. Allerdings wäre es hier möglich, nach dem Kampf den anderen NPC anzusprechen und somit den selben Kampf erneut zu starten. Um dies zu verhindern, muss der Self Switch A beider NPCs zur selben Zeit auf On gesetzt werden. Um dies zu bewerkstelligen, fügt man den Code pbSetSelfSwitch(event,switch,status) in beide Events hinzu, wobei event die ID Nummer des anderen Events ist, switch ist der Buchstabe vom Self Switch, der umgeschaltet werden soll (in Anführungszeichen zu schreiben!), während status angibt, ob der Self Switch an (true) oder aus (false) sein soll. Beispiel:

Jedes der beiden NPCs sollte identisch sein, außer der gerade erwähnte Code, welches auf die ID des anderen Events verweist.

Gegen zwei unabhängige Trainer

Dies ist dann der Fall, wenn zwei komplett unabhängige Trainer den Spieler zur selben Zeit bemerken. Jeder der beiden Trainer kann auch einzeln (in einem Einzelkampf) bekämpft werden. Die Gesamtanzahl an Pokémon der beiden Trainer sollte 6 oder weniger betragen.

Beide Trainer gehen zum Spieler hin und reden mit ihm. Die Reihenfolge der beiden Trainer hängt von deren Event-ID ab (z.B wird der Trainer mit der ID 16 vor dem Trainer mit der ID 17 zum Spieler hingehen). Anschließend startet ein Doppelkampf mit diesen beiden Trainer (vorausgesetzt, der Spieler besitzt mindestens zwei kampffähige Pokémon).

Besitzt der Spieler nur ein kampffähiges Pokémon, werden die beiden Trainer nacheinander kämpfen. Der zweite Trainer bemerkt den Spieler in dem Fall erst, wenn der Kampf gegen den ersten Trainer vorbei ist.

Für den unwahrscheinlichen Fall, dass drei Trainer dem Spieler zur gleichen Zeit bemerken sollten, wird der erste Trainer ein Einzelkampf gegen dem Spieler bestreiten, während die anderen beiden anschließend einen Doppelkampf gegen den Trainer austragen. Beispiel: Haben die Events der Trainer die ID 7, 8 und 9, dann wird 7 ein Einzelkampf sein, während 8 und 9 ein Doppelkampf sein wird.

Vs-Animation beim Kampfstart

Wenn ein Kampf gestartet wird, erscheint am Bildschirm ein Übergang vom aktuellen Geschehen zum Kampfbildschirm. In Pokémon Essentials gibt es eine Reihe von Übergängen, wovon eins immer per Zufall ausgewählt wird. Diese Übergänge existieren sowohl für Trainerkämpfe, als auch für Pokémonkämpfe.

Es ist jedoch auch möglich, statt einem normalen Übergang, eine vs-Animation anzuzeigen. Diese Animation wird dann angezeigt, sofern die nötigen Grafiken dazu existieren. Die benötigten Grafiken lauten:

  • Graphics/Transitions/vsBarXXX.png
  • Graphics/Transitions/vsTrainerXXX.png

Wobei XXX für den internen Namen oder der ID des Trainertyps steht (ohne Nullstellen davor, also 5 statt 005). Die vs-Animation wird dann für jeden Trainer dieses Trainertyps abgespielt (vorausgesetzt die benötigte Grafik dazu existiert).

Es sollten auch die passenden Grafiken für die möglichen Trainertypen vom Spieler existieren. Neben diesen Grafiken gibt es noch andere Grafiken und Sounds, die in der Animation benutzt werden. Es wird jedoch davon ausgegangen, dass diese existieren (da sie immer gleich sind und in der Regel nicht vom Spieler geändert werden) und werden deshalb nicht vorher überprüft.