Guides / Commands & Data

Таблицы добычи: пулы, броски и разница между записями и функциями

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

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

Четыре уровня

table
└── pools[]          how many independent draws
    └── entries[]    what can come out of this draw
        └── functions[]   modify the item that came out
  • rolls для пула определяет, сколько раз этот пул совершает броски. Один пул с rolls: 3 совершает три броска из одного и того же списка записей.
  • weight для записи является относительным в пределах своего пула. Веса не обязательно должны суммироваться до какого-либо значения; запись с весом 10 против записи с весом 90 будет выпадать в десять раз реже.
  • conditions существуют на каждом уровне и означают разные вещи. На уровне пула они управляют всем броском. На уровне записи они управляют этим конкретным вариантом. На уровне функции они управляют только модификацией.

Гарантия выпадения требует отдельного пула

Веса не могут ничего гарантировать, потому что пул выбирает ровно одну запись за бросок. Таблица, которая всегда должна выпадать Карта плюс случайная добыча, требует двух пулов:

"pools": [
  { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
  { "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]

Пул один имеет одну запись, поэтому он всегда ее производит. Пул два совершает 2–4 броска из взвешенного списка.

Функции, о которых стоит знать

ФункцияЧто делает
set_countфиксированное число или диапазон uniform
enchant_randomlyслучайные зачарования, опционально из списка
enchant_with_levelsкак Чародейский стол на N уровнях — включает сокровища, если указано
set_componentsпользовательское имя, описание, любой компонент данных
looting_enchantбонус за уровень Добычи; только для таблиц сущностей
set_damageпрочность в виде дроби, так что 0.5 означает изношенность наполовину
furnace_smeltпереплавленная форма, когда моб умирает в Огне

enchant_with_levels и enchant_randomly не взаимозаменяемы. Первая имитирует Чародейский стол и учитывает затраты уровней; вторая выбирает произвольно и может производить комбинации, которые игра никогда бы не сгенерировала.

Условия, к которым люди обращаются

  • random_chance — фиксированная вероятность
  • random_chance_with_enchanted_bonus — современный шанс с учетом Добычи
  • killed_by_player — причина, по которой ваш редкий предмет никогда не выпадает при смерти от падения
  • entity_properties — проверяет тип, состояние или снаряжение жертвы
  • match_tool — проверяет используемый инструмент, для таблиц блоков

Тестирование без перестройки мира

/loot give @s loot my_pack:chests/treasure

помещает таблицу прямо в ваш инвентарь. /loot spawn, /loot insert <pos> и /loot replace охватывают другие варианты размещения. Это намного быстрее, чем размещать сундуки и перезагружаться, и это единственный разумный способ проверить распределение весов.

Создавайте таблицы с несколькими пулами, функциями и условиями, прикрепленными на правильном уровне, в Расширенном конструкторе таблиц добычи.

Конструктор таблиц добычи →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.