Pokémon manipulieren

Dieser Artikel beschreibt wie man Pokémon manipuliert. Das beinhaltet, wie man ein Pokémon gibt/erhält, ein Pokémon aus dem Team auswählt, ein Pokémon als gesehen/gefangen markiert wird und so weiter.

Um zu sehen, wie man bestimmte Eigenschaften (z.B Geschlecht) eines Pokémon ändert, siehe den Artikel Pokémon bearbeiten.

Weiterführende Links

 

Inhalt

Pokémon hinzufügen

Es gibt vier Methoden, wie man dem Spieler ein Pokémon gibt. Diese lauten:

Funktion Was es bewirkt
pbAddPokemon(:PIKACHU,20) Fügt dem Team des Spielers ein Pokémon hinzu (sofern Platz ist). Ist das Team des Spielers voll, wird das Pokémon stattdessen in den PC gelagert. Wenn das Pokémon hinzugefügt wurde, erscheint eine Nachricht, dass der Spieler das Pokémon erhalten hat. Der Spieler erhält anschließend die Möglichkeit, dem Pokémon einen Spitznamen zu geben. Wenn es keinen freien Platz mehr für das Pokémon gibt, erscheint eine Nachricht, dass man das Pokémon nicht aufnehmen kann.
pbAddPokemonSilent(:PIKACHU,20) Dasselbe wie zuvor, außer dass keine Nachricht erscheint und der Spieler dem Pokémon keinen Spitznamen geben kann.
pbAddToParty(:PIKACHU,20) Fügt dem Team des Spielers ein Pokémon hinzu (sofern Platz ist). Wenn das Team voll ist, erscheint eine Nachricht, dass man das Pokémon nicht aufnehmen kann.
Wenn das Pokémon hinzugefügt wurde, erscheint eine Nachricht, dass der Spieler das Pokémon erhalten hat. Der Spieler erhält anschließend die Möglichkeit es einen Spitznamen zu geben.
pbAddToPartySilent(:PIKACHU,20) Dasselbe wie zuvor, außer dass keine Nachricht erscheint und der Spieler dem Pokémon keinen Spitznamen geben kann.

Alle vier Methoden geben ein true zurück, wenn das Pokémon hinzugefügt wurde und ein false, wenn nicht. Das bedeutet, dass man das als Bedingung nutzen kann. Beispiel:

Das Conditional Branch erlaubt es einem, weitere Texte hinzuzufügen, wie z.B „Ich hoffe, Evoli geht es gut.“ oder „Oh, das ist schade.“

Man kann auch das Pokémon vorher definieren und es anschließend durch eine der Methoden oben hinzufügen. Beispiel:

Dies erlaubt es einem, das Pokémon zu bearbeiten, bevor es dem Spieler gegeben wird. Siehe auch den Artikel Pokémon bearbeiten.

Jede der vier Methoden oben besitzt einen zusätzlichen Parameter am Ende, welches einem die Möglichkeit gibt, die Form des hinzugefügten Pokémon in den Pokédex aufzuzeichnen. Dieser Parameter ist standardmäßig auf true, das heißt, dass die Form standardmäßig aufgezeichnet wird. Im Normalfall wird es nicht nötig sein, diesen auf false zu setzen, da man das Pokémon vorher bearbeiten kann (Geschlecht/Form kann also vorher festgelegt werden, bevor man es hinzufügt). Die Option ist trotzdem vorhanden.

Pokémon von einem anderen Trainer hinzufügen

NPCs können dem Spieler ein Pokémon geben. Dies ist ein Unterschied zu einem Tausch, bei der der Spieler sein Pokémon gegen ein anderes tauscht. Es ist auch ein Unterschied zu Pokémon, die der Spieler in einem Pokéball findet (da der Spieler dort als Original-Trainer gilt).

Um dies zu ermöglichen, verwendet man folgenden Script:

Kirk und 0 sind Name und Geschlecht des Original-Trainers (0=männlich, 1=weiblich, 2=unbekannt). Der Name ist erforderlich, während das Geschlecht optional ist (Standard ist männlich). Shuckie ist der Spitzname des Pokémon (Optional). Die Anführungszeichen sind erforderlich (Wie im Beispiel oben).

Wenn das Pokémon hinzugefügt wurde, kann der Spieler das Pokémon nicht umbenennen (Genau so wenig wie der Namensbewerter). Es wird eine zufällige OT-Trainer-ID für das Pokémon generiert, die sich von der ID-Nummer des Spielers unterscheidet. Wenn das Pokémon hinzugefügt wurde, erscheint eine Nachricht.

Ist das Team des Spielers voll, wird die Funktion ein false zurückgeben, ohne eine Nachricht zu hinterlassen. Man sollte den Script dann in einer Bedingung setzen, sodass im Falle eines Fehlschlags (false) eine Nachricht erscheint (z.B „Oh, dein Team ist voll.“).

Der Script fügt dem Team nur ein Pokémon auf einmal hinzu, sodass es nach dem Hinzufügen bearbeitet werden kann. Es nimmt dabei die letzte Position im Team ein, also $Trainer.party[$Trainer.party.length-1]. Siehe den Artikel Pokémon bearbeiten.

Diese Methode besitzt am Ende einen zusätzlichen Parameter, welches einem die Möglichkeit gibt, die Form des hinzugefügten Pokémon in den Pokédex aufzuzeichnen. Dieser Parameter ist standardmäßig auf true. Das heißt, dass die Form standardmäßig mit aufgezeichnet wird. Im Gegensatz zu den Methoden weiter oben, hat man hier nicht die Möglichkeit ein Pokémon vor dem Hinzufügen zu bearbeiten. Wenn man das Geschlecht/die Form des Pokémon ändern möchte, muss man am Ende ein false hinzufügen und dann das Pokémon bearbeiten. Vergiss nicht, die Form am Ende dann per Befehl aufzuzeichnen.

Demo-Team

Team

Das Debug-Team

def pbCreatePokemon im Script-Bereich Debug_Actions kann verwendet werden, um den Spieler ein komplettes Team an Pokémon zu geben (alle auf Level 20). Das Team besteht aus:

  • Pikachu
  • Tauboga
  • Kadabra
  • Garados
  • Digdri
  • Chaneira

Die Pokémon kennen alle Terrain-Attacken (außer Milchgetränk).

Dieser Script existiert nur zur Demonstrationszwecken und sollte nicht im richtigen Spiel verwendet werden.

Pokémon aus dem Team entfernen

Um ein Pokémon vollständig aus dem Team zu entfernen, benutzt man folgenden Script:

index ist die Position des Pokémon im Team (Erster Platz ist 0, zweiter Platz ist 1 usw.). Der Script kann das Pokémon nicht entfernen, wenn es sich hierbei um das letzte kampffähige Pokémon handelt (also nicht besiegt und kein Ei). Diese Methode gibt keine Nachricht aus. Es gibt ein true zurück, wenn das Pokémon entfernt wurde und ein false wenn nicht (das sollte dann in einer Bedingung gesetzt werden).

Beachte dass, wenn man ein Pokémon entfernt, alle anderen Pokémon dahinter einen Slot nach vorne rücken, um die Lücke zu füllen. Behalte das im Kopf, wenn du planst, mehrere Pokémon im Team zu entfernen. Um sicherzugehen, solltest du die Reihenfolge des Löschens umkehren: Man fängt mit dem letzten Pokémon an.

Eine weniger sichere Methode ist der Befehl $Trainer.party.delete_at(index), wobei index hier für dasselbe steht, wie oben. Es besitzt die selbe Funktion wie pbRemovePokemonAt, außer dass es auch das letzte kampffähige Pokémon entfernen kann.

Pokémon überprüfen

Um zu überprüfen, ob der Spieler in seinem Team ein bestimmtes Pokémon besitzt, nutze pbHasSpecies?(PBSpecies::species).

Um zu überprüfen, ob das erste Pokémon im Team des Spielers ein bestimmtes Pokémon ist, nutze Folgendes:

Beachte, dass dieses Beispiel den Befehl $Trainer.pokemonParty benutzt, statt das übliche $Trainer.party. Dies liegt daran, dass $Trainer.pokemonParty die Eier überspringt und nur nach (geschlüpften) Pokémon schaut (Besiegte und nicht Besiegte). Es gibt auch den Befehl $Trainer.ablePokemonParty, welches zusätzlich noch besiegte Pokémon überspringt und nur nach Pokémon schaut, die kampffähig sind.

Um das erste kampffähige Pokémon im Team des Spielers zu finden (also kein Ei und nicht besiegt), nutze eins der Folgenden:

Das erste Beispiel speichert die Position des Pokémon in die globale Variable 1, während das Zweite zusätzlich dem Pokémon den Wert pkmn zuweist (pkmn.level ist z.B das Level des Pokémon).

Um zu schauen, ob der Spieler ein bestimmtes Pokémon mit „Schicksalhafte Begegnung“ in seinem Team hat, nutze pbHasFatefulSpecies?(:species).

Pokémon auswählen

Damit der Spieler ein Pokémon aus dem Team aussuchen kann (z.B für den Attackenverlerner oder für einen Tausch), benutze folgenden Script:

Das öffnet den Team-Bildschirm und der Spieler sucht sich aus diesem ein Pokémon aus. Die zwei Parameter stehen für folgendes:

  • var1 ist die globale Variable, an der die Teamposition des Pokémon gespeichert wird. Die Nummer ist eine Zahl zwischen 0 und 5 oder -1 wenn kein Pokémon ausgewählt wurde. Im Normalfall wird die globale Variable 1 dafür benutzt.
  • var2 ist die globale Variable, wo der Name (Oder Spitzname, falls vorhanden) des Pokémon gespeichert wird. Im Normalfall wird die globale Variable 3 dafür benutzt.

Es gibt drei verschiedene Ergebnisse von pbChoosePokemon: Ein Pokémon wurde ausgewählt, ein Ei wurde ausgewählt oder nichts wurde ausgewählt (die Auswahl wurde abgebrochen).

Dies ist ein Beispiel dafür, wie man pbChoosePokemon nutzt. Es zeigt auch wie man das ausgewählte Pokémon erhält und Informationen bekommt.

Es gibt zwei Scripts, die sich darauf beziehen (Beide besitzen die selben zwei Parameter, wie oben beschrieben):

  • pbChooseAblePokemon – Erlaubt den Spieler nur Pokémon auszusuchen, die nicht besiegt oder ein Ei sind.
  • pbChooseNonEggPokemon – Der Spieler darf nur ein Pokémon aussuchen und kein Ei (das Pokémon kann auch besiegt sein).

Andere Scripts

Script Was es bewirkt
pbAllFainted Gibt true zurück, wenn der Spieler kein kampffähiges Pokémon mehr im Team hat und false, wenn doch.
pbCheckAble(0) Ignoriert das Pokémon mit der vorgegebenen Teamposition. Gibt true zurück, wenn der Spieler ein kampffähiges Pokémon besitzt und false, wenn nicht.
$Trainer.pokemonCount Gibt die Anzahl an Pokémon im Team wieder (nicht besiegt und besiegt).
$Trainer.ablePokemonCount Gibt die Anzahl an kampffähigen Pokémon im Team wieder (nur unbesiegte Pokémon).
pbHealAll Heilt das Team vollständig. (der Event-Befehl „Recover All“ besitzt die selbe Funktion).
pbHasSpecies?(:BULBASAUR) Gibt true zurück, wenn der Spieler ein bestimmtes Pokémon im Team besitzt (Eier werden ausgelassen) oder false, wenn nicht.
pbHasFatefulSpecies?(:BULBASAUR) Gibt true zurück, wenn der Spieler ein bestimmtes Pokémon mit einer „Schicksalhafte Begegnung“ im Team besitzt oder false, wenn nicht.
pbCheckMove(PBMoves::TACKLE) Gibt die Teamposition des ersten Pokémon wieder, welches eine bestimmte Attacke kennt (Eier werden ignoriert). Gibt nil zurück, wenn kein Pokémon zutrifft. Wird benutzt, um zu entscheiden, ob eine Attacke außerhalb des Kampfes genutzt werden kann.
pbBalancedLevel($Trainer.pokemonParty) Gibt den Durchschnittswert aller Level im Team wieder (Plus 2). Eier werden ignoriert. Kann benutzt werden, um wilde Pokémon zu bearbeiten, damit diese stets eine Herausforderung bleiben.
pkmn.numMoves Gibt die Anzahl an Attacken wieder, die das Pokémon (Hier: pkmn) kennt.
pkmn.knowsMove?(:TACKLE) Gibt true zurück, wenn das Pokémon (Hier: pkmn) eine bestimmte Attacke kennt oder false wenn nicht.
pbHasEgg?(:TOGEPI) Gibt true zurück, wenn sich dieses Pokémon im Normalfall in einem Ei befinden kann oder false, wenn nicht. Dies schließt auch Roselia (auch wenn es ein entwickeltes Pokémon ist, kann es gezüchtet werden, wenn man keine Essenz benutzt) und Manaphy (auch wenn Manaphy selbst nicht in einem Ei entstehen kann) ein.
pbGetRegionalNumber(1,PBSpecies::BULBASAUR) Gibt die Regionaldexnummer des Pokémon für einen bestimmten Dex wieder (in diesem Beispiel der Zweite). Gibt 0 zurück, wenn das Pokémon nicht in diesem Dex auftaucht.
pbGetNationalNumber(1,135) Gibt die Nationaldexnummer des Pokémon mit der vorgegeben Regionaldexnummer (135) in den bestimmten Regionaldex wieder (1).
pbSize($Trainer.pokemonParty[0]) Gibt die „Größe“ des Pokémon in Millimeter wieder. Benutzt die DV-Werte des Pokémon und dessen persönliche ID, um den Wert zu berechnen.
$Trainer.seen[PBSpecies::BULBASAUR] Gibt true zurück, wenn das vorgegebene Pokémon als Gesehen gilt oder false, wenn nicht.
$Trainer.owned[PBSpecies::BULBASAUR] Gibt true zurück, wenn das vorgegeben Pokémon als Gefangen gilt oder false, wenn nicht.
$Trainer.numFormsSeen[PBSpecies::BULBASAUR] Gibt die Anzahl an gesehene Formen des vorgegebenen Pokémon wieder. Beinhaltet nicht das Geschlecht, auch wenn das Pokémon Geschlechtsunterschiede besitzt.