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

Строительство для EliteMobs

Следующая вики-страница помогает понять процесс, необходимый для создания подземелий и арен EliteMobs.

Словарь:

  • «Boss» (Босс) — крупное столкновение, рассчитанное на бой с большим числом людей
  • «Miniboss» (Минибосс) — меньшее столкновение, обычно поддающееся убийству 1 игроком
  • «Fodder» (Пушечное мясо) — относительно лёгкие в убийстве мобы

Понимание категорий подземелий EliteMobs​

Логова (Lairs)​

Наименьшая категория размера

Логова — это обычно одиночные постройки примерно 50x50, распространяемые в виде миров и обычно содержащие одно крупное столкновение с боссом, хотя некоторые могут также содержать минибосса и немного пушечного мяса.

Мини-подземелья (Minidungeons)​

Средняя категория размера

Мини-подземелья — это обычно постройки примерно 100x100 или 150x150, часто состоящие из нескольких построек или построек с несколькими секциями. У них есть 1 босс и обычно как минимум 3 или более минибоссов. В них также много пушечного мяса.

Приключения (Adventures)​

Приключения — это целые карты-приключения, обычно не измеряемые в блоках. Они размером с город или даже больше. У них есть 1 босс и 10+ минибоссов, а также десятки уникальных видов пушечного мяса, которых обычно набирается сотни или тысячи в общей сложности на карте.

Арены (Arenas)​

Арены — это волновые испытания на выживание в EliteMobs. Площадка примерно 100x100 — удобная отправная точка; фактическую область определяют настроенные угловые координаты. Выбирайте число волн с учётом желаемой продолжительности игры. Производительность зависит от активных мобов и их механик, а не от универсального ограничения в 50 волн.

Параметры настройки арены:

  • Формы арены: арены можно настроить как прямоугольные или цилиндрические с помощью настройки cylindricalArena
  • Ограничения игроков: задайте минимальное и максимальное количество игроков для участия в арене
  • Контроль доступа: ограничьте доступ к арене с помощью требований к правам
  • Кастомные награды: настройте конкретные награды за прохождение волн арены
  • Кастомизация волн: настройте интервалы между волнами и состав боссов для каждой волны

Инстансовые подземелья (Instanced Dungeons)​

Инстансовые подземелья используют заранее созданный мир-шаблон. EliteMobs копирует этот мир для каждого допущенного игрока или группы.

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

  • Создаётся новый мир специально для этой группы
  • Здоровье босса масштабируется по размеру группы: для групп из двух и более игроков максимальное здоровье босса становится baseHealth x 0.75 x playerCount, но не выше серверного settings.attribute.maxHealth.max (по умолчанию 2048). Одиночный игрок сражается с боссом на его немасштабированном здоровье
  • В динамических подземельях уровни боссов соответствуют уровню, который игроки выбирают перед выбором сложности
  • Можно настроить блокировку добычи, чтобы игроки, недавно победившие босса подземелья, не получали от него ни добычи, ни опыта навыков

Подземелья-испытания зачарования: задайте enchantmentChallenge: true для контента, используемого при попытках зачарования, которые выбирают испытание. Процесс зачарования выбирает установленное испытание и удерживает предмет игрока до определения результата. Испытание доступно только этому игроку; дополнительные участники и вход группой отклоняются.

Рейды (Raids)​

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

Параметры настройки подземелья​

При создании подземелий администраторам доступно несколько параметров настройки:

Приведённые ниже правила для взрывов, течения жидкостей и элитр регистрируются для миров с protect: true. Отключение этой защиты пропускает регистрацию этих правил мира.

Настройки окружения:

  • Окружение мира: настройте подземелья на использование окружения Обычного мира, Нижнего мира или Края через поле environment
  • Контроль взрывов: включите или отключите урон блокам от взрывов внутри подземелья с помощью флага allowExplosionBlockDamage (по умолчанию false)
  • Контроль течения жидкостей: управляйте тем, могут ли жидкости течь внутри подземелья, с помощью флага allowLiquidFlow (по умолчанию true)
  • Контроль элитр: разрешите или запретите полёт на элитрах внутри подземелья с помощью флага allowElytra (по умолчанию false)

Управление игроками:

  • Блокировка добычи: задайте dungeonLockoutMinutes, чтобы контролировать, как долго игрок, победивший босса инстансового подземелья, остаётся без добычи и опыта навыков от этого босса (по умолчанию 4320 минут / 72 часа; установите 0, чтобы отключить блокировку). Она не мешает повторно входить в подземелье
  • Количество игроков: задайте minPlayerCount (по умолчанию 1) и maxPlayerCount (по умолчанию 5) для инстансового контента
  • Сообщения региона: поля конфигурации regionEnterMessage и regionLeaveMessage сохранены, но сейчас не отправляют уведомления игрокам.
  • Требования к правам: ограничьте доступ к инстансовому подземелью с помощью permission

Методы постройки:

  • Постройка на основе мира: каждое подземелье распространяется как мир Minecraft. Подземелья на схематиках были удалены в EliteMobs 9.0 — пакет, объявляющий contentType: SCHEMATIC_DUNGEON, отклоняется при загрузке с предупреждением, а папка schematics в пакете отклоняется при импорте. Вместо этого используйте элитные святилища (elite shrines) BetterStructures для контента в стиле схематик
  • Версионирование пакета: используйте dungeonVersion, чтобы отслеживать обновления контента и управлять версиями подземелья
  • Отображение в телепортах: используйте listedInTeleports (по умолчанию true), чтобы контролировать, отображается ли подземелье в меню телепортёров подземелий
  • Фоновая музыка: задайте song, чтобы проигрывать кастомный трек, пока игроки находятся внутри подземелья

Тематика​

Самое важное в любой постройке EliteMobs — это тема. Темы влияют на дизайн постройки, её содержимое, её лор и её боссов.

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

Вот ещё один пример — Оазис. Здесь всё построено на создании локации в стиле Древнего Египта, захваченной нежитью и мумиями, и это одна из самых популярных построек в EliteMobs.

Боевые локации​

Боевые локации должны избегать создания рельефа, который легко эксплуатировать. Это означает избегать создания столбов, на которые игроки могут забраться в безопасности, декораций, которые можно использовать для обмана ИИ, и других подобных препятствий. Какие-то эксплойты всегда будут находиться, и это не так уж важно, но локации боссов должны быть менее подвержены этим эксплойтам.

Идеальная боевая зона босса относительно плоская, не загромождённая, около 30 блоков в радиусе и может содержать несколько столбов или других элементов карты, за которыми игрокам нужно прятаться, чтобы пройти определённые механики босса.

Коридоры должны стремиться быть шириной не менее 5 блоков, если в них должны быть дополнительные мобы (adds). Арены минибоссов могут быть около 15 блоков в радиусе, в зависимости от их способностей/тематики.

Обратите внимание, что это минимальные размеры. По сути нет никакой проблемы, если вы превысите их.

Учтите, что вы можете перекрывать или менять блоки окружения либо с помощью EliteScript, либо с помощью Переходных блоков. Это отличный способ убедиться, что игроки могут продвинуться дальше только после победы над определённым мобом.

Команды переходных блоков​

Переходные блоки записываются в игре, а не пишутся вручную. Для всех этих команд требуется право elitemobs.transitiveblocks, и запускать их должен игрок, а <type> — это либо ON_SPAWN (блоки, размещаемые при спавне босса), либо ON_REMOVE (блоки, размещаемые после победы над боссом):

КомандаНазначение
/em transitiveBlocks register <filename> <ON_SPAWN/ON_REMOVE>Записать переходные блоки для регионального босса
/em transitiveBlocks registerArea <filename> <ON_SPAWN/ON_REMOVE>Записать большую область переходных блоков вместо отдельных блоков
/em transitiveBlocks edit <filename> <ON_SPAWN/ON_REMOVE>Отредактировать уже записанные для этого босса блоки
/em transitiveBlocks editArea <filename> <ON_SPAWN/ON_REMOVE>Отредактировать записанную область переходных блоков
/em transitiveBlocks cancelПрервать сеанс записи или редактирования, в котором вы находитесь

<filename> — это файл босса, к которому относятся блоки; он дополняется по табу из установленных у вас кастомных боссов.

Блоки ON_REMOVE применяются, когда босс действительно побеждён — убит в бою или удалён командой kill. Они намеренно не применяются, когда босс исчезает по другим причинам, таким как выключение сервера, перезагрузка, истечение таймера деспавна или сброс арены, чтобы перезапуск не мог сохранить мир с ошибочно убранной структурой босса.

Антиэксплойт-проверки и боевые метки EliteMobs дополняют хорошо спроектированные боевые локации, но не охватывают все возможные эксплойты.

Проектирование для EliteMobs​

Чем лучше вы знаете EliteMobs, тем лучше будет контент, который вы для него создаёте. Ниже приведён список функций EliteMobs, которые помогут вам придумать интересные идеи для вашего подземелья:

  • Региональные боссы — размещайте постоянные столкновения с точками появления, привязью и таймерами возрождения. Инстансовые подземелья копируют заданные позиции боссов в каждый экземпляр; призванные существа и боссы фаз имеют собственный жизненный цикл.
  • Создание боссов — это покажет вам всё, чем босс может быть и что он может делать: маскировки, множители здоровья, может ли он двигаться и с какой скоростью, насмешки и многое другое!
  • Кастомные способности и скрипты — используйте способности Lua или YAML EliteScript для атак по таймеру, условий и механик столкновений. В EliteMobs также входит 71 встроенная способность: стихийные атаки, варианты снарядов, особые механики боссов и вспомогательные способности. Из них 68 поставляются в виде Lua-файлов.
  • Сундуки с сокровищами — они могут содержать предметы или даже превращаться во врагов (мимиков)
  • Фазы босса — у боссов могут быть фазы. Эта система очень мощная, потому что боссы могут превращаться во что угодно между фазами, включая разные типы сущностей, разные маскировки, разные кастомные модели и так далее. Также можно настроить музыку для конкретных фаз, чтобы усилить атмосферу.
  • Переходные блоки — это блоки, которые размещаются при спавне или смерти босса. Они также могут появляться и исчезать, когда босс меняет фазы! Их можно использовать для создания очень интересных динамических арен.
  • Червоточины — крутые порталы, которые могут телепортировать игроков в другие места. Ключ style принимает CUBE (по умолчанию), ICOSAHEDRON, CRYSTAL или NONE, с настраиваемыми эффектами частиц и цветами RGB.

Дополнительные возможности боссов:

  • Ездовые животные боссов: боссы могут ездить на других сущностях с кастомными точками крепления моделей для уникальных визуальных эффектов
  • Следы боссов: настройте визуальные следы из частиц, которые тянутся за боссами при движении
  • Насмешки боссов: настройте несколько случайных боевых сообщений, которые боссы могут использовать (сообщения при нанесении и при получении урона)
  • Механики побега боссов: задайте timeout и escapeMessage для удаления босса по таймеру с сообщением о побеге

Дизайн столкновений​

Дизайн столкновений должен быть приоритетом при проектировании боевой зоны. В идеале у вас должно быть представление о том, какие способности вы хотите использовать, или хотя бы о том, какова должна быть тема способностей — что-то вроде огня, или молнии, или льда, или подкреплений, или что-то ещё, что вписывается в способности EliteMobs. Как только вы знаете, какими должны быть способности, вы можете проектировать боевую зону соответствующим образом.

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

Изменение ресурс-пака EliteMobs​

Начиная с версии Minecraft 1.21.4 и версии EliteMobs 9.1.13, ресурс-пак EliteMobs был обновлён в соответствии с новым методом Minecraft для использования кастомных моделей.

EliteMobs хранит стандартный пак в plugins/EliteMobs/resource_pack/em_rsp_defaults/. При запуске он сравнивает встроенную контрольную сумму с .rsp_checksum и заменяет папку, если встроенный пак изменился либо файл контрольной суммы или папка отсутствует. Изменённые вами файлы не сравниваются, поэтому правки могут сохраниться после перезапуска, но исчезнуть при последующем экспорте. Размещайте собственные ресурсы в отдельной папке пака внутри resource_pack/.

Структура пака выглядит так:

em_rsp_defaults

  • assets
    • elitemobs
      • items
        • Этот каталог содержит JSON-файлы, определяющие, какие кастомные модели может использовать Minecraft. Сами модели хранятся в папке models.
        • Подкаталоги:
          • coins
          • elitescroll
          • gear
          • ui
      • models
        • Эта папка содержит сами файлы моделей в виде JSON-файлов.
        • Подкаталоги:
          • coins
          • elitescroll
          • gear
          • ui
      • textures
        • Эта папка хранит все текстуры, включая те, что используются моделями.
        • Подкаталоги:
          • coins
          • elitescroll
          • entity
          • gui
          • items (здесь хранятся текстуры, специфичные для моделей)
          • ui
          • font
      • equipment (определения моделей снаряжения)
      • font (определения шрифтов и HUD)
      • rspm_bedrock_pack (ассеты, используемые для сборки сопутствующего пака Bedrock через ResourcePackManager)
    • minecraft
      • atlases
      • font
      • models
        • item (содержит JSON-файлы, указывающие, какие предметы в Minecraft должны использовать кастомные модели)
      • textures
      • sounds
        • custom (хранит кастомные звуковые файлы)

Давайте разберём, как устроен JSON-файл в папке assets/elitemobs/items/coins/ и что он делает:

{
"model": {
"type": "minecraft:model",
"model": "elitemobs:coins/coin1"
}
}

Назначение: Этот JSON-файл сообщает Minecraft, что это модель, указывает тип модели и обозначает расположение файла модели.

Ключевые поля:

type: minecraft:model Указывает, что файл представляет тип модели. model: elitemobs:coins/coin1 Указывает на расположение модели внутри ресурс-пака.

Детали пути:

elitemobs: указывает Minecraft искать в папке elitemobs внутри каталога assets. coins/coin1 указывает подпапку и имя файла модели.

Полный путь к указанному файлу модели: assets/elitemobs/models/coins/coin1.json


Хороший способ проверить, правильно ли работают ваши кастомные модели, — использовать следующую команду:

/minecraft:give @p apple[item_model="elitemobs:coins/coin1"]

Как это работает: Эта команда выдаёт вам яблоко, использующее модель elitemobs:coins/coin1. Если ресурс-пак настроен правильно, вы должны увидеть кастомную модель монеты, применённую к предмету яблока.

Тестирование вашей собственной кастомной модели: Если вы добавили свою собственную кастомную модель в ресурс-пак, выполните следующие шаги, чтобы её протестировать:

  1. Создайте JSON модели: Поместите ваш JSON-файл в подходящую подпапку внутри каталога items. Например: assets/elitemobs/items/mymodel/myawesomemodel.json

  2. Добавьте файл модели: Добавьте соответствующий файл модели (myawesomemodel.json) в папку models внутри той же подпапки. Например: assets/elitemobs/models/mymodel/myawesomemodel.json

  3. Добавьте текстуру: Добавьте файл текстуры для модели в папку textures. Например: assets/elitemobs/textures/items/myawesomemodel.png


Когда всё настроено, используйте команду ниже, чтобы протестировать вашу модель:

/minecraft:give @p apple[item_model="elitemobs:mymodel/myawesomemodel"]

Если всё сделано правильно, вы получите яблоко в руку, и оно отобразит вашу кастомную модель вместо стандартной модели яблока.

Вопросы?​

Спрашивайте в Discord в любое время!