Elegir Inicial
La selección del Pokémon inicial es uno de los momentos más emblemáticos de cualquier juego Pokémon. En Pokémon Essentials, este evento se configura en un mapa dedicado (generalmente el laboratorio del Profesor) y utiliza funciones específicas para ofrecer al jugador la elección clásica entre tres Pokémon.
Función pbChooseStarter
La función principal para la selección de inicial es:
pbChooseStarter
Esta función no se usa directamente en la mayoría de los proyectos. En su lugar, se implementa la selección mediante eventos en RPG Maker XP, usando Poké Balls sobre una mesa.
Configuración del Evento de Elección Triple
El método más común para elegir inicial es crear tres eventos en el mapa del laboratorio, cada uno representando una Poké Ball. La estructura típica de cada evento es:
Evento para cada Poké Ball
# Página 1 del evento (antes de elegir)
# Condición: Switch "Inicial Elegido" está OFF
pbMessage("¡Hay una Poké Ball en la mesa!")
pbMessage("Contiene a \\Pokemon[BULBASAUR]. ¿Quieres elegirlo?")
# Show Choices: "Sí", "No"
# Si elige "Sí":
pbAddPokemon(:BULBASAUR, 5)
$game_switches[SWITCH_INICIAL_ELEGIDO] = true
$game_variables[VAR_INICIAL] = 1 # 1=Planta, 2=Fuego, 3=Agua
pbMessage("¡Has recibido a \\Pokemon[BULBASAUR]!")
# Página 2 del evento (después de elegir)
# Condición: Switch "Inicial Elegido" está ON
# Gráfico: vacío (la Poké Ball ya no está)
Repite esta estructura para los tres iniciales, cambiando la especie y el valor de la variable.
Ejemplo completo con tres iniciales
| Evento | Pokémon | Variable | Tipo |
|---|---|---|---|
| Poké Ball 1 | BULBASAUR (Nv. 5) | $game_variables[7] = 1 | Planta |
| Poké Ball 2 | CHARMANDER (Nv. 5) | $game_variables[7] = 2 | Fuego |
| Poké Ball 3 | SQUIRTLE (Nv. 5) | $game_variables[7] = 3 | Agua |
Rival Elige el Inicial Opuesto
Después de que el jugador elige su inicial, el rival debe elegir el Pokémon con ventaja de tipo. Esto se implementa usando la variable que guardaste:
# En el evento del rival, después de la elección del jugador
# Usar "Conditional Branch" con la variable del inicial
# Si el jugador eligió Planta (variable = 1):
# El rival elige Fuego → $game_variables[VAR_RIVAL_STARTER] = 2
# Si el jugador eligió Fuego (variable = 2):
# El rival elige Agua → $game_variables[VAR_RIVAL_STARTER] = 3
# Si el jugador eligió Agua (variable = 3):
# El rival elige Planta → $game_variables[VAR_RIVAL_STARTER] = 1
Para que el rival use el inicial correcto en combate, configura su equipo según la variable:
# En el evento de combate del rival
if $game_variables[7] == 1
# Jugador tiene Planta → Rival tiene Fuego
pbTrainerBattle(:RIVAL, "Azul", 0, nil, false, 0)
elsif $game_variables[7] == 2
# Jugador tiene Fuego → Rival tiene Agua
pbTrainerBattle(:RIVAL, "Azul", 0, nil, false, 1)
else
# Jugador tiene Agua → Rival tiene Planta
pbTrainerBattle(:RIVAL, "Azul", 0, nil, false, 2)
end
Cada versión del rival (0, 1, 2) tiene un equipo diferente definido en el PBS trainers.txt.
Configurar Variables para la Elección del Rival
Las variables que controlan la elección se definen de la siguiente manera:
- Variable del inicial del jugador: Guarda un número (1, 2 o 3) que representa la elección del jugador.
- Variable del inicial del rival: Se calcula automáticamente o se asigna según la elección del jugador.
- Switch de inicial elegido: Se activa cuando el jugador ha hecho su elección, para que las Poké Balls restantes desaparezcan.
Define estas variables y switches en RPG Maker XP (menú Database > System).
Selección Personalizada (Más de 3 Opciones)
Si quieres ofrecer más de tres iniciales, puedes hacerlo de varias formas:
Método 1: Más Poké Balls en la mesa
Simplemente añade más eventos de Poké Ball siguiendo el mismo patrón, aumentando las opciones de la variable:
# Ejemplo con 6 iniciales
# Variable = 1: Bulbasaur Variable = 4: Chikorita
# Variable = 2: Charmander Variable = 5: Cyndaquil
# Variable = 3: Squirtle Variable = 6: Totodile
Método 2: Menú de selección por script
Para una selección más elegante con muchas opciones, puedes usar un script personalizado:
# Selección de inicial mediante menú
opciones = ["Bulbasaur", "Charmander", "Squirtle",
"Chikorita", "Cyndaquil", "Totodile", "Cancelar"]
eleccion = pbMessage("Elige tu Pokémon inicial.", opciones, opciones.length)
especies = [:BULBASAUR, :CHARMANDER, :SQUIRTLE,
:CHIKORITA, :CYNDAQUIL, :TOTODILE]
if eleccion < especies.length
pbAddPokemon(especies[eleccion], 5)
$game_variables[7] = eleccion + 1
$game_switches[SWITCH_INICIAL_ELEGIDO] = true
end
Método 3: Selección aleatoria
Para un toque de sorpresa, puedes dar un inicial aleatorio:
# Inicial aleatorio
especies = [:BULBASAUR, :CHARMANDER, :SQUIRTLE]
aleatorio = rand(especies.length)
pbAddPokemon(especies[aleatorio], 5)
$game_variables[7] = aleatorio + 1
pbMessage("¡Has recibido a \\Pokemon[#{especies[aleatorio]}]!")
trainers.txt.