Encuentros Salvajes

Los encuentros salvajes determinan qué Pokémon aparecen en cada mapa, bajo qué condiciones y con qué frecuencia. Se definen en el archivo PBS encounters.txt y el juego los gestiona automáticamente al caminar por hierba, surfear, pescar, etc.

Archivo encounters.txt

El archivo PBS/encounters.txt contiene las tablas de encuentro de cada mapa. Cada entrada comienza con el número de mapa entre corchetes, seguido de las densidades de encuentro y luego los tipos de encuentro con sus Pokémon.

Formato básico

[005] # Ruta 1
25,10,10
Land,21
  RATTATA,10,13
  PIDGEY,10,13
  SENTRET,12,14
  HOOTHOOT,10,12
  CATERPIE,10
  WEEDLE,10
  RATTATA,14,16
  PIDGEY,14,16
  SENTRET,14
  HOOTHOOT,14
  CATERPIE,12
  WEEDLE,12
Water,10
  POLIWAG,15,25
  POLIWHIRL,20,25
  PSYDUCK,15,20
OldRod,5
  MAGIKARP,5,15
  POLIWAG,5,10
GoodRod,5
  MAGIKARP,15,25
  POLIWAG,15,20
  GOLDEEN,15,20
SuperRod,5
  MAGIKARP,25,35
  POLIWAG,25,30
  POLIWHIRL,25,35
  GOLDEEN,25,30
  SEAKING,30,35

Estructura del archivo

Tipos de Encuentro

Cada tipo de encuentro tiene un número específico de slots (posiciones). Los slots determinan la probabilidad de aparición de cada Pokémon.

Tipo Descripción Slots Activación
Land Hierba alta (cualquier momento) 12 Caminar por hierba
LandDay Hierba alta solo de día 12 Caminar por hierba (día)
LandNight Hierba alta solo de noche 12 Caminar por hierba (noche)
LandMorning Hierba alta solo por la mañana 12 Caminar por hierba (mañana)
Cave Interior de cuevas 12 Caminar en cueva
Water Superficie del agua (Surf) 5 Surfear
OldRod Pesca con Caña Vieja 2 Usar Caña Vieja
GoodRod Pesca con Caña Buena 3 Usar Caña Buena
SuperRod Pesca con Supercaña 5 Usar Supercaña
RockSmash Romper rocas 2 Usar Golpe Roca
HeadbuttLow Cabezazo en árboles (baja probabilidad) 3 Usar Cabezazo
HeadbuttHigh Cabezazo en árboles (alta probabilidad) 3 Usar Cabezazo
BugContest Concurso de Insectos 12 Durante concurso

Probabilidad por slot (Land/Cave - 12 slots)

Los 12 slots de encuentro tienen probabilidades fijas:

Slot 1 2 3 4 5 6 7 8 9 10 11 12
% 20 20 10 10 10 10 5 5 4 4 1 1

Los dos primeros slots son los más comunes (20% cada uno). Los dos últimos son los más raros (1% cada uno), ideales para Pokémon especiales.

Probabilidad por slot (Water - 5 slots)

Slot 1 2 3 4 5
% 60 30 5 4 1

Densidad y Frecuencia

La línea de densidades controla con qué frecuencia ocurren los encuentros:

25,10,10

Un valor de 0 no desactiva los encuentros, simplemente los hace muy poco frecuentes. Si no quieres encuentros de algún tipo, simplemente no incluyas ese tipo en la tabla.

Conteo de pasos

El juego calcula internamente un contador de pasos. Cada paso que el jugador da en hierba, cueva o agua reduce el contador. Cuando llega a cero, ocurre un encuentro y el contador se reinicia. La densidad afecta el valor inicial del contador: densidades altas significan contadores iniciales bajos (más encuentros).

Mecánica de Repelentes

Los Repelentes (Repel, Super Repel y Max Repel) evitan encuentros con Pokémon salvajes cuyo nivel sea menor al del primer Pokémon del equipo del jugador.

Objeto Pasos de duración
Repelente (Repel) 100
Superrepelente (Super Repel) 200
Máx. Repelente (Max Repel) 250

Cuando un Repelente se agota, el juego pregunta al jugador si quiere usar otro (si tiene más en la mochila). Los Pokémon con nivel mayor o igual al del primer Pokémon del equipo sí pueden aparecer incluso con Repelente activo.

Configuración en Settings

# En Settings
REPEL_POKEMON_BY_LEVEL = true  # Si es false, el Repelente bloquea TODOS los encuentros

Encuentros Salvajes por Script

Puedes forzar un encuentro salvaje desde un evento usando pbWildBattle:

# Encuentro simple
pbWildBattle(:SNORLAX, 30)

# Con resultado capturado
if pbWildBattle(:SNORLAX, 30)
  # El jugador ganó o capturó al Pokémon
else
  # El jugador perdió o huyó
end

# Encuentro doble salvaje
pbDoubleWildBattle(:TAUROS, 25, :MILTANK, 25)

# Encuentro con Pokémon específico (shininess, forma, etc.)
poke = Pokemon.new(:GYARADOS, 30)
poke.shiny = true
poke.form = 0
pbWildBattleCore(poke)

Parámetros de pbWildBattle

Parámetro Descripción
species Símbolo de la especie (ej: :PIKACHU)
level Nivel del Pokémon salvaje
outcomeVar (Opcional) Variable del juego donde guardar el resultado
canRun (Opcional) Si el jugador puede huir (por defecto true)
canLose (Opcional) Si el jugador puede perder sin Game Over (por defecto false)

Valores de resultado

Modificadores de Encuentro

Ciertas habilidades y objetos del primer Pokémon del equipo afectan los encuentros salvajes:

Habilidades que afectan frecuencia

Habilidad Efecto
Iluminación (Illuminate) Duplica la tasa de encuentros salvajes
Intimidación (Intimidate) Reduce en un 50% los encuentros con Pokémon de nivel inferior
Mal Olor (Stench) Reduce en un 50% los encuentros con Pokémon de nivel inferior
Cuerpo Puro (White Smoke) Reduce en un 50% los encuentros con Pokémon de nivel inferior
Ojo Compuesto (Compound Eyes) No afecta la frecuencia, pero aumenta la probabilidad de que los Pokémon salvajes lleven objetos
Absorbe Electricidad (Lightning Rod) Aumenta los encuentros con Pokémon de tipo Eléctrico
Absorbe Fuego (Flash Fire) Aumenta los encuentros con Pokémon de tipo Fuego
Cosecha (Harvest) No afecta frecuencia
Imán (Magnet Pull) Aumenta los encuentros con Pokémon de tipo Acero
Electricidad Estática (Static) Aumenta los encuentros con Pokémon de tipo Eléctrico

Habilidades que afectan nivel

Habilidad Efecto
Presión (Pressure) 50% de probabilidad de forzar que el Pokémon salvaje sea del nivel más alto de su rango
Espíritu Vital (Vital Spirit) Mismo efecto que Presión
Entusiasmo (Hustle) Mismo efecto que Presión

Habilidades que afectan género

Habilidad Efecto
Ritmo Propio (Own Tempo) Aumenta la probabilidad de encontrar Pokémon del género opuesto
Adorable (Cute Charm) 66% de probabilidad de que el Pokémon salvaje sea del género opuesto al del Pokémon con esta habilidad

Objetos que afectan encuentros

Objeto Efecto
Incienso Puro (Pure Incense) Reduce la tasa de encuentros (llevado por el primer Pokémon)
Colonia Pura (Cleanse Tag) Reduce la tasa de encuentros (llevado por el primer Pokémon)

Encuentros Estáticos

Los encuentros estáticos son Pokémon que aparecen en un punto fijo del mapa como un evento, no como encuentros aleatorios. Se configuran mediante eventos de RPG Maker.

Ejemplo: Snorlax bloqueando el camino

# En un evento de RPG Maker (Script):
if pbWildBattle(:SNORLAX, 30)
  # El jugador ganó o capturó
  pbSetSelfSwitch("A", true)   # Desactivar el evento
else
  # El jugador perdió o huyó
  pbMessage("El Snorlax sigue bloqueando el camino...")
end

Ejemplo: Pokémon legendario con cinemática

# Preparar el Pokémon con características especiales
poke = Pokemon.new(:SUICUNE, 40)
poke.shiny = false
poke.ability_index = 0
poke.iv = { :HP => 31, :ATTACK => 31, :DEFENSE => 31,
            :SPECIAL_ATTACK => 31, :SPECIAL_DEFENSE => 31, :SPEED => 31 }

# Música de batalla especial
setBattleRule("battleBGM", "Battle Legendary")
setBattleRule("cannotRun")
setBattleRule("canLose")

# Iniciar combate
if pbWildBattleCore(poke) == 4  # 4 = capturado
  pbMessage("\\PN capturó a Suicune.")
  pbSetSelfSwitch("A", true)
elsif pbWildBattleCore(poke) == 1  # 1 = derrotado
  pbMessage("Suicune ha huido...")
  pbSetSelfSwitch("A", true)
end

Encuentro con varios Pokémon salvajes

# Horda de Pokémon (combate doble salvaje)
pbDoubleWildBattle(:PLUSLE, 15, :MINUN, 15)

Encuentros por hora del día

Si defines LandMorning, LandDay y/o LandNight, estos reemplazan a Land durante esas franjas horarias. Si solo defines Land, se usa siempre sin importar la hora.

Tipo Horario
LandMorning 05:00 - 09:59
LandDay 10:00 - 17:59
LandNight 18:00 - 04:59

Si defines algún tipo temporal pero no todos, Land se usa como respaldo para las franjas que no tengan tabla específica.

Consejos y buenas prácticas