Itemeffekte

Dieser Artikel beschreibt, wie Item-Effekte definiert sind.

Weiterführende Links
  • Items
    • Dieser Artikel beschreibt, wie Items an sich definiert werden.

 

Inhalt

Wege ein Item zu benutzen

Die meisten Items haben einen Effekt. Ein Trank stellt z.B 20 KP wieder her. Die Effekte werden im Scripts geschrieben, verteilt an verschiedenen Plätzen, je nach Item und wie sie benutzt wird (z.B vom Beutel, im Kampf, als registriertes Item, usw.). Dieser Bereich beschreibt die verschiedenen Wege, wie ein Item benutzt werden kann und wie man Itemeffekte allgemein erstellt. Siehe unten für passive Effekte (z.B getragene Items), Pokébälle usw.

Der Script-Bereich PItem_ItemEffects enthält alle Itemeffekte für Items, die aktiv genutzt werden. Da es verschiedene Wege gibt, wie ein Item benutzt werden kann, gibt es auch verschiedene Handler, eines für jede Methode. Es gibt sechs solcher Handler:

Handler Beschreibung
UseFromBag Wenn das Item aus dem Beutel verwendet wird, jedoch nicht an einem Pokémon. Wird typischerweise für Fluchtseile, Schutz, alle Basis-Items und weitere benutzt.

Gibt eines der folgenden Zahlen zurück:

  • 0 – Das Item wurde nicht benutzt.
  • 1 – Das Item wurde benutzt und der Beutel-Bildschirm bleibt offen.
  • 2 – Das Item wurde benutzt und der Beutel-Bildschirm schließt sich.
  • 3 – Das Item wurde benutzt und wurde konsumiert.
  • 4 – Das Item wurde benutzt, es wurde konsumiert und der Beutel-Bildschirm schließt sich.
UseOnPokemon Für Items, die auf einem bestimmten Pokémon angewendet werden sollen (welches der Spieler wählen kann). Das beinhaltet Tränke, Beleber, Äther, Entwicklungssteine usw.

Gibt true zurück, wenn das Item verwendet wurde und false, wenn nicht.

UseInField Für Items, bei den der Beutel-Bildschirm geschlossen werden muss, damit das Item benutzt wird oder für registrierte Items. Für Fluchtseil und manche Basis-Items. Basis-Item, die dieses Verhalten nicht haben, können nicht registriert werden.
BattleUseOnPokemon Für Items, die während eines Kampfes auf einem bestimmten Pokémon angewendet werden soll (welches der Spieler wählen kann). Ist für fast alle Items, die auch einen UseOnPokemon-Handler besitzen (außer die, die nicht während eines Kampfes benutzt werden können), sowie Items, die Anziehung/Verwirrung heilen (Statusprobleme, die nur während des Kampfes gültig sind).

Gibt true zurück, wenn das Item benutzt wurde und false, wenn nicht.

BattleUseOnBattler Für Items, die an einem Pokémon angewendet werden können, welches sich gerade im Kampf befindet (welches man dann auswählt). Für X-Angriff und weitere, sowie für Pokébälle (um zu entscheiden, ob es benutzt werden kann).

Gibt true zurück, wenn das Item benutzt wurde und false, wenn nicht.

UseInBattle Wenn das Item im Kampf verwendet wird, jedoch nicht an einem Pokémon direkt. Für die Poképuppe (automatische Flucht vom Kampf), Pokéflöte (wirkt sich auf alle Kämpfer aus) und alle Pokébälle (leitet den Fangprozess ein).

Viele Items können in mehr Situationen verwendet werden, als die oben erwähnten. Der Effekt des Items muss für jeden Handler separat geschrieben werden (z.B hat Trank einen definierten Effekt für UseOnPokemon und BattleUseOnPokemon). Viele Items haben für für jeden Handler denselben Effekt, jedoch gibt es auch Ausnahmen (z.B Angel oder andere Basis-Items). Wenn man sich unsicher ist, sollte man sich bereits vorhandene Items anschauen, welche einen ähnlichen Effekt haben, um zu sehen, welche Handler man verwenden muss und welcher Handler was macht.

Beachte, dass immer wenn sich auf ein Item bezogen wird, dies mit einem Doppelpunkt geschehen muss. Dieser ist wichtig.

Beispiele

Dies beschreibt die Funktion eines Tranks. Dieses Beispiel befindet sich im UseOnPokemon-Handler; es existiert aber auch ein BattleUseOnPokemon-Handler für den Trank, welches den gleichen Effekt hat.

Es ruft die Methode pbHPItem auf, welches die KP eines einzelnen Pokémon ändert und diesen um 20 erhöht. Die Methode fügt soviel KP wie möglich hinzu, bis zu dem Wert.

Dies beschreibt die Wirkung von Gegengift (heilt Vergiftung). Das Beispiel befindet sich im UseOnPokemon-Handler; es existiert aber auch ein BattleUseOnPokemon-Handler für Gegengift, welches die gleiche Wirkung hat.

Diese Zeile kopiert den Effekt vom UseOnPokemon-Handler des Gegengifts und gibt diese der Persifbeere. Der BattleUseOnPokemon-Handler muss separat kopiert werden (allerdings auf dieselbe Weise – nur der Name des Handlers ist anders).

Dieser Code beschreibt die Funktionsweise eines Entwicklungssteines. Es besitzt nur den UseOnPokemon-Handler. Die Methode pbCheckEvolution überprüft, ob der Stein (wenn er benutzt wird) funktionieren wird oder nicht und gibt einen Wert für newspecies zurück (entweder die ID-Nummer des entwickelten Pokémon, wenn es verwendet werden kann  oder eine 0, wenn nicht). Je nach Wert tritt dann ein bestimmter Effekt auf.

Überprüft werden alle Items, die durch die Methode pbIsEvolutionStone?(item) ein true zurückgeben. Das sind alle Items, die in der PBS-Datei items.txt eine 7 als Wert haben (in den Abschnitt „Spezielle Items“, siehe hier). Es gibt keinen Unterschied zwischen den Steinen – die eigentliche Überprüfung, welches Pokémon sich dadurch entwickeln kann, wird in pbCheckEvolution erledigt. Beachte, dass ein Handler eines Items über mehrere Items auf einmal kopiert werden kann.

Es gibt zwei Handler für die Angel. Beachte, dass sie unterschiedlich sind. Der Erste überprüft, ob sie verwendet werden kann. Wenn ja (d.h der Spieler schaut während des Benutzens auf das Wasser), geht es zu next 2. Der Beutel-Bildschirm wird geschlossen und der UseInField-Handler vom Item startet. Kann die Angel nicht benutzt werden, wird der Beutel-Bildschirm nicht geschlossen.

Wurde die Angel registriert und wird auf diese Art verwendet, startet es direkt den UseInField-Handler. Dieser Handler beschreibt die eigentliche Funktionsweise der Angel.

Nicht alle Items, die einen UseInField-Handler besitzen, werden einfach zu next 2 springen (beim UseFromBag-Handler Effekt, wie z.B die Karte oder den Münzkorb). Diese Items sind typische Basis-Items (d.h sie können registriert werden, deswegen benötigen sie den UseInField-Handler), allerdings müssen sie nicht den Beutel-Bildschirm schließen, um ihre Aktion auszuführen. In diesem Fall sind beide Handler identisch.

Pokébälle

Pokébälle können verschiedene Effekte haben, von Ändern der Fangrate bis zum Ändern des Freundschaftswerts. Diese Effekte werden nicht am selben Ort definiert, wie die oberen, sondern im Script-Bereich PItem_PokeBalls.

Zuerst muss der neue Pokéball in der Liste hinzugefügt werden. Diese befindet sich auch im Script-Bereich PItem_PokeBalls.

Als nächstes muss man einen neuen Handler erstellen, wenn sich der neue Pokéball anders verhalten soll, als ein normaler Pokéball. Dieser Handler erklärt die Funktionsweise des Balls. Mögliche Handler sind:

Handler Beschreibung
IsUnconditional Wenn vorhanden, wird es aufgerufen, sobald das Pokémon vom Pokéball absorbiert wurde. Gibt der Handler true zurück, dann war das Fangen erfolgreich, unabhängig von anderen Faktoren. Standardmäßig besitzt nur der Meisterball diesen Handler (und gibt immer true zurück).
ModifyCatchRate Ändert die Fangrate des Pokéballs. Die Änderung kann von verschiedenen Faktoren des Pokémon abhängig sein (z.B Level, Gewicht oder Typ) oder von Faktoren des Kampfes (z.B Rundenzahl, Umgebung oder Tageszeit). Die meisten Pokébälle besitzen eines dieser Handler.
OnCatch Beschreibt den Effekt, nachdem das Pokémon erfolgreich gefangen wurde. Der Heilball heilt das gefangene Pokémon und der Freundesball setzt den Freundschaftswert auf 200.

Besitzt der Pokéball andere Effekte, die nach dem Fangen wirksam werden (z.B verdoppelt den Anstieg der Freundschaft), dann muss man andere Scripts ändern und dort überprüfen, in welchem Pokéball sich das Pokémon befindet, um dort die Effekte hinzuzufügen.

Beispiele

Ein Superball hat eine 1,5 höhere Fangrate als ein Pokéball. Dieser Code reflektiert das durch das Multiplizieren mit 3/2. Da catchrate immer eine ganze Zahl sein muss, wird der Wert gerundet, wodurch das Ergebnis (die Fangrate) auf die nächste ganze Zahl abgerundet wird.
Ein Tauchball ist 3,5 Mal so Effektiv wie ein Pokéball, allerdings nur Unterwasser. Wird es oberhalb des Wassers verwendet, ist die Fangrate dieselbe, wie beim Pokéball.
Der Meisterball wird immer erfolgreich einen Pokémon fangen. Der IsUnconditional-Handler wird immer aufgerufen, sobald das Pokémon absorbiert wurde. Durch diesen Handler wird immer ein true zurückgegeben, wodurch das Fangen immer erfolgreich sein wird.
Der Freundesball ändert nicht die Fangrate, sondern den Freundschaftswert des gefangene Pokémon, sobald dieser gefangen wurde. Dieser Code ist dafür zuständig. Alle Effekte, die das Pokémon nach dem erfolgreichen Fangen manipulieren, können diesen Handler verwenden (z.B heilt der Heilball das Pokémon nach dem Fangen).

TMs und VMs

Siehe auch: Attacken erlernen

TMs und VMs werden ebenfalls auf eine andere Art verwendet, als in den Methoden oben. Alle TMs und VMs funktionieren auf dieselbe Art und Weise, mit dem Unterschied, dass eine TM nach der Nutzung konsumiert wird (außer man stellt ein, dass man TMs unendlich oft nutzen kann).

Der Artikel Attacken erlernen enthält mehr Informationen darüber, wie eine Attacke beigebracht wird. Die einzige Voraussetzung für die Erstellung eines TM- oder VM-Items ist, diese als solche zu definieren.

Briefe

Brief-Items können nicht wie andere Items benutzt werden. Dafür können sie gelesen werden. Das Lesen eines Briefes vom Beutel heraus führt zu einen leeren Brief, während das Lesen eines Briefes von einem Pokémon eine Textnachricht zeigt.

Gibt man einem Pokémon einen Brief zum Tragen, dann kann der Spieler eine Nachricht eingeben. Dieser wird automatisch mit den Namen des Spielers signiert. Handelt es sich bei dem Brief um einen mit Pokémon-Icons, dann wird der Träger, sowie die zwei nächsten Pokémon im Team des Spielers als Icons angezeigt, von rechts nach links.

Die Nachricht des Briefes (sowie die angezeigten Pokémon) werden als Eigenschaft des Träger-Pokémon gespeichert. Siehe den Artikel Pokémon bearbeiten für eine Erklärung darüber, wie man Nachricht, Name des Senders und Icons für den Brief bestimmt.

Die einzige Voraussetzung für die Erstellung eines Brief-Items ist, diese als solche zu definieren.

Trageitems

Manche Items haben einen bestimmten Effekt, wenn sie getragen werden, wie z.B dass bestimmte Attacken im Kampf stärker werden, mehr Erfahrungen bringen oder dass ein bestimmtes Wetter länger anhält. Da es viele verschiedene Arten von Effekten gibt, können diese hier nicht alle aufgelistet werden. Stattdessen gibt es einen groben Überblick über die verschiedene Arten von Trageitems.

Attackenverstärkende Items

Dies beinhaltet Items wie Wundersaat, Holzkohle, Zauberwasser, sowie diverse Tafeln, Kampfknochen, Seerauch usw. Alle diese Items verstärken Angriffs-Attacken, wenn sie getragen werden.

Im Script-Bereich PokeBattle_Move, gibt es eine lange Methode namens pbCalcDamage. Es beinhaltet alle Berechnungen, die die Stärke der Attacken betrifft, inklusive mit den Trageitems.

Beachte, dass viele diese Berechnungen entweder physische oder spezielle Attacken betreffen, jedoch nicht beide.

Ausgelöste Effekte-Items

Der Script-Bereich PokeBattle_Battler beinhaltet die Methode pbBerryCureCheck, welche überprüft, ob das Pokémon sein getragenes Item nutzen kann (meistens durch Konsum). Der Name der Methode kommt daher, dass die meisten der konsumierbaren Items Beeren sind, es werden aber auch Items wie Schlohkraut, Überreste und Giftschleim verwendet (die letzteren beiden werden allerdings nicht konsumiert, sind aber trotzdem hier vorhanden, da deren Effekte erst ausgelöst werden müssen).

Wenn das getragene Item während des Kampfes genutzt werden kann, um einen bestimmten Effekt zu geben, dann muss man hier den Code einfügen. Beachte, dass die meisten Items eine Bedingung haben, wann sie genutzt werden können (z.B können Statusheiler nur dann genutzt werden, wenn das Pokémon diesen Status besitzt oder KP-Wiederherstellungsitems können nur genutzt werden, wenn die KP des Trägers niedrig ist).

Andere Trageitemseffekte

Es existieren noch andere Effekte, die Trageitems haben können. Weiter unten sind zwei Tabellen, bei der man sieht, wo sich welcher Effekt befindet. Diese können verändert werden, je nachdem, ob das Item getragen wird. Die meisten beinhalten mindestens ein Beispiel für einen Itemeffekt.

Die folgende Effekte, während eines Kampfes:

Was wird beeinflusst Zuständiger Script
Genauigkeit und Fluchtwert PokeBattle_Move, pbAccuracyCheck
Chance auf Zurückschrecken PokeBattle_Battler, pbProcessMoveAgainstTarget
Volltreffer-Rate PokeBattle_Move, pbIsCritical?
Erhaltene Erf.-Punkte und EVs durch das Besiegen eines Pokémon PokeBattle_Battle, pbGainEXP
Vom Kampf fliehen PokeBattle_Battle, pbCanRun?, pbRun
Erhaltenes Geld von Trainerkämpfen PokeBattle_Battle, pbEndOfBattle
Priorität einer Attacke PokeBattle_Battle, pbPriority
Initiative PokeBattle_Battler, pbSpeed
Typ-Effektivität einer Attacke PokeBattle_Move, pbTypeModifier
Welche Attacken der Träger einsetzen kann PokeBattle_Battle, pbCanChooseMove?

Die folgende Effekte treten außerhalb des Kampfes auf:

Was wird beeinflusst Zuständiger Script
Zucht (Mit Rauchitems) PField_DayCare, pbDayCareGenerateEgg
Encounter-Rate von wilden Pokémon PField_Encounters, pbGenerateEncounter
Entwicklung (Speziell den Ewigstein) Pokemon_Evolution, pbCheckEvolutionEx
Erhöhung der Freundschaftsrate PokeBattle_Pokemon, changeHappiness

Spezielle Itemeffekte

Es gibt einige Items, meistens Basis-Items, die einen besonderen Effekt haben, wenn sie benutzt werden. Diese sind:

  • Karte
  • Pokéradar
  • Fahrrad
  • Angel
  • Detektor
  • Münzkorb

Am besten man guckt sich die Scripts direkt an, um zu sehen wie sie funktionieren.

Meistens werden Basis-Item passiv benutzt. Ein Event überprüft, ob der Spieler ein bestimmtes Basis-Item besitzt (z.B Türöffner). Das Item wird also nicht direkt benutzt. Überprüfungen wie diese sind im Artikel Items manipulieren erklärt.

Verwendung von gegnerischen Trainern

Siehe auch: Kampf-KI

Manche Items können vom Gegner während eines Kampfes benutzt werden. Die Effekte solcher Items werden im Script-Bereich PokeBattle_Battle, in den Methoden pbEnemyItemToUse und pbEnemyUseItem definiert. Der Effekt des Items sollte derselbe sein, wie wenn der Spieler diese nutzt.

Es ist ein kompliziertes Thema und für die meisten Spieler irrelevant. Man sollte nicht an den Scripts rumpfuschen, wenn man keine Script-Erfahrungen hat.