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
- Sur une page sequence, ajoutez un Dungeon Global Menu et définissez
categorysur votre catégorie. DéfinissezinventoryRowssur3etinventoryTitlesur<gold>Dungeons. - Dans
layoutPool, ajoutez une disposition de typesimpleavec l'idmain. SaisissezmaindansmainLayoutId. - Dans
items, ajoutez une bordure : un panneau de verre teinté gris enx0,y0, aveccount9,directionrightet un simple espace commedisplayName. Répétez eny2. - Ajoutez un objet avec
buttonTypeDUNGEON_INSTANCE_SLOTenx3,y1,count3,directionright,gap1. Son matériau n'a pas d'importance : c'est un marqueur. Les trois premiers donjons de la catégorie remplissent les trois positions. - Facultatif : ajoutez un objet avec
buttonTypeDUNGEON_FIND_PARTYenx8,y1(par exemple une boussole nommée<yellow>Find a party), et un autre avecbuttonTypeDUNGEON_INFOpour un livre d'aide. - 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
- Ajoutez un Dungeon Party Menu. Laissez son
dungeonInstancevide pour servir tous les donjons, ou nommez un donjon pour lui donner son propre menu. Un menu dont ledungeonInstanceest vide sert les donjons qu'aucun autre menu ne nomme. - Définissez
inventoryRowssur3etinventoryTitlesur<gold>Lobbies. - Choisissez l'apparence des lobbies :
lobbyItem(un papier par défaut),lobbyNameLobby {index}et unlobbyLoretel que{players}/{max} playerset{player_names}. - Dans
layoutPool, ajoutez une dispositionsimplemainet définissezmainLayoutId. Placez un objet avecbuttonTypeDUNGEON_LOBBY_SLOTlà où les lobbies doivent apparaître (utilisezcount,directionetgappour une rangée). Sans marqueur, les lobbies sont dessinés depuis le coin supérieur gauche, etlobbyOffsetXetlobbyOffsetYles écartent de votre bordure ou de vos boutons. - 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) etDUNGEON_AUTO_FILL. - 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
- Le joueur ouvre le menu global et clique sur un donjon. Le menu de groupe s'ouvre.
- 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).
- 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 queminPartySizeest atteint, le compte à reboursstartCooldownSecondss'écoule, puis le groupe est téléporté au point d'apparition. - Quand la partie se termine, les joueurs reviennent là où ils étaient.
Conseils
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.
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.