Event-Pokémon
Dieser Artikel beschreibt wie man per Event einen Kampf gegen ein wildes Pokémon startet. Diese werden meistens für legendäre Pokémon benutzt, die nicht durch die Region wandern oder für Pokémon, die man anspricht und dann bekämpft. Ein Beispiel ist Voltobal, welches einem beim Ansprechen angreift.
Weiterführende Links |
|
Inhalt |
Event-Kämpfe
Bei Event-Encounters erscheint das Pokémon meistens als Overworld auf der Map. Spricht man dieses Pokémon an, beginnt ein Kampf. Es kann aber auch für Fallen benutzt werden (das Event hat dann keine Grafik und aktiviert sich, wenn der Spieler das Event berührt).
Der Hauptteil des Events besteht aus diesem Code:
1 |
pbWildBattle(PBSpecies::species,level,result,escape,canlose) |
result ist die Nummer der globalen Variable, in der der Ausgang des Kampfes gespeichert wird. (1=gewonnen 2=verloren 3=geflüchtet 4=gefangen 5=Unentschieden). escape bestimmt, ob der Spieler aus dem Kampf flüchten kann oder nicht (Standard ist true). canlose entscheidet, ob das Spiel nach einer Niederlage normal weiter läuft (Standard ist false). Das Team des Spielers wird dabei vollständig geheilt. Die letzten drei Parameter sind optional.
Das Event besteht aus zwei Seiten:
- Seite 1 – Beinhaltet pbWildBattle
- Seite 2 – Leer, muss Self Switch A auf On als Bedingung haben
Meistens kann das Pokémon nur einmal getroffen werden, was bedeutet, dass es nach dem Kampf (egal wie er endet) zu Seite 2 übergeht. Setze einfach den Self Switch A auf ON nach dem Kampf.
Soll das Pokémon nur dann verschwinden, wenn im Kampf ein bestimmtes Ergebnis erzielt wurde (z.B wenn man gewonnen hat, es gefangen hat oder geflüchtet ist, aber nicht nach einer Niederlage), dann muss man das Ergebnis des Kampfes in einer Variable speichern (siehe weiter oben). Nach pbWildBattle sollte man zusätzlich eine Bedingung einfügen, die den Ausgang des Kampfes überprüft und dementsprechend handelt.
Doppelwildkämpfe
Diese Events werden auf die selbe Art und Weise erstellt, wie Einzelkämpfe. Der einzige Unterschied ist, dass man stattdessen diesen Code benutzt:
1 |
pbDoubleWildBattle(PBSpecies::species,level,PBSpecies::species,level,result,escape,canlose) |
Es funktioniert auf dieselbe Weise wie pbWildBattle, außer dass noch ein zweites Pokémon definiert wird.
Beispiele
1 |
pbWildBattle(PBSpecies::KECLEON,20) |
1 |
pbDoubleWildBattle(PBSpecies::PIKACHU,21,PBSpecies::CLEFAIRY,17) |
1 |
pbWildBattle(PBSpecies::MEWTWO,70,1,false,true) |
Pokémon modifizieren
Es ist möglich die Attribute eines wilden Pokémon zu bearbeiten, wenn man diesen per Event trifft (z.B kann man es schillernd machen, das Geschlecht festlegen oder die Statuswerte ändern). Siehe den Artikel Pokémon bearbeiten. Die Methode unten ist die beste Art, um ein wildes Pokémon zu bearbeiten, welches man per Event trifft.
Zuerst muss man einen globalen Switch definieren, der diese Modifikationen aktiviert (z.B das Pokémon schillernd machen). Danach muss man im Script-Bereich PField_EncounterModifiers (welches exakt für solche Sachen da ist) etwa Folgendes eingeben:
1 2 3 4 5 6 |
Events.onWildPokemonCreate+=proc {|sender,e| pokemon=e[0] if $game_switches[31] pokemon.makeShiny end } |
Dieses Beispiel bewirkt, dass alle wilden Pokémon schillernd werden, solange der globale Switch 31 an ist. Für Event-Encounters sollten solche Modifikationen grundsätzlich von einem globalen Switch abhängen, da dieser einfach ein- und ausgeschaltet werden kann (und zwar am selben Event wie der Pokémon-Kampf).
Hat man den Code eingefügt, muss man im Event, wo der Kampf stattfindet, direkt vor dem pbWildBattle den Switch aktivieren und gleich danach wieder deaktivieren. Beispiel:
1 2 3 |
@>Control Switches: [0031: Shiny wild Pokémon] = ON @>Script: pbWildBattle(PBSpecies::GYARADOS,30) @>Control Switches: [0031: Shiny wild Pokémon] = OFF |
Es ist wichtig, den Switch gleich direkt danach auszuschalten, da er ansonsten auch alle anderen wilden Pokémon beeinflussen würde.