Перейти к основному содержимому

Оформление меню

В Dungeon два меню, и оба вы рисуете сами. На этой странице собирается минимальная пара: браузер с двумя слотами подземелий и лобби с кнопками готовности, выхода и автозаполнения. Предполагается, что вы уже создали Dungeon Instance и Dungeon Category, как в шагах Быстрого старта.

Впервые работаете с макетами GUI? Сначала прочитайте введение в GUI и руководство по макетам. Меню ниже используют те же поля layoutPool и mainLayoutId, что и действие Open GUI.

Глобальное меню​

  1. На странице sequence добавьте Dungeon Global Menu и задайте category своей категорией. Установите inventoryRows равным 3, а inventoryTitle — <gold>Dungeons.
  2. В layoutPool добавьте макет типа simple с id main. Впишите main в mainLayoutId.
  3. В items добавьте рамку: серую стеклянную панель в x 0, y 0, с count 9, direction right и одним пробелом в качестве displayName. Повторите для y 2.
  4. Добавьте предмет с buttonType DUNGEON_INSTANCE_SLOT в x 3, y 1, count 3, direction right, gap 1. Его материал не важен: это маркер. Первые три подземелья категории заполняют три позиции.
  5. По желанию добавьте предмет с buttonType DUNGEON_FIND_PARTY в x 8, y 1 (например, компас с именем <yellow>Find a party) и предмет с buttonType DUNGEON_INFO для книги-подсказки.
  6. Запустите запись из варианта диалога NPC или события-команды, затем опубликуйте.

Как выглядит каждое подземелье, задаётся в категории, а не в макете: откройте Dungeon Category и отредактируйте unlockedItem, unlockedName и unlockLore её слота. {dungeon_name}, {players} и {max} подставляются при открытии меню и при каждой его перерисовке. Чтобы закрыть подземелье для некоторых игроков, добавьте criteria в его слот: они увидят закрытый вид и не смогут его открыть.

Меню отряда​

  1. Добавьте один Dungeon Party Menu. Оставьте его dungeonInstance пустым, чтобы он обслуживал все подземелья, или назовите подземелье, чтобы дать ему собственное меню. Меню с пустым dungeonInstance обслуживает подземелья, которые не называет ни одно другое меню.
  2. Установите inventoryRows равным 3, а inventoryTitle — <gold>Lobbies.
  3. Выберите вид лобби: lobbyItem (по умолчанию бумага), lobbyName Lobby {index} и lobbyLore, например {players}/{max} players и {player_names}.
  4. В layoutPool добавьте макет simple main и задайте mainLayoutId. Поставьте предмет с buttonType DUNGEON_LOBBY_SLOT там, где должны появляться лобби (используйте count, direction и gap для ряда). Без маркера лобби рисуются от левого верхнего угла, а lobbyOffsetX и lobbyOffsetY сдвигают их от вашей рамки или кнопок.
  5. Добавьте три кнопки в нижний ряд: DUNGEON_READY (например, лаймовый краситель с именем <green>Ready), DUNGEON_LEAVE (барьер) и DUNGEON_AUTO_FILL.
  6. Опубликуйте. Не запускайте эту запись сами: она открывается, когда игрок кликает по подземелью в глобальном меню.

У подземелья одно лобби на каждое значение maxSimultaneousInstances, поэтому подземелье с maxSimultaneousInstances 1 показывает одно лобби.

Что видит игрок​

  1. Игрок открывает глобальное меню и кликает по подземелью. Открывается меню отряда.
  2. Он кликает по лобби, чтобы войти. Если установлены MMOCore, Parties или расширение отрядов Typewriter, весь отряд игрока входит в лобби вместе, когда хватает места (Dungeon только читает эти отряды и никогда их не изменяет).
  3. Другие игроки видят нового участника без клика: оба меню обновляются сами (autoRefreshTicks). Каждый игрок нажимает кнопку готовности. Когда все готовы и достигнут minPartySize, идёт обратный отсчёт startCooldownSeconds, затем отряд телепортируется в точку появления.
  4. Когда забег заканчивается, игроки возвращаются туда, где были.

Советы​

Сначала прототип

Нарисуйте макет в обычном меню Open GUI с декоративными предметами, проверьте позиции, затем скопируйте layoutPool в меню Dungeon и пометьте динамические предметы.

Типы кнопок точные

buttonType нужно писать заглавными буквами, как указано в разделе Меню. Неверно написанный тип — не ошибка: предмет остаётся обычным предметом и ничего особенного не делает.