Entrenador Compañero
El sistema de entrenador compañero (partner trainer) permite que un NPC aliado luche junto al jugador en combates dobles. Mientras el compañero esté registrado, todos los combates contra entrenadores y Pokémon salvajes se convertirán en combates dobles automáticamente.
¿Cómo funciona?
Cuando se registra un compañero:
- El compañero aporta sus propios Pokémon al combate (definidos en
trainers.txt). - Todos los combates se convierten en combates dobles.
- El compañero es controlado por la IA, no por el jugador.
- Los Pokémon del compañero se curan automáticamente después de cada combate.
- El compañero permanece activo hasta que sea eliminado con un script.
Registrar un compañero
Usa la función pbRegisterPartner para unir un NPC aliado al grupo del jugador:
# Sintaxis:
pbRegisterPartner(tipo_entrenador, nombre, version)
# Ejemplo: Registrar a Cheryl como compañera
pbRegisterPartner(:POKEMON_RANGER_F, "Cheryl", 0)
| Parámetro | Tipo | Descripción |
|---|---|---|
tipo_entrenador |
Symbol | El tipo de entrenador definido en trainer_types.txt (ej: :POKEMON_RANGER_F).
|
nombre |
String | El nombre del entrenador tal y como aparece en trainers.txt. |
version |
Integer | La versión del entrenador en el PBS (por defecto 0). |
trainers.txt exactamente con el
tipo, nombre y versión que se pasan a la función.
Eliminar un compañero
Para que el compañero deje de acompañar al jugador, usa:
# Eliminar al compañero actual
pbDeregisterPartner
Esto restaura los combates al modo individual. Es recomendable llamar a esta función cuando el jugador abandone la zona donde necesitaba al compañero.
Definición PBS del compañero
El compañero se define igual que cualquier entrenador en trainers.txt. Ejemplo:
# En trainer_types.txt
[POKEMON_RANGER_F]
Name = Pokémon Ranger
BaseMoney = 60
SkillLevel = 50
# En trainers.txt
[POKEMON_RANGER_F,Cheryl,0]
LoseText = No puede ser...
Pokemon = CHANSEY,30
Moves = EGGBOMB,SOFTBOILED,REFRESH,MINIMIZE
Item = LEFTOVERS
Nature = BOLD
IVs = 25,25,25,25,25,25
Pokemon = BLISSEY,32
Moves = FLAMETHROWER,ICEBEAM,THUNDERBOLT,SOFTBOILED
Item = LEFTOVERS
Nature = CALM
IVs = 25,25,25,25,25,25
Ejemplo completo: evento con compañero
Este ejemplo muestra cómo crear un evento donde Cheryl se une al jugador en el Bosque Siniestro y se va al salir:
Evento de encuentro (entrada del bosque)
# ◆ Mensaje: \bCheryl\b: ¡Discúlpa! ¿Podrías ayudarme a
# cruzar este bosque? Me dan miedo los Pokémon
# salvajes de aquí...
# ◆ Show Choices: [Sí, claro], [No puedo ahora]
# ◆ When [Sí, claro]:
# ◆ Mensaje: \bCheryl\b: ¡Muchas gracias! Lucharé a tu lado.
# ◆ Script: pbRegisterPartner(:POKEMON_RANGER_F, "Cheryl", 0)
# ◆ Change Player Followers (se puede añadir un NPC seguidor)
# ◆ Self Switch A = ON
# ◆ When [No puedo ahora]:
# ◆ Mensaje: \bCheryl\b: Entiendo... te esperaré aquí.
# ◆ Branch End
Evento de despedida (salida del bosque)
# ◆ Conditional Branch: Script: $PokemonGlobal.partner
# ◆ Mensaje: \bCheryl\b: ¡Hemos llegado! Muchas gracias
# por acompañarme. Toma esto como agradecimiento.
# ◆ Script: pbReceiveItem(:SOOTHEBELL)
# ◆ Script: pbDeregisterPartner
# ◆ Mensaje: \bCheryl\b: ¡Hasta la próxima! ¡Buena suerte!
# ◆ Erase Event
# ◆ Branch End
Comprobar si hay un compañero activo
Puedes verificar si el jugador tiene un compañero actualmente registrado:
# Devuelve true si hay un compañero registrado
if $PokemonGlobal.partner
pbMessage("Tienes un compañero de viaje.")
else
pbMessage("Estás viajando solo.")
end
Notas importantes
- Solo puede haber un compañero a la vez. Registrar otro reemplaza al anterior.
- Los Pokémon del compañero no aparecen en el equipo del jugador fuera de combate.
- El compañero no gana experiencia ni sube de nivel durante los combates.
- Si el jugador solo tiene 1 Pokémon y el compañero también, el combate doble funciona con 1 Pokémon de cada lado.
- El sprite del compañero en combate se toma de
Graphics/Trainers/según su tipo de entrenador. - El compañero persiste al guardar y cargar la partida. Asegúrate de eliminarlo cuando ya no sea necesario.