Pular para o conteúdo principal

Dungeon

A extensão Dungeon fornece um framework completo para criar e gerenciar masmorras instanciadas, com detecção de salas baseada em polígonos, menus globais/de grupo, baús de saque e sincronização de grupo.

Recursos

  • Mundos instanciados — Mundos dedicados criados a cada partida de masmorra, com geração baseada em modelo.
    • Salas e gatilhos — Salas baseadas em polígonos com gatilhos onEnter/onLeave, prioridade e critérios.
    • Sistema de menus — Navegador global de masmorras + saguão de grupo com personalização completa do layout da interface.
    • Baús de saque — Baús aleatórios com âncoras de NPC, gatilhos manuais e blocos virtuais do lado do cliente.
    • Sistema de grupo — Saguão integrado com estados pronto/não pronto. Adaptadores opcionais para MMOCore, Parties.
    • Editor de salas — Editor de salas visual no jogo com bordas de partículas, manipulação de nós e barra de ferramentas.

Permissões

PermissionDescrição
typewriter.dungeon.adminAdministrar masmorras e o editor de salas.

Dependências

ExtensionObrigatórioUso
GUI ExtensionObrigatórioTodos os menus usam o sistema de layout da GUI (layoutPool, mainLayoutId). Sem ela, nenhum menu abrirá.
QuestExtensionObrigatórioDependência de tempo de execução para a integração de missões (Ref<QuestEntry>).
PartyExtensionOpcionalPlugin de grupo externo (Parties, MMOCore). O Dungeon tem um saguão integrado que funciona de forma autônoma.
PlaceholderAPIOpcionalPara a resolução de placeholders @Placeholder nas mensagens.

Arquitetura

Entradas

Guia de início rápido

Passo 1 — Definir uma sala

Use /dungeon room my_room edit para entrar no editor de salas visual. Coloque nós para formar um limite poligonal. Salve com corante verde-limão.

dungeon_room:
id: "boss_room"
name: "Boss Arena"
nodes:
- {x: 10, y: 64, z: 10}
- {x: 20, y: 64, z: 10}
- {x: 20, y: 64, z: 20}
- {x: 10, y: 64, z: 20}
priority: 1
onEnter:
- "boss_spawn_trigger"

Passo 2 — Agrupar salas em uma configuração

dungeon_room_config:
id: "dungeon_layout"
name: "Default Layout"
rooms:
- "boss_room"
- "entrance_room"
spawnPoint:
x: 15
y: 65
z: 15
world: "dungeon_template"

Passo 3 — Definir a instância da masmorra

dungeon_instance:
id: "ancient_temple"
name: "Ancient Temple"
templateWorld: "dungeon_template"
roomConfigurations:
- "dungeon_layout"
minPartySize: 1
maxPartySize: 4
cooldownSeconds: 300

Passo 4 — Criar uma categoria e um menu

dungeon_category:
id: "main_dungeons"
name: "Main Dungeons"
instances:
- dungeonInstance: "ancient_temple"
unlockedItem: STONE_BRICKS
unlockedName: "<gold>Ancient Temple</gold>"
unlockedLore:
- "<gray>Players: {players}/{max}"

dungeon_global_menu:
id: "dungeon_hub"
category: "main_dungeons"
inventoryTitle: "<bold><gold>⚔ Dungeons</gold></bold>"
layoutPool:
- id: "main"
type: simple
items: []

Passo 5 — Acionar o menu

A partir de qualquer ação, comando, diálogo de NPC ou gatilho de entrada:

action:
type: dungeon_global_menu
id: "open_dungeons"
globalMenu: "dungeon_hub"

Ou pelo comando: /dungeon global-menu main_dungeons

Comandos

ComandoDescrição
/dungeon global-menu <category>Abrir o navegador global de masmorras
/dungeon party-menu <instance>Abrir o saguão de grupo de uma instância específica
/dungeon room <room> editEntrar no editor de salas visual
/dungeon room <room> addvertexAdicionar um nó no bloco visado
/dungeon room <room> removevertexat <index>Remover um nó por índice
/dungeon room <room> saveSalvar a sala e sair do editor
/dungeon room <room> cancelCancelar a edição

Placeholders

Todos os placeholders usam o prefixo %typewriter_dungeon_%.

PlaceholderDescrição
%typewriter_dungeon_players%Número de jogadores na masmorra atual.
%typewriter_dungeon_attempts%Total de tentativas nesta masmorra (artefato por jogador).
%typewriter_dungeon_completions%Número de conclusões (artefato por jogador).
%typewriter_dungeon_best_time%Melhor tempo de conclusão formatado (artefato por jogador).