Mensajes

El sistema de mensajes de Pokémon Essentials permite mostrar texto al jugador de diversas formas: diálogos, confirmaciones, entradas de texto y más. Esta página cubre las funciones principales y los códigos de formato disponibles.

Sistema de mensajes

Las funciones principales para mostrar mensajes son:

pbMessage

Muestra un mensaje de texto en la ventana de diálogo. El jugador debe pulsar el botón de acción para avanzar.

pbMessage("¡Hola! Bienvenido al mundo Pokémon.")
pbMessage("Esta es la segunda línea del diálogo.")

pbConfirmMessage

Muestra un mensaje con una pregunta de Sí/No. Devuelve true si el jugador elige "Sí" y false si elige "No".

if pbConfirmMessage("¿Quieres guardar la partida?")
  pbMessage("Guardando...")
  pbSave
else
  pbMessage("No se ha guardado.")
end

Códigos de formato de texto

Dentro de los mensajes puedes usar códigos especiales para insertar contenido dinámico o cambiar la apariencia del texto:

Código Descripción
\n Salto de línea dentro del mensaje
\v[X] Muestra el valor de la variable X del juego
\pn Nombre del jugador (minúsculas)
\PN Nombre del jugador (mayúsculas)
\Pokemon Muestra "Pokémon" con la é correcta
\b Cambia el color del texto a azul
\r Cambia el color del texto a rojo
\1 Color del texto del jugador (azul por defecto)
\2 Color del texto del rival/NPC (rojo por defecto)
\G Muestra la ventana de dinero del jugador
\cn Muestra el nombre del Pokémon número N del equipo
\w[X] Cambia la skin de la ventana de mensaje
\f[NAME] Muestra el gráfico de cara (face) del personaje
\ts[] Cambia la velocidad del texto
# Ejemplo con códigos de formato
pbMessage("¡Hola, \\PN! Tu \\Pokemon está listo.\\nVamos a la aventura.")
pbMessage("\\b¡Este texto es azul!\\r Y este es rojo.")

Comando Show Choices (Mostrar opciones)

Puedes presentar al jugador una lista de opciones para que elija una. Desde scripts se usa pbShowCommands:

# Mostrar opciones al jugador
opciones = ["Opción A", "Opción B", "Opción C", "Cancelar"]
eleccion = pbShowCommands(nil, opciones, opciones.length)

case eleccion
when 0
  pbMessage("Has elegido la Opción A.")
when 1
  pbMessage("Has elegido la Opción B.")
when 2
  pbMessage("Has elegido la Opción C.")
else
  pbMessage("Has cancelado.")
end

También se puede mostrar un mensaje junto con las opciones:

eleccion = pbMessage("¿Qué quieres hacer?", [
  "Luchar",
  "Huir",
  "Mochila"
], -1)

Entrada de texto

Para pedir al jugador que introduzca texto (por ejemplo, un nombre):

pbEnterText

# Pedir al jugador un nombre de hasta 10 caracteres
nombre = pbEnterText("Introduce un nombre:", 0, 10)
pbMessage("El nombre introducido es: #{nombre}")

pbFreeText

# Entrada de texto libre con un mensaje inicial
texto = pbFreeText("Escribe un mensaje:", "", 0, 30)
if texto != ""
  pbMessage("Has escrito: #{texto}")
end

Posición de la ventana de mensajes

La ventana de mensajes puede mostrarse en tres posiciones distintas:

# Cambiar la posición del mensaje (0=abajo, 1=centro, 2=arriba)
pbMessage("\\ts[]\\pokemon[2]Este mensaje aparece arriba.")

La posición se puede establecer en el evento de RPG Maker usando el comando "Show Text" y ajustando la posición en las opciones del comando.

Bocadillos de diálogo (Speech Bubbles)

Los bocadillos de diálogo muestran el texto como si saliera directamente del NPC que habla, similar a un cómic. Es una forma visual de hacer las conversaciones más dinámicas.

# Mostrar un bocadillo de diálogo sobre el evento actual
pbCallBub(0, @event_id)
pbMessage("¡Hola! Soy un NPC y estoy hablando con un bocadillo.")

# El primer parámetro indica el tipo de bocadillo:
# 0 = bocadillo normal
# 1 = bocadillo de pensamiento

Para que los bocadillos funcionen, debes tener los gráficos correspondientes en la carpeta Graphics/Pictures/.

Cajas de narración

Las cajas de narración son ventanas de texto especiales que se usan para narrar eventos o dar información sin que un personaje hable directamente. Se diferencian visualmente del diálogo normal.

# Usar una skin de ventana diferente para narración
pbMessage("\\w[narration]El sol se ponía sobre la ruta, tiñendo el cielo de naranja...")
pbMessage("\\w[narration]El entrenador supo que su viaje apenas comenzaba.")

Para esto necesitas un gráfico de ventana llamado narration.png en Graphics/Windowskins/.

Consejo: Puedes combinar varios códigos de formato en un mismo mensaje. Por ejemplo: \\f[Officer]\\b¡Alto ahí, \\PN! mostrará la cara del oficial en azul con el nombre del jugador.

Show Choices con imágenes

A partir de la versión 1.2.0, el sistema de Show Choices permite mostrar imágenes junto a cada opción de texto. Esto es útil para presentar al jugador opciones visuales como objetos, Pokémon, rutas u otros elementos gráficos que complementen las opciones de diálogo.

El sistema utiliza un comentario especial en el evento con el prefijo s:ChoiceImage: seguido de las rutas de las imágenes separadas por comas. Internamente, la función pbGetChoiceImages lee los comentarios del evento buscando ese prefijo, y pbParseChoiceImages se encarga de separar las rutas individuales.

Formato del comentario

Cada comentario tiene una de estas formas:

# Imagen por índice y ruta directa al gráfico
s:ChoiceImage: <índice>, Graphics/<ruta sin extensión>

# Imagen de una especie de Pokémon (front sprite, con forma opcional)
s:ChoiceImage: <índice>, species, <SPECIES_ID>, <forma>

# Imagen del icono de un objeto
s:ChoiceImage: <índice>, item, <ITEM_ID>

# Bandera opcional: mostrar fondo bajo la lista de opciones
s:ChoiceImage: show_background

Cómo usarlo en un evento

Para configurar imágenes en las opciones de un evento de RPG Maker, sigue estos pasos:

  1. Abre el evento donde quieres usar Show Choices con imágenes.
  2. Añade tantos comandos Comment como imágenes vayas a usar, cada uno con un s:ChoiceImage: apuntando al índice de su opción.
  3. Inmediatamente después de los comentarios, coloca el comando Show Choices.
  4. Las imágenes se mostrarán automáticamente junto a cada opción.
Importante

El comentario con s:ChoiceImage: debe estar ubicado antes del comando Show Choices dentro de la misma página del evento. Si el comentario está después o en otra página, las imágenes no se detectarán.

Ejemplo: tres opciones con icono de objeto

◆ Comment: s:ChoiceImage: 1, item, POTION
◆ Comment: s:ChoiceImage: 2, item, SUPERPOTION
◆ Comment: s:ChoiceImage: 3, item, HYPERPOTION
◆ Show Choices: Poción, Superpoción, Hiperpoción
  : When [Poción]
    ◆ Text: Has elegido una Poción.
  : When [Superpoción]
    ◆ Text: Has elegido una Superpoción.
  : When [Hiperpoción]
    ◆ Text: Has elegido una Hiperpoción.

Ejemplo desde script

También puedes invocar el sistema desde un Script Call si necesitas mayor control:

# Obtener las imágenes definidas en los comentarios del evento actual
imagenes = pbGetChoiceImages(@event_id)

# Parsear manualmente una cadena de imágenes
rutas = pbParseChoiceImages("Graphics/Pictures/img1,Graphics/Pictures/img2")
Nota: Las rutas de las imágenes son relativas a la carpeta raíz del proyecto. Por ejemplo, Graphics/Pictures/item_potion apunta al archivo item_potion.png dentro de la carpeta Graphics/Pictures/ del proyecto. No es necesario incluir la extensión del archivo.