13700-\[RPGXP]_Personajes_especiales.
#0
Rafa 0
Tutorial válido sólo para Pokémon Essentials

¿Qué son los personajes especiales?
Los personajes especiales son aquellos que te ayudan en un aventura de una forma secundaria, un ejemplo puede ser el tutor de movimientos o el inspector de motes.

En este tutorial os enseñaré a crear los personajes especiales que salen en todo juego de Pokémon.

1. Tutor de Movimientos
Nos servirá para enseñar a un Pokémon un movimiento que no puede aprender de ninguna otra forma.

Primero crearemos un evento y le pondremos el gráfico que queramos, a continuación iremos a "Condiciones y Eventos" y allí buscaremos la opción de Scripts (pestaña 4).





Allí vamos a poner este código:

pbMoveTutorChoose(PBMoves::X)

Y sustituimos la X por el nombre del movimiento (en Inglés, sin separaciones y en mayúsculas), por ejemplo, yo voy a enseñar el movimiento "Enfado".

pbMoveTutorChoose(PBMoves::OUTRAGE)

Aceptamos y tendremos algo como esto:





Ahora simplemente vamos a poner lo que queramos que pase si lo aprendemos y lo que queramos que pase por el contrario, por ejemplo, si queremos que nos diga un texto cuando lo aprendamos y otro cuando cancelemos quedaría así:





2. Quita-movimientos
El quita-movimientos, como su nombre indica, quitará un movimiento a nuestro Pokémon.

Es bastante dificil de hacer por evento por lo que he hecho un Script para que sea más fácil, simplemente hay que copiarlo en el Editor de Scripts.


# Script hecho por Rafael-animal para Hoko.
# Créditos por uso.

def pbQuitaMovimientos
pbChoosePokemon(1,3)

if $game_variables[1] < 0
Kernel.pbMessage("Vuelve cuando quieras")
break

else

if pbGetPokemon(1).egg?
Kernel.pbMessage("¡Esto es un Huevo Pokémon!")
break
elsif pbNumMoves(pbGetPokemon(1))==1
Kernel.pbMessage("Este Pokémon sólo conoce un movimiento...")
break
end

Kernel.pbMessage("¿Qué movimiento quieres eliminar?")
pbChooseMove(pbGetPokemon(1),2,4)

if $game_variables[2] < 0
pbChoosePokemon(1,3)

else

if Kernel.pbConfirmMessage(_INTL("¿Estás seguro de que quieres eliminar este movimiento?"))
pbWait(80)
pbDeleteMove(pbGetPokemon(1),pbGet(2))
return true
else
Kernel.pbMessage("Vuelve cuando quieras")
return false
end

break

end
end

end

Una vez copiado, aceptamos y salimos del Editor de Scripts.
Ahora vamos a crear un evento y le pondremos un gráfico cualquiera, en Contenidos de Evento nos iremos a "Llamar Script" (pestaña 3) y pondremos este código:

pbQuitaMovimientos

3. Recordador de Movimientos
El recordador de movimientos recordará un movimiento que nuestro Pokémon había aprendido pero que ya no tiene.

Es bastante dificil de hacer por evento por lo que he hecho un Script para que sea más fácil, simplemente hay que copiarlo en el Editor de Scripts.

def pbRecordadorMovimientos
# Script hecho por Rafael-animal para Hoko.
# Créditos por uso.

if $PokemonBag.pbQuantity(PBItems::HEARTSCALE)>0

if Kernel.pbConfirmMessage("¿!Eso es una Escama Corazón!? ¿Quieres aprender un Movimiento?")
Kernel.pbMessage("¿A qué Pokémon se lo quieres enseñar?")

pbChoosePokemon(1,3,proc{|p|
pbHasRelearnableMove?(p)
},true)

if $game_variables[1] < 0
Kernel.pbMessage("Vuelve cuando quieras")
break

else

if pbGetPokemon(1).egg?
Kernel.pbMessage("¡Esto es un Huevo Pokémon!")
end

if !pbHasRelearnableMove?(pbGetPokemon(1))
Kernel.pbMessage("Lo siento pero no tengo ningún movimiento para enseñar a este Pokémon.")
end

Kernel.pbMessage("¿Qué movimiento quieres aprender?")

if pbRelearnMoveScreen(pbGetPokemon(1))
$PokemonBag.pbDeleteItem(PBItems::HEARTSCALE)
Kernel.pbMessage("Le has entregado una Escama Corazón a cambio de que recuerde un Movimiento.")
Kernel.pbMessage("¡Vuelve cuando quieras!")
end
end

return true

else
Kernel.pbMessage("Vuelve cuando quieras.")

return false
end

else

Kernel.pbMessage("Vuelve con una Escama Corazón.")

end
end

Una vez copiado, aceptamos y salimos del Editor de Scripts.
Ahora vamos a crear un evento y le pondremos un gráfico cualquiera, en Contenidos de Evento nos iremos a "Llamar Script" (pestaña 3) y pondremos este código:

pbRecordadorMovimientos

____________________________________________________

Y como siempre, postead cualquier duda o error ;).