Пользовательская таблица лута
Универсальный формат лута. Используется EliteMobs в нескольких разных местах.
Обратите внимание, что это новейший формат и тот, который рекомендуется использовать, но существуют некоторые альтернативные более старые форматы.
Примечание: поддержка устаревшего формата всё ещё доступна с использованием синтаксиса, разделённого двоеточиями: filename.yml:chance:permission. Однако для новых конфигураций рекомендуется современный формат, показанный ниже.
В этом устаревшем синтаксисе шанс обязателен. Запись голого filename.yml без ничего после него по-прежнему роняет предмет со 100% вероятностью, но при каждом запуске выводит предупреждение Failed to parse entry ... due to invalid: chance, поэтому предпочитайте filename.yml:1.0 или современный формат.
Обязательно начинайте свои таблицы лута с uniqueLootList: перед добавлением любых настроек, иначе конфигурация .yml выдаст ошибку.
Выпадение elite-предметов:
| Key | Details | Values | Default |
|---|---|---|---|
filename | Задаёт имя файла используемого пользовательского предмета. | Filename | none |
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml
Это заставит моба выбросить 1 предмет MagmaGuy's Toothpick со 100% шансом выпадения.
Общие настройки:
| Key | Details | Values | Default |
|---|---|---|---|
chance | Задаёт шанс выпадения лута, где 1.0 — это 100%. | Double | 1.0 |
amount | Задаёт количество этой записи лута, которое выпадет. Игнорируется записями валюты — для них используйте currencyAmount. | Integer | 1 |
permission | Задаёт право (permission node), необходимое игрокам для получения этого лута. Поддерживается записями elite-предметов, валюты и команд. Записи ванильных предметов его никогда не читают, ни в одном из форматов. | String | none |
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare
Это заставит моба выбросить 10 предметов MagmaGuy's Toothpick с 50% шансом выпадения, но только для игроков с правом elitemobs.loot.rare.
Выпадение elite-монет:
| Key | Details | Values | Default |
|---|---|---|---|
currencyAmount | Задаёт количество монет, которое выпадет. | Integer | none |
Учтите, что общий ключ amount для записей валюты ничего не делает — выплата монет определяется только currencyAmount. Только в строковом формате с разделением двоеточиями запись, у которой currencyAmount оказывается равен 0, отклоняется с предупреждением вместо регистрации.
Пример
uniqueLootList:
- currencyAmount: 344
chance: 0.5
Это заставит моба выбросить 344 Elite-монеты с 50% шансом выпадения.
Выпадение ванильных предметов:
| Key | Details | Values | Default |
|---|---|---|---|
material | Задаёт материал выпадающего предмета. Принимает имена материалов Minecraft (без учёта регистра). Вместо material можно также использовать type. | Material | none |
Пример
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5
Это заставит моба выбросить 5 яблок с 30% шансом выпадения.
Выполнение команд при выпадении лута:
Вы можете выполнять консольные команды при выпадении лута. Это полезно для интеграции с другими плагинами или предоставления пользовательских наград. Записи команд используют только строковый формат, разделённый двоеточиями.
| Key | Details | Values | Default |
|---|---|---|---|
command | Задаёт консольную команду для выполнения. Используйте %player% как плейсхолдер для имени игрока. | String | none |
Сама команда не должна содержать : или второй =, потому что при разборе запись разбивается по обоим этим символам.
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:.
| Key | Details | Values | Default |
|---|---|---|---|
wave | Задаёт волну, на которой выпадет эта запись лута. Только для использования на аренах. Поддерживается в формате карты (map) для записей ванильных предметов, но только в строковом формате для записей elite-предметов (filename). | Integer | -1 |
itemLevel | Задаёт уровень выпадающего лута. Только для использования на аренах и читается только для записей elite-предметов (filename). Доступно только в строковом формате, не в формате карты. | Integer | 1 |
- Как награды за волну регистрируются только записи с
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 в формате карты.
Инстансные подземелья:
| Key | Details | Values | Default |
|---|---|---|---|
difficultyID | Задаёт сложность инстансного подземелья, для которой выпадет этот лут. Только для использования в инстансных подземельях. | String | none |
difficultyID читается только для записей elite-предметов (filename), написанных в формате карты, показанном ниже. Он не разбирается в строковом формате с разделением двоеточиями и не читается для записей ванильных предметов, валюты и команд.
Он также действует только на лут Кастомных боссов. Лут сундуков с сокровищами, квестов и арен его никогда не оценивает.
Внутри инстансного подземелья запись ведёт себя так:
- Сложность подземелья совпадает с
difficultyID: предмет попадает в общую групповую таблицу лута босса, а не выдаётся напрямую убийце, поэтому забрать его может вся группа. - Сложность подземелья не совпадает: запись пропускается.
- Игрок вообще не находится в инстансном подземелье:
difficultyIDигнорируется, и предмет выпадает обычным образом.
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1
Это заставит моба выбросить 1 предмет MagmaGuy's Toothpick с 50% шансом выпадения, если игроки победили босса на сложности 1.