Secciones de Scripts
Esta página explica cómo están organizados los scripts en Pokémon Essentials v21.1, cómo funciona el sistema de carga de scripts y dónde añadir código personalizado de forma segura.
Organización de scripts en RPG Maker XP
En RPG Maker XP, los scripts se organizan en secciones dentro del editor de scripts (accesible con F11). Cada sección tiene un nombre y contiene código Ruby que se ejecuta en orden de arriba a abajo al iniciar el juego.
Sin embargo, Pokémon Essentials v21.1 ya no usa directamente el editor de scripts de RPG Maker XP para la mayor
parte del código. En su lugar, los scripts se almacenan como archivos .rb individuales en la
carpeta Data/Scripts/ del proyecto.
Estructura de scripts principales
Los scripts de Essentials están organizados en carpetas temáticas dentro de Data/Scripts/. La Base de Sky extiende esta estructura con carpetas adicionales:
| Carpeta | Contenido |
|---|---|
000_Essentials setup/ |
Configuración inicial del sistema, carga de módulos |
001_Settings/ |
Constantes de configuración: 002_Settings.rb (Essentials) y 004_Settings_Extra_Base.rb (Sky) |
018_Objects and windows/ |
Ventanas, mensajes, ChoiceImage (012_Messages.rb) |
039_Battle triggering/ |
Inicio de batallas, BATTLE_RULES hash, setBattleRule |
041_Items/ |
Efectos de objetos, PokéRadar, Itemfinder |
046_Trainers and player/ |
Clase Trainer: first_able_pokemon?, give_status_party_pokemon |
048_UI/ |
Pantallas de interfaz: opciones paginadas (020_UI_Options_v22.rb), recordador mejorado (028_Better_Move_Relearner.rb), mostrar especie (034_UI_Mostrar_Especie.rb) |
051_Minigames/ |
Mining, Triple Triad, Voltorb Flip, Slot Machine |
054_Battle Frontier/ |
Battle Tower, Battle Factory: pbBattleChallenge, pbBattleChallengeBattle |
058_Utilities/ |
Utilidades varias, Ruby Standard Library |
060_Debug/ |
Debug menu, Event Reporting, posicionador de sprites |
069_MUI/ |
Modular UI: Enhanced Pokémon UI, Pokedex Data Page, IV/EV Summary (22 archivos) |
099_Main/ |
Script principal que inicia el juego |
Data/Scripts/ con numeración propia (069_MUI, 060_Debug, etc.). La carpeta Plugins/ se reserva para plugins externos que el usuario instale manualmente.
Sistema de plugins y orden de carga
Los plugins se almacenan en la carpeta Plugins/ del proyecto. Cada plugin es una carpeta que
contiene sus propios archivos .rb y un archivo de metadatos.
El orden de carga es el siguiente:
- Scripts base de RPG Maker XP (internos del engine).
- Scripts de Essentials (carpeta
Data/Scripts/) en orden numérico. - Plugins (carpeta
Plugins/) según sus dependencias declaradas.
Cada plugin tiene un archivo meta.txt que define:
Name = Mi Plugin
Version = 1.0.0
Essentials = 21.1
Requires = OtroPlugin,1.0.0
Website = https://ejemplo.com
Credits = Autor
Consulta la página de Plugins para más detalles sobre cómo crear y gestionar plugins.
Dónde añadir scripts personalizados
Hay varias formas recomendadas de añadir código personalizado a tu proyecto:
1. Crear un plugin (recomendado)
La forma más limpia de añadir funcionalidad es creando un plugin propio:
- Crea una carpeta en
Plugins/con el nombre de tu plugin. - Añade un archivo
meta.txtcon la información del plugin. - Crea los archivos
.rbcon tu código.
# Plugins/MiPlugin/meta.txt
Name = MiPlugin
Version = 1.0.0
Essentials = 21.1
Credits = Tu Nombre
# Plugins/MiPlugin/001_mi_script.rb
module MiPlugin
def self.mi_funcion
pbMessage("¡Hola desde mi plugin!")
end
end
2. Usar el editor de scripts de RPG Maker XP
Puedes añadir secciones de script directamente en el editor de scripts (F11), pero es menos recomendable porque:
- Dificulta la actualización de Essentials.
- No se beneficia del sistema de dependencias de plugins.
- Es más propenso a conflictos.
Compatibilidad de scripts
Al añadir scripts personalizados o plugins de terceros, ten en cuenta:
- Versión de Essentials: Asegúrate de que el script sea compatible con la versión 21.1 que usa La Base de Sky.
- Conflictos entre plugins: Dos plugins que modifiquen la misma función pueden ser incompatibles. Revisa las notas de compatibilidad de cada plugin.
- Alias de métodos: Si necesitas modificar un método existente, usa
aliasen lugar de reescribirlo completamente para mantener la compatibilidad.
# Ejemplo de alias seguro para modificar un método existente
class PokemonParty
alias mi_plugin_pbStartScreen pbStartScreen
def pbStartScreen
mi_plugin_pbStartScreen # Llama al método original
# Añade tu código personalizado aquí
pbMessage("Pantalla de equipo abierta.")
end
end
Nunca modifiques los scripts base directamente
Data/Scripts/. Si lo
haces:
- Perderás tus cambios al actualizar Essentials o La Base de Sky.
- Será extremadamente difícil rastrear qué ha cambiado.
- Otros plugins podrían dejar de funcionar.