深色模式
品质、词条与方案
这三个概念共同决定“装备生成时抽出什么”。
- 品质:展示等级及主/副词条槽容量。
- 词条:一个可抽取效果,含适用条件、tier 和属性数值。
- 方案:某类物品使用哪些主/副词条池及默认槽位。
1. 品质
文件:qualities/*.yml。
yaml
rare:
rank: 20
display-name: '<blue>稀有'
display:
item-name: '{quality} {name}'
lore: ['<blue>稀有品质']
slots:
primary: { capacity: 2, initial: 1 }
secondary: { capacity: 1, initial: 1 }
epic:
rank: 30
display-name: '<light_purple>史诗'
display:
item-name: '{quality} {name}'
lore: ['<light_purple>史诗品质']
slots:
primary: { capacity: 3, initial: 2 }
secondary: { capacity: 2, initial: 1 }rank 用于稳定排序/迁移依据,不直接展示。display 可改变最终名称和 Lore。品质槽位会参与装备的最终槽位决策,物品自身显式覆盖以物品规则为准。
2. 词条
文件:affixes/*.yml。
yaml
physical_power:
display-name: '<red>力量'
slot: primary
weight: 100
pools: [weapon_primary]
applies-to:
all-tags: [weapon]
none-tags: [cosmetic]
lore: ['<red>{name} <white>{values} <dark_gray>[T{tier}]']
tiers:
1:
unlock-at: 1
weight: 100
attributes:
sealattributes:physical_attack:
add:
algorithm: triangular
pity-direction: higher
min: 8
mode: 12
max: 18
step: 1顶层字段
display-name:展示名。slot:primary或secondary。weight:词条在池中的基础权重。pools:可加入的命名池。applies-to:按物品标签过滤。lore:展示模板。tiers:tier 编号到解锁等级、权重和属性的映射。
标签过滤
yaml
applies-to:
all-tags: [equipment, weapon]
any-tags: [sword, axe]
none-tags: [cosmetic]物品必须包含全部 all-tags,至少命中一个 any-tags,且不能包含任何 none-tags。省略的组不参与限制。
3. 随机算法
固定值:
yaml
add: 15均匀随机:
yaml
add:
algorithm: uniform
pity-direction: higher
min: 10
max: 20
step: 1三角随机,更容易靠近 mode:
yaml
add:
algorithm: triangular
pity-direction: higher
min: 8
mode: 12
max: 18
step: 1离散加权值:
yaml
add:
algorithm: weighted
pity-direction: higher
values:
- { value: 10, weight: 70 }
- { value: 15, weight: 25 }
- { value: 20, weight: 5 }pity-direction: higher 表示更高值更好,lower 表示更低值更好,供重铸保底比较。固定数字不需要方向。
4. 词条 tier
yaml
tiers:
1:
unlock-at: 1
weight: 100
attributes: { ... }
2:
unlock-at: 30
weight: 30
attributes: { ... }装备的 affix-level 必须达到 unlock-at 才能抽到该 tier。tier 自身 weight 决定多个可用 tier 的相对权重。
5. 词条方案
文件:affix-schemes/*.yml。
yaml
standard_weapon:
default-affix-level: 20
pools:
primary: weapon_primary
secondary: weapon_secondary
slots:
primary: { capacity: 2, initial: 1 }
secondary: { capacity: 2, initial: 1 }方案把主词条槽接到 weapon_primary 池、副词条槽接到 weapon_secondary 池。只有 slot 类型、pool、标签和 tier 等条件都满足的词条才是候选。
6. 完整生成链
/si give请求物品。- 选择固定品质或按权重抽品质。
- 合并方案、品质和物品层槽位规则。
- 按主/副池、标签和 affix level 构建候选。
- 按权重抽词条与 tier。
- 按算法抽属性值。
- 把结果写入该装备实例,之后不会因重载自动重抽。
7. 重载顺序
修改品质:/si reload qualities;修改词条:/si reload affixes;修改物品/方案引用时建议 /si reload all。配置交叉依赖会被重新验证。
常见错误包括:主词条放进副池、所有候选都被标签过滤、tier 未解锁、随机 min > max、step 不可达、保底方向缺失、属性 operation 不存在、初始槽数大于容量。