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

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

webapp_banner.jpg

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

Значения

isEnabled

Определяет, включён ли сундук с сокровищами.

КлючЗначенияПо умолчанию
isEnabledBooleanfalse

Отключённые сундуки пропускаются полностью: они не размещаются в мире и не предлагаются (и не принимаются) командой /em place treasureChest. Установите значение true, прежде чем пытаться разместить сундук.

Пример
isEnabled: true

chestType

Задаёт тип материала сундука.

КлючЗначенияПо умолчанию
chestTypeMaterialCHEST
Пример
chestType: CHEST

Это должен быть допустимый материал сундука, например CHEST или BARREL.

create_chest_material.jpg


facing

Задаёт направление, в которое повёрнут сундук.

КлючЗначенияПо умолчанию
facingОсобое [1]NORTH
Пример
facing: NORTH

Это задаёт направление, в которое повёрнут сундук. Допустимые значения: NORTH, SOUTH, EAST или WEST.

Особое [1]

Развернуть таблицу
Направление
NORTH
SOUTH
WEST
EAST

dropStyle

Определяет, предназначен ли сундук для одного игрока или для нескольких.

Сундуки SINGLE расходуются первым открывшим их игроком: блок заменяется воздухом, записывается restockTime, и блок появляется снова, когда пройдёт restockTimer минут. Отслеживания по игрокам нет, поэтому кто первым пришёл, тот и забрал весь сундук.

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

КлючЗначенияПо умолчанию
dropStyleSINGLE / GROUPSINGLE
Пример
dropStyle: SINGLE

lootList

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

КлючЗначенияПо умолчанию
lootListEM Loot Tableнет
Пример
lootList:
- filename=elite_scrap_tiny.yml:chance=0.90
- filename=magmaguys_toothpick.yml:chance=1.0

Если ни одна запись в списке не проходит свой розыгрыш chance, игроку отправляется treasureChestNoDropMessage из config.yml, чтобы сундук не давал молча ничего. Перезарядка при этом всё равно расходуется.


mimicChance

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

КлючЗначенияПо умолчанию
mimicChanceDouble0

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

Пример
mimicChance: 0.5

mimicCustomBossesList

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

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

КлючЗначенияПо умолчанию
mimicCustomBossesListString Listнет
Пример
mimicCustomBossesList:
- my_cool_mimic_boss.yml
- weak_mimic_boss.yml

Если вы хотите назначить боссам веса, список следует оформить так:

mimicCustomBossesList:
- my_cool_mimic_boss.yml:60
- weak_mimic_boss.yml:40

При такой конфигурации my_cool_mimic_boss.yml с большей вероятностью будет выбран для появления, чем weak_mimic_boss.yml.

Запись без суффикса веса, а также запись, чей вес не читается как число, обе откатываются к весу 1.

С каким уровнем появляется мимик?

Это зависит от файла босса, на который вы указываете, а не от сундука:

level босса-мимикаУровень, с которым он появляется
Фиксированное числоchestTier × 10 плюс случайные 0-10
dynamic (-1) внутри динамического подземельяВыбранный уровень подземелья, ±1
dynamic (-1) в любом другом местеЕстественный уровень спавна открывшего игрока, ±1

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


restockTimer

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

КлючЗначенияПо умолчанию
restockTimerInteger0

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

Оставленное по умолчанию значение 0 означает, что перезарядки фактически нет вообще, поэтому сундук можно фармить многократно. Задавайте реальное значение любому сундуку, который роняет что-то стоящее.

Пример
restockTimer: 30

effects

Примечание: эта настройка в настоящее время ничего не делает. Ключ по-прежнему читается из конфигурационного файла без ошибок и по-прежнему записывается вместе с остальными значениями по умолчанию, но ничто в плагине не использует разобранное значение, поэтому сундук с сокровищами никогда не порождает частиц.

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

КлючЗначенияПо умолчанию
effectsString Listнет

locations

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

Местоположения можно добавлять командой /em place treasureChest <treasurechestfilename.yml>, стоя в нужном месте. Эта команда автоматически добавляет вашу текущую позицию в список местоположений сундука и обновляет конфигурационный файл.

КлючЗначенияПо умолчанию
locationsString Listнет

Каждая запись использует формат worldName,x,y,z,yaw,pitch. Более короткая форма worldName,x,y,z также принимается, при этом yaw и pitch считаются равными 0.

Записи могут нести суффикс :unixTimestamp — так EliteMobs хранит время пополнения этого конкретного размещения сундука. Плагин записывает этот суффикс сам, когда сундук SINGLE обобран, — добавлять его не нужно, и вы можете удалить его, чтобы сундук стал доступен немедленно.

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

Пример
locations:
- my_world,10,50,10,0,0
- my_nether_world,12,58,12,0,0
- my_world,80,64,-30,0,0:1707394380

chestTier

Задаёт уровень (tier) сундука, который является базой для уровня роняемой им добычи. Базовый уровень равен chestTier * 10.

КлючЗначенияПо умолчанию
chestTierInteger0

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

СитуацияУровень, с которым выпадает добыча
Сундук открыт вне какого-либо инстансаЭлитные предметы scalable следуют уровню открывшего игрока, ±1. Всё остальное использует chestTier * 10.
Сундук внутри динамического подземельяВыбранный уровень подземелья используется для всего, элитные предметы scalable получают ±1. chestTier игнорируется.
Сундук внутри любого другого инстансаchestTier * 10 для всего.

Таким образом, в обычном мире выживания chestTier в основном задаёт уровень ваших предметов fixed и limited, тогда как предметы scalable следуют за игроком, открывшим сундук. Учтите, что мимик использует другую формулу — см. mimicCustomBossesList.

Оставленное по умолчанию значение 0 даёт базовый уровень добычи 0.

Пример
chestTier: 3

instanced

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

НЕ ЗАДАВАЙТЕ ЭТО ЗНАЧЕНИЕ ВРУЧНУЮ.

КлючЗначенияПо умолчанию
instancedBooleanfalse
Пример
instanced: true

restockTime

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

Это используется только устаревшим форматом одиночного сундука, где позиция сундука лежит в ключе location, а не в списке locations. Как только в файле появляются любые записи locations, время пополнения вместо этого записывается как суффикс :unixTimestamp у соответствующей записи locations, а этот ключ не трогается.

НЕ ЗАДАВАЙТЕ ЭТО ЗНАЧЕНИЕ ВРУЧНУЮ.

КлючЗначенияПо умолчанию
restockTimeUnix Timestamp0
Пример
restockTime: 1707394380

restockTimers

Хранит данные о перезарядке по игрокам для сундуков режима GROUP. Плагин записывает это автоматически и удаляет истёкшие записи по мере их чтения.

Инстансовые сундуки не используют этот список — внутри инстанса перезарядка по игрокам хранится в памяти только на время жизни этого инстанса.

НЕ ЗАДАВАЙТЕ ЭТО ЗНАЧЕНИЕ ВРУЧНУЮ.

КлючЗначенияПо умолчанию
restockTimersString Listнет
Пример
restockTimers:
- '1234567890-abcd-efgh-ijkl-123456789012:1707394380'
- '0987654321-zyxw-vutr-sqpo-098765432109:1707395000'

Каждая запись содержит UUID игрока и Unix-метку времени, разделённые двоеточием.


Пример конфигурации сундука с сокровищами
isEnabled: true
chestType: CHEST
facing: NORTH
chestTier: 3
dropStyle: GROUP
lootList:
- filename=elite_scrap_tiny.yml:chance=0.90
- filename=magmaguys_toothpick.yml:chance=0.95
mimicChance: 0.50
mimicCustomBossesList:
- balrog.yml
- killer_rabbit_of_caerbannog.yml
restockTimer: 1
locations:
- world,0.0,-60.0,-14.0,0.0,0.0

Учтите, что каждая запись добычи выше использует префикс filename=. Запись magmaguys_toothpick.yml:chance=0.95 вместо этого была бы прочитана как устаревший формат filename.yml:chance, а chance=0.95 не является числом, поэтому запись выводила бы предупреждение разбора при каждом запуске.

create_chest_chest.jpg