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

Создание меню Codex

В Quest Codex нет встроенного экрана. Каждое меню представляет собой пул раскладок GUI, который вы проектируете сами, а codex лишь заполняет слоты-маркеры, которые вы в нём разместили. Сначала прочитайте руководства по GUI: Понимание меню GUI, Раскладки, рамки и слоты и Взаимодействия и навигация.

Составные части​

ЗаписьНазначение
Quest CategoryОбъявляет категорию: заголовок, значок, родителя, критерии.
Quest AssignmentПомещает квесты в категорию с порядком и переопределениями для каждого статуса.
Category MenuМеню одной категории (или главное меню, или меню отслеживаемых). Его поле menu ссылается на Open GUI, содержащий раскладки.

Маркеры​

Поместите предмет в раскладку simple указанного Open GUI, задайте buttonPrefix равным codex_button:, а buttonType равным одному из маркеров:

buttonTypeЧем заменяется
CATEGORY_SLOTОдна корневая категория на слот, в главном меню.
QUEST_SLOTОдин квест на слот, в меню категории.
TRACKED_QUEST_SLOTОдин отслеживаемый квест на слот, в меню @tracked.
SORT_SLOTКнопка сортировки, рисуется поверх раскладки, чтобы никогда не прокручиваться.

Два правила:

  1. Один маркер, один слот. Маркер расширяется только за счёт собственных count, direction, gap и repeatY. Сетка 7 на 8 — это один предмет с count 7, direction right и repeatY 8. Без direction маркер остаётся одним слотом. gap — это шаг: 1 означает соседние слоты.
  2. Маркеры следуют за раскладкой. Они нумеруются в порядке чтения до разбора раскладки, поэтому поместите предмет-маркер в раскладку simple, которую оборачивает раскладка scrollable, и список квестов будет прокручиваться в стабильном порядке.

Маркеры вне раскладок simple или в общем шасси, а не в Open GUI, указанном в menu, не заполняются.

Прокручиваемое меню категории​

Браузер из шести рядов с рамкой, фиксированными элементами управления и прокручиваемым окном 7 на 4 над сеткой квестов 7 на 8:

  1. Создайте Open GUI main_quests_gui с guiType CUSTOM и size SIZE_54.
  2. Добавьте раскладку simple deco. Добавьте чёрную стеклянную панель при x 0, y 0 с count 9, direction right и названием из одного пробела, и такую же при y 5. В ряду 5 добавьте предмет BACK при x 0 (buttonPrefix codex_button:, buttonType BACK), предмет SORT_SLOT при x 4 и предмет CLOSE при x 8.
  3. Добавьте раскладку simple quest_grid с одним предметом: buttonPrefix codex_button:, buttonType QUEST_SLOT, x 0, y 0, count 7, direction right, repeatY 8.
  4. Добавьте раскладку scrollable quests с innerId quest_grid, virtualWidth 7, virtualHeight 8 и двумя buttons: стрелкой UP при x 1, y 4 и стрелкой DOWN при x 5, y 4.
  5. Добавьте раскладку frame root с двумя рамками: deco в точке 0,0 размером 9 на 6 и quests в точке 1,1 размером 7 на 4. Задайте mainLayoutId равным root.
  6. Создайте Category Menu с category main_quests, rows 6 и menu, равным main_quests_gui.

Сетка квестов находится внутри прокручиваемого содержимого, поэтому квесты прокручиваются вместе с окном. Стрелки появляются только тогда, когда есть что прокручивать.

Кнопка сортировки​

SORT_SLOT показывает текущий режим сортировки и переключает его по кругу при клике: Все, Не начатые, В процессе, Завершённые (All, Not started, In progress, Completed). Режим хранится для каждого игрока до перезапуска сервера и применяется ко всем меню категорий. Настройте предмет, название и описание каждого режима в sortDisplay у Category Menu; без него используется встроенная подпись.

Кнопки навигации​

Пометьте слот значением PAGE_NEXT, PAGE_PREV, SCROLL_UP, SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHT, BACK, CLOSE или SORT, чтобы подключить действие его клика. Настроенные вами предмет, название и описание сохраняются; стрелка, барьер или воронка по умолчанию появляются только тогда, когда у слота нет предмета. Можно также использовать обычные предметы с командами gui:back, gui:close или gui:scroll.

PAGE_NEXT и PAGE_PREV листают список квестов или категорий, если в меню есть маркеры, а в остальных случаях листают раскладку paginated.

Внешний вид квеста​

Слот квеста подстраивается под прогресс игрока. Quest Lore добавляет описание для каждого статуса, а Quest Assignment может переопределять значок, название, описание и видимость для каждого статуса. Клик по активному квесту включает или отключает его отслеживание; клик по ещё не начатому или завершённому квесту отправляет соответствующее сообщение из глобальных настроек.

Контрольный список​

  1. Запись Quest Codex Global Settings с артефактом отслеживания.
  2. Как минимум одна Quest Category, без parent для главного меню.
  3. Quest Assignment для каждой категории.
  4. Category Menu для каждой категории и одно с пустым category для главного меню, каждое со своим маркером.
  5. rows у Category Menu равно высоте Open GUI.
  6. У игроков есть typewriter.codex.open, либо они открывают меню действием.