De Whack a Hack Wiki!
En este artículo se explica cómo funcionan los huevos Pokémon, cómo entregar un huevo al jugador y cómo personalizarlo.
Sumario
Vea también
- Los Pokémon pueden reproducirse en la Guardería Pokémon y producir huevos.
- Eventualmente los huevos eclosionarán en un Pokémon.
¿Por qué un huevo es un huevo?
La única diferencia entre un Pokémon y un huevo es que un huevo tiene un número de pasos para eclosionar mayor a cero. Este número es guardado en una variable del Pokémon llamada eggsteps
. Para Pokémon nacidos, este número está en cero.
El método egg?
revisa si una entidad de un huevo; devuelve TRUE si lo es, y FALSE si ya es un Pokémon. Se usa de la siguiente manera:
$Trainer.party[0].egg?
Esto verifica si la primera entidad del equipo del jugador es un huevo o no.
Creación de un Huevo
Dado que un huevo es exactamente lo mismo que un Pokémon (salvo por la variable mencionada), un huevo se genera exactamente de la misma manera en la que se crea un Pokémon (con solo dos diferencias: eggsteps
se establece en un valor mayor a cero, y el apodo del huevo es "Huevo"). El nivel del nuevo es establecido automáticamente al indicado por la variable EGGINITIALLEVEL
(definida en la sección Settings).
La generación del huevo es realizada en el script PokemonUtilities, en la definición de Kernel.pbGenerateEgg
, este código también agrega el huevo en el último lugar disponible del equipo del jugador, si es posible. Si el equipo del jugador está completo, no pasa nada.
Las características del Pokémon (como la naturaleza, el género, los IVs, el juego de movimientos) son definidas cuando el huevo es generado, no cuando eclosiona. Por esta razón, un huevo puede ser modificado luego de ser obtenido, como se explica abajo.
Lo mencionado arriba es válido solamente cuando el huevo es generado de la nada (por ejemplo, cuando un PNJ entrega un huevo al jugador). Las cosas son un poco diferente si el huevo ha sido creado en la Guardería. En este caso, se utiliza un código diferente. Vea el artículo Crianza para obtener más detalles.
Sprite e icono de un huevo
Los sprites y los iconos de un huevo se ubican en las mismas carpetas de los Pokémon normales ("Graphics/Battlers" y "Graphics/Icons" respectivamente). El sprite e icono de un huevo por defecto tienen los siguientes nombres:
- egg.png - El sprite.
- iconEgg.png - El icono, dos imágenes de 64x64 lado a lado al igual que los iconos de todos los demás Pokémon.
Essentials permite utilizar sprites e iconos de huevos específicos para una especie. Para hacer esto, se usan los siguientes nombres para los archivos de imágenes:
- XXXegg.png - El sprite, donde "XXX" es el nombre interno de la especie o su numero de ID formateado a 3 dígitos.
- XXXeggCracks.png - Los gráficos de quiebre que se enciman al sprite del huevo cuando está eclosionando, donde "XXX" es el nombre interno de la especie o su numero de ID formateado a 3 dígitos.
- iconXXXegg.png - El icono, donde "XXX" tiene el mismo significado que en el punto anterior.
Un ejemplo de una especie con unos gráficos personalizados para los huevos que actualmente se encuentra en Essentials es Manaphy. Si una especie no tiene sus propios gráficos, se utilizan las de por defecto.
Entregar un huevo al jugador
Para generar un huevo de un Pokémon, se utiliza la clase Kernel.pbGenerateEgg(:PIKACHU)
. Este código agregará un huevo en la última posición disponible del equipo del jugador (si el equipo está completo, no hace nada), el cual eclosionará en el Pokémon indicado.
Kernel.pbGenerateEgg
no muestra ningún mensaje. Devuelve TRUE si el huevo ha sido agregado, o FALSE si no había espacio en el equipo del jugador. Se necesitará usar esto también:
@>Conditional Branch: Script: Kernel.pbGenerateEgg(:TOGEPI) @>Text: Has recibido un huevo Pokémon. : Else @>Text: No tienes espacio para llevar el huevo... : Branch End
Este ejemplo crea y agrega un huevo de Togepi. Observa los dos puntos antes del nombre interno de la especie.
Este método permite un segundo argumento, se trata de una frase que sobrescribe el nombre del mapa donde se obtuvo el huevo. Esta frase es mostrada en la pantalla de datos del huevo y del Pokémon eclosionado. Por ejemplo:
Kernel.pbGenerateEgg(:TOGEPI,_I("Sr. Pokémon"))
Personalización de un huevo
Dado que la única diferencia entre un Pokémon y un huevo es una sola variable (eggsteps
), el Pokémon que eclosionará del huevo puede ser modificado de las mismas formas en que se puede modificar un Pokémon.
La forma más fácil de personalizas un huevo es dándole un huevo predefinido al jugador mediante Kernel.pbGenerateEgg(poke)
(donde poke
es el huevo predefinido), y luego personalizarlo. Esto se debe a que Kernel.pbGenerateEgg
solamente puede agregar un huevo al final del equipo del jugador (es decir, no será enviado al PC) si no hay espacio), por lo tanto, el huevo recién obtenido estará siempre en un lugar fácilmente accesible para su personalización.
En primer lugar, se agrega el huevo como se mencionó antes. Luego, inmediatamente después de agregarlo (por ejemplo, en una Bifurcación Condicional), se agregarán algunas líneas de código al evento, por ejemplo:
egg=$Trainer.lastParty egg.makeShiny egg.makeFemale egg.pbLearnMove(:HYPERBEAM) egg.calcStats
La primera línea encuentra el huevo recientemente creado (que estará siempre en último lugar del equipo del jugador) y lo etiqueta como "egg
". Se podrían usar otros nombre como "p
" o "salchicha
" con la misma facilidad, solo es una forma de identificarlo en esta parte del código. Esta línea es necesaria.
La última línea solamente es necesaria si se ha cambiado algo que pueda afectar a las características del Pokémon (por ejemplo, la naturaleza o la forma). De todos modos, no causará problemas incluirla siempre de todas formas.
Las líneas del medio son las modificaciones que se hacen sobre el huevo. En este ejemplo, el huevo se ha puesto como variocolor, hembra y conocerá el movimiento Hiper Rayo. Vea el artículo Edición de un Pokémon para obtener una lista de las modificaciones posibles.
Pantalla de datos del huevo
Los huevos tienen una pantalla de datos diferente a la de los Pokémon. En primer lugar, está compuesta por una sola página, y en segundo lugar, casi toda la información es ocultada y remplazada por un mensaje que indica dónde y cuándo ha sido obtenido el huevo y qué tan pronto eclosionará.
El contenido de la pantalla de datos se encuentra en el script PokemonSummary, en la definición de drawPageOneEgg
.
Eclosión de un huevo
Un huevo necesita una cierta cantidad de pasos que debe dar el jugador antes de eclosionar (este número depende de cada especie, consulte la propiedad StepsToHatch
de las especies en el artículo Pokémon). Cada paso que hace el jugador reduce la variable eggsteps
del huevo en 1. Cuando esta variable llega a cero, el huevo eclosionará. El código que hace todo esto se encuentra al final del script PokemonEggHatching.
Hay una animación que se reproduce cuando un huevo eclosiona, que muestra cómo el huevo se rompe. Esta animación también se encuentra en el script PokemonEggHatching.
Después de romper el huevo, el jugador tiene la oportunidad de ponerle un apodo al Pokémon.
Un Pokémon recién eclosionado tendrá el nivel indicado en la variable EGGINITIALLEVEL
(en el script Settings). Esta variable puede ser cambiada fácilmente por cualquier otro número (válido).
Algunas habilidades cambia la velocidad en la que eclosiona un huevo. Tanto Cuerpo Llama como Escudo Magma duplican la velocidad en la que la variable eggsteps
es reducida; estas habilidades no son acumulativas.