(Página nueva: Esta página explica cómo son definidos los '''efectos de los objetos'''. == Ver también == Objetos * Explica como definir los objetos en sí. == Formas de usar un objeto ...) Etiqueta: sourceedit |
Sin resumen de edición Etiqueta: sourceedit |
||
Línea 17: | Línea 17: | ||
|- |
|- |
||
! UseFromBag |
! UseFromBag |
||
− | | |
+ | | Para cuando un objeto está siendo utilizado desde la [[Mochila]], pero no sobre un Pokémon. Generalmente usado para Cuerda Huida, Repelente, todos los Objetos Claves y algunos pocos más. |
+ | Devuelve uno de los siguientes valores: |
||
− | Returns one of the following numbers: |
||
− | * 0 |
+ | * 0 si el objeto no ha sido utilizado. |
− | * 1 - |
+ | * 1 - El objeto ha sido utilizado, y la pantalla de la Mochila sigue abierta. |
− | * 2 - |
+ | * 2 - El objeto ha sido utilizado, y la pantalla de la Mochila está cerrada. |
− | * 3 - |
+ | * 3 - El objeto ha sido utilizado, y fue consumido. |
− | * 4 - |
+ | * 4 - El objeto ha sido utilizado, fue consumido, y la pantalla de la Mochila está cerrada. |
|- |
|- |
||
! UseOnPokemon |
! UseOnPokemon |
||
− | | |
+ | | Para cuando el objeto es para ser usado sobre un Pokémon en particular del [[equipo]] (el que elija el jugador). Se utiliza para Pociones, Revivir, Éteres, [[Evolución|piedras evolutivas]], etc. |
− | + | Devuelve TRUE si el objeto ha sido utilizado, y FALSE en caso contrario. |
|
|- |
|- |
||
! UseInField |
! UseInField |
||
+ | | Para cuando el objeto necesita que se cierre la pantalla de la [[Mochila]] antes de ser utilizado, o si está siendo utilizado en el lugar como un [[Mochila|objeto registrado]]. Para Cuerda Huida y todos los Objetos Claves apropiados. Los Objetos Claves que no tienen este controlador, no pueden ser registrados. |
||
− | | For when the item needs to close the [[Bag]] screen in order to be used, or if it is being used in the field as a [[Bag|registered item]]. For Escape Rope and all appropriate Key Items. Key Items that do not have this handler cannot be registered. |
||
|- |
|- |
||
! BattleUseOnPokemon |
! BattleUseOnPokemon |
||
− | | |
+ | | Para cuando el objeto es usado en un Pokémon en particular del [[equipo]] (elegido por el jugador) durante una [[Batallas|batalla]]. Es para prácticamente todos los objetos que también tienen un controlador <code>UseOnPokemon</code> (salvo los que no se pueden utilizar en batalla, obviamente), y también para objetos que afectan la atracción y confusión (que son estados exclusivamente en batalla). |
− | + | Devuelve TRUE si el objeto ha sido utilizado, y FALSE en caso contrario. |
|
|- |
|- |
||
! BattleUseOnBattler |
! BattleUseOnBattler |
||
− | | |
+ | | Para objetos que son usados en un Pokémon que está actualmente en una [[Batallas|batalla]] (elegido por el jugador). Para Ataque X ''et al'' y todas las Poké Balls (para decidir si pueden ser usadas). |
− | + | Devuelve TRUE si el objeto ha sido utilizado, y FALSE en caso contrario. |
|
|- |
|- |
||
! UseInBattle |
! UseInBattle |
||
− | | |
+ | | Para cuando el objeto es usado en una [[Batallas|batalla]], pero no sobre un Pokémon elegido por el jugador. Para Poké Muñecos (escape automático de una batalla), Poké Flauta (afecta a todos los participantes de una batalla) y todas las Poké Balls (para iniciar el proceso de captura). |
|} |
|} |
||
− | + | Muchos objetos se pueden utilizar en más de una de las situaciones explicadas arriba. El efecto de objeto nuevo debe ser escrito por separado en cada controlador (por ejemplo, las Pociones tienen un efecto definido en los controladores <code>UseOnPokemon</code> y <code>BattleUseOnPokemon</code>). Muchos objetos tendrán exactamente el mismo efecto en cada uno de sus controladores, pero otro no (por ejemplo, la Caña Vieja y otros Objetos Claves). En caso de duda, examine los objetos existentes que tienen efectos similares a su nuevo objeto para identificar los controladores necesarios y qué debe hacer cada controlador. |
|
+ | Tenga en cuenta que en cualquier lugar donde se haga referencia a un objeto, se precede de dos puntos (:). Es importane usar este símbolo. |
||
− | Notice that whenever an item is referred to, it is preceded by a colon (:). This colon is important. |
||
=== Ejemplos === |
=== Ejemplos === |
||
Línea 58: | Línea 58: | ||
}) |
}) |
||
− | + | Este código define lo que hace una Poción. Este ejemplo en particular muestra el controlador <code>UseOnPokemon</code>; también hay un controlador <code>BattlerUseOnPokemon</code> para las Pociones, que tiene el mismo efecto que el primero. |
|
− | + | Se llama a la def <code>pbHPItem</code>, lo que cambia los PS de un solo Pokémon, y le indica agregar 20 PS. Esa def agregará tanta PS como sea posible, hasta ese valor como máximo. |
|
ItemHandlers::UseOnPokemon.add(:ANTIDOTE,proc{|item,pokemon,scene| |
ItemHandlers::UseOnPokemon.add(:ANTIDOTE,proc{|item,pokemon,scene| |
||
if pokemon.hp<=0 || pokemon.status!=PBStatuses::POISON |
if pokemon.hp<=0 || pokemon.status!=PBStatuses::POISON |
||
− | scene.pbDisplay(_INTL(" |
+ | scene.pbDisplay(_INTL("No tendrá ningún efecto.")) |
next false |
next false |
||
else |
else |
||
Línea 70: | Línea 70: | ||
pokemon.statusCount=0 |
pokemon.statusCount=0 |
||
scene.pbRefresh |
scene.pbRefresh |
||
− | scene.pbDisplay(_INTL("{1} |
+ | scene.pbDisplay(_INTL("{1} se curó del envenenamiento.",pokemon.name)) |
next true |
next true |
||
end |
end |
||
}) |
}) |
||
− | + | Este código define lo que hace un Antídoto (cura el envenenamiento). Este ejemplo en particular muestra el controlador <code>UseOnPokemon</code>; también hay un controlador <code>BattlerUseOnPokemon</code> para los Antídotos, que tiene el mismo efecto que el primero. |
|
ItemHandlers::UseOnPokemon.copy(:ANTIDOTE,:PECHABERRY) |
ItemHandlers::UseOnPokemon.copy(:ANTIDOTE,:PECHABERRY) |
||
− | + | Esta línea copia el efecto de Antídoto del controlador <code>UseOnPokemon</code> y se lo asigna a la Baya Meloc. El efecto del controlador <code>BattleUseOnPokemon</code> deber ser copiado por separado (pero en el mismo sentido, solo es diferente el nombre del controlador). |
|
ItemHandlers::UseOnPokemon.add(:FIRESTONE,proc{|item,pokemon,scene| |
ItemHandlers::UseOnPokemon.add(:FIRESTONE,proc{|item,pokemon,scene| |
||
if (pokemon.isShadow? rescue false) |
if (pokemon.isShadow? rescue false) |
||
− | scene.pbDisplay(_INTL(" |
+ | scene.pbDisplay(_INTL("No tendrá ningún efecto.")) |
next false |
next false |
||
end |
end |
||
newspecies=pbCheckEvolution(pokemon,item) |
newspecies=pbCheckEvolution(pokemon,item) |
||
if newspecies<=0 |
if newspecies<=0 |
||
− | scene.pbDisplay(_INTL(" |
+ | scene.pbDisplay(_INTL("No tendrá ningún efecto.")) |
next false |
next false |
||
else |
else |
||
Línea 106: | Línea 106: | ||
:SUNSTONE,:DUSKSTONE,:DAWNSTONE,:SHINYSTONE) |
:SUNSTONE,:DUSKSTONE,:DAWNSTONE,:SHINYSTONE) |
||
− | + | Este código define lo que hace una [[Evolución|piedra evolutiva]]. En este caso sólo se tiene el controlador <code>UseOnPokemon</code>. La def <code>pbCheckEvolution</code> verifica si la piedra que se está usando funcionará o no, y devuelve un valor en "<code>newspecies</code>" (puede ser el número de ID de la especie evolucionada si puede usarse, o 0 en caso contrario). El efecto se realiza dependiendo de este valor. |
|
− | + | El controlador de la Piedra Fuego es copiado a todas las demás [[Evolución|piedras evolutivas]] de una sola vez. No se distingue ninguna diferencia aquí entre las distintas piedras. La validación real para ver en qué Pokémon puede usarse se realiza en <code>pbCheckEvolution</code>. Tenga en cuenta que un controlador de objeto puede ser copiado en muchos objetos de una sola vez. |
|
ItemHandlers::UseFromBag.add(:OLDROD,proc{|item| |
ItemHandlers::UseFromBag.add(:OLDROD,proc{|item| |
||
Línea 117: | Línea 117: | ||
next 2 |
next 2 |
||
else |
else |
||
− | Kernel.pbMessage(_INTL(" |
+ | Kernel.pbMessage(_INTL("Eso no se puede usar aquí.")) |
next 0 |
next 0 |
||
end |
end |
||
Línea 125: | Línea 125: | ||
notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction) |
notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction) |
||
if !pbIsWaterTag?(terrain) || (!notCliff && !$PokemonGlobal.surfing) |
if !pbIsWaterTag?(terrain) || (!notCliff && !$PokemonGlobal.surfing) |
||
− | Kernel.pbMessage(_INTL(" |
+ | Kernel.pbMessage(_INTL("Eso no se puede usar aquí.")) |
next |
next |
||
end |
end |
||
Línea 134: | Línea 134: | ||
}) |
}) |
||
− | + | Éstos son los dos controladores para la Caña Vieja. Observe que tienen algunas diferencias. El primero realiza una verificación de si se puede utilizar. En caso afirmativo (es decir, cuando se utiliza en frente de una zona de agua, pero no sobre una cuesta), todo lo que hace es "<code>next 2</code>", lo que significa que la pantalla de la [[Mochila]] debería ser cerrada y se debería ejecutar el controlador <code>UseInField</code> para ese objeto. Si la Caña Vieja no puede ser usada, la pantalla de la [[Mochila]] no será cerrada. |
|
− | + | Si la Caña Vieja ha sido [[Mochila|registrada]] y se está utilizando de esa forma, entonces se ejecuta el efecto del controlador <code>UseInField</code> directamente. El controlador <code>UseInField</code> es el que realmente define lo que hace la Caña Vieja. |
|
− | + | Tenga en cuenta que algunos objetos que tienen un controlador <code>UseInField</code> equivalente no usarán "next 2" en su efecto del controlador <code>UseFromBag</code> (por ejemplo, Mapa de Pueblos, Monedero), incluso si puede ser usado. Estos objetos suelen ser Objetos Claves (es decir, que pueden ser registrados, por lo que deben tener el controlador <code>UseInField</code>), pero no necesitan cerrar la pantalla de la [[Mochila]] para realizar algo. En este caso, los dos controladores son simplemente idénticos. |
|
== Poké Balls == |
== Poké Balls == |
||
− | Poké Balls |
+ | Las Poké Balls pueden tener efectos muy variados, desde cambiar la probabilidad de captura de un Pokémon hasta hacer que el Pokémon capturado sea más feliz. Estos efectos no están definidos en el mismo lugar que lo anterior, sino en la sección '''PokemonBalls'''. |
− | + | En primer lugar, se necesita agregar un objeto Poké Ball nuevo en la lista definida en la sección '''PokemonBalls'''. |
|
− | + | Luego, si el nuevo objeto Poké Ball funciona de forma diferente a una Poké Ball normal, se necesitará agregar un controlador nuevo para definir lo que hace. Los controladores disponibles son los siguientes: |
|
{| style="width: 100%;" class="article-table" border="1" |
{| style="width: 100%;" class="article-table" border="1" |
||
Línea 155: | Línea 155: | ||
|- |
|- |
||
! IsUnconditional |
! IsUnconditional |
||
− | | |
+ | | Si está presente, será llamado siempre tan pronto como el Pokémon salvaje sea absorbido por la Poké Ball. Si este controlador devuelve TRUE, entonces la captura es exitosa, independientemente de cualquier otra cosa. Por defecto, solo la Master Ball lleva este controlador (y siempre devuelve TRUE). |
|- |
|- |
||
! ModifyCatchRate |
! ModifyCatchRate |
||
− | | |
+ | | Cambia el ratio de captura de la Poké Ball. Este cambio puede depender de cualquier factor, del Pokémon a capturar (por ejemplo, su nivel, peso, tipo), y/o de cualquier otra condición de batalla (por ejemplo, contador de turnos, ambiente, hora del día). La mayoría de las Poké Balls tiene uno de estos controladores. |
|- |
|- |
||
! OnCatch |
! OnCatch |
||
− | | |
+ | | Define un efecto que sucede luego de la captura exitosa. La Sana Ball restaurará la salud del Pokémon capturado, y la Amigo Ball establece su felicidad en 200. |
|} |
|} |
||
− | + | Si la Poké Ball nueva tendrá algún otro efecto que aplique luego de la captura (por ejemplo, que duplique cualquier aumento de felicidad en el futuro), entonces necesitará modificar otros scripts para verificar el tipo de Poké Ball en el que se encuentra el Pokémon, y realizar los efectos adicionales apropiadamente. |
|
=== Ejemplos === |
=== Ejemplos === |
||
Línea 172: | Línea 172: | ||
}) |
}) |
||
− | + | Una Super Ball es 1.5 veces más efectiva que una Poké Ball normal. Este código refleja esta situación multiplicando "<code>catchRate</code>" por 3/2. Dado que "<code>catchRate</code>" siempre debería ser un número entero, la ecuación es "truncada", lo que significa que el resultado (el nuevo "<code>catchRate</code>") es redondeada hacia abajo al valor entero menor más próximo. |
|
BallHandlers::ModifyCatchRate.add(:DIVEBALL,proc{|ball,catchRate,battle,battler| |
BallHandlers::ModifyCatchRate.add(:DIVEBALL,proc{|ball,catchRate,battle,battler| |
||
Línea 179: | Línea 179: | ||
}) |
}) |
||
− | + | Una Buceo Ball es 3.5 veces más efectiva que una Poké Ball normal, pero sólo si es utilizada bajo el agua. Tiene la misma efectividad que una Poké Ball normal en cualquier otro lugar. |
|
BallHandlers::IsUnconditional.add(:MASTERBALL,proc{|ball,battle,battler| |
BallHandlers::IsUnconditional.add(:MASTERBALL,proc{|ball,battle,battler| |
||
Línea 185: | Línea 185: | ||
}) |
}) |
||
− | + | La Master Ball siempre capturará al Pokémon. Porque el controlador <code>IsUnconditional</code> es llamado siempre tan pronto como el Pokémon entra en la Poké Ball, y este controlador siempre devuelve TRUE, entonces la captura es exitosa siempre. |
|
BallHandlers::OnCatch.add(:FRIENDBALL,proc{|ball,battle,pokemon| |
BallHandlers::OnCatch.add(:FRIENDBALL,proc{|ball,battle,pokemon| |
||
Línea 191: | Línea 191: | ||
}) |
}) |
||
+ | Una Amigo Ball no cambia el ratio de captura, pero cambia la felicidad del Pokémon capturado tras la captura. Éste es el código que lo realiza. Cualquier otro efecto que ocurra tras una captura exitosa (este efecto solo aplica al Pokémon capturado) puede utilizar este controlador (por ejemplo, la Sana Ball que restaura la salud del Pokémon capturado). |
||
− | The Friend Ball doesn't change the capture rate, but it does change the happiness of the captured Pokémon upon capture. This is the code that does it. Any other effects that occur upon successfully capturing a Pokémon (these effects usually only affect the captured Pokémon) can use this handler (e.g. the Heal Ball restoring the captured Pokémon to full health). |
||
== MTs y MOs == |
== MTs y MOs == |
||
+ | ''Consulte la página principal en [[Aprendije de movimientos]]'' |
||
− | {{main|Learning moves}} |
||
− | TMs and HMs are also used in a different way to the methods mentioned above. All TMs and HMs work in exactly the same way, with the one exception being that a TM will be consumed after use (unless TMs are set to be infinite use). |
||
+ | Las MTs y MOs también son utilizadas de forma distinta a los métodos mencionados anteriormente. Todas las MTs y MOs funcionan exactamente de la misma forma, con la única diferencia que un MT será consumida tras su uso (salvo que las MTs estén definidas como de uso infinito). |
||
− | The article [[Learning moves]] contains more information about how a move is taught. The only requirement for creating a TM or HM item is to [[Defining an item|define it as one]]. |
||
+ | |||
+ | La página [[Aprendije de movimientos]] contiene más información sobre las movimientos que se pueden enseñar. El único requisito para crear una MT o Mo es [[Definición de objeto|simplemente su definición]]. |
||
== Cartas == |
== Cartas == |
||
+ | Los objetos Cartas no se pueden usar como los demás objetos, pero pueden ser leídas. La lectura de una carta de la Mochila simplemente mostrará una en blanco, mientras que leer una llevada por un Pokémon mostrará la carta y su mensaje. |
||
− | Mail items cannot be used like other items, but instead can be read. Reading a mail item from the Bag will simply show the blank mail, while reading a mail item being held by a Pokémon will show the mail and its message. |
||
+ | Cuando se le da una Carta a un Pokémon para que la lleve, el jugador puede escribir un mensaje. La misma, es firmada automáticamente con el nombre del jugador. Si la carta [[Definición de objeto|está definida]] para que muestre un Pokémon, entonces se mostrarán los íconos del Pokémon que lleva la Carta y de los siguientes dos Pokémon del [[equipo]] actual del jugador, ordenados de derecha hacia la izquierda. |
||
− | When a mail item is given to a Pokémon to hold, the player can enter a message. It is automatically signed with the player's name. If the mail [[Defining an item|is defined]] as one which shows Pokémon on it, then the holder and the next two Pokémon currently in the player's party will appear as icons on the mail, in order of right to left. |
||
− | + | Este mensaje (y el detalle de los Pokémon que muestra) es guardado como una propiedad del Pokémon que lleva la Carta. Consulta la página de [[Edición de un Pokémon]] para obtener mayor explicación sobre cómo establecer el mensaje, el nombre del remitente y los íconos. |
|
+ | El único requisito para crear un objeto de tipo Carta es [[Definición de objeto|simplemente su definición]]. |
||
− | The only requirement for creating a mail item is to [[Defining an item|define it as one]]. |
||
== Objetos llevados == |
== Objetos llevados == |
||
+ | Algunos objetos tienen efectos si son llevados por un Pokémon, como hacer que ciertos tipos de movimientos sean más fuertes en una [[Batallas|batalla]], dar más experiencia o hacer que un movimiento de [[clima]] en particular dure más tiempo. Dado que hay muchos tipos diferentes de efectos que los objetos llevados pueden tener, no pueden ser detallados todos aquí. En su lugar, esta sección tiene un resumen de algunos de los efectos de esos objetos. |
||
− | Some items have effects if they are held by a Pokémon, such as making certain types of moves stronger in [[Battles|battle]], giving more experience or making a particular [[weather]] move last longer. As there are many different kinds of effects a held item can have, they cannot all be detailed here. Instead, this section has an overview of some of the different kinds of held items. |
||
=== Objetos de modificación de poder de movimientos === |
=== Objetos de modificación de poder de movimientos === |
||
+ | Aquí se incluyen los objetos Semilla Milagro (Planta), Carbón (Fuego) y Agua Mística (Agua), junto con las distintas Tablas, Hueso Grueso, Incienso Marino y mucho más. Todos éstos son objetos que, cuando son llevados, modificarán la potencia de los movimientos de daño. |
||
− | These include Miracle Seed (Grass), Charcoal (Fire) and Mystic Water (Water) items, along with the various Plates, Thick Club, Sea Incense and so forth. These are all items that, when held, will alter the power of a damaging move. |
||
− | + | En la sección '''PokeBattle_Move''', hay una extensa def llamada <code>pbCalcDamage</code>. Allí están todos los cálculos que afectan la potencia de un movimiento, y entre ellos, están los involucrados con estos objetos. |
|
+ | Tenga en cuenta que la mayoría de estos cálculos afectan solo al Ataque o al Ataque Especial, no a ambos. |
||
− | Note that many of these calculations affect only Attack or Special Attack, not both. |
||
=== Objetos de efecto disparado === |
=== Objetos de efecto disparado === |
||
− | + | La sección '''PokeBattle_Battler''' contiene la def <code>pbBerryCureCheck</code>, que verifica si un Pokémon puede usar automáticamente (generalmente, consumir) su objeto llevado para ganar su efecto. El nombre de la def se debe a que la mayoría de los objetos llevados consumibles son bayas; sin embargo, también cubre Hierba Blanca, Hierba Mental, Restos y Lodo Negro (los últimos dos no son consumidos, pero se incluyen porque sus efectos son de disparo). |
|
+ | Si el objeto llevado que estás creando puede ser usado durante la batalla para producir algún efecto, se debe agregar algún código aquí. Tenga en cuenta que la mayoría de los objetos existentes tienen restricciones en cuándo pueden ser usados. Por ejemplo, un objeto que cura un estado puede ser utilizado solamente cuando el Pokémon tiene ese estado, o un objeto que restaura PS puede ser utilizado solamente cuando el Pokémon tiene pocos PS. |
||
− | If your held item can be used during battle to give an effect, add some code in here. Note that most existing items have restrictions on when they can be used (e.g. a status-curing item can only be used when the Pokémon has that status, or a HP-restoring item can only be used when the Pokémon has low HP). |
||
=== Otros efectos de objetos llevados === |
=== Otros efectos de objetos llevados === |
||
+ | Hay otros efectos que pueden tener los objetos que son llevados por los Pokémon. Abajo se muestran dos tablas que indican dónde encontrar algunos efectos que pueden ser modificados dependiendo de la presencia de un objeto llevado. La mayoría de ellos ya contienen al menos un ejemplo de un efecto de objeto llevado existente. |
||
− | There are other effects which held items can have. Below are two tables that list where to find some effects that can be modified depending on a held item's presence. Many of them will already contain at least one example of an existing held item's effect. |
||
+ | Los siguientes efectos ocurren en batalla: |
||
− | The following effects occur in battle: |
||
{| style="width: 100%;" class="article-table" border="1" |
{| style="width: 100%;" class="article-table" border="1" |
||
+ | ! Lo que es afectado |
||
− | ! What is affected |
||
− | ! |
+ | ! El script que contiene el efecto |
|- |
|- |
||
+ | | Precisión y evasión |
||
− | | Accuracy and evasion |
||
| '''PokeBattle_Move''', <code>pbAccuracyCheck</code> |
| '''PokeBattle_Move''', <code>pbAccuracyCheck</code> |
||
|- |
|- |
||
+ | | Probabilidad de retroceso |
||
− | | Chance of flinching |
||
| '''PokeBattle_Battler''', <code>pbProcessMoveAgainstTarget</code> |
| '''PokeBattle_Battler''', <code>pbProcessMoveAgainstTarget</code> |
||
|- |
|- |
||
+ | | Ratio de golpe crítico |
||
− | | Critical hit ratio |
||
| '''PokeBattle_Move''', <code>pbIsCritical?</code> |
| '''PokeBattle_Move''', <code>pbIsCritical?</code> |
||
|- |
|- |
||
− | | |
+ | | Experiencia y EVs ganados al debilitar a un Pokémon |
| '''PokeBattle_Battle''', <code>pbGainEXP</code> |
| '''PokeBattle_Battle''', <code>pbGainEXP</code> |
||
|- |
|- |
||
+ | | Huida de la batalla |
||
− | | Fleeing from battle |
||
| '''PokeBattle_Battle''', <code>pbCanRun?</code>, <code>pbRun</code> |
| '''PokeBattle_Battle''', <code>pbCanRun?</code>, <code>pbRun</code> |
||
|- |
|- |
||
+ | | Dinero ganado a un entrenador |
||
− | | Money gained from trainer battles |
||
| '''PokeBattle_Battle''', <code>pbEndOfBattle</code> |
| '''PokeBattle_Battle''', <code>pbEndOfBattle</code> |
||
|- |
|- |
||
+ | | Prioridad de un movimiento |
||
− | | Priority of a move |
||
| '''PokeBattle_Battle''', <code>pbPriority</code> |
| '''PokeBattle_Battle''', <code>pbPriority</code> |
||
|- |
|- |
||
+ | | Velocidad |
||
− | | Speed |
||
| '''PokeBattle_Battler''', <code>pbSpeed</code> |
| '''PokeBattle_Battler''', <code>pbSpeed</code> |
||
|- |
|- |
||
+ | | Efectividad de tipo de un movimiento |
||
− | | Type effectiveness of a move |
||
| '''PokeBattle_Move''', <code>pbTypeModifier</code> |
| '''PokeBattle_Move''', <code>pbTypeModifier</code> |
||
|- |
|- |
||
+ | | Movimientos disponibles |
||
− | | Which moves the holder can use |
||
| '''PokeBattle_Battle''', <code>pbCanChooseMove?</code> |
| '''PokeBattle_Battle''', <code>pbCanChooseMove?</code> |
||
|} |
|} |
||
+ | Los siguientes efectos ocurren fuera de una batalla: |
||
− | The following effects occur outside of battle: |
||
{| style="width: 100%;" class="article-table" border="1" |
{| style="width: 100%;" class="article-table" border="1" |
||
+ | ! Lo que es afectado |
||
− | ! What is affected |
||
− | ! |
+ | ! El script que contiene el efecto |
|- |
|- |
||
− | | |
+ | | Crianza (con Incienso) |
| '''PokemonDayCare''', <code>pbDayCareGenerateEgg</code> |
| '''PokemonDayCare''', <code>pbDayCareGenerateEgg</code> |
||
|- |
|- |
||
− | | |
+ | | Ratio de encuentro con Pokémon salvajes |
| '''PokemonEncounters''', <code>pbGenerateEncounter</code> |
| '''PokemonEncounters''', <code>pbGenerateEncounter</code> |
||
|- |
|- |
||
+ | | Evolución (específicamente Piedraeterna) |
||
− | | Evolution (specifically Everstone) |
||
| '''PokemonEvolution''', <code>pbCheckEvolutionEx</code> |
| '''PokemonEvolution''', <code>pbCheckEvolutionEx</code> |
||
|- |
|- |
||
+ | | Aumentos de felicidad |
||
− | | Happiness gain |
||
| '''PokeBattle_Pokemon''', <code>changeHappiness</code> |
| '''PokeBattle_Pokemon''', <code>changeHappiness</code> |
||
|} |
|} |
||
Línea 289: | Línea 290: | ||
== Efectos de objetos especiales == |
== Efectos de objetos especiales == |
||
+ | Hay algunos objetos, usualmente Objetos Claves, que tienen efectos únicos o significativos. Por ejemplo: |
||
− | There are some items, usually Key Items, that have unique or significant effects when used. These include: |
||
* [[Mapa de la región|Mapa de Pueblos]] |
* [[Mapa de la región|Mapa de Pueblos]] |
||
Línea 298: | Línea 299: | ||
* [[Rincón de juegos|Monedero]] |
* [[Rincón de juegos|Monedero]] |
||
− | + | Lo mejor es mirar directamente los scripts para conocer el funcionamiento de ellos. |
|
− | + | En general, cualquier otro Objeto Clave es usado de forma pasiva. Esto es, un evento verifica si el jugador tiene un Objeto Clave en particular (por ejemplo, una Tarjeta Llave), en lugar de que el jugador esté utilizando el objeto manualmente. Las validaciones de este tipo están explicadas en la página [[Utilización de objetos]]. |
|
== Usados por entrenadores enemigos == |
== Usados por entrenadores enemigos == |
||
''Consulta la página princial [[IA de batalla]]'' |
''Consulta la página princial [[IA de batalla]]'' |
||
− | + | Algunos objetos pueden ser utilizados por entrenadores enemigos durante una batalla. Los efectos de esos objetos están definidos en la sección '''PokeBattle_Battle''' en las defs <code>pbEnemyItemToUse</code> y <code>pbEnemyUseItem</code>. Los efectos de los objetos aquí deberían ser los mismos que utiliza el jugador para sí mismo, para ser justos. |
|
+ | Éste es un tema complicado, y no es necesario para la mayoría de los usuarios. No deberías intentar modificar la IA salvo que tengas un buen entendimiento de los scripts. |
||
− | This is a complicated topic, and unnecessary for most users. You should not attempt to modify the AI unless you have decent scripting knowledge. |
||
Tutoriales |
Tutoriales |
Revisión del 03:22 17 nov 2016
Esta página explica cómo son definidos los efectos de los objetos.
Ver también
- Explica como definir los objetos en sí.
Formas de usar un objeto
La mayoría de los objetos tienen un efecto. Una Poción restaura hasta 20 PS, por ejemplo. Todos estos efectos están escritos en los scripts, muchos están en distintos lugares dependiendo del tipo de objetos y la forma en la que se use (por ejemplo, desde la Mochila, en batalla, como un objeto registrado, etc.). Esta sección de la página explica las diferentes formas en las que un objetos puede ser utilizado, y cómo establecer los efectos de los objetos en general. Vea más abajo para efectos pasivos (por ejemplo, objetos llevados), efectos de las Poké Balls y mucho más.
La sección PokemonItemEffects contiene todos los efectos para objetos que se usan activamente. Dado que hay diferentes formas de utilizar un objeto, hay diferentes controladores, uno para cada forma. Hay seis de esos controladores:
Controlador | Descripción |
---|---|
UseFromBag | Para cuando un objeto está siendo utilizado desde la Mochila, pero no sobre un Pokémon. Generalmente usado para Cuerda Huida, Repelente, todos los Objetos Claves y algunos pocos más.
Devuelve uno de los siguientes valores:
|
UseOnPokemon | Para cuando el objeto es para ser usado sobre un Pokémon en particular del equipo (el que elija el jugador). Se utiliza para Pociones, Revivir, Éteres, piedras evolutivas, etc.
Devuelve TRUE si el objeto ha sido utilizado, y FALSE en caso contrario. |
UseInField | Para cuando el objeto necesita que se cierre la pantalla de la Mochila antes de ser utilizado, o si está siendo utilizado en el lugar como un objeto registrado. Para Cuerda Huida y todos los Objetos Claves apropiados. Los Objetos Claves que no tienen este controlador, no pueden ser registrados. |
BattleUseOnPokemon | Para cuando el objeto es usado en un Pokémon en particular del equipo (elegido por el jugador) durante una batalla. Es para prácticamente todos los objetos que también tienen un controlador UseOnPokemon (salvo los que no se pueden utilizar en batalla, obviamente), y también para objetos que afectan la atracción y confusión (que son estados exclusivamente en batalla).
Devuelve TRUE si el objeto ha sido utilizado, y FALSE en caso contrario. |
BattleUseOnBattler | Para objetos que son usados en un Pokémon que está actualmente en una batalla (elegido por el jugador). Para Ataque X et al y todas las Poké Balls (para decidir si pueden ser usadas).
Devuelve TRUE si el objeto ha sido utilizado, y FALSE en caso contrario. |
UseInBattle | Para cuando el objeto es usado en una batalla, pero no sobre un Pokémon elegido por el jugador. Para Poké Muñecos (escape automático de una batalla), Poké Flauta (afecta a todos los participantes de una batalla) y todas las Poké Balls (para iniciar el proceso de captura). |
Muchos objetos se pueden utilizar en más de una de las situaciones explicadas arriba. El efecto de objeto nuevo debe ser escrito por separado en cada controlador (por ejemplo, las Pociones tienen un efecto definido en los controladores UseOnPokemon
y BattleUseOnPokemon
). Muchos objetos tendrán exactamente el mismo efecto en cada uno de sus controladores, pero otro no (por ejemplo, la Caña Vieja y otros Objetos Claves). En caso de duda, examine los objetos existentes que tienen efectos similares a su nuevo objeto para identificar los controladores necesarios y qué debe hacer cada controlador.
Tenga en cuenta que en cualquier lugar donde se haga referencia a un objeto, se precede de dos puntos (:). Es importane usar este símbolo.
Ejemplos
ItemHandlers::UseOnPokemon.add(:POTION,proc{|item,pokemon,scene| next pbHPItem(pokemon,20,scene) })
Este código define lo que hace una Poción. Este ejemplo en particular muestra el controlador UseOnPokemon
; también hay un controlador BattlerUseOnPokemon
para las Pociones, que tiene el mismo efecto que el primero.
Se llama a la def pbHPItem
, lo que cambia los PS de un solo Pokémon, y le indica agregar 20 PS. Esa def agregará tanta PS como sea posible, hasta ese valor como máximo.
ItemHandlers::UseOnPokemon.add(:ANTIDOTE,proc{|item,pokemon,scene| if pokemon.hp<=0 || pokemon.status!=PBStatuses::POISON scene.pbDisplay(_INTL("No tendrá ningún efecto.")) next false else pokemon.status=0 pokemon.statusCount=0 scene.pbRefresh scene.pbDisplay(_INTL("{1} se curó del envenenamiento.",pokemon.name)) next true end })
Este código define lo que hace un Antídoto (cura el envenenamiento). Este ejemplo en particular muestra el controlador UseOnPokemon
; también hay un controlador BattlerUseOnPokemon
para los Antídotos, que tiene el mismo efecto que el primero.
ItemHandlers::UseOnPokemon.copy(:ANTIDOTE,:PECHABERRY)
Esta línea copia el efecto de Antídoto del controlador UseOnPokemon
y se lo asigna a la Baya Meloc. El efecto del controlador BattleUseOnPokemon
deber ser copiado por separado (pero en el mismo sentido, solo es diferente el nombre del controlador).
ItemHandlers::UseOnPokemon.add(:FIRESTONE,proc{|item,pokemon,scene| if (pokemon.isShadow? rescue false) scene.pbDisplay(_INTL("No tendrá ningún efecto.")) next false end newspecies=pbCheckEvolution(pokemon,item) if newspecies<=0 scene.pbDisplay(_INTL("No tendrá ningún efecto.")) next false else pbFadeOutInWithMusic(99999){ evo=PokemonEvolutionScene.new evo.pbStartScreen(pokemon,newspecies) evo.pbEvolution(false) evo.pbEndScreen scene.pbRefresh } next true end }) ItemHandlers::UseOnPokemon.copy(:FIRESTONE, :THUNDERSTONE,:WATERSTONE,:LEAFSTONE,:MOONSTONE, :SUNSTONE,:DUSKSTONE,:DAWNSTONE,:SHINYSTONE)
Este código define lo que hace una piedra evolutiva. En este caso sólo se tiene el controlador UseOnPokemon
. La def pbCheckEvolution
verifica si la piedra que se está usando funcionará o no, y devuelve un valor en "newspecies
" (puede ser el número de ID de la especie evolucionada si puede usarse, o 0 en caso contrario). El efecto se realiza dependiendo de este valor.
El controlador de la Piedra Fuego es copiado a todas las demás piedras evolutivas de una sola vez. No se distingue ninguna diferencia aquí entre las distintas piedras. La validación real para ver en qué Pokémon puede usarse se realiza en pbCheckEvolution
. Tenga en cuenta que un controlador de objeto puede ser copiado en muchos objetos de una sola vez.
ItemHandlers::UseFromBag.add(:OLDROD,proc{|item| terrain=Kernel.pbFacingTerrainTag notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction) if (pbIsWaterTag?(terrain) && !$PokemonGlobal.surfing && notCliff) || (pbIsWaterTag?(terrain) && $PokemonGlobal.surfing) next 2 else Kernel.pbMessage(_INTL("Eso no se puede usar aquí.")) next 0 end }) ItemHandlers::UseInField.add(:OLDROD,proc{|item| terrain=Kernel.pbFacingTerrainTag notCliff=$game_map.passable?($game_player.x,$game_player.y,$game_player.direction) if !pbIsWaterTag?(terrain) || (!notCliff && !$PokemonGlobal.surfing) Kernel.pbMessage(_INTL("Eso no se puede usar aquí.")) next end encounter=$PokemonEncounters.hasEncounter?(EncounterTypes::OldRod) if pbFishing(encounter) pbEncounter(EncounterTypes::OldRod) end })
Éstos son los dos controladores para la Caña Vieja. Observe que tienen algunas diferencias. El primero realiza una verificación de si se puede utilizar. En caso afirmativo (es decir, cuando se utiliza en frente de una zona de agua, pero no sobre una cuesta), todo lo que hace es "next 2
", lo que significa que la pantalla de la Mochila debería ser cerrada y se debería ejecutar el controlador UseInField
para ese objeto. Si la Caña Vieja no puede ser usada, la pantalla de la Mochila no será cerrada.
Si la Caña Vieja ha sido registrada y se está utilizando de esa forma, entonces se ejecuta el efecto del controlador UseInField
directamente. El controlador UseInField
es el que realmente define lo que hace la Caña Vieja.
Tenga en cuenta que algunos objetos que tienen un controlador UseInField
equivalente no usarán "next 2" en su efecto del controlador UseFromBag
(por ejemplo, Mapa de Pueblos, Monedero), incluso si puede ser usado. Estos objetos suelen ser Objetos Claves (es decir, que pueden ser registrados, por lo que deben tener el controlador UseInField
), pero no necesitan cerrar la pantalla de la Mochila para realizar algo. En este caso, los dos controladores son simplemente idénticos.
Poké Balls
Las Poké Balls pueden tener efectos muy variados, desde cambiar la probabilidad de captura de un Pokémon hasta hacer que el Pokémon capturado sea más feliz. Estos efectos no están definidos en el mismo lugar que lo anterior, sino en la sección PokemonBalls.
En primer lugar, se necesita agregar un objeto Poké Ball nuevo en la lista definida en la sección PokemonBalls.
Luego, si el nuevo objeto Poké Ball funciona de forma diferente a una Poké Ball normal, se necesitará agregar un controlador nuevo para definir lo que hace. Los controladores disponibles son los siguientes:
Controlador | Descripción |
---|---|
IsUnconditional | Si está presente, será llamado siempre tan pronto como el Pokémon salvaje sea absorbido por la Poké Ball. Si este controlador devuelve TRUE, entonces la captura es exitosa, independientemente de cualquier otra cosa. Por defecto, solo la Master Ball lleva este controlador (y siempre devuelve TRUE). |
ModifyCatchRate | Cambia el ratio de captura de la Poké Ball. Este cambio puede depender de cualquier factor, del Pokémon a capturar (por ejemplo, su nivel, peso, tipo), y/o de cualquier otra condición de batalla (por ejemplo, contador de turnos, ambiente, hora del día). La mayoría de las Poké Balls tiene uno de estos controladores. |
OnCatch | Define un efecto que sucede luego de la captura exitosa. La Sana Ball restaurará la salud del Pokémon capturado, y la Amigo Ball establece su felicidad en 200. |
Si la Poké Ball nueva tendrá algún otro efecto que aplique luego de la captura (por ejemplo, que duplique cualquier aumento de felicidad en el futuro), entonces necesitará modificar otros scripts para verificar el tipo de Poké Ball en el que se encuentra el Pokémon, y realizar los efectos adicionales apropiadamente.
Ejemplos
BallHandlers::ModifyCatchRate.add(:GREATBALL,proc{|ball,catchRate,battle,battler| next (catchRate*3/2).floor })
Una Super Ball es 1.5 veces más efectiva que una Poké Ball normal. Este código refleja esta situación multiplicando "catchRate
" por 3/2. Dado que "catchRate
" siempre debería ser un número entero, la ecuación es "truncada", lo que significa que el resultado (el nuevo "catchRate
") es redondeada hacia abajo al valor entero menor más próximo.
BallHandlers::ModifyCatchRate.add(:DIVEBALL,proc{|ball,catchRate,battle,battler| catchRate=(catchRate*7/2).floor if battle.environment==PBEnvironment::Underwater next catchRate })
Una Buceo Ball es 3.5 veces más efectiva que una Poké Ball normal, pero sólo si es utilizada bajo el agua. Tiene la misma efectividad que una Poké Ball normal en cualquier otro lugar.
BallHandlers::IsUnconditional.add(:MASTERBALL,proc{|ball,battle,battler| next true })
La Master Ball siempre capturará al Pokémon. Porque el controlador IsUnconditional
es llamado siempre tan pronto como el Pokémon entra en la Poké Ball, y este controlador siempre devuelve TRUE, entonces la captura es exitosa siempre.
BallHandlers::OnCatch.add(:FRIENDBALL,proc{|ball,battle,pokemon| pokemon.happiness=200 })
Una Amigo Ball no cambia el ratio de captura, pero cambia la felicidad del Pokémon capturado tras la captura. Éste es el código que lo realiza. Cualquier otro efecto que ocurra tras una captura exitosa (este efecto solo aplica al Pokémon capturado) puede utilizar este controlador (por ejemplo, la Sana Ball que restaura la salud del Pokémon capturado).
MTs y MOs
Consulte la página principal en Aprendije de movimientos
Las MTs y MOs también son utilizadas de forma distinta a los métodos mencionados anteriormente. Todas las MTs y MOs funcionan exactamente de la misma forma, con la única diferencia que un MT será consumida tras su uso (salvo que las MTs estén definidas como de uso infinito).
La página Aprendije de movimientos contiene más información sobre las movimientos que se pueden enseñar. El único requisito para crear una MT o Mo es simplemente su definición.
Cartas
Los objetos Cartas no se pueden usar como los demás objetos, pero pueden ser leídas. La lectura de una carta de la Mochila simplemente mostrará una en blanco, mientras que leer una llevada por un Pokémon mostrará la carta y su mensaje.
Cuando se le da una Carta a un Pokémon para que la lleve, el jugador puede escribir un mensaje. La misma, es firmada automáticamente con el nombre del jugador. Si la carta está definida para que muestre un Pokémon, entonces se mostrarán los íconos del Pokémon que lleva la Carta y de los siguientes dos Pokémon del equipo actual del jugador, ordenados de derecha hacia la izquierda.
Este mensaje (y el detalle de los Pokémon que muestra) es guardado como una propiedad del Pokémon que lleva la Carta. Consulta la página de Edición de un Pokémon para obtener mayor explicación sobre cómo establecer el mensaje, el nombre del remitente y los íconos.
El único requisito para crear un objeto de tipo Carta es simplemente su definición.
Objetos llevados
Algunos objetos tienen efectos si son llevados por un Pokémon, como hacer que ciertos tipos de movimientos sean más fuertes en una batalla, dar más experiencia o hacer que un movimiento de clima en particular dure más tiempo. Dado que hay muchos tipos diferentes de efectos que los objetos llevados pueden tener, no pueden ser detallados todos aquí. En su lugar, esta sección tiene un resumen de algunos de los efectos de esos objetos.
Objetos de modificación de poder de movimientos
Aquí se incluyen los objetos Semilla Milagro (Planta), Carbón (Fuego) y Agua Mística (Agua), junto con las distintas Tablas, Hueso Grueso, Incienso Marino y mucho más. Todos éstos son objetos que, cuando son llevados, modificarán la potencia de los movimientos de daño.
En la sección PokeBattle_Move, hay una extensa def llamada pbCalcDamage
. Allí están todos los cálculos que afectan la potencia de un movimiento, y entre ellos, están los involucrados con estos objetos.
Tenga en cuenta que la mayoría de estos cálculos afectan solo al Ataque o al Ataque Especial, no a ambos.
Objetos de efecto disparado
La sección PokeBattle_Battler contiene la def pbBerryCureCheck
, que verifica si un Pokémon puede usar automáticamente (generalmente, consumir) su objeto llevado para ganar su efecto. El nombre de la def se debe a que la mayoría de los objetos llevados consumibles son bayas; sin embargo, también cubre Hierba Blanca, Hierba Mental, Restos y Lodo Negro (los últimos dos no son consumidos, pero se incluyen porque sus efectos son de disparo).
Si el objeto llevado que estás creando puede ser usado durante la batalla para producir algún efecto, se debe agregar algún código aquí. Tenga en cuenta que la mayoría de los objetos existentes tienen restricciones en cuándo pueden ser usados. Por ejemplo, un objeto que cura un estado puede ser utilizado solamente cuando el Pokémon tiene ese estado, o un objeto que restaura PS puede ser utilizado solamente cuando el Pokémon tiene pocos PS.
Otros efectos de objetos llevados
Hay otros efectos que pueden tener los objetos que son llevados por los Pokémon. Abajo se muestran dos tablas que indican dónde encontrar algunos efectos que pueden ser modificados dependiendo de la presencia de un objeto llevado. La mayoría de ellos ya contienen al menos un ejemplo de un efecto de objeto llevado existente.
Los siguientes efectos ocurren en batalla:
Lo que es afectado | El script que contiene el efecto |
---|---|
Precisión y evasión | PokeBattle_Move, pbAccuracyCheck
|
Probabilidad de retroceso | PokeBattle_Battler, pbProcessMoveAgainstTarget
|
Ratio de golpe crítico | PokeBattle_Move, pbIsCritical?
|
Experiencia y EVs ganados al debilitar a un Pokémon | PokeBattle_Battle, pbGainEXP
|
Huida de la batalla | PokeBattle_Battle, pbCanRun? , pbRun
|
Dinero ganado a un entrenador | PokeBattle_Battle, pbEndOfBattle
|
Prioridad de un movimiento | PokeBattle_Battle, pbPriority
|
Velocidad | PokeBattle_Battler, pbSpeed
|
Efectividad de tipo de un movimiento | PokeBattle_Move, pbTypeModifier
|
Movimientos disponibles | PokeBattle_Battle, pbCanChooseMove?
|
Los siguientes efectos ocurren fuera de una batalla:
Lo que es afectado | El script que contiene el efecto |
---|---|
Crianza (con Incienso) | PokemonDayCare, pbDayCareGenerateEgg
|
Ratio de encuentro con Pokémon salvajes | PokemonEncounters, pbGenerateEncounter
|
Evolución (específicamente Piedraeterna) | PokemonEvolution, pbCheckEvolutionEx
|
Aumentos de felicidad | PokeBattle_Pokemon, changeHappiness
|
Efectos de objetos especiales
Hay algunos objetos, usualmente Objetos Claves, que tienen efectos únicos o significativos. Por ejemplo:
- Mapa de Pueblos
- Poké Radar
- Bicicleta
- Cañas
- Buscaobjetos
- Monedero
Lo mejor es mirar directamente los scripts para conocer el funcionamiento de ellos.
En general, cualquier otro Objeto Clave es usado de forma pasiva. Esto es, un evento verifica si el jugador tiene un Objeto Clave en particular (por ejemplo, una Tarjeta Llave), en lugar de que el jugador esté utilizando el objeto manualmente. Las validaciones de este tipo están explicadas en la página Utilización de objetos.
Usados por entrenadores enemigos
Consulta la página princial IA de batalla
Algunos objetos pueden ser utilizados por entrenadores enemigos durante una batalla. Los efectos de esos objetos están definidos en la sección PokeBattle_Battle en las defs pbEnemyItemToUse
y pbEnemyUseItem
. Los efectos de los objetos aquí deberían ser los mismos que utiliza el jugador para sí mismo, para ser justos.
Éste es un tema complicado, y no es necesario para la mayoría de los usuarios. No deberías intentar modificar la IA salvo que tengas un buen entendimiento de los scripts.
Tutoriales
- Turn HM moves to items - By -FL-