Система навыков
EliteMobs использует систему прогрессии на основе навыков, в которой игроки повышают уровень, сражаясь с элитными мобами. Вместо единого глобального уровня игроки развивают отдельные навыки оружия и навык брони, которые вместе определяют их общую силу.
Всего существует 11 типов навыков:
| Навык | Оружие | Примечания |
|---|---|---|
| Мечи | Любой _SWORD | |
| Топоры | Любой _AXE | |
| Луки | BOW | |
| Арбалеты | CROSSBOW | |
| Трезубцы | TRIDENT | |
| Мотыги (Косы) | Любой _HOE | |
| Булавы | MACE | Требуется Minecraft 1.21+ |
| Копья | Любой _SPEAR | Требуется Minecraft 1.21.11+ (с ресурс-паком) |
| Посохи | experimental_arcane_staff | |
| Жезлы | experimental_arcane_wand | |
| Броня | Шлемы, нагрудники, поножи, ботинки | Прокачивается пассивно |
Навыки повышаются за счёт использования соответствующего оружия для убийства элитных мобов. Ваш Боевой уровень — рассчитываемый из ваших навыков — определяет, к какому контенту вы можете получить доступ, какую экипировку можете надеть и мобы какой сложности спавнятся вокруг вас.
Как повышаются навыки
Когда вы убиваете элитного моба, вы получаете опыт на основе уровня моба. Опыт распределяется следующим образом:
- Опыт оружия распределяется по вкладу в урон между навыками, записанными при ударе или запуске снаряда. Смена оружия в момент смерти моба не перенаправляет опыт.
- Опыт брони начисляется автоматически с множителем 1/3 от вашей доли опыта. При использовании разных типов оружия броня может обогнать отдельный оружейный навык.
- Групповые бои: Когда несколько игроков наносят урон одной элите, опыт делится пропорционально вкладу каждого игрока в урон. Если вы нанесли 60% урона, вы получаете 60% базового опыта.
Базовый опыт с мобов
Базовый опыт, получаемый за убийство моба:
mob_xp = mob_level ^ 2
| Уровень моба | Получено опыта |
|---|---|
| 1 | 1 |
| 10 | 100 |
| 25 | 625 |
| 50 | 2,500 |
| 100 | 10,000 |
Множитель опыта за боссов
Более сильные мобы стоят дороже. Базовый опыт выше умножается на коэффициент, выводимый из healthMultiplier и damageMultiplier моба:
bossXPMultiplier = healthMultiplier^0.6 * (1 + (damageMultiplier - 1) * 0.15)
Компонент HP использует сублинейную степень (0.6), чтобы более длинные бои приносили больше, но при этом высокоживучие боссы не становились непропорционально выгодными для фарма. Компонент урона сильно демпфирован, потому что даже небольшой рост урона сильно повышает сложность, а линейная награда толкала бы игроков к самоубийственным целям.
| healthMultiplier | damageMultiplier | Множитель опыта |
|---|---|---|
| 1.0 | 1.0 | 1.00x |
| 3.0 (минибосс) | 1.2 | 1.99x |
| 7.0 (босс) | 1.4 | 3.41x |
| 40.0 (мировой босс) | 1.5 | 9.83x |
Полный порядок операций при убийстве: эффективный уровень моба (после антиэксплойт-ограничений ниже) → базовый опыт → множитель босса → деление по вкладу в урон → опыт оружия и опыт брони.
Защита от эксплойтов
Все три настраиваются в AntiExploit.yml и полностью пропускаются, когда enableFarmingProtection равен false. Полную таблицу конфигурации см. в разделе Защита от фарма.
- Низкоуровневые мобы (по навыкам): Каждый навык оружия или брони получает опыт, только если моб ниже уровня этого конкретного навыка не более чем на
farmingProtectionLevelDifferenceуровней (по умолчанию15). Проверка использует уровень отдельного навыка, а не боевой уровень, и полностью пропускается при масштабируемом бое, где моб нормализуется под игрока и понятие слишком низкого уровня не имеет смысла. - Высокоуровневые мобы: Опыт навыков использует эффективный уровень награды не выше
combat_level + farmingProtectionLevelDifference(по умолчанию15). Такое же ограничение применяется к луту естественных элитных мобов; лут кастомных боссов не использует этот предел уровня защиты от фарма. Остальные условия получения опыта продолжают действовать. - Лимит фарма естественных элит: Убийства естественных элит, не являющихся кастомными боссами, учитываются в скользящем окне длительностью
farmingProtectionMinutes(по умолчанию30). ПревышениеfarmingProtectionKillsубийств (по умолчанию20) в этом окне блокирует награды за естественных элит на одно полное окно. О начале и окончании блокировки сообщается в чате. Кастомные боссы не подпадают под это ограничение.
Прогрессия опыта
Опыт, необходимый для перехода с текущего уровня на следующий, рассчитывается по формуле:
Уровни 1–100:
xp_to_next_level = 8.5 * current_level ^ 3
Уровни выше 100 (мягкий потолок):
xp_to_next_level = 8.5 * current_level ^ 3 * (1 + ((current_level - 100) ^ 2 / 100))
Множитель мягкого потолка равен 1.0 на 100 уровне (без дополнительного штрафа) и растёт квадратично. К 150 уровню множитель достигает 26x, делая дальнейший прогресс крайне трудным.
Таблица опыта на уровень
В таблице ниже показан опыт, необходимый для перехода с данного уровня на следующий, и примерно сколько убийств мобов того же уровня для этого требуется (навык оружия, не брони):
| Уровень | Опыт до следующего уровня | Убийств мобов того же уровня |
|---|---|---|
| 10 | 8,500 | 85 |
| 25 | 132,812 | 213 |
| 50 | 1,062,500 | 425 |
| 75 | 3,585,937 | 638 |
| 100 | 8,500,000 | 850 |
Броня получает опыт со скоростью 1/3 от скорости оружия, поэтому для прокачки брони требуется примерно в 3 раза больше убийств по сравнению с числами выше. На 50 уровне это означает около 1,275 убийств мобов того же уровня только ради брони.
Боевой уровень
Ваш Боевой уровень — это общая мера вашей силы. Он рассчитывается как:
combat_level = (highest_weapon_skill + second_highest_weapon_skill + armor_skill) / 3
Результат округляется вниз (целочисленное деление).
Боевой уровень определяет:
- Уровень элитных мобов, спавнящихся вокруг вас
- Какую экипировку вы можете надеть (уровень экипировки должен быть не выше вашего соответствующего уровня навыка)
- К каким подземельям и инстанс-контенту вы можете получить доступ
- Право на опыт и добычу (проверки защиты от эксплойтов используют боевой уровень)
Отображение боевого уровня
Ваш боевой уровень отображается в виде парящего числа над вашей головой, видимого другим игрокам. Это использует пакетные текстовые дисплеи и обновляется автоматически при каждом изменении ваших навыков. Формат отображения настраивается (по умолчанию: Combat Lv. X).
Полоса опыта
Когда вы получаете опыт навыка, появляется анимированная полоса босса, показывающая ваш прогресс к следующему уровню. Полоса включает:
- Плавную анимацию, ползущую вверх по мере набора опыта
- Разный цвет для каждого типа навыка (например, красный для Мечей, зелёный для Луков, синий для Брони)
- Особые эффекты частиц и звука при повышении уровня
- Автоматическое скрытие через 5 секунд бездействия
Ограничения экипировки
Экипировка EliteMobs имеет требования к уровню, привязанные к системе навыков. Чтобы надеть элитный предмет, ваш уровень навыка для этого типа оружия или брони должен быть равен или выше уровня предмета.
Исключение: Предметы 20 уровня и ниже могут надеть все, независимо от уровня навыка. Это гарантирует, что новые игроки могут свободно использовать раннюю экипировку, не оказываясь заблокированными.
Если вы попытаетесь надеть предмет выше своего уровня навыка, вы получите предупреждающее сообщение, и предмет не будет давать элитных бонусов.
Бонусы навыков
По мере прокачки навыков вы открываете особые боевые способности в четырёх уровнях. Каждый уровень открывает набор бонусов для этого навыка, а не один бонус:
| Уровень | Открывается на |
|---|---|
| 1 | Уровень 10 |
| 2 | Уровень 25 |
| 3 | Уровень 50 |
| 4 | Уровень 75 |
Открытие уровня не даёт слота. Вы можете иметь до 3 активных бонусов на каждый тип оружия или брони одновременно, выбирая из всего, что открыли. Бонусы навыков управляются через меню /em или посещением NPC бонуса навыков в Гильдии искателей приключений.
Файлы skillbonuses/*.yml управляют оформлением (отображаемым именем, описанием, уровнем разблокировки, типом бонуса, значком меню и шаблонами lore), а также частью баланса. Плагин читает baseValue, scalingPerLevel, procChance, cooldownSeconds, maxStacks и stackBonus, если конкретный бонус обращается к своей конфигурации. Бонусы, не читающие эти ключи, используют константы из кода. Какие значения каждый бонус получает из конфигурации, указано в разделе Бонусы навыков.
См. Бонусы навыков для полного списка всех 84 бонусов и того, что они делают.
Уведомления и интерфейс
Система навыков предоставляет несколько форм обратной связи:
- Повышение уровня: Сообщение-заголовок, звук завершения испытания и всплеск частиц тотема бессмертия при каждом повышении уровня.
- Вехи: Общесерверное оповещение отправляется только когда игрок достигает уровня-вехи (каждый 5-й уровень: 5, 10, 15, ...). Обычные повышения уровня не оповещаются. Оповещение можно отключить в
dungeons.yml. - Отображение боевого уровня: Парящее число над вашей головой, видимое другим игрокам. Обновляется автоматически при повышении уровня.
- Полоса опыта: Анимированная полоса босса, показывающая прогресс опыта навыка во время боя.
- Сообщения о получении опыта: Опциональные сообщения об опыте за каждое убийство (отключены по умолчанию, так как могут быть спамными).
Большинство вышеперечисленного настраивается в skills.yml; оповещение о повышении уровня-вехи и его сообщение находятся в dungeons.yml.
Админские команды
| Команда | Разрешение | Описание |
|---|---|---|
/em skill check <player> | elitemobs.skill.check | Просмотр уровней навыков, прогресса опыта и процентов игрока |
/em skill set <player> <skillType> <level> | elitemobs.skill.admin | Установить конкретный навык на заданный уровень |
/em skill setAll <player> <level> | elitemobs.skill.admin | Установить все навыки на одинаковый уровень |
/em debug combat start | elitemobs.admin | Запустить автоматическое тестирование боевой системы |
/em debug combat test <type> | elitemobs.admin | Протестировать конкретный тип оружия (например, мечи, луки) |
/em debug combat results | elitemobs.admin | Просмотр результатов последнего боевого теста |
/em debug combat cancel | elitemobs.admin | Отменить активный боевой тест |
Аргумент skillType для /em skill set принимает: ARMOR, SWORDS, AXES, BOWS, CROSSBOWS, TRIDENTS, HOES, MACES, SPEARS, STAVES, WANDS.
Конфигурация сервера
Система навыков настраивается в skills.yml. Основные параметры:
| Настройка | По умолчанию | Описание |
|---|---|---|
skillSystemEnabled | true | Включает или отключает всю систему навыков |
armorSkillHealthBonusEnabled | true | Даёт ли навык Брони бонусное максимальное здоровье (+1 сердце за каждый уровень выше 1) |
scalePlayerHealthDisplayToVanilla | false | Сохраняет максимальное HP EliteMobs, но визуально масштабирует HUD игрока обратно к ванильным 10 сердцам |
forceDefaultHealthWhenArmorSkillHealthBonusDisabled | false | Когда бонус здоровья от брони отключён, принудительно устанавливает игрокам ванильное максимальное здоровье 20 при входе |
skillWorldExclusions | (пусто) | Список названий миров, где система навыков неактивна. Игроки в этих мирах не получают опыта навыков, бонуса здоровья от брони, полос опыта и отображения боевого уровня. Полезно для ивент-миров, где все должны быть равны. Совпадение регистронезависимо |
skillsMenuTitle | &5&lYour Skills | Заголовок меню навыков |
showCombatLevelDisplay | true | Показывать число боевого уровня над игроками |
showXPBar | true | Показывать анимированную полосу прогресса опыта во время боя |
skillBarTitleFormat | &6$skillName &7Lv.$level$xpText | Формат заголовка полосы опыта |
skillLevelUpTitleFormat | &e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦ | Формат заголовка полосы босса при повышении уровня |
combatLevelFormat | &6&lCombat Lv. $level | Формат отображения боевого уровня |
Полный справочник по конфигурации см. на странице Настройки конфигурации EliteMobs.
Экспериментальный бой
Текущие сборки включают отдельную экспериментальную систему классов. В plugins/EliteMobs/Experimental Combat.yml параметр enabled по умолчанию равен true. Укажите false и перезагрузите EliteMobs для отключения. Во время эксперимента классы и баланс фиксированы в плагине. Для старого сервера сначала проверьте установленную версию и созданную конфигурацию.
/em class открывает профиль, /em class info <class> описывает форму, а /em class select <class> выбирает разблокированную форму. Нужно право elitemobs.command. Базовые классы: paladin, berserker, ranger, cleric, spellcaster. Spellcaster требует совместимый FreeMinecraftModels со встроенными посохом и жезлом; без них он заблокирован. Посохи и жезлы используют зарегистрированные идентификаторы предметов: обычные палка, копьё и огненный стержень не становятся магическим оружием автоматически.
/em class input java_hotbar_layer включает F, затем 1/2/3 для Mobility, Signature и Utility. /em class input focus_item выбирает альтернативное управление предметом Focus, который выдаёт /em class focus. В боевом контенте EliteMobs управление включено. allowClassAbilitiesOutsideEliteMobsWorlds по умолчанию равно true и позволяет включить его вне контента на текущий сеанс двойным нажатием F при приседании.
При включённом модуле GUILD_GREETER открывает Guild Training, иначе — выбор бонусов оружейных навыков. Прогресс классов отделён от оружия и брони. Урон классовых способностей без идентификатора оружия не даёт опыт оружия.