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
- [005] — Número del mapa en RPG Maker (ID del mapa).
- 25,10,10 — Densidades de encuentro: hierba, cueva y agua respectivamente. Valores más altos = encuentros más frecuentes.
- Land,21 — Tipo de encuentro seguido del nivel base (opcional). Los Pokémon se listan debajo con su especie y rango de nivel.
- Cada Pokémon tiene formato:
ESPECIE,nivelMin,nivelMax(si solo hay un nivel, min = max).
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
- Primer valor (25) — Densidad de hierba/tierra. Valores típicos: 20-30.
- Segundo valor (10) — Densidad de cueva.
- Tercer valor (10) — Densidad de agua (Surf).
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
- 1 — Victoria (el jugador derrotó al Pokémon salvaje)
- 2 — Derrota (el jugador perdió, solo si
canLose = true) - 3 — Huida (el jugador huyó del combate)
- 4 — Captura (el jugador capturó al Pokémon)
- 5 — Empate
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
- Coloca los Pokémon más comunes en los primeros slots (1-2) y los raros en los últimos (11-12).
- Usa niveles progresivos entre rutas para dar sensación de avance.
- No olvides incluir encuentros de agua si tu mapa tiene zonas surfeables.
- Puedes tener diferentes versiones del mapa (usando
[005,1],[005,2], etc.) con distintas tablas de encuentro para cada versión. - Los encuentros se pueden probar fácilmente con el menú Debug > Encounter Test.