Aller au contenu principal

Concevoir les menus

Dungeon possède deux menus, et vous dessinez les deux. Cette page construit une paire minimale : un navigateur avec deux emplacements de donjon, et un lobby avec des boutons prêt, quitter et remplissage automatique. Elle suppose que vous avez déjà créé une Dungeon Instance et une Dungeon Category comme dans les étapes de Premiers pas.

Les dispositions GUI sont nouvelles pour vous ? Lisez d'abord l'introduction à GUI et le guide des dispositions. Les menus ci-dessous utilisent les mêmes champs layoutPool et mainLayoutId que l'action Open GUI.

Le menu global​

  1. Sur une page sequence, ajoutez un Dungeon Global Menu et définissez category sur votre catégorie. Définissez inventoryRows sur 3 et inventoryTitle sur <gold>Dungeons.
  2. Dans layoutPool, ajoutez une disposition de type simple avec l'id main. Saisissez main dans mainLayoutId.
  3. Dans items, ajoutez une bordure : un panneau de verre teinté gris en x 0, y 0, avec count 9, direction right et un simple espace comme displayName. Répétez en y 2.
  4. Ajoutez un objet avec buttonType DUNGEON_INSTANCE_SLOT en x 3, y 1, count 3, direction right, gap 1. Son matériau n'a pas d'importance : c'est un marqueur. Les trois premiers donjons de la catégorie remplissent les trois positions.
  5. Facultatif : ajoutez un objet avec buttonType DUNGEON_FIND_PARTY en x 8, y 1 (par exemple une boussole nommée <yellow>Find a party), et un autre avec buttonType DUNGEON_INFO pour un livre d'aide.
  6. Déclenchez l'entrée depuis une option de dialogue de PNJ ou un événement de commande, puis Publish (Publier).

L'apparence de chaque donjon se définit dans la catégorie, pas dans la disposition : ouvrez la Dungeon Category et modifiez unlockedItem, unlockedName et unlockLore de son emplacement. {dungeon_name}, {players} et {max} sont remplacés à l'ouverture du menu et à chaque fois qu'il se redessine. Pour verrouiller un donjon pour certains joueurs, ajoutez des criteria à son emplacement : ils voient l'apparence verrouillée et ne peuvent pas l'ouvrir.

Le menu de groupe​

  1. Ajoutez un Dungeon Party Menu. Laissez son dungeonInstance vide pour servir tous les donjons, ou nommez un donjon pour lui donner son propre menu. Un menu dont le dungeonInstance est vide sert les donjons qu'aucun autre menu ne nomme.
  2. Définissez inventoryRows sur 3 et inventoryTitle sur <gold>Lobbies.
  3. Choisissez l'apparence des lobbies : lobbyItem (un papier par défaut), lobbyName Lobby {index} et un lobbyLore tel que {players}/{max} players et {player_names}.
  4. Dans layoutPool, ajoutez une disposition simple main et définissez mainLayoutId. Placez un objet avec buttonType DUNGEON_LOBBY_SLOT là où les lobbies doivent apparaître (utilisez count, direction et gap pour une rangée). Sans marqueur, les lobbies sont dessinés depuis le coin supérieur gauche, et lobbyOffsetX et lobbyOffsetY les écartent de votre bordure ou de vos boutons.
  5. Ajoutez trois objets bouton sur la rangée du bas : DUNGEON_READY (par exemple une teinture verte nommée <green>Ready), DUNGEON_LEAVE (une barrière) et DUNGEON_AUTO_FILL.
  6. Publiez. Ne déclenchez pas cette entrée vous-même : elle s'ouvre quand un joueur clique sur un donjon dans le menu global.

Un donjon a un lobby par maxSimultaneousInstances : un donjon avec maxSimultaneousInstances à 1 affiche donc un seul lobby.

Ce que vit un joueur​

  1. Le joueur ouvre le menu global et clique sur un donjon. Le menu de groupe s'ouvre.
  2. Il clique sur un lobby pour le rejoindre. Avec MMOCore, Parties ou l'extension de groupe Typewriter installé, tout le groupe d'un joueur rejoint le lobby ensemble quand il y a de la place (Dungeon ne fait que lire ces groupes et ne les modifie jamais).
  3. Les autres joueurs voient le nouveau membre sans cliquer : les deux menus se rafraîchissent d'eux-mêmes (autoRefreshTicks). Chaque joueur appuie sur le bouton prêt. Quand tout le monde est prêt et que minPartySize est atteint, le compte à rebours startCooldownSeconds s'écoule, puis le groupe est téléporté au point d'apparition.
  4. Quand la partie se termine, les joueurs reviennent là où ils étaient.

Conseils​

Prototyper d'abord

Dessinez la disposition dans un simple menu Open GUI avec des objets décoratifs, vérifiez les positions, puis copiez le layoutPool dans le menu Dungeon et balisez les objets dynamiques.

Les types de bouton sont exacts

buttonType doit être écrit en majuscules comme indiqué dans Menus. Un type mal orthographié n'est pas une erreur : l'objet reste un objet normal et ne fait rien de spécial.