Таблица добычи
Эту статью нужно срочно обновить!
Вы можете помочь, обновив содержимое статьи в соответствии с последними версиями Minecraft.
|
Таблицы добычи (англ. Loot tables) — это технические таблицы JSON, которые отражают, какие предметы должны быть в естественно генерируемых контейнерах, какие предметы должны упасть при убийстве моба, или какие предметы можно выловить или что произойдет, когда блок сломан.
Использование
Таблицы добычи структурированы как строковый тег, который определяет используемую таблицу, и длинный тег, определяющий сид. Контейнеры или мобы с одинаковыми сидами и таблицами будут иметь одни и те же предметы. Таблицы добычи не определяют, какой слот контейнера используется; это определяется случайным образом на основе сида.
Для Сундуков, Сундуков-ловушек, Загрузочных воронок, Вагонеток с сундуком, Вагонеток с воронкой, Раздатчиков, Выбрасывателей,Шалкеровых ящиков и Бочек:
-
- LootTable:Таблица добычи, которая будет использоваться для заполнения контейнера при его следующем открытии или при взаимодействии с элементами. Когда контейнер представляет собой сундук, который является частью двойного сундука, будет затронута только половина, соответствующая помеченному одиночному сундуку.
- LootTableSeed: Сид для генерации таблицы дропа. Работает аналогично сидам для миров. 0 или пропуск будет использовать случайное начальное число.
Эти теги будут удалены после взаимодействия с предметами (путем открытия контейнера, прерывания контейнера и т. д.), и только после этого предметы будут помещены в контейнер.
Для мобов:
- Корневой тег.
- DeathLootTable: Таблица дропа, которая будет использоваться для предметов, которые выпадают при убийстве сущности.
- DeathLootTableSeed: Сид для генерации таблицы дропа. Работает аналогично сидам для миров. 0 или пропуск будет использовать случайное начальное число.
Таблицы дропа мобов и контейнеров могут быть изменены с помощью команд /entitydata
, /blockdata
, /execute store
и /data merge
.
Вы также можете предоставить таблицу дропа сущности или сбросить ее в мире с помощью команды /drop
Теги
Таблицы дропа используют JSON формат.
Ниже приведен список используемых тегов:
- Корневой каталог
- pools: Список всех пулов для этой сущности. Каждый используемый пул будет генерировать предмет из своего списка предметов в зависимости от количества списков. Пулы применяются по порядку.
- Пул
- conditions: Определяет условия для использования этого пула. Если задано несколько условий, то должны выполнятся все условия.
- Условие
- condition: Название условия. Действующие условия описаны ниже.
- Условие
- rolls: Определяет точное количество списков в пуле.
- rolls: Определяет случайное число списков в пределах диапазона.
- min: Минимальное количество списков. Включительно.
- max: Максимальное количество списков. Включительно.
- bonus_rolls: Определяет точное количество бонусных списков в пуле за каждое очко удачи. После умножения округляется.
- bonus_rolls: Определяет случайное число бонусных списков в диапазоне. После умножения округляется.
- min: Минимальное количество бонусных списков. Включительно.
- max: Максимальное количество бонусных списков. Включительно.
- entries: Список всего, что может быть создано этим пулом. Одна запись выбирается в списке как взвешенный случайный выбор из всех записей без сбоев.
- Ввод
- conditions: Определяет условия для этой записи, которые будут использоваться. Если задано несколько условий, то должны выполнятся все условия.
- Условие
- condition: Название условия. Действующие условия описаны ниже.
- Условие
- type: Тип ввода. Может быть
item
для записей предметов,loot_table
для представления предметов из другой таблицы дропа илиempty
для записи, которая ничего не генерирует. - name:
- Для типа 'item', ID предмета, который будет производиться, например,
minecraft:diamond
. Значение по умолчанию, если оно не измененоfunctions
, представляет собой стек одного экземпляра предмета по умолчанию. - Для типа 'loot_table', таблицы дропа, которая будет использоваться, например:
minecraft:gameplay/fishing/junk
.
- Для типа 'item', ID предмета, который будет производиться, например,
- functions: Для типа 'item', применяет функции к создаваемому стеку предметов. Функции применяются для того, чтобы например
looting_enchant
должен быть послеset_count
, чтобы работать правильно. - weight: Определяет, как часто эта запись будет выбираться из всех записей в пуле. Записи с более высоким весом будут использоваться чаще:
шанс - это вес записи/сумма всех рассматриваемых все записей
. - quality: Модифицирует
weight
, базируясь на аттрибуте удачи игрока. Формула:округл_вниз( weight + (quality * удача))
.
- conditions: Определяет условия для этой записи, которые будут использоваться. Если задано несколько условий, то должны выполнятся все условия.
- Ввод
- conditions: Определяет условия для использования этого пула. Если задано несколько условий, то должны выполнятся все условия.
- Пул
- pools: Список всех пулов для этой сущности. Каждый используемый пул будет генерировать предмет из своего списка предметов в зависимости от количества списков. Пулы применяются по порядку.
Функции
Таблицы дропа используют различные функции для изменения создаваемого стека предметов, такие как регулировка размера стека или добавление чар.
Ниже приведен список допустимых функций и используемые ими теги. Теги размещаются в том же объекте функции, что и function:
- Функция.
- function: "enchant_randomly" — Зачаровывает предмет с помощью одного случайно выбранного зачаровывания. Уровень зачаровывания, если применимо, будет случайным.
- enchantments: Список измен зачаровываний. Если этот параметр опущен, будут доступны все чары, применимые к предмету.
- Функция.
- function: "enchant_with_levels" — Зачаровывает предмет, с указанным уровнем зачаровывания.
- treasure: Определяет, разрешено ли зачаровывание для этого элемента.
- levels: Определяет точный уровень чар для применения.
- levels: Определяет случайный уровень чар в пределах диапазона.
- min: Минимальный уровень для применения.
- max: Максимальный уровень для применения.
- Функция.
- function: "exploration_map" — Преобразует пустую карту в карту сокровищ, ведущую к ближайшей сгенерированной структуре.
- destination: Тип создаваемой структуры для размещения. Принимает любой тип структуры
StructureType
, используемый командой/locate
(без учета регистра). - decoration: Внешний вид маркера для обозначения места назначения на карте. Принимает любой внешний вид маркера (без учета регистра). Если используется
mansion
илиmonument
, цвет линий на текстуре предмета изменится в соответствии с соответствующей картой сокровищ. - zoom: Уровень масштаба полученной карты. По умолчанию 2.
- search_radius: Размер области для поиска структур в чанках. Проверяемая область квадратная, а не круглая. Радиус 0 вызывает только текущий блок для поиска, а радиус 1 вызывает текущий чанк и восемь смежных чанков для поиска и так далее. По умолчанию 50.
- skip_existing_chunks: Не выполняет поиск в уже созданных чанках. По умолчанию
true
.
- Функция.
- function: "furnace_smelt" — Переплавляет предметы, как это было в печи. Используется с условием
entity_properties
для приготовления пищи убитых животных.
- function: "furnace_smelt" — Переплавляет предметы, как это было в печи. Используется с условием
- Функция.
- function: "looting_enchant" — Регулирует размер стека в зависимости от уровня чар мародёрства
killer
для сущности. - count: Указывает точное количество дополнительных предметов на уровень дропа.
- count: Указывает случайное число (в пределах диапазона) дополнительных предметов на уровень мародёрства. Обратите внимание на случайное число может быть дробным и округляется после умножения на уровень мародёрства.
- min: Минимальное увеличение.
- max: Максимальное увеличение.
- limit: Указывает максимальное количество предметов в стеке после вычисления мародёрства. Если значение равно 0, ограничение не применяется.
- function: "looting_enchant" — Регулирует размер стека в зависимости от уровня чар мародёрства
- Функция.
- function: "set_attributes" — Добавляет атрибут модификации к предмету.
- modifiers
- A modifier
- name: Имя модификатора.
- attribute: Имя атрибута, на который должен действовать модификатор.
- operation: Должно быть любой из
addition
,multiply_base
илиmultiply_total
. - amount: Определяет точный размер изменения модификатора.
- amount: Определяет случайное значение в пределах диапазона.
- min: Минимальное значение.
- max: Максимальное значение.
- id: Необязательно: UUID модификатора. Если значение не определено, будет создан новый UUID.
- slot: Слоты, на которые должен действовать предмет, для модификатора, могут принимать одно из следующих значений:
mainhand
,offhand
,feet
,legs
,chest
, илиhead
. - slot: Один из перечисленных слотов будет выбран случайным образом.
- A modifier
- Функция.
- function: "set_count" — Устанавливает размер стека.
- count: Определяет точный размер стека.
- count: Определяет случайное значение размера стека в диапазоне.
- min: Минимальный размер стека.
- max: Максимальный размер стека.
- Функция.
- function: "set_damage" — Определяет значение урона оружия или прочность для инструментов.
- damage: Определяет долю повреждения инструмента или оружия (1.0 не поврежден, 0.0 — нулевая долговечность).
- damage: Определяет случайное значение доли повреждения в диапазоне.
- min: Минимальное значение.
- max: Максимальное значение.
- Функция.
- function: "set_name" — Добавляет отображаемое имя предмета.
- name: Простое имя, например, с наковальней.
- name: Имя текстового компонента JSON, доступные цвета, перевод и т. д.
- Функция.
- function: "set_nbt" — Добавляет данные NBT для предмета.
- tag: Добавляет строку тега, аналогичную используемым командам. Обратите внимание, что первая скобка является обязательной и кавычки должны быть экранированы с помощью обратной косой черты (
\
).
Условия
Таблицы дропа используют различные условия, которые добавляют требования к выпадению, пулу или функции.
Ниже приведен список допустимых условий и используемые ими теги. Теги размещаются в том же объекте условия, что и condition:
- entity_properties — Тестируемые свойства сущности.
- entity: Определяет сущность для проверки условия. Значение
this
позволяет использовать сущность, которая умерла,killer
для убийцы, илиkiller_player
для убийцы, являющегося игроком. - properties: Проверяемые свойства.
- on_fire: Проверяет горит сущность или нет.
- entity: Определяет сущность для проверки условия. Значение
- entity_scores — Проверяет количество очков сущности в системе счёта игровых событий.
- entity: Определяет сущность для проверки условия. Значение
this
позволяет использовать сущность, которая умерла,killer
для убийцы, илиkiller_player
для убийцы, являющегося игроком. - scores: Количество очков для проверки. Все указанные очки должны пойти для прохождения условия
- A score: Имя ключа — это объект. Значение — точная оценка, необходимая для выполнения условия.
- A score: Имя ключа — это цель. Значение — диапазон значений очков, необходимых для выполнения условия.
- min: Минимальный количество очков.
- max: Максимальный количество очков.
- entity: Определяет сущность для проверки условия. Значение
- killed_by_player — Проверяет, существует ли сущность
killer_player
- inverse: Если
true
, то условие проходит, еслиkiller_player
«не» доступен.
- inverse: Если
- random_chance — Проверяет, если случайное число 0.0-1.0 меньше заданного значения.
- chance: Показатель успешности как число 0.0-1.0.
- random_chance_with_looting — Проверяет, если случайное число 0.0-1.0 меньше заданного значения, на которое влияет уровень добычи сущности
killer
.- chance: Базовый уровень добычи.
- looting_multiplier: Регулировка базового коэффициента добычи. Формула:
шанс + (уровень добычи * множитель добычи)
.
Список таблиц дропа
Ниже приведен список всех таблиц дропа, которые существуют по умолчанию.
Дополнительные таблицы могут быть добавлены в сохраненном мире для использования с пользовательскими картами.
- loot_tables
- blocks
- chests — Предметы для сундука с дропом
- abandoned_mineshaft — Вагонетка с сундуком найденная в шахте
- buried_treasure — Сундуки сокровищниц найденные при помощи карты сокровищницы
- desert_pyramid — Сундуки найденные внутри сокровищницы храма в пустыне
- end_city_treasure — Сундук найденный в городе Края
- igloo_chest — Сундуки, которые появляются в подвале иглу
- jungle_temple — Сундуки найденные внутри храма джунглей
- jungle_temple_dispenser — Выбрасыватель найденные внутри храме джунглей
- nether_bridge — Сундук найденный в адской крепости
- shipwreck_map — Сундуки найденные в затонувших кораблях, которые могут содержать внутри сокровищницы карту сокровищниц
- shipwreck_supply — Сундуки найденные в затонувших кораблях
- shipwreck_treasure — Сундуки с сокровищами найденные в затонувших кораблях
- simple_dungeon — Сундуки найденные в сокровищнице
- spawn_bonus_chest — Бонусный сундук, который появляется в новом мире, если появление бонусного сундука включено
- stronghold_corridor — Сундуки найденные на алтаре из плит в коридорах крепости
- stronghold_crossing — Сундуки найденные на вернем уровне комнаты хранения крепости
- stronghold_library — Сундуки найденные в библиотеке крепости
- underwater_ruin_big — Сундуки найденные в большом варианте подводных руин
- underwater_ruin_small — Сундуки найденные в малом варианте подводных руин
- village_blacksmith — Сундуки найденные в кузнеце деревни
- woodland_mansion — сундуки найденные в лесном особняке.
- entities — Предметы, выпавшие из сущности. Может вызвать проблемы при применении к сундукам, из-за некоторых предметов появляющихся в нулевых стеках
- sheep — Овцы с шерстью
- black
- blue
- brown
- cyan
- gray
- green
- light_blue
- light_gray
- lime
- magenta
- orange
- pink
- purple
- red
- white
- yellow
- armor_stand
- bat
- blaze
- cat
- cat_morning_gift
- cave_spider
- chicken
- cod
- cow
- creeper
- donkey
- dolphin
- drowned
- elder_guardian
- ender_dragon
- enderman
- endermite
- evoker
- ghast
- giant
- guardian
- horse
- husk
- iron_golem
- llama
- magma_cube
- mule
- mushroom_cow
- ocelot
- panda
- parrot
- phantom
- player
- pig
- polar bear
- pufferfish
- rabbit
- salmon
- sheep — Овцы без шерсти, также унаследованные овцами с шерстью
- shulker
- silverfish
- skeleton
- skeleton_horse
- slime
- snow_golem
- spider
- squid
- tropical_fish
- vex
- villager
- vindicator
- witch
- wither
- wither_skeleton
- wolf
- zombie
- zombie_horse
- zombie_pigman
- zombie_villager
- sheep — Овцы с шерстью
- gameplay
- fishing
- fish — Также унаследованный от стража и древнего стража
- junk
- treasure
- fishing — Используется для определения дропа от рыбалки, загружая три таблицы из папки рыбалки, применяя удачу каждому из них
- fishing
- empty — Не содержит элементов, пустой элемент
Пользовательские карты
Пользовательские карты могут использовать таблицы дропа, изменить какой дроп будет появляться в контейнерах или дропаться мобов. Авторы пользовательских карт могут либо изменить существующие таблицы добычи, либо создать новые.
Файловая структура:
- Каталог сохранения мира
- datapacks
- data pack
- data
- minecraft
- loot_tables
- имя таблицы дропа.json
- loot_tables
- пользовательский каталог
- loot_tables
- имя таблицы дропа.json
- loot_tables
- minecraft
- data
- data pack
- datapacks
Например, файл для зомби будет в datapacks/набор данных/data/minecraft/loot_tables/entities/zombie.json
. Это заставит каждого зомби в этом мире использовать вашу таблицу добычи, а не таблицу добычи зомби по умолчанию.
Чтобы добавить пользовательские таблицы дропа, создайте новый файл в новом каталоге, например, loot_tables
. Затем вызовите моба с тегом данных DeathLootTable
, задайте имя каталога и файла (без .json расширения),
например, DeathLootTable:"customdirectory:path/to/table"
.
История
Официальный выпуск Java Edition | |||||
---|---|---|---|---|---|
19 октября 2015 | Dinnerbone анонсировал таблицы дропа. | ||||
1.9 | 15w43a | Были добавлены таблицы дропа. | |||
15w43b | Добавлено состояние entity_scores. | ||||
15w43c | Переименование "villager_golem.json" в "iron_golem.json" | ||||
Добавлены таблицы дропа для рыболовли, овец без шерсти, зомби и лошади-скелета. | |||||
Переименован тег item: в name:, а тег items: в entries: | |||||
Добавлен тег type: и поддержка загрузки таблиц дропа вместо предметов. | |||||
Добавлен тег luck: к файлам по умолчанию, хотя он ничего не делает в коде. | |||||
Добавлена функция set_damage. | |||||
15w44a | Добавлена функция enchant_randomly и set_attributes. | ||||
15w44b | Добавлен тег quality. | ||||
Удален тег luck и luck_multiplier. | |||||
Добавлен тег bonus_rolls. | |||||
15w51a | Игрок в режиме наблюдения больше не может инициировать контейнер используя свою таблицу дропа для генерации дропа. | ||||
1.9.1 | pre1 | Теперь таблицы дропа работают с раздатчиком и выбрасывателем. | |||
Добавлена таблица по умолчанию chests/jungle_temple_dispenser . | |||||
1.11 | 16w32a | Donkey, mule, husk and zombie villager now each draw from their own loot tables, rather than drawing from the horse and zombie loot tables, respectively | |||
16w43a | Villagers, vexes and ender dragons are now able to draw from their own loot tables | ||||
1.13 | 17w43a | Настраиваемые таблицы добычи были перенесены в набор данных. | |||
1.14 | 18w43a | Выпадение блоков изменено и для таблиц дропа. | |||
18w44a | Добавлены таблицы дропа для котов, утренних подарков котов, игроков, Иссушителя. | ||||
18w44a | Добавлены таблицы дропа для новых блоков. | ||||
18w49a | Новая функция: copy_nbt . | ||||
1.15 | 19w34a | Новая функция: copy_state . | |||
Новые параметры: block и properties . | |||||
19w35a | Теперь сущности устанавливаются в таблицы добычи, если этого не было сделано ранее. | ||||
19w38a | Добавлены новые параметры в условие location_check : offsetX , offsetY , offsetZ . | ||||
Добавлено условие time_check , проверяющее время дня. | |||||
1.16 | 20w12a | Добавлен новый суб-предикат сущности: fishing_hook , проверяющий свойства рыболовного крючка. | |||
Добавлен параметр in_open_water , определяющий соответствие: является ли место ловли рыбы открытым водным пространством или нет. | |||||
1.16 Pre-release 3 | Добавлена таблица добычи для блока портала в Нижний мир. |
Проблемы
Отчёты об ошибках, связанных с «Таблицы добычи», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке).