Xabier2012
Usuario mítico
Entrenador normal
Entendemos por entrenador normal aquel que nos reta cuando entramos en su campo de visión, es decir, un entrenador cualquiera de una ruta cualquiera que anda hacia ti y te reta.
Primero veamos como se configura en AM:
1-El evento en AM será de tipo "gente"
2-Esta casilla siempre activada
3-Todos ponen 03 aquí, aunque si dejas igual no suele pasar nada
4-Tipo de movimiento del minisprite
5-Lógicamente como nuestro minisprite es entrenador, esta casilla la activaremos
6-Distancia a la cual te ve. Si pones 1, te retará cuando estés a un paso de él. Si pones 2, cunado estés a dos pasos de él, y así sucesivamente.
7-Offset de nuestro script compilado.
Una vez tenemos a nuestro minisprite listo, vamos a explicar el código del script.
Durante este tutorial, me oiréis hablar sobre la id_entrenador. Esto es un número que tiene cada entrenador, y el cual es necesario saber para hacer cualquier comando de batalla contra un trainer. Este id se puede ver si abrimos nuestra rom con la herramienta PET.
Como podéis ver, si queremos hacer una batalla con el entrenador EARL, necesitaremos su id que será "2CA".
Bien, ahora veamos un script de un entrenador normal.
Código:
#org 0x160571
trainerbattle 0x0 0x66 0x0 0x81722C7 0x81722F9
msgbox 0x8172315 MSG_NORMAL '"Ssh! You'll scare the bugs away.\n..."
end
'---------
' Strings
'---------
#org 0x1722C7
= Hey! You have POKéMON!\nCome on!\lLet's battle 'em!
#org 0x1722F9
= No!\nCATERPIE can't hack it!
#org 0x172315
= Ssh! You'll scare the bugs away.\nAnother time, okay?
Código:
trainerbattle 0x[tipo de lucha] 0x[id_entrenador] 0x0 0x[mensaje1] 0x[mensaje2]
Entonces un posible código de entrenador sería este:
Código:
#dynamic 0x800000
#org @inicio
trainerbattle 0x0 0x66 0x0 @msg1 @msg2
end
#org @msg1
= ¡Te he visto!
#org @msg2
= ¡Me has ganado!
Pero nos falta algo para acabar, y es el mensaje que se tiene que mostrar cuando vuelves a hablar con él en otro momento. Y esto es simple, solo hay que poner un msgbox normal.
Código:
#dynamic 0x800000
#org @inicio
trainerbattle 0x0 0x66 0x0 @msg1 @msg2
msgbox @texto 0x6
end
#org @msg1
= ¡Te he visto!
#org @msg2
= ¡Me has ganado!
#org @texto
= No volveré a combatir contra ti\nnunca más.
Entrenadores de evento
Nos referimos con entrenadores de evento a aquellos contra los que se lucha mediante un script de la historia, o que no queremos que nos rete con la mirada. Estos son por ejemplo tu rival, donde primero se ejecuta una parte del código, luego luchamos, y por último se ejecuta la última parte del código. Con este tipo de entrenador nos aseguramos de que se ejecutará el código que se ponga después del comando trainerbattle, ya que con lo visto anteriormente después de la batalla no se ejecutaría más código.
La diferencia con lo anterior es mínima, solo cambia el tipo el tipo de lucha y la cantidad de mensajes.
Código:
*Código antes de luchar*
trainerbattle 0x3 0x66 0x0 @msg1
*Código después de luchar*
Seguir aunque pierdas
Para los trainers de evento, al menos en Fire Red, podemos hacer que no perdamos y continuemos el script aunque nos derroten.
Simplemente el tipo de lucha y el tercer número que poníamos por defecto hay que cambiarlo así:
Código:
trainerbattle 0x9 0x66 0x3 @msg1 @msg2
OJO Este tipo de batalla está hecho para que el primer combate contra el rival, donde el profesor Oak te da instrucciones sobre combatir. Y siempre que utilicéis esto saltará Oak dándote consejos. Si quireis quitar esos mensajes, vuestro hilo es este: Quitar mensajes de Oak
Líder de GYM
Los líderes tienen su propio tipo de batalla, y aunque no me gusto mucho y no es estrictamente necesario utilizarlo (ya que haciendo un entrenador de evento y luego activando la medalla con setflag se puede hacer perfectamente), es mi deber explicároslo.
Código:
trainerbattle 0x1 0x66 0x0 @msg1 @msg2 @seguir
Código:
#dynamic 0x700000
#org @inicio
trainerbattle 0x1 0x66 0x0 @msg1 @msg2 @seguir
msgbox @texto 0x6
waitmsg
end
#org @seguir
msgbox @texto2 0x6
waitmsg
giveitem 0x121 0x1 MSG_OBTAIN
setflag 0x820
end
#org @msg1
= Hoy líder. Luchemos
#org @msg2
= He perdido...
#org @texto1
= ¿Te ha servido mi MT?
#org @texto2
= Ahora te daré la MT1 y también una\nmedalla
Otros comandos
Existen algunos comandos útiles en cuanto a luchar contra entrenadores se refiere, y os voy a explicar dos:
Código:
settrainerflag 0xID_Entrenador
Código:
cleartrainerflag 0xID_Entrenador
Lucha contra pokémon salvajes
Esto es un código sencillo que no tiene mucha complicación:
Código:
wildbattle 0xNúmero de pokemon en pokédex 0xnivel 0xobjeto equipado
Código:
wildbattle 0x1 0x5 0x0
@Tervaxx @Toni @rdoble @AwesomeCS @RafaSc3 @LluviaElemental @AlexanderWWE @Axnez @ZeonElMagnífico @jfem
Última edición: