Desenhando os menus
O Dungeon tem dois menus, e você desenha os dois. Esta página constrói um par mínimo: um navegador com dois slots de dungeon e um lobby com os botões de pronto, sair e preenchimento automático. Ela pressupõe que você já criou uma Dungeon Instance e uma Dungeon Category como nos passos de Primeiros passos.
Novo nos layouts de GUI? Leia primeiro a introdução ao GUI e o guia de layouts. Os menus abaixo usam os mesmos campos layoutPool e mainLayoutId da action Open GUI.
O menu global
- Em uma página sequence, adicione um Dungeon Global Menu e defina
categorycom a sua categoria. DefinainventoryRowscomo3einventoryTitlecomo<gold>Dungeons. - Em
layoutPool, adicione um layout do tiposimplecom oidmain. DigitemainemmainLayoutId. - Em
items, adicione uma borda: um painel de vidro cinza emx0,y0, comcount9,directionrighte um único espaço comodisplayName. Repita emy2. - Adicione um item com
buttonTypeDUNGEON_INSTANCE_SLOTemx3,y1,count3,directionright,gap1. O material dele não importa: é um marcador. As três primeiras dungeons da categoria preenchem as três posições. - Opcionalmente, adicione um item com
buttonTypeDUNGEON_FIND_PARTYemx8,y1(por exemplo, uma bússola chamada<yellow>Find a party) e um combuttonTypeDUNGEON_INFOpara um livro de ajuda. - Dispare a entry a partir de uma opção de diálogo de NPC ou de um command event e então Publique.
A aparência de cada dungeon é definida na categoria, não no layout: abra a Dungeon Category e edite unlockedItem, unlockedName e unlockLore do slot dela. {dungeon_name}, {players} e {max} são substituídos quando o menu abre e sempre que ele é redesenhado. Para bloquear uma dungeon para alguns jogadores, adicione criteria ao slot dela: eles veem o visual de bloqueado e não podem abri-la.
O menu de party
- Adicione um Dungeon Party Menu. Deixe o
dungeonInstancedele vazio para atender todas as dungeons, ou nomeie uma dungeon para dar a ela seu próprio menu. Um menu comdungeonInstancevazio atende as dungeons que nenhum outro menu nomeia. - Defina
inventoryRowscomo3einventoryTitlecomo<gold>Lobbies. - Escolha o visual do lobby:
lobbyItem(um papel por padrão),lobbyNameLobby {index}e umalobbyLorecomo{players}/{max} playerse{player_names}. - Em
layoutPool, adicione um layoutsimplemaine definamainLayoutId. Coloque um item combuttonTypeDUNGEON_LOBBY_SLOTonde os lobbies devem aparecer (usecount,directionegappara uma fileira). Sem um marcador, os lobbies são desenhados a partir do canto superior esquerdo, elobbyOffsetXelobbyOffsetYos afastam da sua borda ou dos seus botões. - Adicione três itens de botão na fileira de baixo:
DUNGEON_READY(por exemplo, um corante verde-limão chamado<green>Ready),DUNGEON_LEAVE(uma barreira) eDUNGEON_AUTO_FILL. - Publique. Não dispare esta entry você mesmo: ela abre quando um jogador clica em uma dungeon no menu global.
Uma dungeon tem um lobby por maxSimultaneousInstances, então uma dungeon com maxSimultaneousInstances 1 mostra um único lobby.
O que o jogador vivencia
- O jogador abre o menu global e clica em uma dungeon. O menu de party abre.
- Ele clica em um lobby para entrar. Com o MMOCore, o Parties ou a extensão de party do Typewriter instalados, a party inteira de um jogador entra junta no lobby quando há vaga (o Dungeon apenas lê essas parties e nunca as altera).
- Os outros jogadores veem o novo membro sem clicar: os dois menus se atualizam sozinhos (
autoRefreshTicks). Cada jogador aperta o botão de pronto. Quando todos estão prontos eminPartySizeé atingido, a contagem regressiva destartCooldownSecondscorre, e então a party é teletransportada para o ponto de spawn. - Quando a run termina, os jogadores voltam para onde estavam.
Dicas
Desenhe o layout em um menu Open GUI comum com itens decorativos, confira as posições, depois copie o layoutPool para o menu do Dungeon e marque os itens dinâmicos.
buttonType deve ser escrito em maiúsculas como listado em Menus. Um tipo escrito errado não é um erro: o item continua sendo um item normal e não faz nada de especial.