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

Создание арен

webapp_banner.jpg

Создание арен

Создайте файл .yml с уникальным именем в plugins/EliteMobs/customarenas, загрузите нужные миры и содержимое и выполните /em reload. Ссылки используют полное имя файла с .yml. Задайте положительный waveCount и действительных боссов и точки спавна для каждой волны от 1 до этого числа. Отсутствующая волна или волна, в которой не появился ни один противник, автоматически не продвигается.

Вход и проведение боя

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

После входа игрок попадает в teleportLocation, а без отдельного лобби — в startLocation. При достижении minimumPlayerCount участник с правом elitemobs.instance.start может выполнить /em start. Отсчёт снова проверяет минимальное число игроков, затем переносит участников в startLocation и начинает подготовку волны 1. Игроки и зрители выходят через /em quit.

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

allowSpectatorsInInstancedContent в Dungeons.yml управляет кнопкой зрителя и возрождениями. При включении поверженный игрок ожидает в режиме наблюдателя, пока товарищ не ударит его знамя; счётчик допускает три возрождения. Если активных бойцов не осталось, матч заканчивается поражением. При отключении поверженный игрок сразу покидает матч. Зрителям не выдаются награды волн; при выходе из режима наблюдения устанавливается режим выживания.

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

arenaContainer

Используйте arenaContainer: another_arena.yml, чтобы несколько описаний матчей делили одну физическую арену. Указанная включённая арена предоставляет углы, старт, выход, лобби, точки спавна и цилиндрическую форму. Текущий файл сохраняет собственные волны, награды, сообщения, право и ограничения игроков. Область может занимать только один матч, уже с момента допуска игроков или зрителей до боя. Она освобождается при сбросе или отмене пустой регистрации. Цепочки ссылок допустимы, отсутствующие ссылки и циклы отклоняются. Для собственной геометрии опустите ключ.

isEnabled

Задаёт, включена ли арена.

КлючЗначенияПо умолчанию
isEnabledЛогическое значениеtrue
Пример
isEnabled: true

arenaName

Задаёт название арены.

КлючЗначенияПо умолчанию
arenaNameСтроканет, задайте его
Пригодного значения по умолчанию нет

Всегда задавайте arenaName явно. Без этого ключа у арены нет отображаемого имени.

Пример
arenaName: Bedrock Arena

create_arena_name.jpg


corner1

Задаёт первый угол арены.

КлючЗначенияПо умолчанию
corner1Координатынет
Пример
corner1: my_arena_world,10,50,-10,0,0

Формат местоположения такой: world_name,x,y,z,yaw,pitch, где world_name — имя мира, x/y/z — координаты, yaw — горизонтальный поворот (0-360), а pitch — вертикальный поворот (от -90 до 90). Короткая форма world_name,x,y,z также принимается, при этом yaw и pitch по умолчанию равны 0.

Отложенные арены повторно инициализируются при загрузке мира из corner1. Если отдельный мир выхода загрузится позже, его событие не запустит повторную попытку; выполните /em reload, когда все указанные миры будут загружены.

На этом изображении corner1 представлен зелёной шерстью, а corner2 представлен красной шерстью. Эта конфигурация обозначает область между ними как арену, представленную жёлтой шерстью.

create_arena_corner.jpg


corner2

Противоположный угол арены. Учитывайте всю высоту, а не только X/Z: одинаковый Y у двух углов даёт область нулевой высоты. Оба угла и startLocation должны находиться в одном мире.

КлючЗначенияПо умолчанию
corner2Координатынет
Пример
corner2: my_arena_world,-10,80,10,0,0

На этом изображении corner1 представлен зелёной шерстью, а corner2 представлен красной шерстью. Эта конфигурация обозначает область между ними как арену, представленную жёлтой шерстью.

create_arena_corner.jpg


startLocation

Точка начала боя и входа зрителей. Без teleportLocation игроки также ожидают здесь. Разместите её на безопасной поверхности внутри области.

КлючЗначенияПо умолчанию
startLocationКоординатынет
Пример
startLocation: my_arena_world,1,50,1,0,0

exitLocation

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

КлючЗначенияПо умолчанию
exitLocationКоординатынет
Пример
exitLocation: my_world,1,50,1,0,0

waveCount

Число волн. Используйте положительное целое и хотя бы одну действительную запись босса для каждой волны от 1 до этого числа.

КлючЗначенияПо умолчанию
waveCountЦелое число0
Пример
waveCount: 10

delayBetweenWaves

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

КлючЗначенияПо умолчанию
delayBetweenWavesЦелое число0
Пример
delayBetweenWaves: 5

rawIntermissionWaves

Удваивает подготовку перед указанными волнами до delayBetweenWaves * 2. Полезно, если вы хотите дать игрокам короткую передышку между определёнными волнами.

КлючЗначенияПо умолчанию
rawIntermissionWavesСписок целых чиселнет
Пример
rawIntermissionWaves:
- '5'
- '10'
- '15'

spawnPoints

Именованные точки спавна боссов в том же мире, что и startLocation. Имена в bossList должны совпадать точно. Повторное имя заменяет прежнее положение.

КлючЗначенияПо умолчанию
spawnPointsСписок строк [1]нет
Пример
spawnPoints:
- name=north:location=my_arena_world,219.5,71,273.5
- name=south:location=my_arena_world,219.5,71,316.5
- name=west:location=my_arena_world,197.5,71,295.5
- name=east:location=my_arena_world,240.5,71,295.5
- name=center:location=my_arena_world,219.5,71,295.5

bossList

Боссы каждой волны. Одна запись создаёт одну сущность; повторите записи для нескольких противников. EliteMobs использует имя файла босса с .yml, MythicMobs — внутреннее имя моба. Для MythicMobs нужны загруженные плагин и соответствующий моб.

КлючЗначенияПо умолчанию
bossListСписок строк [2]нет
Пример
bossList:
- wave=1:spawnPoint=north:boss=my_boss_wave_1.yml
- wave=1:spawnPoint=south:boss=my_boss_wave_1.yml
- wave=2:spawnPoint=center:boss=my_mythicmobs_boss:mythicmob=true:level=10

В этом примере на волне 1 заспавнится один босс в точке спавна north и один босс в точке спавна south. Затем, на волне 2, в центральной точке заспавнится mythic-босс 10-го уровня.

Допустимые параметры: wave, spawnPoint, boss, mythicmob и level.

level передаётся только записям MythicMobs. Боссы EliteMobs его игнорируют — задавайте их уровень в их собственном конфигурационном файле.


rawArenaReward

Каждая запись награды разыгрывается независимо для каждого активного бойца в конце указанной волны, до следующей подготовки, включая последнюю волну. Зрители и вышедшие игроки исключены. Если в волне был босс EliteMobs с положительным уровнем, игрок не получает награду, когда абсолютная разница между его боевым уровнем на основе навыков и самым высоким уровнем такого босса превышает lootLevelDifferenceLockout в ItemSettings.yml. Уровни MythicMobs в сравнении не участвуют. Минимальной доли нанесённого урона не требуется.

Используйте строковый формат ниже: wave выбирает завершённую волну, itemlevel задаёт запрошенный уровень предмета, по умолчанию 1. Собственные правила фиксированного или ограниченного масштабирования предмета сохраняются. Предметы выдаются в инвентарь, излишек падает рядом; валюта поступает на баланс. Условия шанса, количества и прав остаются в силе, но фильтры подземелий difficultyID не ограничивают обычную арену. Боссы EliteMobs арены используют нормализованный бой, если их файл явно не задаёт scaledCombat: true; обычная элитная, случайная и ванильная добыча отключена.

КлючЗначенияПо умолчанию
rawArenaRewardУниверсальная таблица добычи EliteMobsнет
Пример
rawArenaReward:
- filename=enchanted_book_damage_all.yml:wave=5:chance=0.25
- filename=elite_scrap_tiny.yml:wave=1:chance=0.5:amount=5
- currencyAmount=3:wave=3
- itemlevel=5:filename=summon_merchant_scroll.yml:wave=5
- filename=magmaguys_toothpick.yml:itemlevel=10:wave=10:chance=0.95

minimumPlayerCount

Задаёт минимальное количество игроков, которое должно быть на арене перед началом.

КлючЗначенияПо умолчанию
minimumPlayerCountЦелое число1
Пример
minimumPlayerCount: 1

maximumPlayerCount

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

Эту настройку нужно задать. По умолчанию она равна 0, что отклоняет любую попытку присоединиться и делает арену недоступной для входа.

КлючЗначенияПо умолчанию
maximumPlayerCountЦелое число0
Пример
maximumPlayerCount: 100

arenaMessages

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

КлючЗначенияПо умолчанию
arenaMessagesОсобое [3]нет
Пример
arenaMessages:
- 'wave=1:message=&a[Arena Announcer] &fTime for wave one!'
- 'wave=2:message=&a[Arena Announcer] &fWow, wave two already.'

create_arena_messages.jpg


cylindricalArena

Использует цилиндр вместо прямоугольного параллелепипеда. Центр X/Z находится между углами, основание — на меньшем Y, высота равна разнице Y, радиус — половине разницы X. Размах Z не определяет радиус. Внешняя окружность и верхний Y исключены; игровые позиции держите внутри. Прямоугольная область включает оба угла.

КлючЗначенияПо умолчанию
cylindricalArenaЛогическое значениеfalse
Пример
cylindricalArena: false

permission

Право для входа бойцом. Для свободного входа опустите ключ. Кнопка зрителя сейчас не проверяет это право, поэтому оно не ограничивает зрителей.

КлючЗначенияПо умолчанию
permissionСтроканет
Пример
permission: mypermission.arena

teleportLocation

Необязательное место ожидания после успешного входа игроком через меню. Само взаимодействие с NPC не телепортирует. Лобби должно быть внутри области, иначе контроль границ вернёт ожидающих игроков. Без этой настройки они ждут в startLocation. Другая группа не может таким способом ждать внутри занятой общей арены.

КлючЗначенияПо умолчанию
teleportLocationКоординатынет
Пример
teleportLocation: my_arena_world,10,50,10,0,0

Особое [1]

Точки спавна: используют следующий формат: name=pointName:location=world_name,x,y,z.

Особое [2]

Формат списка боссов: wave=X:spawnPoint=Y:boss=bossfilename.yml.

Можно добавить два необязательных ключа:

КлючОписаниеЗначенияПо умолчанию
levelМеняет уровень только записи с mythicmob=true. EliteMobs использует собственную конфигурацию.Целое числоПри пропуске MythicMobs получает -1; задайте положительный уровень
mythicmobСчитает boss= именем моба MythicMobs, а не файлом EliteMobs. Требует MythicMobs.true / falsefalse

Пример: wave=3:spawnPoint=center:boss=my_mythic_boss:mythicmob=true:level=40

Записи делятся по :, затем по =. Неизвестные ключи игнорируются, каждому известному нужно значение. Не добавляйте пробелы вокруг ключей и разделителей; имена точек и идентификаторы боссов должны совпадать со ссылками.

Особое [3]

Сообщения арены: используют следующий формат: wave=X:message=ваше сообщение здесь.

Разделение по : запрещает двоеточия в самом сообщении. Допустимы волны от 1. Если нужны кавычки YAML, заключайте в них всю запись; кавычки только после message= попадут в отображаемый текст.

Пример конфигурации арены
isEnabled: true
arenaName: Example Arena
corner1: my_arena_world,0,0,0,0,0
corner2: my_arena_world,50,50,50,0,0
startLocation: my_arena_world,25,0,25,0,0
exitLocation: my_minecraft_world,234,44,245,0,0
waveCount: 5
delayBetweenWaves: 5
spawnPoints:
- name=north:location=my_arena_world,40.5,0,0
- name=south:location=my_arena_world,10.5,0,0
- name=west:location=my_arena_world,0,0,40.5
- name=east:location=my_arena_world,0,0,10.5
- name=center:location=my_arena_world,25.5,0,25.5
bossList:
- wave=1:spawnPoint=north:boss=example_arena_wave_1_mob.yml
- wave=1:spawnPoint=center:boss=example_arena_wave_1_mob.yml
- wave=1:spawnPoint=south:boss=example_arena_wave_1_mob.yml
- wave=2:spawnPoint=center:boss=example_arena_wave_2_mob.yml
- wave=3:spawnPoint=east:boss=example_arena_wave_3_mob.yml
- wave=3:spawnPoint=west:boss=example_arena_wave_3_mob.yml
- wave=4:spawnPoint=center:boss=example_arena_wave_4_mob.yml
- wave=4:spawnPoint=center:boss=example_arena_wave_4_mob.yml
- wave=5:spawnPoint=center:boss=example_arena_wave_5_mob.yml
- wave=5:spawnPoint=south:boss=example_arena_wave_5_mob.yml
- wave=5:spawnPoint=west:boss=example_arena_wave_5_mob.yml
rawArenaReward:
- currencyAmount=5:wave=1
- currencyAmount=10:wave=2
- currencyAmount=15:wave=3
- currencyAmount=20:wave=4
- currencyAmount=25:wave=5
- filename=magmaguys_toothpick.yml:itemlevel=5:wave=5:chance=0.5
minimumPlayerCount: 1
maximumPlayerCount: 3
arenaMessages:
- wave=1:message=&d[Arena NPC] &fWow! Wave 1!
- wave=2:message=&d[Arena NPC] &fAmazing it is wave 2!
- wave=3:message=&d[Arena NPC] &fWave 3 is now on!
- wave=4:message=&d[Arena NPC] &fWave 4 already!
- wave=5:message=&d[Arena NPC] &fWell it is all over after this one.
cylindricalArena: false
permission: arena.mypermission
Разбор примера

Давайте пройдёмся по этому примеру сверху вниз и объясним, что делает эта конфигурация арены.

Сначала арена включается с помощью isEnabled, и мы видим, что она называется Example Arena благодаря настройке arenaName. Название будет показано, когда вы взаимодействуете с NPC арены (о том, как создать NPC арены, мы поговорим ниже), который позволит игрокам присоединиться к арене. corner1 и corner2 определяют размер арены. Эти углы должны находиться на противоположных сторонах друг от друга в области, которую вы планируете использовать для арены.

startLocation — начало боя. В примере нет отдельного лобби, поэтому игроки также ждут здесь после входа. exitLocation — обычный выход в my_minecraft_world; при смертельном поражении может использоваться сохранённая позиция перед входом. Замените координаты безопасными точками в своих загруженных мирах.

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

spawnPoints задаёт места, где могут спавниться наши мобы. Мы можем создать сколько угодно точек и назвать их как угодно. В примере мы решили создать 5 точек спавна и назвать их north, south, center, east и west.

bossList — это место, где мы определяем, какой босс должен заспавниться на какой волне и в каком месте. В примере на волне 1 заспавнятся 3 босса из точек спавна, которые мы назвали north, center и south. Все три настроены на использование одного и того же файла босса, но мы могли бы использовать разные файлы боссов для каждого.

rawArenaReward выдаёт подходящим активным бойцам 5 элитных монет после волны 1. Волна 5 даёт 25 монет и отдельный шанс 50% на настроенную награду MagmaGuy's Toothpick 5-го уровня. Ограничение боевого уровня и описанные выше условия добычи сохраняются.

minimumPlayerCount задаёт минимальное необходимое количество игроков для старта арены. В нашем примере эта настройка равна 1, поэтому для старта арены нужен только один игрок. maximumPlayerCount задаёт максимальное количество игроков, которые могут участвовать в арене. В нашем примере эта настройка равна 3, то есть как только к арене присоединились 3 игрока, любой следующий игрок, пытающийся присоединиться, отклоняется сообщением «arena is full».

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

cylindricalArena — эта настройка позволяет переключить, должна ли заданная нами через corner1 и corner2 область быть цилиндрической формы вместо параллелепипеда. В нашем примере мы установили её в false, то есть пример арены имеет форму параллелепипеда.

permission требует arena.mypermission для входа игроком. Для старта также нужно elitemobs.instance.start; вход зрителем не проверяет право арены.

Создание NPC арены

Сохраните NPC в уникальном .yml в plugins/EliteMobs/npcs/ с interactionType: ARENA_MASTER и arena: your_arena.yml. Перезагрузите настройки после правок, затем разместите NPC командой /em place npc <npcfilename.yml> с правом elitemobs.place.npc либо настройте spawnLocations. Справочник NPC описывает размещение, удаление, scripts, patrol, classRoot и transportRoutes.

isEnabled

Задаёт, включён ли NPC.

КлючЗначенияПо умолчанию
isEnabledЛогическое значениеtrue
Пример
isEnabled: true

name

Задаёт отображаемое имя NPC.

КлючЗначенияПо умолчанию
nameСтрокапусто
Пример
name: "&aGladius"

create_arena_npc_name.jpg


role

Задаёт отображение роли под именем NPC.

КлючЗначенияПо умолчанию
roleСтрокапусто
Пример
role: "&c<Arena Master>"

create_arena_npc_role.jpg


profession

Задаёт профессию NPC из Minecraft.

КлючЗначенияПо умолчанию
professionПрофессияNITWIT
Пример
profession: ARMORER

Будет переопределена, если используется disguise.

create_arena_npc_profession.jpg


spawnLocation

Устаревшая одиночная позиция, используемая только при пустом или отсутствующем spawnLocations. Для новых файлов предпочтителен список. При переходе удалите старый ключ, иначе пустой список снова активирует старую позицию.

КлючЗначенияПо умолчанию
spawnLocationКоординатынет
Пример
spawnLocation: my_world,1.5,50,1.5,-108,0

spawnLocations

Сохранённые позиции NPC. Непустой список заменяет spawnLocation, а не дополняет его. Миры должны быть загружены; в каждой точке создаётся отдельный NPC с этой конфигурацией.

КлючЗначенияПо умолчанию
spawnLocationsСписок строкнет
Пример
spawnLocations:
- my_world,1.5,50,1.5,-108,0
- my_world,100.5,50,50.5,0,0

greetings

Случайные приветствия при обнаруженном входе в радиус. Проверка близости идёт каждые 100 тиков, поэтому короткий визит может быть пропущен. Трёхсекундная пауза речи у каждого NPC общая для игроков: приветствие другому игроку может подавить ваше.

КлючЗначенияПо умолчанию
greetingsСписок строкнет
Пример
greetings:
- Welcome to the Arena!
- The Arena welcomes you!

create_arena_npc_greetings.jpg


dialog

Для ARENA_MASTER это случайные реплики при последующих проверках близости, пока игрок рядом. Щелчок открывает меню арены. Только CHAT использует список как встроенное действие щелчка.

КлючЗначенияПо умолчанию
dialogСписок строкнет
Пример
dialog:
- Ready for a challenge?
- Face the Arena?

create_arena_npc_dialog.jpg


farewell

Случайное прощание при закрытии любого инвентаря с непустым заголовком в области по 5 блоков вдоль каждой оси от NPC, с учётом паузы речи. Это не обязательно его меню; простое удаление от NPC прощание не вызывает.

КлючЗначенияПо умолчанию
farewellСписок строкнет
Пример
farewell:
- Bye.
- Return with your shield, or on it!

create_arena_npc_farewell.jpg

Используйте буквальное \n в YAML-строке без кавычек или в одинарных кавычках для переноса строк речевого пузыря.

farewell:
- Bye.
- Return with your\nshield, or on it!

create_arena_npc_lines.jpg


canTalk

Включает обычные пузыри приветствия, диалога и прощания. Отключение не убирает меню арены, диалоги заданий, скрипты или маркеры заданий.

КлючЗначенияПо умолчанию
canTalkЛогическое значениеtrue
Пример
canTalk: true

activationRadius

Трёхмерный радиус близости в блоках. Ноль и отрицательные значения отключают сканирование; у маркеров заданий собственная дальность. Движение и редактирование патруля подавляют обычную речь по близости на время своей активности.

КлючЗначенияПо умолчанию
activationRadiusДробное число3.0
Пример
activationRadius: 3.0

timeout

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

КлючЗначенияПо умолчанию
timeoutДробное число0
Пример
timeout: 60

interactionType

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

КлючЗначенияПо умолчанию
interactionTypeОсобое [4]NONE
Пример
interactionType: ARENA_MASTER

disguise

Задаёт кастомную маскировку NPC.

КлючЗначенияПо умолчанию
disguiseМаскировканет
Пример
disguise: ZOMBIE

create_arena_npc_disguise.jpg


customDisguiseData

Данные именованной маскировки LibsDisguises. Используйте вместе с disguise: custom:your_disguise_name; одно это поле маскировку не включает.

КлючЗначенияПо умолчанию
customDisguiseDataСтроканет
Пример
disguise: custom:arena_guide
customDisguiseData: player MHF_Pig

customModel

Загруженная пользовательская модель. Доступный FreeMinecraftModels имеет приоритет; если модели в нём нет, повторной попытки через ModelEngine не будет. Рабочая модель визуально приоритетнее маскировки. Игрокам также нужны соответствующие ресурсы пакета.

КлючЗначенияПо умолчанию
customModelСтроканет
Пример
customModel: my_model

arena

Определение арены, меню которой открывает ARENA_MASTER, с расширением .yml. Арена должна быть включена и успешно инициализирована. Открытие меню само по себе не регистрирует и не телепортирует игрока.

КлючЗначенияПо умолчанию
arenaИмя файланет
Пример
arena: my_arena.yml

command

Команда от имени взаимодействующего игрока с его правами. Требует interactionType: COMMAND. Начальный слеш опускается; $player не подставляется.

КлючЗначенияПо умолчанию
commandСтроканет
Пример
command: say Hello

questFileName

Задаёт имена файлов заданий для NPC. Требует, чтобы interactionType был установлен в CUSTOM_QUEST_GIVER.

КлючЗначенияПо умолчанию
questFileNameСписок строкнет
Пример
questFileName:
- my_quest_1.yml
- my_quest_2.yml

noPreviousLocationMessage

Сообщение для TELEPORT_BACK, когда не сохранена точка возврата EliteMobs. Она записывается телепортацией EliteMobs из мира вне EliteMobs, а не просто при перемещении или смерти игрока.

КлючЗначенияПо умолчанию
noPreviousLocationMessageСтрокапусто
Пример
noPreviousLocationMessage: '&cCouldn''t find a previous location!'

instanced

Помечает NPC как шаблон для инстансового подземелья вместо появления в исходном мире. Обычные NPC арены используют false; ключ не превращает физическую арену в копируемое подземелье.

КлючЗначенияПо умолчанию
instancedЛогическое значениеfalse
Пример
instanced: false

scale

Масштаб лежащего в основе жителя. Маскировка или модель может иметь собственный визуальный масштаб; одинаковый видимый размер у всех поставщиков не гарантирован.

КлючЗначенияПо умолчанию
scaleДробное число1.0
Пример
scale: 1.0

syncMovement

Синхронизирует движение модели с NPC. Действительный патруль принудительно включает синхронизацию даже при false, в том числе когда патруль приостановлен.

КлючЗначенияПо умолчанию
syncMovementЛогическое значениеtrue
Пример
syncMovement: true

Пример конфигурации арены
isEnabled: true
name: Example NPC
role: <Arena Master>
profession: ARMORER
spawnLocations:
- my_minecraft_world,233,44,245,0,0
greetings:
- Welcome to the Arena!
dialog:
- Ready to enter the Arena?
farewell:
- Bye!
canTalk: true
activationRadius: 3.0
interactionType: ARENA_MASTER
disguise: ZOMBIE
arena: example_arena.yml

В этом примере показан базовый NPC арены, который заспавнится в my_minecraft_world с маскировкой под зомби. Игроки могут взаимодействовать с этим NPC, чтобы бросить вызов Example Arena.

Особое [4]

Ниже приведён список допустимых типов взаимодействия NPC:

ТипОписание
GUILD_GREETERОткрывает выбор бонусов навыков; требует elitemobs.skill.npc.
CLASS_TRAINERОткрывает обучение classRoot при включённом [Alpha] Advanced Combat System; требует elitemobs.command.
TRANSPORTОткрывает направления из transportRoutes; см. Транспорт.
CHATПКМ выбирает случайную строку из dialog.
CUSTOM_SHOPОткрывает меню кастомного магазина
PROCEDURALLY_GENERATED_SHOPОткрывает процедурно сгенерированный магазин
BARПоказывает сообщение о том, что функция ещё не доступна.
ARENAНичего не делает. Используйте ARENA_MASTER вместо этого.
QUEST_GIVERОткрывает меню процедурно сгенерированных заданий
CUSTOM_QUEST_GIVERОткрывает меню заданий для конкретного задания, заданного в questFileName
NONEНет встроенного действия; скрипты, близость и диалоги заданий всё ещё работают.
SELLОткрывает меню продажи
TELEPORT_BACKИспользует сохранённую точку возврата EliteMobs; требует elitemobs.back.npc.
SCRAPPERОткрывает меню утилизации
SMELTERУСТАРЕЛО — функция удалена, не используйте
REPAIRMANОткрывает меню ремонта
ENHANCERУСТАРЕЛО — функция удалена, не используйте
REFINERУСТАРЕЛО — функция удалена, не используйте
UNBINDERОткрывает меню развязывания
ARENA_MASTERОткрывает меню арены для арены, заданной в arena
COMMANDВыполняет команду, заданную в command
ENCHANTERОткрывает меню зачарования
SCROLL_APPLIERОткрывает меню применения свитков
ARROW_SHOPОткрывает меню магазина стрел
GAMBLING_BLACKJACKОткрывает азартную игру в блэкджек
GAMBLING_COINFLIPОткрывает азартную игру в подбрасывание монеты
GAMBLING_SLOTSОткрывает азартную игру в слоты
GAMBLING_HIGHERLOWERОткрывает азартную игру «больше/меньше»

У других типов свои права и настройки. Перед использованием смотрите полный справочник взаимодействий NPC; для входа на арену нужен ARENA_MASTER.