Таблиці луту: пули, спроби та різниця між записами й функціями
Таблиця луту, з якої нічого не випадає, зазвичай має неправильно розміщені ваги або умови. Ось що контролює кожен рівень вкладеності, а також варті уваги функції.
JSON таблиці луту має чотири рівні вкладеності, і кожен рівень означає щось своє. Майже кожне «з моєї таблиці нічого не випадає» — це умова, прикріплена на іншому рівні, ніж мала б бути.
Чотири рівні
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
rollsу пулі визначає, скільки разів вибирає цей пул. Один пул ізrolls: 3draws
тричі з одного списку записів.
weightу записі є відносною всередині свого пулу. Ваги не обов'язково мають додаватися до
будь-якого числа; запис із вагою 10 проти запису з вагою 90 випадає в одній десятій випадків.
conditionsіснують на кожному рівні й означають різні речі. У пулі вони обмежують
весь вибір. У записі вони обмежують цей конкретний варіант. У функції вони обмежують лише модифікацію.
Гарантований випад потребує окремого пулу
Ваги нічого не гарантують, оскільки пул обирає рівно один запис за спробу. Таблиця, яка завжди має скидати мапу плюс випадковий лут, потребує двох пулів:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
Пул 1 має один запис, тому завжди генерує його. Пул 2 робить 2–4 спроби зі зваженого списку.
Функції, варті уваги
| Функція | Дія |
|---|---|
set_count | фіксовану кількість або uniform range |
enchant_randomly | випадкові чари, за потреби зі списку |
enchant_with_levels | як чарувальний стіл на N рівнів — включно зі скарбами, якщо вказано |
set_components | власна назва, опис, будь-який компонент даних |
looting_enchant | бонус за рівень «Здобичі»; лише для таблиць сутностей |
set_damage | міцність як частка, тож 0.5 is half-worn |
furnace_smelt | переплавлений варіант, якщо моб помирає у вогні |
enchant_with_levels and enchant_randomly are not interchangeable. The first mimics an enchanting table and respects level costs; the second picks arbitrarily and can produce combinations the game would never generate.
Умови, якими найчастіше користуються
random_chance— a flat probabilityrandom_chance_with_enchanted_bonus— the modern Looting-aware chancekilled_by_player— the reason your rare drop never appears from a fall deathentity_properties— check the victim's type, state or equipmentmatch_tool— check the tool used, for block tables
Тестування без перебудови світу
/loot give @s loot my_pack:chests/treasure
скидає таблицю прямо у ваш інвентар. /loot spawn, /loot insert <pos> and /loot replace cover the other placements. This is far faster than placing chests and reloading, and it is the only sane way to check weight distributions.
Створюйте таблиці з кількома пулами, функціями та умовами, прикріпленими на потрібному рівні, у Розширений конструктор таблиць луту.