下文汇集了 Diablo II 中文客户端中物品名称的存储结构、定位方式、修改步骤与常见陷阱,并配以真实案例与工具清单,帮助你把
生命回复药剂改写成可口可乐这样的专属彩蛋。阅读完毕后,你不仅能独立提取并编辑.tbl字符串表,还能灵活选择 “打包回 MPQ” 和 “本地 data 覆盖” 两种发布方案,确保改名既安全又可逆。
字符串系统总览
Diablo II 的本地化文本保存于三张专有表格:string.tbl、expansionstring.tbl 与 patchstring.tbl(D2 Mods)。
-
string.tbl存放基础游戏(Classic)的大部分文本。 -
expansionstring.tbl承载资料片 Lord of Destruction 新增内容。 -
patchstring.tbl拥有最高优先级,用于覆盖前两者中的同名键值(D2 Mods)。
三张表在不同语言目录中各有一份。例如英文版位于 data\local\LNG\ENG\,而简体中文版使用 CHI 目录(D2 Mods)。游戏启动时先查找 patchstring.tbl,若未命中才继续访问其他表,所以改写中文名称时优先编辑 patchstring.tbl 最稳妥。
中文名称到底藏在哪
MPQ 路径
在原版 1.13c~1.14d 客户端里,所有 .tbl 文件都打包于多个 MPQ 档案:
-
d2data.mpq:主程序资源 -
d2exp.mpq:资料片资源 -
patch_d2.mpq:补丁资源,优先级最高
以中文客户端为例,patch_d2.mpq 里的路径一般是
data\local\LNG\CHI\patchstring.tbl
这一布局已被多位 Modder 及教程证实(Reddit, Phrozen Keep)。
直接文件覆盖
从 1.13 版本开始,暴雪在可执行文件里加入了 “Data \ Local 覆盖” 机制:当你在启动参数里附加 -direct -txt,客户端会先读取游戏根目录下的 data\local\LNG\<语言> 再去解包 MPQ(Reddit)。
这意味着无需二次打包,只要把修改后的 .tbl 放进 data\local\LNG\CHI\ 就能即时生效,极大降低了出错概率。
工具与环境准备
| 需求 | 推荐工具 | 备注 |
|---|---|---|
| 解包 / 打包 MPQ | Ladik MPQ Editor(HIVE) | 界面友好、支持批量拖拽 |
编辑 .tbl | AFJ Tbl Edit(D2 Mods) / QTblEditor(GitHub) | 前者经典、后者跨平台 |
| 批量查看键名 | Excel 或 LibreOffice Calc | 把 misc.txt 对应项目代码与字符串键对照起来 |
| 参考教程 | Phrozen Keep 论坛、YouTube 频道 | 详见后续引用 |
编码注意:中文客户端的
.tbl采用 936 GBK 单字节编码。如果你的编辑器保存为 UTF‑8,游戏会显示乱码。AFJ Tbl Edit在保存时会自动保持原编码,使用其他编辑器需手动确认。
实战演练:把 生命回复药剂 变成 可口可乐
步骤 A — 提取 patchstring.tbl
-
打开
patch_d2.mpq,导航到data\local\LNG\CHI\(D2 Mods)。 -
右键
patchstring.tbl→Extract. -
将文件放入你的工作目录备用。
步骤 B — 查找目标键
-
启动
AFJ Tbl Edit,载入刚才提取的.tbl(D2 Mods)。 -
在搜索框输入物品代码。要找
生命回复药剂,先去misc.txt查到它用的键rvs(Rejuvenation Potion 简写)(Reddit)。 -
回到编辑器,定位键
rvs,即可看到当前中文值。
步骤 C — 修改并保存
-
把值改成可口可乐。
-
点击保存。
AFJ会自动更新校验码,无需额外操作。 -
若走 Data 覆盖 路线,将文件复制到
<游戏目录>\data\local\LNG\CHI\patchstring.tbl并在启动器快捷方式尾部加入
-direct -txt -
偏好重新打包的玩家,可直接把修改后的
.tbl拖回 LadikMPQ Editor并覆盖原文件,保存归档即可(HIVE)。
步骤 D — 进游戏验证
-
进入战网离线或单机模式,丢一瓶
生命回复药剂地上,物品名应已显示为可口可乐。 -
若未生效,检查是否
-
启动参数漏写:游戏仍在读取 MPQ 旧文件;
-
.tbl编码错误:显示为乱码或空白; -
语言目录拼写错误:CHI/CHI 简繁混用导致找不到表。
-
深入理解 patchstring.tbl 的优先级逻辑
patchstring.tbl 之所以被广泛用于改名,是因为只要键存在于该表,游戏即刻停止向前查询,这在多语言客户端尤为关键。例如你只想改一条中文,不想连英文也变动,那么:
-
在
CHI\patchstring.tbl中加入键rvs -> 可口可乐。 -
英文目录
ENG\patchstring.tbl可保持默认,外服玩家不会受影响。
这一优先级机制不仅见诸官方补丁,也被多篇 Mod 制作指南总结为 “最安全做法”(D2Mods Mail)。
常见陷阱与对策
| 问题 | 根因 | 解决方案 |
|---|---|---|
名称显示 NULL | 键名拼写错误或被删除 | 使用 misc.txt 对照表再次确认 |
| 中文乱码 | 文件被保存为 UTF‑8 | 强制采用 936 GBK 或在 AFJ 里直接编辑 |
| 数据覆盖无效 | 忘记 -direct -txt | 在快捷方式、Bat 或 Loader 参数里补全 |
| 游戏崩溃 | .tbl 控制字节损坏 | 使用 AFJ/Qtbl 保存,勿用记事本手改 |
真实案例:自定义药剂名做直播互动
YouTube 作者 HighTech_LowIQ 在教学视频中演示了将文本改为趣味俚语,并通过 OBS 捕获地面掉落以与观众互动(YouTube)。
其流程与本文步骤几乎一致,只是把输出语言切换到英文目录。将这一思路迁移到中文服,你完全可以把 喝了就回城、奶茶 等流行梗塞进药瓶,既不破坏核心平衡,又让观众眼前一亮。
与 Diablo II Resurrected 的区别
在 D2R 里,暴雪改用 JSON 字符串文件,位置是 .../mods/xxx/local/LNG/zhCN/strings.json,可用开源 StrEdit 工具批量处理(GitHub)。尽管格式不同,“语言目录优先级 + 本地覆盖” 的思想依旧一致,熟悉经典版改名后迁移到 D2R 并不困难。
延伸阅读资源
-
Phrozen Keep “语言切换与 Unicode” 讨论串(D2 Mods)
-
Modding D2 Reddit 精华帖:文本钩子与滤镜示例(Reddit)
-
初学者 Mod 制作 PDF(第 14~16 页详细讲解字符串表)(Phrozen Keep)
-
YouTube 系列 “Translate Diablo 2 Mod to Your Own Language” 第 1 集(YouTube)
-
QtblEditor 项目源码,方便二次开发(GitHub)
核心要点回顾
Diablo II 中文名称位于 patchstring.tbl / string.tbl / expansionstring.tbl,默认打包在 MPQ 深处,却可借助 -direct -txt 轻松覆盖。借助 Ladik MPQ Editor 解包、AFJ Tbl Edit 或 QTblEditor 修改、再按需选择 “直接覆盖” 或 “回写 MPQ”,你就能把任何物品从 生命回复药剂 魔改成 可口可乐 而不触及代码层。掌握键名与编码规范后,整个改名过程不过十分钟,却能为你的 Ladder 之旅增添无限乐趣。
1万+

被折叠的 条评论
为什么被折叠?



