跳到主要内容

什么是宝藏文件?

宝藏文件确定 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

设置一个可选的原版 Minecraft 战利品表,除自定义战利品外还会使用。


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 或固定值 amount: 值 表示。

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已安装
  • 材料必须使用精确的Spigot API名称

附魔未被应用

  • 在物品上设置procedurallyGenerateEnchantments: true
  • 验证附魔名称与Minecraft的命名空间键匹配
  • 检查最小/最大等级是否在该附魔的有效范围内
  • 记住chance值是概率(0.2 = 20%),不是保证

自定义插件附魔不起作用

只有明确支持BetterStructures集成的自定义附魔才会起作用。请向附魔插件作者咨询兼容性。无效的附魔会在控制台显示警告。

出现空箱子

由于系统保证至少一个物品,这不应该发生。如果你看到空箱子,请验证:

  • 箱子是由BetterStructures填充的(不是其他插件)
  • 你的宝藏文件中的所有物品都是有效的(检查控制台警告)
  • 宝藏文件确实被加载了(检查启动日志)