Metadatos Globales
Los metadatos globales son la configuración a nivel de juego que se define en la sección
global del archivo PBS metadata.txt. A diferencia de los metadatos de mapa (que se definen por cada
mapa individual), los metadatos globales afectan al juego completo: personajes jugables, música predeterminada,
punto de inicio, y otras configuraciones fundamentales. Esta sección corresponde al bloque con ID 0
en el archivo.
Ubicación del archivo
El archivo de metadatos se encuentra en:
PBS/metadata.txt
Este archivo contiene tanto la sección global (ID 0) como las secciones de cada mapa (ID > 0). La sección global siempre debe ser la primera entrada del archivo.
Formato del archivo
La sección global usa el formato estándar de los archivos PBS, con el ID 0:
[000]
Home = 3,5,8,8
PlayerA = POKEMONTRAINER_Red,trchar000,trainer_POKEMONTRAINER_Red,Pokemon_Trainer_Red
PlayerB = POKEMONTRAINER_Leaf,trchar001,trainer_POKEMONTRAINER_Leaf,Pokemon_Trainer_Leaf
WildBattleBGM = Battle wild.ogg
TrainerBattleBGM = Battle trainer.ogg
WildVictoryBGM = Battle victory wild.ogg
TrainerVictoryBGM = Battle victory trainer.ogg
SurfBGM = Surfing.ogg
BicycleBGM = Bicycle.ogg
Propiedades globales
A continuación se detallan todas las propiedades disponibles en la sección global:
Home
Define el punto de inicio del jugador y el punto al que regresa al perder un combate sin Centro Pokémon asignado.
Home = MAP_ID,X,Y,DIRECTION
MAP_ID: ID del mapa donde el jugador inicia el juego.X: coordenada X de inicio.Y: coordenada Y de inicio.DIRECTION: dirección inicial (2=abajo, 4=izquierda, 6=derecha, 8=arriba).
Ejemplo:
Home = 3,5,8,8 # Mapa 3, posición (5,8), mirando arriba
PlayerA, PlayerB, PlayerC, etc.
Define los personajes jugables disponibles. El jugador selecciona uno al inicio del juego. Puedes definir tantos como necesites (PlayerA, PlayerB, PlayerC, PlayerD, etc.).
PlayerA = TRAINER_TYPE,CHARSET,BATTLER,DISPLAY_NAME
TRAINER_TYPE: tipo de entrenador definido entrainer_types.txt.CHARSET: nombre del archivo charset (sprite de mapa) enGraphics/Characters/.BATTLER: nombre del gráfico de batalla enGraphics/Trainers/.DISPLAY_NAME: nombre mostrado como tipo de entrenador (se muestra en la Tarjeta de Entrenador).
Ejemplo con dos personajes:
# Personaje masculino
PlayerA = POKEMONTRAINER_Red,trchar000,trainer_POKEMONTRAINER_Red,Entrenador Pokémon
# Personaje femenino
PlayerB = POKEMONTRAINER_Leaf,trchar001,trainer_POKEMONTRAINER_Leaf,Entrenadora Pokémon
En el PBS de trainer_types.txt, asegúrate de que los tipos de entrenador
POKEMONTRAINER_Red y POKEMONTRAINER_Leaf estén definidos.
WildBattleBGM
Música de fondo que suena durante los combates contra Pokémon salvajes. Se busca en Audio/BGM/.
WildBattleBGM = Battle wild.ogg
TrainerBattleBGM
Música de fondo durante los combates contra entrenadores.
TrainerBattleBGM = Battle trainer.ogg
WildVictoryBGM
Música (o ME, Music Effect) que suena al ganar un combate contra un Pokémon salvaje.
WildVictoryBGM = Battle victory wild.ogg
TrainerVictoryBGM
Música que suena al ganar un combate contra un entrenador.
TrainerVictoryBGM = Battle victory trainer.ogg
SurfBGM
Música que suena mientras el jugador navega por el agua usando Surf. Reemplaza la BGM del mapa actual mientras se está surfeando.
SurfBGM = Surfing.ogg
BicycleBGM
Música que suena mientras el jugador va en bicicleta. Reemplaza la BGM del mapa actual.
BicycleBGM = Bicycle.ogg
Propiedades adicionales
Dependiendo de la versión de Essentials o de La Base de Sky, pueden existir propiedades adicionales:
StartMoney
Dinero inicial del jugador al comenzar una nueva partida.
StartMoney = 3000
StartItemStorage
Objetos que aparecen en el almacenamiento del PC al inicio del juego.
StartItemStorage = POTION,1
TextSkin
Define la skin (apariencia visual) predeterminada de los cuadros de diálogo. El número corresponde al índice en los archivos de windowskin.
TextSkin = 0
Diferencia entre metadatos globales y de mapa
Es importante distinguir entre la sección global y las secciones de mapa:
| Característica | Metadatos Globales (ID 0) | Metadatos de Mapa (ID > 0) |
|---|---|---|
| Alcance | Afecta todo el juego | Afecta solo un mapa específico |
| Home point | ✔ Define el punto de inicio | ✘ |
| Personajes jugador | ✔ Todos los PlayerA/B/C | ✘ |
| BGM de batalla | ✔ BGM predeterminada | ✔ Puede sobreescribir la global |
| Entorno de batalla | ✘ | ✔ BattleBack, entorno visual |
| Tipo de terreno | ✘ | ✔ Outdoor, Cave, etc. |
| Clima | ✘ | ✔ Weather para el mapa |
| Posición en mapa regional | ✘ | ✔ MapPosition |
Si un mapa tiene definida una música de batalla salvaje en sus metadatos, esta sobreescribe la definida globalmente solo mientras el jugador esté en ese mapa.
Agregar un nuevo personaje jugable
Para añadir un tercer personaje jugable, sigue estos pasos:
- Define el tipo de entrenador en
trainer_types.txt:[POKEMONTRAINER_Ethan] Name = Entrenador Pokémon - Coloca el charset del jugador en
Graphics/Characters/con el nombre correspondiente (ej:trchar002.png). - Coloca el gráfico de batalla en
Graphics/Trainers/(ej:trainer_POKEMONTRAINER_Ethan.png). - Añade la línea
PlayerCen la sección global delmetadata.txt:PlayerC = POKEMONTRAINER_Ethan,trchar002,trainer_POKEMONTRAINER_Ethan,Entrenador Pokémon - Compila el juego para que los cambios surtan efecto.
El sistema de selección de personaje al inicio del juego detectará automáticamente los personajes definidos y los mostrará como opciones.
Configurar la música predeterminada
La música configurada en los metadatos globales actúa como valores predeterminados. Puedes cambiar temporalmente la música de batalla con comandos de script:
# Cambiar BGM de batalla salvaje temporalmente
setBattleRule("wildBattleBGM", "Battle special.ogg")
# Cambiar BGM de batalla de entrenador temporalmente
setBattleRule("trainerBattleBGM", "Battle boss.ogg")
# Estos cambios solo afectan al siguiente combate.
# Después del combate, se restaura la BGM global.
Para cambiar la música de forma persistente (por ejemplo, al avanzar en la historia), modifica los valores globales con script:
# Cambiar la música de batalla salvaje global por script
$PokemonGlobal.wildBattleBGM = RPG::AudioFile.new("Battle wild v2.ogg", 100, 100)
# Cambiar la música de surf
$PokemonGlobal.surfBGM = RPG::AudioFile.new("Surfing v2.ogg", 100, 100)
# Restaurar a los valores del PBS
$PokemonGlobal.wildBattleBGM = nil # Vuelve al valor de metadata.txt
Ejemplo completo de sección global
Este es un ejemplo completo y funcional de la sección global en metadata.txt:
[000]
Home = 5,7,10,8
PlayerA = POKEMONTRAINER_Red,trchar000,trainer_POKEMONTRAINER_Red,Entrenador Pokémon
PlayerB = POKEMONTRAINER_Leaf,trchar001,trainer_POKEMONTRAINER_Leaf,Entrenadora Pokémon
WildBattleBGM = Battle wild.ogg
TrainerBattleBGM = Battle trainer.ogg
WildVictoryBGM = Battle victory wild.ogg
TrainerVictoryBGM = Battle victory trainer.ogg
SurfBGM = Surfing.ogg
BicycleBGM = Bicycle.ogg
Acceder a los metadatos por script
Puedes acceder a los metadatos globales desde scripts Ruby con:
# Obtener el objeto de metadatos globales
metadata = GameData::Metadata.get
# Acceder a propiedades específicas
home = metadata.home # [map_id, x, y, direction]
players = metadata.player_A # Datos del jugador A
bgm = metadata.wild_battle_BGM
# Verificar si existe un dato
if metadata.surf_BGM
pbMessage("La BGM de surf está configurada.")
end
Errores comunes
- El juego no inicia: verifica que la propiedad
Homeapunte a un mapa existente con coordenadas válidas. - El personaje no aparece: asegúrate de que los archivos de charset y battler existan en las carpetas correctas y que los nombres coincidan exactamente.
- La música no suena: comprueba que el archivo de audio exista en
Audio/BGM/y que el nombre (incluida la extensión) coincida. - Formato del PBS incorrecto: la sección global debe tener el ID
[000]y ser la primera del archivo. No uses espacios en los nombres de archivo con caracteres especiales. - Selección de personaje no funciona: el evento de selección de personaje al inicio del juego debe estar correctamente configurado para leer los PlayerA/B/C definidos.
Relación con otros archivos PBS
El archivo metadata.txt trabaja en conjunto con otros archivos PBS:
trainer_types.txt: los tipos de entrenador referenciados en PlayerA/B/C deben existir aquí.map_metadata.txt: en versiones recientes de Essentials, los metadatos de mapas se han separado a su propio archivo. La sección global permanece enmetadata.txt.town_map.txt: el mapa regional que complementa las posiciones definidas en los metadatos de mapa.