Skip to content

品质系统

品质系统决定锻造结果的品质等级,影响材料效果的数值倍率和物品展示。

全局品质配置

品质在 config.ymlquality 节点中全局配置:

yaml
quality:
  tiers:
    - "普通-70-1.0"
    - "精良-25-1.05"
    - "稀有-4-1.10"
    - "史诗-1-1.20"
  default_tier: "普通"
  guarantee:
    enabled: true
    threshold: 15
    minimum: "精良"
  item_meta:
    enabled: true
    tiers:
      史诗:
        name_actions:
          - action: "prepend_prefix"
            value: "<gold>[史诗] "
        lore_actions:
          - action: "append"
            content:
              - "<gold>史诗品质锻造"
        action:
          - 'broadcastmessage text="<gold>%player_name% 锻造出了史诗品质装备!"'

tiers 格式

每个品质等级为一个字符串,格式为 "品质名-权重-倍率"

部分说明
品质名品质的唯一标识和显示名。
权重随机权重,越大越常见。
倍率材料效果数值的乘数(配置值 × 材料数量 × 品质倍率)。

保底机制

字段类型说明
guarantee.enabledboolean是否启用保底。
guarantee.thresholdinteger连续未获得高品质的次数阈值。达到后保底触发。
guarantee.minimumstring保底触发时的最低品质等级。

保底计数器按玩家 + 配方维度记录。quality_modifyforce 模式不会触发保底计数。

item_meta 品质写入

item_meta.enabled: true 时,锻造成功后会根据品质等级对结果物品执行额外操作:

字段说明
name_actions按品质等级对物品名称执行操作。
lore_actions按品质等级对物品 Lore 执行操作。
action按品质等级执行动作列表(如全服广播)。

确定性算法

品质计算使用确定性算法:相同的输入(玩家、配方、材料、保底计数)在 30 秒内总是产生相同的品质结果。内部使用 SHA-256 哈希的前 12 位十六进制字符作为随机源。

这意味着:

  • 玩家在 GUI 中预览品质结果是准确的。
  • 30 秒内重复提交相同输入不会改变结果。
  • 更换材料或等待超时后结果会变化。

配方级别品质覆盖

每个配方可以在 quality 节点中覆盖全局配置:

yaml
quality:
  enabled: true
  tiers:
    - "普通-50-1.0"
    - "精良-35-1.08"
    - "史诗-15-1.25"
  guarantee:
    enabled: true
    threshold: 5
    minimum: "精良"

与材料效果的交互

  • variables 效果值 = 配置值 × 材料数量 × 品质倍率
  • attribute 效果值 = 配置值 × 材料数量 × 品质倍率
  • quality_modifyforce 模式会跳过保底计数器
  • quality_modifyminimum 模式只在随机结果低于指定品质时生效