Holi. Ya no me queda mucho mas por compartir de momento, asi que hoy iremos con algo sencillo pero que está bien documentar.
El dia de hoy modificaremos a un entrenador totalmente en lo que a contenido In-Game se refiere.
Sin nada mas que decir, empecemos.
Requisitos:
-Leer mi tema de introducción a Pokeruby.
-Editor de texto (yo usaré Notepad++)
Instrucciones:
1) Para empezar, abriremos el archivo Pokeruby\src\data\trainers_en.h con nuestro editor de texto.
Usando Ctrl+F buscaremos el nombre del entrenador a editar. Yo usaré a Calvin, el primero de todos despues del Rival.
La busqueda me llevó a la Linea 4454, donde podemos apreciar lo siguiente:
.trainerClass: La clase de entrenador del NPC.
.encounterMusic_gender: La musica que sonará durante la batalla dependiendo del genero de el NPC.
.trainerPic: El sprite que usará el NPC en batalla.
.trainerName: El nombre que tendrá el NPC en batalla.
.items: Los 4 objetos que podrá usar el entrenador en batalla.
.doubleBattle: Flag que determina si el NPC retará a una batalla doble a el Jugador.
.aiFlags: Nivel de dificultad de la IA (0 a 7).
.partySize: Cantidad de pokémon que tendrá el NPC.
Esto lo quise dejar para lo ultimo porque si.
.partyFlags y .party parecen funcionar en conjunto, y sirven para determinar si los pokémon del NPC tendrán un moveset personalizado o usarán movimientos que tengan en su nivel por defecto.
Explicado todo esto, yo decidí reemplazar a Calvin como mencioné antes.
Cambié su información tal que asi:
Eso significa que a la hora de editar su equipo que será lo siguiente que haremos, tendré que crear una nueva entrada para este segundo pokémon.
2) Y ahora vamos a editar el equipo de nuestro buen Pancho.
Abriremos el archivo Pokeruby\src\data\trainer_parties.h con nuestro editor de texto.
Aquí buscaremos a nuestro entrenador por su nombre, usando Ctrl+F.
Mi busqueda me llevó a la Linea 4265, donde tengo esto:
.iv = Cantidad de IVs que tendrá el pokémon en todos sus stats.
.level = Su nivel.
.species = Cual pokémon será.
Siguiendo las ediciones que hice, modifiqué el equipo de Calvin de la siguiente forma:
^ Como habrán podido notar, tambien hay que modificar la flag para los movesets personalizados aquí.
Por defecto, Calvin tiene la flag "TrainerMonNoItemDefaultMoves", y yo la cambié por "TrainerMonNoItemCustomMoves".
3) C:\cygwin64\cygwin.bat
cd pokeruby
make
Aqui una muestra del resultado:
Y eso es todo.
El dia de hoy modificaremos a un entrenador totalmente en lo que a contenido In-Game se refiere.
Sin nada mas que decir, empecemos.
Requisitos:
-Leer mi tema de introducción a Pokeruby.
-Editor de texto (yo usaré Notepad++)
Instrucciones:
1) Para empezar, abriremos el archivo Pokeruby\src\data\trainers_en.h con nuestro editor de texto.
Usando Ctrl+F buscaremos el nombre del entrenador a editar. Yo usaré a Calvin, el primero de todos despues del Rival.
La busqueda me llevó a la Linea 4454, donde podemos apreciar lo siguiente:
Pasaré a explicar los parametros que yo puedo entender.[TRAINER_CALVIN_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_YOUNGSTER,
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
.trainerPic = TRAINER_PIC_YOUNGSTER,
.trainerName = _("CALVIN"),
.items = {ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE},
.doubleBattle = FALSE,
.aiFlags = 0x1,
.partySize = 1,
.party = {.NoItemDefaultMoves = gTrainerParty_Calvin1 }
},
.trainerClass: La clase de entrenador del NPC.
.encounterMusic_gender: La musica que sonará durante la batalla dependiendo del genero de el NPC.
.trainerPic: El sprite que usará el NPC en batalla.
.trainerName: El nombre que tendrá el NPC en batalla.
.items: Los 4 objetos que podrá usar el entrenador en batalla.
.doubleBattle: Flag que determina si el NPC retará a una batalla doble a el Jugador.
.aiFlags: Nivel de dificultad de la IA (0 a 7).
.partySize: Cantidad de pokémon que tendrá el NPC.
Esto lo quise dejar para lo ultimo porque si.
.partyFlags y .party parecen funcionar en conjunto, y sirven para determinar si los pokémon del NPC tendrán un moveset personalizado o usarán movimientos que tengan en su nivel por defecto.
Explicado todo esto, yo decidí reemplazar a Calvin como mencioné antes.
Cambié su información tal que asi:
Como habrán podido notar, yo cambié la cantidad de pokémon a 2.[TRAINER_CALVIN_1] =
{
.partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
.trainerClass = TRAINER_CLASS_RUIN_MANIAC,
.encounterMusic_gender = TRAINER_CLASS_RUIN_MANIAC,
.trainerPic = TRAINER_PIC_RUIN_MANIAC,
.trainerName = _("PANCHO"),
.items = {ITEM_POTION, ITEM_POTION, ITEM_X_ATTACK, ITEM_X_SPEED},
.doubleBattle = FALSE,
.aiFlags = 0x7,
.partySize = 2,
.party = {.NoItemCustomMoves = gTrainerParty_Calvin1 }
},
Eso significa que a la hora de editar su equipo que será lo siguiente que haremos, tendré que crear una nueva entrada para este segundo pokémon.
2) Y ahora vamos a editar el equipo de nuestro buen Pancho.
Abriremos el archivo Pokeruby\src\data\trainer_parties.h con nuestro editor de texto.
Aquí buscaremos a nuestro entrenador por su nombre, usando Ctrl+F.
Mi busqueda me llevó a la Linea 4265, donde tengo esto:
Código:
const struct TrainerMonNoItemDefaultMoves gTrainerParty_Calvin1[] = {
{
.iv = 0,
.level = 5,
.species = SPECIES_ZIGZAGOON
}
};
.level = Su nivel.
.species = Cual pokémon será.
Siguiendo las ediciones que hice, modifiqué el equipo de Calvin de la siguiente forma:
Código:
const struct TrainerMonNoItemCustomMoves gTrainerParty_Calvin1[] = {
{
.iv = 120,
.level = 3,
.species = SPECIES_DIGLETT,
.moves = MOVE_SPLASH, MOVE_GROWL, MOVE_LEER, MOVE_BULLET_SEED
},
{
.iv = 120,
.level = 2,
.species = SPECIES_STANTLER,
.moves = MOVE_ROAR, MOVE_TELEPORT, MOVE_WITHDRAW, MOVE_SWEET_SCENT
}
};
Por defecto, Calvin tiene la flag "TrainerMonNoItemDefaultMoves", y yo la cambié por "TrainerMonNoItemCustomMoves".
3) C:\cygwin64\cygwin.bat
cd pokeruby
make
Aqui una muestra del resultado:
Y eso es todo.