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

Создание контента EliteMobs

EliteMobs использует YAML для боссов, предметов, заданий и других определений, а Lua — для способностей, скриптов NPC и нативного поведения. Поместите каждый файл в соответствующую папку внутри plugins/EliteMobs/.

Типы контента​

Этот обзор охватывает восемь основных типов контента, а также вспомогательные определения и скрипты ниже:

  1. Кастомные боссы — создавайте уникальных элитных мобов с кастомными способностями, снаряжением и умениями
  2. Кастомные предметы — проектируйте кастомное оружие, броню и предметы с зачарованиями
  3. Кастомные задания — стройте цепочки заданий с целями и наградами
  4. Кастомные события — настраивайте боссовые события по таймеру или по триггеру
  5. Кастомные NPC — добавляйте раздающих задания, магазины и интерактивных NPC
  6. Сундуки с сокровищами — размещайте сундуки с добычей с кастомными наградами и механикой мимиков
  7. Арены — проектируйте волновые боевые испытания со столкновениями с боссами
  8. Червоточины — создавайте телепортационные порталы между местами

У каждого типа контента есть своя конфигурационная папка и структура полей.

Быстрый старт​

Для определения контента в YAML:

  1. Создайте YAML-файл с расширением .yml
  2. Назовите его в формате lowercase_with_underscores.yml
  3. Поместите его в подходящую папку
  4. Настройте контент с помощью полей YAML
  5. Перезагрузите EliteMobs или перезапустите сервер

Расположение файлов​

Каждый тип контента хранится в своей папке:

  • Кастомные боссы: ~/plugins/EliteMobs/custombosses/
  • Кастомные предметы: ~/plugins/EliteMobs/customitems/
  • Кастомные задания: ~/plugins/EliteMobs/customquests/
  • Кастомные события: ~/plugins/EliteMobs/customevents/
  • Кастомные NPC: ~/plugins/EliteMobs/npcs/
  • Сундуки с сокровищами: ~/plugins/EliteMobs/customtreasurechests/
  • Арены: ~/plugins/EliteMobs/customarenas/
  • Червоточины: ~/plugins/EliteMobs/wormholes/

У вспомогательного контента есть дополнительные папки:

  • Способности: ~/plugins/EliteMobs/powers/
  • Кастомные спавны: ~/plugins/EliteMobs/customspawns/
  • Lua-скрипты NPC: ~/plugins/EliteMobs/npc_scripts/
  • Нативное поведение Lua: ~/plugins/EliteMobs/behaviors/
  • Транспортные маршруты: ~/plugins/EliteMobs/transport_routes/
  • Определения зачарований и Lua: ~/plugins/EliteMobs/enchantments/
  • Пакеты подземелий: ~/plugins/EliteMobs/content_packages/
  • Шаблоны миров инстансов: ~/plugins/EliteMobs/world_blueprints/

Папка scripts/ на уровне пакета принадлежит FreeMinecraftModels. Это не папка скриптов NPC или поведения EliteMobs; см. распределение папок пакета.

Инструменты создания контента​

EliteMobs WebApp предоставляет визуальный интерфейс создания конфигураций. Сверяйте результат с текущей справкой по типу контента: новые поля и Lua-скрипты могут требовать ручного редактирования.

Ручная настройка YAML​

Для опытных пользователей — создавайте YAML-файлы вручную для полного контроля над всеми доступными полями и параметрами.

Формат файла YAML​

Эти правила относятся к определениям YAML. Способности Lua, скрипты NPC и поведение используют отдельные файлы .lua:

  • Используйте для отступов пробелы, а не табуляцию
  • Заключайте в кавычки строки, начинающиеся с цветовых кодов; одинарные кавычки удобны для буквального текста
  • Списки используют формат с дефисом или формат со скобками
  • isEnabled управляет включением определения YAML. Значение по умолчанию зависит от типа контента и готового определения; указывайте его явно в новых файлах и сверяйтесь с соответствующей справкой
  • Имена файлов должны использовать формат lowercase_with_underscores.yml

Подробную помощь по синтаксису YAML см. в Руководстве по конфигурационным файлам.

Обзор типов контента​

Кастомные боссы​

Кастомные боссы — это элитные мобы с улучшенными умениями, кастомным снаряжением и особыми способностями. Система боссов поддерживает 60+ конфигурационных полей, в том числе:

  • Тип сущности и уровень
  • Множители здоровья и урона
  • Снаряжение (броня и оружие)
  • Элитные способности и умения
  • Таблицы добычи и дроп
  • Сообщения и команды при спавне/смерти
  • Многофазовые механики
  • Кастомные модели и маскировки

Пример базового босса:

isEnabled: true
entityType: ZOMBIE
name: '&e Test Boss'
level: dynamic
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
mainHand: GOLDEN_AXE
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!

Кастомные предметы​

Кастомные предметы позволяют создавать оружие, броню и инструменты со своими зачарованиями и эффектами. Возможности системы:

  • Тип материала
  • Отображаемое имя и лор
  • Список зачарований
  • Эффекты зелий
  • ID кастомных моделей
  • Вес дропа и масштабирование
  • Настройки уровня и привязки к душе

Пример базового предмета:

isEnabled: true
material: DIAMOND_SWORD
name: '&4Legendary Blade'
lore:
- '&7A powerful weapon'
- '&7forged in dragon fire'
enchantments:
- DAMAGE_ALL,5
- FIRE_ASPECT,2
level: 10
soulbound: true

Кастомные задания​

Кастомные задания определяют цели игроков и награды за выполнение. Возможности системы:

  • Цели и типы заданий
  • Награды (предметы, деньги, права)
  • Диалог принятия/завершения
  • Требования к сдаче NPC
  • Таймеры блокировки заданий
  • Отслеживание и звуки

Кастомные события​

Кастомные события вызывают спавн боссов по времени, вероятности или другим условиям. Возможности системы:

  • Тип события и список боссов
  • Шанс триггера и вес
  • Сообщения и команды начала/конца
  • Таймеры перезарядки (локальные и глобальные)
  • Минимальное количество игроков
  • Длительность события

Кастомные NPC​

Кастомные NPC предоставляют интерактивных персонажей для заданий, магазинов и арен. Возможности системы:

  • Имя, роль и профессия NPC
  • Местоположения спавна
  • Диалог (приветствия, диалог, прощание)
  • Типы взаимодействия
  • Ссылки на задания и арены
  • Кастомные модели и маскировки
  • Lua-хуки NPC и маршруты патрулирования

Сундуки с сокровищами​

Сундуки с сокровищами дают добычу с настраиваемыми таймерами пополнения и механикой мимиков. Возможности системы:

  • Тип и ориентация сундука
  • Координаты местоположения
  • Таблица добычи
  • Таймеры пополнения
  • Шанс мимика и список боссов
  • Режим выпадения: для одного игрока или отдельно для каждого игрока группы

Арены​

Арены создают волновые бои с боссами. Возможности системы:

  • Границы арены (corner1, corner2)
  • Количество волн и задержки
  • Список боссов и точки спавна
  • Награды и ограничения игроков
  • Сообщения арены
  • Волны с передышкой

Червоточины​

Червоточины создают порталы между двумя местами. Возможности системы:

  • Две конечные точки-местоположения
  • Отображаемый текст для каждого местоположения
  • Визуальный стиль и цвета частиц
  • Стоимость в монетах и права
  • Эффект ослепления и множитель размера
  • Необязательные модели сущностей на обоих концах

Распространённые паттерны​

Ссылки на контент​

Типы контента ссылаются друг на друга по именам файлов:

  • Ссылка на способности в боссах: power_name.lua (устаревшая ссылка power_name.yml автоматически разрешается в способность .lua с тем же именем)
  • Ссылка на предметы в добыче: filename: item_name.yml (см. формат Таблиц добычи для шанса, количества и прочего)
  • Ссылка на боссов в событиях: boss_filename.yml
  • Ссылка на задания в NPC: quest_filename.yml

Повторное использование определений​

Файлы пользовательских боссов, NPC и транспортных маршрутов могут брать за основу другой файл того же типа с помощью extends: base_file.yml и переопределять только отличающиеся ключи. Размещения и isEnabled никогда не наследуются. Полные правила описаны в разделах Повторное использование другого файла босса и Повторное использование другого файла NPC.

Плейсхолдеры​

Плейсхолдеры зависят от поля, которое их читает; они не заменяются глобально в любом сообщении:

  • $players — отображаемые имена участвовавших атакующих в объявлениях о смерти босса
  • $distance — расстояние до отслеживаемого босса в locationMessage
  • $eventBossLevel — оформленный уровень в именах боссов; при неизвестном уровне предварительный просмотр может показать ?

Цветовые коды​

Используйте цветовые коды Minecraft в именах и сообщениях. Если текст начинается с цветового кода, заключите всю строку в кавычки. Одинарные кавычки сохраняют обратные косые черты буквально; двойные кавычки YAML тоже допустимы.

Стандартные цветовые коды Minecraft:

  • &0 — Чёрный
  • &1 — Тёмно-синий
  • &2 — Тёмно-зелёный
  • &3 — Тёмно-бирюзовый
  • &4 — Тёмно-красный
  • &5 — Тёмно-фиолетовый
  • &6 — Золотой
  • &7 — Серый
  • &8 — Тёмно-серый
  • &9 — Синий
  • &a — Зелёный
  • &b — Бирюзовый
  • &c — Красный
  • &d — Светло-фиолетовый
  • &e — Жёлтый
  • &f — Белый

Коды форматирования:

  • &l — Жирный
  • &m — Зачёркнутый
  • &n — Подчёркнутый
  • &o — Курсив
  • &r — Сброс

Система элитных способностей​

EliteMobs поставляет 71 способность: 68 файлов Lua (*.lua); только bonus_coins.yml, custom_summon.yml и elite_script.yml остаются в YAML. Конфигурации боссов ссылаются на них по имени файла; старые ссылки .yml автоматически разрешаются в одноимённую способность .lua. См. Создание способностей.

Категории способностей​

Категория — это powerType способности; она также определяет, могут ли естественные элиты получить её случайно.

Атакующие: arrow_fireworks, arrow_rain, attack_arrow, attack_fire, attack_fireball, attack_freeze, attack_gravity, attack_lightning, attack_poison, attack_push, attack_vacuum, attack_wither, fireworks_barrage, lightning_bolts, taze

Защитные: invulnerability_arrow, invulnerability_fall_damage, invulnerability_fire, invulnerability_fireworks, invulnerability_knockback, shield_wall

Разные: attack_blinding, attack_confusing, attack_weakness, attack_web, bonus_loot, channel_healing, corpse, frost_walker, ground_pound, implosion, invisibility, moonwalk, movement_speed, taunt

Основные способности (ограничены типом сущности):

  • MAJOR_ZOMBIE: zombie_bloat, zombie_friends, zombie_necronomicon, zombie_parents
  • MAJOR_SKELETON: bullet_hell, skeleton_pillar, skeleton_tracking_arrow
  • MAJOR_BLAZE: firestorm, flame_pyre
  • MAJOR_ENDERMAN: plasma_blaster
  • MAJOR_GHAST: tracking_fireball

Уникальные (только при явном указании имени в боссе): death_slice, flamethrower, frost_cone, gold_explosion, gold_shotgun, hyper_loot, meteor_shower, photon_ray, spirit_walk, summon_embers, summon_the_returned, thunderstorm, а также десять способностей Дракона Края: ender_dragon_aimed_fireball, ender_dragon_arrow_bombardment, ender_dragon_disco_fireballs, ender_dragon_empowered_lightning, ender_dragon_ender_fireball_bombardment, ender_dragon_endermite_bombardment, ender_dragon_fireball_bombardment, ender_dragon_potion_bombardment, ender_dragon_shockwave, ender_dragon_tornado

Всё ещё YAML: bonus_coins.yml, custom_summon.yml (система подкреплений), elite_script.yml

Способности добавляются боссам с помощью поля-списка powers:

powers:
- invulnerability_knockback.lua
- flame_pyre.lua
- spirit_walk.lua

Продвинутые возможности​

Многофазовые боссы​

У боссов может быть несколько фаз с отдельными конфигурационными файлами. Используйте поле phases для ссылки на файлы фазовых боссов и phaseSpawnLocation, чтобы задать, где происходят переходы между фазами.

Elite-скрипты​

Elite-скрипты предоставляют действия, условия и перезарядки по событиям. YAML EliteScript использует поле eliteScript босса. Способности Lua — отдельные файлы .lua, на которые ссылаются из powers; см. Создание способностей.

Кастомные модели​

Боссы и NPC используют customModel для моделей сущностей. У предметов свои поля, включая customModelV2, equipmentModelID и fmmItemModel; см. Кастомные предметы. Модели сущностей и предметов настраиваются отдельно.

Снаряжение босса​

Поля снаряжения босса принимают имена материалов Minecraft. Они не загружают файлы кастомных предметов или их характеристики EliteMobs:

helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD

Выполнение команд​

Боссы могут выполнять команды при определённых событиях:

  • onSpawnCommands — выполняются при спавне босса
  • onDeathCommands — выполняются при победе над боссом
  • onCombatEnterCommands — выполняются при начале боя
  • onCombatLeaveCommands — выполняются при окончании боя

Сообщения босса​

Настраивайте объявления босса:

  • spawnMessage — транслируется при спавне босса
  • deathMessage — транслируется при победе над боссом (поддерживает плейсхолдер $players)
  • escapeMessage — транслируется при побеге босса
  • locationMessage — показывает расстояние до босса (поддерживает плейсхолдер $distance)
  • deathMessages — строки, отправляемые по порядку при смерти босса, если записаны атакующие; непустой список имеет приоритет над deathMessage. Это не случайный выбор

announcementPriority (0–3) управляет доставкой объявлений, отслеживанием и передачей в DiscordSRV. Объявления о смерти при 0 идут записанным атакующим; положительные приоритеты рассылают их всему серверу, а 3 также передаёт через настроенную интеграцию DiscordSRV. У объявлений о спавне и отслеживания свои правила.

Региональные боссы​

Региональные боссы используют поле isRegionalBoss и могут иметь радиус привязи, ограничения спавна и изменения состояния блоков:

  • leashRadius — максимальное расстояние от точки спавна
  • onSpawnBlockStates — изменения блоков при спавне босса
  • onRemoveBlockStates — изменения блоков при победе над боссом; обычная выгрузка, исчезновение и сброс не применяют состояние победы

Автоматическая классовая добыча​

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

Настройка добычи​

Контролируйте дроп босса:

  • dropsEliteMobsLoot — включает обычную обработку генерируемой добычи и монет (по умолчанию true); это не общий выключатель авторской или классовой добычи
  • dropsVanillaLoot — включает ванильный дроп (по умолчанию true)
  • dropsRandomLoot — включает случайную генерируемую добычу в обычном пути обработки (по умолчанию true)
  • uniqueLootList — авторские записи добычи, обрабатываемые отдельно от этих переключателей
  • classLoot — отдельно управляет автоматической классовой добычей; глобальные настройки и условия допуска сохраняются

Пример:

uniqueLootList:
- filename=custom_sword.yml:chance=1.0
- filename=rare_helmet.yml:chance=0.05:amount=1

Устаревшая сокращённая запись custom_sword.yml:1 по-прежнему разбирается, но число после двоеточия — это шанс выпадения (1 = 100%), а не количество. Для количества используйте amount=. Полный набор опций см. в Таблицах добычи.

Готовый контент​

EliteMobs поставляет готовые конфигурации для большинства типов контента и записывает их прямо в обычные папки контента при первой загрузке — отдельной папки /premade/ на диске нет. Сгенерированные файлы (боссы в custombosses/, предметы в customitems/, NPC в npcs/ и так далее) — это обычный YAML, который служит рабочими примерами для вашего собственного контента.

Определения готовых пакетов тоже поставляются с плагином; их миры подземелий и дополнительный контент загружаются и устанавливаются через /em setup. См. Упаковщик подземелий.

Получение помощи​

  • Загляните в боковую панель за конкретными руководствами по созданию контента
  • Посетите Discord EliteMobs для поддержки сообщества
  • Изучите репозиторий GitHub для примеров исходного кода