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

Что такое файл сокровищ?

Файлы сокровищ определяют таблицы добычи для сундуков BetterStructures. Обычно они назначаются [генераторам](../Better Structures/creating_generators.md#treasurefilename), но также могут быть установлены на уровне [конфигурации отдельной постройки](../Better Structures/creating_structures.md#treasurefile).

Эти таблицы добычи достаточно мощные, но требуют знания некоторых базовых статистических концепций.

Прочитайте об этих концепциях здесь, остальная часть страницы предполагает, что вы их понимаете!

Взвешенная вероятность

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

Гауссово распределение

Гауссово распределение — это колоколообразная математическая функция.

Гауссово распределение используется для рандомизации количества предметов в сундуках. Вам нужно сосредоточиться на двух настройках: среднее и стандартное отклонение.

Среднее

mean устанавливает центр кривой Гаусса. Если вы хотите, чтобы в сундуках обычно было 5 предметов, установите среднее на 5.

Стандартное отклонение

Стандартное отклонение определяет, насколько может меняться число. Малое (1): 4-6 предметов. Среднее (2): 3-7. Большое (3+): 2-8+.

Среднее по умолчанию — 4, стандартное отклонение — 3.


Детали реализации

Система гарантирует минимум один предмет в сундуке.

Система гарантирует минимум один предмет в сундуке.

Предметы размещаются в случайных слотах сундука.

Предметы размещаются в случайных слотах сундука.

Если материал не существует, предмет будет пропущен. Неверные чары покажут предупреждение в консоли.

Если материал не существует, предмет будет пропущен. Неверные чары покажут предупреждение в консоли.


Специальный формат

Специальный формат

isEnabled: true
mean: 4.0
standardDeviation: 3.0
vanillaTreasure: BURIED_TREASURE
items:
common:
weight: 60
items:
- amount: 1-1
material: STONE_PICKAXE
procedurallyGenerateEnchantments: true
weight: 1.0
- amount: 1-1
material: STONE_SHOVEL
procedurallyGenerateEnchantments: true
weight: 1.0
rare:
weight: 30
items:
- amount: 1-1
material: ANVIL
weight: 6.0
- amount: 1-6
material: BEETROOT
weight: 6.0
epic:
weight: 10
items:
- amount: 2-10
material: DIAMOND
weight: 1.0
- amount: 1-1
material: DIAMOND_AXE
weight: 6.0
procedurallyGeneratedItemSettings:
golden_sword:
bane_of_arthropods:
minlevel: 1
maxlevel: 5
chance: 0.2
looting:
minlevel: 1
maxlevel: 3
chance: 0.2

isEnabled

KeyValuesDefault
isEnabledBooleantrue

mean

KeyValuesDefault
meanDouble4

standardDeviation

KeyValuesDefault
standardDeviationDouble3

vanillaTreasure

KeyValuesDefault
vanillaTreasureStringnone

Устанавливает опциональную ванильную таблицу добычи для использования в дополнение к пользовательской.


items

Здесь становится немного сложнее, так как многие параметры могут быть установлены администраторами.

items:
common:
weight: 60
items:
- amount: 1-1
material: STONE_PICKAXE
procedurallyGenerateEnchantments: true
weight: 1.0
- amount: 1-1
material: STONE_SHOVEL
procedurallyGenerateEnchantments: true
weight: 1.0
rare:
weight: 30
items:
- amount: 1-1
material: ANVIL
weight: 6.0
- amount: 1-6
material: BEETROOT
weight: 6.0

rarities

Редкости не имеют фиксированного имени. Вы можете добавлять, удалять и настраивать их.


rarity items

KeyValuesDefault
amountmin-max Integervariable
materialMaterialvariable
procedurallyGenerateEnchantmentsBooleanvariable
weightDoublevariable

amount

Устанавливает количество для выпадения. Можно указать диапазон amount: MIN-MAX или фиксированное значение.

material

Устанавливает материал с использованием имён Spigot API.


Special case - serialized

При использовании команды lootify настройка serialized генерируется автоматически. Не создавайте вручную.


mmoitem

Устанавливает пользовательский предмет из плагина MMOItems.

- amount: 1-1
mmoitem: SWORD@Excalibur
weight: 1.0

info

Опциональное поле для заметок. Полностью игнорируется плагином.

- amount: 1-1
material: DIAMOND_SWORD
weight: 1.0
info: "Rare drop for completing the dungeon"

weight

Устанавливает вес для взвешенной вероятности.


procedurallyGenerateEnchantments

Устанавливает, должен ли предмет генерироваться процедурно на основе procedurallyGeneratedItemSettings.

procedurallyGeneratedItemSettings

procedurallyGeneratedItemSettings:
golden_sword:
bane_of_arthropods:
minlevel: 1
maxlevel: 5
chance: 0.2
looting:
minlevel: 1
maxlevel: 3
chance: 0.2

Этот файл перечисляет типы материалов, чары, мин/макс уровни и шанс.

KeyValuesDefault
minlevelIntegervariable
maxlevelIntegervariable
chanceChancevariable

minlevel

Устанавливает минимальный уровень чар.


maxlevel

Устанавливает максимальный уровень чар.


chance

Устанавливает вероятность применения чар как десятичное значение от 0.0 (никогда) до 1.0 (всегда). Пример: 0.2 = 20%.


Устранение неполадок

Предметы не появляются в сундуках

  • Убедитесь, что файл сокровищ имеет isEnabled: true
  • Проверьте консоль на предупреждения о недопустимых материалах или предметах
  • Убедитесь, что MMOItems установлен, если используются пользовательские предметы
  • Материалы должны использовать точные имена API Spigot

Зачарования не применяются

  • Установите procedurallyGenerateEnchantments: true для предмета
  • Убедитесь, что имена зачарований соответствуют Namespaced Keys Minecraft
  • Проверьте, что уровни min/max находятся в допустимых диапазонах для этого зачарования
  • Помните, что значения chance — это вероятности (0.2 = 20%), а не гарантии

Пользовательские зачарования плагинов не работают

Будут работать только пользовательские зачарования, которые явно поддерживают интеграцию с BetterStructures. Уточните у автора плагина зачарований совместимость. Недопустимые зачарования покажут предупреждение в консоли.

Появляются пустые сундуки

Этого не должно происходить, так как система гарантирует минимум один предмет. Если вы видите пустые сундуки, проверьте:

  • Заполняется ли сундук BetterStructures (а не другим плагином)
  • Все ли предметы в вашем файле сокровищ допустимы (проверьте предупреждения консоли)
  • Загружается ли файл сокровищ (проверьте логи запуска)