Saltar al contenido principal

Diseñar los menús

Dungeon tiene dos menús, y dibujas ambos. Esta página construye una pareja mínima: un explorador con dos huecos de mazmorra y un lobby con botones de listo, salir y autorrelleno. Da por hecho que ya creaste una Dungeon Instance y una Dungeon Category como en los pasos de Primeros pasos.

¿Eres nuevo en los layouts de GUI? Lee primero la introducción a GUI y la guía de layouts. Los menús siguientes usan los mismos campos layoutPool y mainLayoutId que la acción Open GUI.

El menú global​

  1. En una página sequence, añade un Dungeon Global Menu y fija category en tu categoría. Pon inventoryRows en 3 e inventoryTitle en <gold>Mazmorras.
  2. En layoutPool, añade un layout de tipo simple con el id main. Escribe main en mainLayoutId.
  3. En items, añade un borde: un panel de cristal gris en x 0, y 0, con count 9, direction right y un solo espacio como displayName. Repite en y 2.
  4. Añade un ítem con buttonType DUNGEON_INSTANCE_SLOT en x 3, y 1, count 3, direction right, gap 1. Su material no importa: es un marcador. Las tres primeras mazmorras de la categoría rellenan las tres posiciones.
  5. Opcionalmente añade un ítem con buttonType DUNGEON_FIND_PARTY en x 8, y 1 (por ejemplo una brújula llamada <yellow>Buscar party), y uno con buttonType DUNGEON_INFO para un libro de ayuda.
  6. Dispara la entrada desde una opción de diálogo de un NPC o un evento de comando y después Publica.

El aspecto de cada mazmorra se fija en la categoría, no en el layout: abre la Dungeon Category y edita unlockedItem, unlockedName y unlockLore de su hueco. {dungeon_name}, {players} y {max} se sustituyen cuando se abre el menú y cada vez que se repinta. Para bloquear una mazmorra a algunos jugadores, añade criteria a su hueco: verán el aspecto de bloqueado y no podrán abrirla.

El menú de party​

  1. Añade un Dungeon Party Menu. Deja su dungeonInstance vacío para atender a todas las mazmorras, o nombra una mazmorra para darle su propio menú. Un menú con dungeonInstance vacío atiende a las mazmorras que ningún otro menú nombra.
  2. Pon inventoryRows en 3 e inventoryTitle en <gold>Lobbies.
  3. Elige el aspecto del lobby: lobbyItem (un papel por defecto), lobbyName Lobby {index} y un lobbyLore como {players}/{max} jugadores y {player_names}.
  4. En layoutPool, añade un layout simple main y fija mainLayoutId. Coloca un ítem con buttonType DUNGEON_LOBBY_SLOT donde deban aparecer los lobbies (usa count, direction y gap para una fila). Sin marcador, los lobbies se dibujan desde la esquina superior izquierda, y lobbyOffsetX y lobbyOffsetY los alejan de tu borde o de tus botones.
  5. Añade tres ítems de botón en la fila inferior: DUNGEON_READY (por ejemplo un tinte lima llamado <green>Listo), DUNGEON_LEAVE (una barrera) y DUNGEON_AUTO_FILL.
  6. Publica. No dispares esta entrada tú mismo: se abre cuando un jugador hace clic en una mazmorra del menú global.

Una mazmorra tiene un lobby por maxSimultaneousInstances, así que una mazmorra con maxSimultaneousInstances 1 muestra un solo lobby.

Lo que vive un jugador​

  1. El jugador abre el menú global y hace clic en una mazmorra. Se abre el menú de party.
  2. Hace clic en un lobby para unirse. Con MMOCore, Parties o la extensión de party de Typewriter instalada, toda la party de un jugador se une al lobby junta cuando hay sitio (Dungeon solo lee esas parties y nunca las modifica).
  3. Los demás jugadores ven al nuevo miembro sin hacer clic: ambos menús se actualizan solos (autoRefreshTicks). Cada jugador pulsa el botón de listo. Cuando todos están listos y se alcanza minPartySize, corre la cuenta atrás de startCooldownSeconds y después la party es teletransportada al punto de aparición.
  4. Cuando la partida termina, los jugadores vuelven al lugar donde estaban.

Consejos​

Prototipo primero

Dibuja el layout en un menú Open GUI sencillo con ítems decorativos, comprueba las posiciones, luego copia el layoutPool al menú de Dungeon y etiqueta los ítems dinámicos.

Los tipos de botón son exactos

buttonType debe escribirse en mayúsculas como se indica en Menús. Un tipo mal escrito no es un error: el ítem sigue siendo un ítem normal y no hace nada especial.