Como sabréis en los juegos de Pokémon normalmente hay una serie de Pokémon con los que puedes combatir interactuando con ellos directamente, normalmente suelen ser legendarios o Pokémon raros como el Gyarados rojo de Pokémon O/P/C o en sus remakes.
Si usáis Essentials probablemente ya conozcais el siguiente script:
Este script inicia una batalla con un Pokémon al nivel que le digamos, ¿pero y si queremos hacer que el Pokémon sea shiny? ¿o que tenga unos ataques en concreto?
Interceptando al Pokémon salvaje
Lo primero que tendremos que hacer será crear un nuevo script, lo podremos llamar como queramos pero siempre habrá que crearlo encima del script "main".
Una vez lo creemos copiamos y pegamos este código:
Este código será el código "base" para crear nuevas condiciones, lo que hace es "interceptar" el momento en el que se crean los Pokémon salvajes para permitirnos editarlo al vuelo cuando se genera.
Añadiendo nuevas condiciones
Para crear nuevas condiciones utilizaremos los interruptores de forma que podemos hacer que el Pokémon que se genere sea especial según el interruptor que activemos (por ejemplo, podríamos hacer que cuando el interruptor número 60 esté activado el Pokémon salvaje sea shiny).
Tened en cuenta que las condiciones que vamos a crear afentan a todos los Pokémon salvajes por lo que para usarlo para un Pokémon de evento específico tendríamos que activar el interruptor, llamar al script pbWildBattle y luego desactivar el interruptor.
Ahora que está todo explicado podemos empezar a crear las condiciones, abrimos el script que creamos antes y justo debajo de "# Condiciones" añadimos esto:
Esto hará que podamos modificar el Pokémon de una forma específica solo cuando el interruptor 60 esté activado, por supuesto podéis el número del interruptor.
Ahora lo único que nos falta es modificar el Pokémon, para eso tendremos que usar las funciones del objeto (o sea, de la clase que define lo que es un Pokémon en el código del juego).
Si no tienes ni idea de lo que hablo puedes usar las siguientes funciones, que normalmente son las más típicas:
Hacer un Pokémon shiny
Darle Pokerus al Pokémon
Le da un objeto al Pokémon, podemos usar la ID del objeto o el nombre interno ("
OTION", por ejemplo).
Cambia los IVs del Pokémon salvaje
Tendremos que cambiar "N" por el número del IV que queramos, los PS sería 0, ataque sería 1, defensa sería 2, velocidad sería 3, ataque especial sería 4 y defensa especial sería 5.
Aprende un nuevo movimiento, si no hay espacio para otro sustituye al primero, al igual que con el objeto podremos usar la ID o el nombre interno.
Elimina TODOS los movimientos del Pokémon, muy útil si queréis usar pbLearnMove sin preocupaciones.
Ahora simplemente añadimos lo que queramos debajo de "# Condición aquí", por ejemplo esto haría que el Pokémon fuese shiny, llevase una poción equipada y tuviese los IVs perfectos.
Finalmente si queréis añadir más condiciones es tan fácil como copiar y pegar el código del interruptor.
Y este sería el resultado final:
Si usáis Essentials probablemente ya conozcais el siguiente script:
Código:
pbWildBattle(POKEMON, NIVEL)
Este script inicia una batalla con un Pokémon al nivel que le digamos, ¿pero y si queremos hacer que el Pokémon sea shiny? ¿o que tenga unos ataques en concreto?
Interceptando al Pokémon salvaje
Lo primero que tendremos que hacer será crear un nuevo script, lo podremos llamar como queramos pero siempre habrá que crearlo encima del script "main".
Una vez lo creemos copiamos y pegamos este código:
Código:
Events.onWildPokemonCreate+=proc {|sender,e|
pokemon=e[0]
# Condiciones
}
Este código será el código "base" para crear nuevas condiciones, lo que hace es "interceptar" el momento en el que se crean los Pokémon salvajes para permitirnos editarlo al vuelo cuando se genera.
Añadiendo nuevas condiciones
Para crear nuevas condiciones utilizaremos los interruptores de forma que podemos hacer que el Pokémon que se genere sea especial según el interruptor que activemos (por ejemplo, podríamos hacer que cuando el interruptor número 60 esté activado el Pokémon salvaje sea shiny).
Tened en cuenta que las condiciones que vamos a crear afentan a todos los Pokémon salvajes por lo que para usarlo para un Pokémon de evento específico tendríamos que activar el interruptor, llamar al script pbWildBattle y luego desactivar el interruptor.

Ahora que está todo explicado podemos empezar a crear las condiciones, abrimos el script que creamos antes y justo debajo de "# Condiciones" añadimos esto:
Código:
if $game_switches[60]
# Condición aquí
end
Esto hará que podamos modificar el Pokémon de una forma específica solo cuando el interruptor 60 esté activado, por supuesto podéis el número del interruptor.
Ahora lo único que nos falta es modificar el Pokémon, para eso tendremos que usar las funciones del objeto (o sea, de la clase que define lo que es un Pokémon en el código del juego).
Si no tienes ni idea de lo que hablo puedes usar las siguientes funciones, que normalmente son las más típicas:
Hacer un Pokémon shiny
Código:
pokemon.makeShiny
Darle Pokerus al Pokémon
Código:
pokemon.givePokerus
Le da un objeto al Pokémon, podemos usar la ID del objeto o el nombre interno ("
Código:
pokemon.setItem(OBJETO)
Cambia los IVs del Pokémon salvaje
Tendremos que cambiar "N" por el número del IV que queramos, los PS sería 0, ataque sería 1, defensa sería 2, velocidad sería 3, ataque especial sería 4 y defensa especial sería 5.
Código:
pokemon.iv[N] = VALOR
Aprende un nuevo movimiento, si no hay espacio para otro sustituye al primero, al igual que con el objeto podremos usar la ID o el nombre interno.
Código:
pokemon.pbLearnMove(MOV)
Elimina TODOS los movimientos del Pokémon, muy útil si queréis usar pbLearnMove sin preocupaciones.
Código:
pokemon.pbDeleteAllMoves
Ahora simplemente añadimos lo que queramos debajo de "# Condición aquí", por ejemplo esto haría que el Pokémon fuese shiny, llevase una poción equipada y tuviese los IVs perfectos.
Código:
Events.onWildPokemonCreate+=proc {|sender,e|
pokemon=e[0]
# Condiciones
if $game_switches[60]
# Condición aquí
pokemon.makeShiny
pokemon.setItem(:POTION)
pokemon.iv[0] = 31
pokemon.iv[1] = 31
pokemon.iv[2] = 31
pokemon.iv[3] = 31
pokemon.iv[4] = 31
pokemon.iv[5] = 31
end
}
Finalmente si queréis añadir más condiciones es tan fácil como copiar y pegar el código del interruptor.
Código:
Events.onWildPokemonCreate+=proc {|sender,e|
pokemon=e[0]
# Condiciones
if $game_switches[60]
# Condición aquí
end
if $game_switches[61]
# Condición aquí
end
}
Y este sería el resultado final:

Última edición por un moderador: