本文收什么:游戏里显示的文字与引擎实际行为不符的条目。 不收单纯的错别字,也不收「翻得不够漂亮」——只收会让玩家做出错误判断的那些。 判据是:照字面理解去配装/加点,会得到与实际不同的结果。
不收什么:数据键本身的语义坑(例如
SOAKSCALEPCT写小于 100 才是穿甲)属于 239 个 TYPE 的行为解释,不在本文。
怎么写一条
每条固定五段,缺证据的不收:
| 段 | 要求 |
|---|---|
| 游戏里显示 | 原样抄,带截图更好 |
| 会被理解成 | 一句话说清误解 |
| 引擎实际做什么 | 必须落到函数地址或数据文件的具体行 |
| 为什么会这样 | 文案模板/译文/共用串,哪一环出的问题 |
| 怎么改 | 改哪个文件、哪一行,以及会连带影响谁 |
001 |「伤害加成」被显示成「持续伤害」
游戏里显示
埃辛诺斯战刃(伪) 的 proc「伊利丹的愤怒」增益图标,悬停显示:
115毒系伤害,持续5 秒*
115物理伤害,持续5 秒*会被理解成
「接下来 5 秒里,总共造成 115 点毒系伤害」——一个持续伤害(DoT)。
按这个理解,玩家会认为这个 proc 每次触发只值 115 点,从而低估它;也会在战斗统计面板里 去找一行叫「伊利丹的愤怒」的伤害,然后发现找不到而以为统计漏了。
引擎实际做什么
它是伤害加成,不是伤害:接下来 5 秒里,你的每一次命中额外附带 115 点毒系伤害。
链路(数据侧):
WARGLAIVE.DAT(武器)
└ AFFIX: WARGLAIVE_DAMAGE_BUFF
└ [EFFECT] TYPE: CAST SKILL ON MELEE STRIKE,MIN/MAX 100(100% 触发)
└ SKILL WARGLAIVE_PROC(DISPLAYNAME: 伊利丹的愤怒)
└ [EVENT_START][AFFIXES] TARGET:SELF AFFIX: WARGLAIVE_DAMAGE
├ [EFFECT] TYPE: DAMAGE BONUS DAMAGE_TYPE: PHYSICAL DURATION: 5
└ [EFFECT] TYPE: DAMAGE BONUS DAMAGE_TYPE: POISON DURATION: 5
STATMODIFYNAME: CHARACTER STRENGTH,STATMODIFYPERCENT: 10DAMAGE BONUS 是效果类型 10。伤害结算按伤害通道逐桶取它:
0052DFAD push 0 / push 2 / push 0Ah → getStat(10, 2, 0)即类型 10 的效果按伤害类型 0–6 分七个桶记账,由伤害计算流程读走、加进那一次挥击里。 它自己不产生任何扣血事件,所以战斗统计面板里不可能、也不应该出现独立的一行。 (详见 239 个 TYPE 的行为解释 §2.1)
数值也对得上:STATMODIFYPERCENT: 10 取自 CHARACTER STRENGTH,力量约 1150 时正好 115。
为什么会这样
不是中译的锅,英文原文模板就把两件事写成了同一句。 EFFECTSLIST.DAT 里:
| 类型 | 名称 | GOODDESOT |
|---|---|---|
| 10 | DAMAGE BONUS | [VALUE_OT] [DMGTYPE] Damage over [DURATION] |
| 52 | DAMAGE | [VALUE_OT] [DMGTYPE] Damage over [DURATION] |
全表 239 个类型里,只有这两个用这句,而且逐字相同。
效果带有限时长时引擎取 GOODDESOT 而不是 GOODDES。对类型 52(真正的持续伤害)这句是 对的;对类型 10 就成了把「加成」说成「伤害」。注意 GOODDES 那句是有 + 号的 (+[VALUE] [DMGTYPE] Damage),偏偏 OT 那句把 + 丢了——歧义正是从这里来的。
对应的中文串在 TRANSLATION.DAT:
<STRING>TRANSLATION:[VALUE_OT][DMGTYPE]伤害,持续|cFFecfeff[DURATION]|u怎么改
不能只改 TRANSLATION.DAT 那一行——它按原文串匹配,类型 10 和 52 共用同一个原文, 改了会把真正的持续伤害一起说成加成。
正确做法是在 EFFECTSLIST.DAT 里给类型 10 换一句自己的 GOODDESOT,再为这句新原文 补一条译文。例如:
第 10 块 <TRANSLATE>GOODDESOT:+[VALUE_OT] [DMGTYPE] Damage for [DURATION]
译文 命中附带 +[VALUE_OT] [DMGTYPE]伤害,持续 [DURATION]改动约束:EFFECTSLIST.DAT 的行号就是效果类型 id,块数必须恰好 239,只能改块内 内容、不能增删块(见 239 个 TYPE 的数值槽对照表)。改 GOODDESOT 的文本本身是安全的。
连带影响:只影响类型 10;类型 52 保持原样。另外 BADDESOT(负向版本)有同样的问题, 要改建议一起改。运行时 MOD 的 MEDIA/EFFECTSLIST.DAT 已经在覆盖这个文件(给 BADDES 加了红色标签),改动落在那里即可。
附带结论
战斗统计面板找不到「伊利丹的愤怒」这一行是正确行为,不是统计漏了:引擎层面它没有 独立的伤害事件。它的贡献已经混在「普通攻击」和当时所用技能的数字里。
想验证它确实生效,去面板的**「伤害类型」页**看:一把物理武器打出可观的毒素占比, 那就是这个 buff 的贡献。
要单独量化「这 5 秒加成一共多贡献了多少伤害」,需要对每次命中再按无 buff 重算一遍并相减 ——等于在外部重实现整条伤害公式(暴击、护甲卷、抗性、联机人数曲线全要复刻),算不准, 明确不做。可做且能做准的是增益覆盖率(触发次数 / 战斗内生效时间占比)。