Сложность инстансовых подземелий
У инстансовых подземелий есть специальная настройка, позволяющая легко задать разные уровни сложности для подземелья.
Как это работает
Сложности могут задавать значение levelSync, вдохновлённое синхронизацией уровня из Final Fantasy 14. Оно меняет уровень, используемый кэшем предметов игрока, но не переписывает предмет в инвентаре.
Текущие расчёты атаки ближнего боя и защиты брони читают исходный уровень предмета. Боевой снимок снаряда также использует исходную атаку оружия, а брошенные трезубцы читают уровень своего предмета при попадании. Не полагайтесь только на levelSync для выравнивания оружия и брони.
Острота и Сила вносят отдельный вклад в множитель атаки экипировки. Каждый подходящий надетый или удерживаемый предмет добавляет 0.025 * (Sharpness level + Power level); вклады шести слотов суммируются. Синхронизация не ограничивает этот вклад зачарований. Это добавка к множителю, а не фиксированное число единиц урона.
Базовое здоровье боссов удваивается каждые пять уровней до применения ограничений здоровья, но атака игрока использует собственные расчёты навыков, предметов, зачарований и класса. Перед балансировкой изучите систему урона. Сочетайте синхронизацию с особыми для каждой сложности способностями, параметрами босса и наградами, учитывая реальную экипировку игроков.
Система группы
В EliteMobs есть группы, действующие только в течение сеанса. Обычные приглашения допускают до пяти участников; автоматически собранные группы подземелий могут включать больший допущенный состав. Когда участник выбирает инстансовое подземелье, EliteMobs фиксирует состав и запускает проверку готовности с кнопками. Инициатор готов автоматически; остальные должны подтвердить конкретные подземелье и сложность до подготовки мира. Для динамических подземелий также показывается выбранный уровень. Отказ, истечение времени, изменение состава, недоступный участник, недостаток прав или мест, конфликт с активным инстансом либо отмена предварительного MatchJoinEvent EliteMobs прекращают вход всей группы, вместо перемещения только её части. PlayerJoinDungeonEvent EliteMobs — неотменяемое уведомление после допуска.
Личные испытания зачарования остаются одиночными, поскольку испытание временно управляет предметом инициатора.
Авторы могут выбирать способности, которые становятся опаснее с ростом числа игроков. Боссы подземелий также получают прибавку к здоровью по числу участников инстанса в момент установки здоровья, включая начало матча. Формула: scaledHealth = baseHealth * 0.75 * playerCount. Например, с 2 игроками у босса 1,5 базового здоровья, с 3 игроками — 2,25, а с 5 игроками — 3,75.
Примечание: масштабирование здоровья применяется только при 2 и более игроках в инстансе. Одиночные игроки сражаются с боссами со стандартными значениями здоровья.
Как задать сложность
Сложности задаются в YAML пакета инстансового подземелья под /plugins/EliteMobs/content_packages/, в том числе в подпапке пакета. Разместите difficulties рядом с другими настройками верхнего уровня, например contentLevel и name.
Рассмотрим пример:
difficulties:
- levelSync: 60
name: normal
- levelSync: 50
name: hard
- levelSync: 40
name: mythic
Здесь задаются три сложности. name определяет подпись в меню. levelSync и id необязательны; без levelSync синхронизация не применяется. Распознанные названия могут заполнить отсутствующий ID, как описано ниже. В новых пакетах предпочтительны явные ID.
name — это название сложности в том виде, в каком оно появится в настройке сложности в игре. Название может быть любым.
levelSync задаёт предел уровня для описанных выше путей обработки предметов. Он не ограничивает все расчёты урона или защиты.
Вы можете задать сколько угодно сложностей — много или мало. Просто добавляйте или удаляйте записи в настройке difficulties, используя тот же формат.
Относительная синхронизация уровня
Синхронизация может использовать относительные значения. Всегда заключайте их в кавычки. YAML превращает +5 без кавычек в целое число 5, поэтому к моменту чтения EliteMobs знак + уже потерян: levelSync: +5 незаметно становится абсолютным уровнем 5. Значение levelSync: +0 без кавычек превращается в абсолютный 0 и отключает синхронизацию. Отрицательные значения без кавычек, например levelSync: -10, сохраняют - и читаются как относительные, но кавычки во всех таких значениях исключают неоднозначность:
difficulties:
- levelSync: '+5'
name: easy
- levelSync: '+0'
name: normal
- levelSync: '-10'
name: hard
Относительные значения рассчитываются от базового уровня контента подземелья, с минимальным результатом 1. Например, при уровне контента 60:
levelSync: '+5'становится 65levelSync: '+0'становится 60levelSync: '-10'становится 50
Это полезно для динамических подземелий с меняющимся уровнем контента. В них уровень становится известен при создании инстанса, и относительное значение разрешается в этот момент.
Абсолютное levelSync: 0 или значение, которое EliteMobs не может разобрать, означает отсутствие синхронизации уровня для этой сложности.
Необязательное поле идентификатора сложности
Задайте id в каждой сложности для фильтров способностей и добычи. Стандартное числовое соответствие: 0 = NORMAL, 1 = HARD, 2 = MYTHIC.
Реализация также распознаёт Normal/Hard/Mythic и старые названия Easy/Medium/Hard без учёта регистра, цветов и внешних пробелов. Схема определяется всем пакетом: явный ID Normal или Mythic выбирает стандартную схему. Иначе ID Easy или Medium выбирает старую; названия выбирают её только при наличии Easy или Medium без Normal и Mythic. Определение происходит до перевода; числовые ID всегда сохраняют смысл. Распознанное название заполняет отсутствующий ID или определяет ступень сложности для пользовательского ID.
Неизвестные определения вызывают предупреждение в консоли с именем файла пакета. Пользовательские ID сопоставляются с авторскими фильтрами после нормализации регистра, цветов и пробелов. Для автоматической добычи приоритет имеет явное соответствие исходного ID в ClassLootSettings.yml, затем разрешённая ступень и настроенное значение по умолчанию. Необычным названиям задавайте явные ID.
difficulties:
- levelSync: 60
name: normal
id: 0
- levelSync: 50
name: hard
id: 1
Способности в зависимости от сложности
Боссов можно настроить так, чтобы они обладали способностями только на определённых сложностях. Рассмотрим пример:
powers:
- filename: invulnerability_fire.yml
difficultyID:
- 1
- 2
Примечание: это часть конфигурационного файла кастомного босса!
В данном случае босс будет обладать неуязвимостью к огню только на сложностях с идентификаторами 1 и 2.
difficultyID принимает один ID или YAML-список для способностей и авторской добычи. Пустой или недопустимый фильтр способностей не соответствует ни одной сложности; в записи добычи пустой список или пустой ID отклоняет эту запись при загрузке файла. Фильтры способностей применяются к инстансовым боссам, связанным с подземельем, а также к боссам, заспавненным в инстансе другого плагина через API инстансовых боссов, с использованием сложности, назначенной этим плагином. Обычного босса открытого мира они не ограничивают.
Добыча в зависимости от сложности
Боссов можно настроить так, чтобы они выбрасывали добычу, специфичную для определённой сложности инстансового подземелья. Рассмотрим пример:
uniqueLootList:
- filename: himiko_boss_drop_axe_tank_normal.yml
chance: 0.05
difficultyID: 0
Примечание: это часть конфигурационного файла кастомного босса!
В подземелье эта запись разрешает himiko_boss_drop_axe_tank_normal.yml на сложности 0 с вероятностью 5% и обычными условиями допуска к добыче. Проверка использует текущее подземелье получателя; вне подземелья она не блокирует запись. Подходящая экипировка поступает в групповую добычу подземелья, остальные предметы остаются личными. См. групповую добычу.
Баланс наград Normal, Hard и Mythic
Пример выше ограничивает авторский файл предмета одной сложностью. Чтобы выдавать подходящую экипировку каждому классу без трёх версий каждого предмета, используйте автоматическую классовую добычу. Она выбирает профили зачарований по сложности и рангу, сохраняя название и описание каждого предмета в одном месте.
В руководстве есть таблица пределов основных зачарований и формула бюджета для генерации добычи. Повышение сложности не умножает автоматически здоровье босса или характеристики добычи: синхронизация, способности, параметры босса и профили наград управляют разными частями боя.