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

Пользовательская таблица лута

Универсальный формат лута. Используется EliteMobs в нескольких разных местах.

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

Примечание: поддержка устаревшего формата всё ещё доступна с использованием синтаксиса, разделённого двоеточиями: filename.yml:chance:permission. Однако для новых конфигураций рекомендуется современный формат, показанный ниже.

В этом устаревшем синтаксисе шанс обязателен. Запись голого filename.yml без ничего после него по-прежнему роняет предмет со 100% вероятностью, но при каждом запуске выводит предупреждение Failed to parse entry ... due to invalid: chance, поэтому предпочитайте filename.yml:1.0 или современный формат.

Обязательно начинайте свои таблицы лута с uniqueLootList: перед добавлением любых настроек, иначе конфигурация .yml выдаст ошибку.

Выпадение elite-предметов:

KeyDetailsValuesDefault
filenameЗадаёт имя файла используемого пользовательского предмета.Filenamenone
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml

Это заставит моба выбросить 1 предмет MagmaGuy's Toothpick со 100% шансом выпадения.

Общие настройки:

KeyDetailsValuesDefault
chanceЗадаёт шанс выпадения лута, где 1.0 — это 100%.Double1.0
amountЗадаёт количество этой записи лута, которое выпадет. Игнорируется записями валюты — для них используйте currencyAmount.Integer1
permissionЗадаёт право (permission node), необходимое игрокам для получения этого лута. Поддерживается записями elite-предметов, валюты и команд. Записи ванильных предметов его никогда не читают, ни в одном из форматов.Stringnone
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare

Это заставит моба выбросить 10 предметов MagmaGuy's Toothpick с 50% шансом выпадения, но только для игроков с правом elitemobs.loot.rare.

Выпадение elite-монет:

KeyDetailsValuesDefault
currencyAmountЗадаёт количество монет, которое выпадет.Integernone

Учтите, что общий ключ amount для записей валюты ничего не делает — выплата монет определяется только currencyAmount. Только в строковом формате с разделением двоеточиями запись, у которой currencyAmount оказывается равен 0, отклоняется с предупреждением вместо регистрации.

Пример
uniqueLootList:
- currencyAmount: 344
chance: 0.5

Это заставит моба выбросить 344 Elite-монеты с 50% шансом выпадения.

Выпадение ванильных предметов:

KeyDetailsValuesDefault
materialЗадаёт материал выпадающего предмета. Принимает имена материалов Minecraft (без учёта регистра). Вместо material можно также использовать type.Materialnone
Пример
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5

Это заставит моба выбросить 5 яблок с 30% шансом выпадения.

Выполнение команд при выпадении лута:

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

KeyDetailsValuesDefault
commandЗадаёт консольную команду для выполнения. Используйте %player% как плейсхолдер для имени игрока.Stringnone

Сама команда не должна содержать : или второй =, потому что при разборе запись разбивается по обоим этим символам.

Как ведёт себя chance для команд

Записи команд разыгрывают chance дважды, и второй розыгрыш инвертирован, поэтому команда фактически выполняется в chance × (1 - chance) случаев:

  • chance=1.0 (значение по умолчанию, когда вы его пропускаете) означает, что команда вообще никогда не выполняется.
  • chance=0.5 даёт максимально достижимую частоту — 25%.
  • chance=0.9 даёт 9%.

Всегда задавайте записям команд явный chance ниже 1.0 и ожидайте, что реальная частота срабатывания будет ниже написанного вами числа.

Пример
uniqueLootList:
- command=give %player% diamond 1:chance=0.5:amount=1:permission=elitemobs.loot.command

Это выполнит команду give <player> diamond 1 из консоли при убийстве моба примерно в 25% случаев (см. предупреждение выше). Плейсхолдер %player% будет заменён на фактическое имя игрока. Только игроки с правом elitemobs.loot.command запустят эту команду.

Награды арен:

При создании таблиц лута арен, пожалуйста, убедитесь, что вы начинаете свою таблицу лута с rawArenaReward: вместо uniqueLootList:.

KeyDetailsValuesDefault
waveЗадаёт волну, на которой выпадет эта запись лута. Только для использования на аренах. Поддерживается в формате карты (map) для записей ванильных предметов, но только в строковом формате для записей elite-предметов (filename).Integer-1
itemLevelЗадаёт уровень выпадающего лута. Только для использования на аренах и читается только для записей elite-предметов (filename). Доступно только в строковом формате, не в формате карты.Integer1
У обоих есть подвохи
  • Как награды за волну регистрируются только записи с wave равным 1 или выше. Запись награды арены без wave разбирается и принимается, но её никогда не выдаст ни одна волна.
  • itemLevel по умолчанию равен 1, а не уровню арены или игрока. Поэтому элитный предмет со scalable, выдаваемый ареной без явного itemLevel, выпадает как предмет 1 уровня.
Пример
rawArenaReward:
- material: BREAD
wave: 1
amount: 10
chance: 0.5
- filename=magmaguys_toothpick.yml:wave=1:itemLevel=2

Когда игроки победят первую волну, это заставит арену выбросить 10 единиц хлеба с 50% шансом выпадения и 1 предмет MagmaGuy's Toothpick 2 уровня со 100% шансом выпадения.

Обратите внимание, что запись elite-предмета (filename) здесь использует строковый формат, потому что wave и itemLevel обрабатываются для записей elite-предметов только в строковом формате. Записи ванильных предметов (например, запись material: BREAD выше) принимают wave в формате карты.

Инстансные подземелья:

KeyDetailsValuesDefault
difficultyIDЗадаёт сложность инстансного подземелья, для которой выпадет этот лут. Только для использования в инстансных подземельях.Stringnone

difficultyID читается только для записей elite-предметов (filename), написанных в формате карты, показанном ниже. Он не разбирается в строковом формате с разделением двоеточиями и не читается для записей ванильных предметов, валюты и команд.

Он также действует только на лут Кастомных боссов. Лут сундуков с сокровищами, квестов и арен его никогда не оценивает.

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

  • Сложность подземелья совпадает с difficultyID: предмет попадает в общую групповую таблицу лута босса, а не выдаётся напрямую убийце, поэтому забрать его может вся группа.
  • Сложность подземелья не совпадает: запись пропускается.
  • Игрок вообще не находится в инстансном подземелье: difficultyID игнорируется, и предмет выпадает обычным образом.
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1

Это заставит моба выбросить 1 предмет MagmaGuy's Toothpick с 50% шансом выпадения, если игроки победили босса на сложности 1.