词缀重铸配置教程
这也是一篇面向新手的保姆级教程。品质重铸决定装备"什么档次",而词缀重铸决定装备"带什么词条"——比如"锋利 I""暴击 III""火焰 II"这些随机词条,全部由词缀系统生成。
词缀重铸是干什么的?
简单说:玩家把装备放进重铸台、切到词缀模式、花钱,装备的全部词条重新随机一次。
- 每件装备会随机获得若干条词缀(数量可配置)
- 每条词缀会带来一段随机数值的属性(比如攻击伤害 +1~+3 之间随机)
- 词缀名字会拼在物品名前面,比如
锋利 I 火焰 II 长剑
两个模式互相独立:品质重铸只重随机品质和品质属性,词缀重铸只重随机词条。GUI 里通过左上角的模式切换按钮切换(两种模式都开启时才会显示)。
开始之前:三个前置开关
都在 plugins/MMOitemsReforge/config.yml:
reforge:
use-internal-affix-system: true # ① 必须开启内部词缀系统
modes:
affix:
enabled: true # ② 词缀重铸总开关
affix-cost: 100.0 # ③ 每次词缀重铸收多少钱
max-affix-reforge-count: 10 # 每件物品最多词缀重铸几次(0 = 不限)
use-internal-affix-system 设为 false 时走 MMOItems 原生随机,下面教的 modifiers 文件全部不生效。想用本教程的自定义词条就必须是 true。
认识 modifiers 文件夹
词缀配置在:
plugins/MMOitemsReforge/modifiers/
├── affix.yml ← 词缀模板库:每个词缀长什么样、给什么属性
├── weapon.yml ← 装备规则:什么武器、能出哪些词缀
└── armor.yml ← 装备规则:什么盔甲、能出哪些词缀
首次启动插件时会自动生成这三个示例文件,直接改就行。你也可以建自己的 yml 文件(比如 bow.yml),除了 affix.yml 以外的所有 yml 都会被当作装备规则读取。
这套体系分两层,写自定义词缀要两步:
- 在
affix.yml里定义词缀模板(这条词缀叫什么、加什么属性、数值范围) - 在
weapon.yml等装备规则里决定哪些装备能抽到它
第一步:在 affix.yml 里定义词缀模板
看一条现成的"锋利 I",逐行解释:
Sharp_I:
weight: 1 # 权重:越大越容易抽到(见下文概率计算)
prefix: '&f&lSharp I' # 词条名:拼在物品名前面,支持颜色代码
stats: # 这条词缀给什么属性
attack-damage: # MMOItems 属性 ID(小写加连字符)
min: 1 # 数值在 1 ~ 3 之间随机
max: 3
stats 的三种写法
stats:
# ① 写法一:min/max 区间,重铸时在区间内随机取值
attack-damage:
min: 1
max: 3
# ② 写法二:直接写一个数字 = 固定值(min 和 max 相等)
perm-effects:
speed: 1 # 永久速度效果 1 级
# ③ 写法三:元素伤害要按层级嵌套
element:
fire:
damage:
min: 1
max: 5 # 火元素伤害 1~5
词缀模板里用的是 MMOItems 的小写属性 ID(attack-damage、critical-strike-chance、lifesteal、attack-speed……),和品质系统里的大写 ATTACK_DAMAGE 不一样,别抄混了。
prefix:物品名会变成什么样?
词缀的 prefix 会从前往后用空格拼接,最后整体加在物品名前。比如一把剑同时抽到 Sharp_I(prefix &f&lSharp I)和 Flame_I(prefix &4&lFlame I),物品名就会显示为:
Sharp I Flame I 长剑
第二步:在装备规则里决定谁能抽到
打开 weapon.yml,现在的内容长这样:
SWORD:
max-affixes: 3 # 每次词缀重铸随机出 3 条词缀
modifiers: # 词缀池:词缀ID : 权重倍率
Sharp_I: 0.4
Agile_I: 0.4
Critical_I: 0.4
# ……每行一条
三个要点:
| 配置 | 含义 |
|---|---|
SWORD | 生效对象:MMOItems 的物品类型,该类型所有装备都走这套规则 |
max-affixes | 每次重铸随机出几条词缀;0 表示不出词缀 |
modifiers 里的数字 | 该词缀在这次抽取里的权重倍率,最终概率 = 模板 weight × 倍率 |
概率怎么算?
每条词缀被抽中的相对概率 = affix.yml 里的 weight × 装备规则里的倍率。
示例:Sharp_I 权重 1,倍率 0.4,合计 0.4;假如词缀池里 13 条词缀都是 权重1×0.4 = 0.4,总权重 5.2,那么每条被抽中的概率都是 0.4 ÷ 5.2 ≈ 7.7%。抽中后从池子里移除(同一件装备不会出现重复词缀),再抽下一条,直到抽满 max-affixes 条。
想让"锋利 III"比"锋利 I"稀有十倍?把 III 的倍率写成 I 的十分之一即可。
进阶:给某一把装备单独配词缀
除了类型键,还支持物品 ID 键——只对某个具体物品模板生效:
EXCALIBUR: # 只对 ID 为 EXCALIBUR 的物品生效
max-affixes: 5
modifiers:
Sharp_III: 0.8
Holy_III: 0.8
Lifesteal_III: 0.5
一件 SWORD 类型的 EXCALIBUR,如果 weapon.yml 里同时有 SWORD 和 EXCALIBUR 两段配置,会优先使用 SWORD 类型那段。想让神装走专属词缀池,就不要让它落在已有类型配置里(或把类型配置里不写它,另建文件用物品 ID 键)。
完整实战:加一条自定义词缀
目标:给弓加一条"寒冰箭",命中附带冰缓效果感的冰元素伤害。
① 在 affix.yml 里加模板(任意位置,和现有词条平级):
Frost_Arrow_I:
weight: 1
prefix: '&b&lFrost Arrow I'
stats:
element:
water:
damage:
min: 2
max: 6
② 新建 plugins/MMOitemsReforge/modifiers/bow.yml:
BOW:
max-affixes: 2
modifiers:
Frost_Arrow_I: 0.5
Critical_I: 0.4
PvE_Damage_I: 0.4
③ 执行 /mmoreforge reload,进游戏拿一把弓丢进重铸台切到词缀模式试试。
第②步的 Frost_Arrow_I 必须和第①步的模板 ID 一字不差。装备规则里写了词缀池里不存在的 ID,该条目会被静默跳过。
常见坑汇总
- 词缀重铸是全重随:每次词缀重铸会清掉装备上所有旧词条重新随机,不是在原有基础上追加。
- 改了文件要 reload:
/mmoreforge reload,YAML 只能用空格缩进。 - 倍率写 0 等于没这条:
weight × 0 = 0,永远不会被抽中。 - max-affixes: 0:该类型装备词缀重铸后一条词条都没有,别奇怪。
- prefix 别忘写颜色:不写颜色代码就是白色默认样式。