我是谁004 发表于 2017-1-13 23:55:25

语言DLL的修改方法

对于MOD制作者来说,一个完整的MOD,理应拥有它自己的DLL语言文件。这不仅能够让单位、科技具有正式的名称,也能在游戏中看到单位更详细的说明。那么如何来修改DLL文件呢?如果用传统的eXeScope,那么它只能编辑原有,而不能增加新的条目,这显然是不满足需求的。因此,这里我介绍两种方法,它们能够让你更自由、方便地对语言文件进行修改。

一、使用Restorator
该程序相对来说稳定,不易出错,但导出时略为麻烦。
首先,这是Restorator打开后的界面。

从“文件”菜单中打开一个dll文件,如图所示。

然后右键点击这里(左侧高亮的文字),选择“导出→导出为RC文件”。在这个框中指定导出的RC文件的位置和名称。

这就是导出的RC文件的内容。对于Restorator而言,请将“STRINGTABLE”和“LANGUAGE x, y”两行的位置互换,并删除所有其他非注释内容(即不属于字符串表的东西,如下图中的VS_VERSION_INFO)。另外,请检查一下,是否有一种语言(如简体中文)出现了两次,重复的那部分应该删除掉。


然后,你就可以对这个RC文件进行修改了。仿照着它原有的字符串的格式,来修改或添加新的。
修改完成后保存,然后用Restorator打开这个RC文件,如下图所示。

在RC文件的项目“字符串”上右键,选择“复制”;再在原本的DLL文件的“字符串”上使用“粘贴”,就可以将修改过的字符串粘贴进DLL中。
最后,就在DLL上面右击选择“另存为”,保存成需要的文件即可。

这便是效果。(请勿吐槽修改的内容)



二、使用ResEdit
类似于Restorator,但有所区别。
首先仍然是打开DLL文件,然后在菜单中选择“另存为”,在保存类型中选择“资源文件(.RES, .DLG)”,统一保存成RC文件。


类似地,这里也有必要对RC进行修改。ResEdit中的LANGUAGE和STRINGTABLE顺序是正确的。但是,要将所有的“LANGUAGE x,y”中后面的字符串都改为数字,如下这个“SUBLANG_DEFAULT”便改成1(繁体中文为“4, 1”,简体中文为“4, 2”)。并且也要将字符串以外的非注释内容删去。


保存后,在ResEdit中关闭当前工程,打开修改后的RC文件,再另存为DLL,就可以了。


三、其他
有人就会问了,这里为什么没有提及ResHacker这个工具呢?这是因为,它虽然也可以导入导出RC,但是导出的RC结构编辑起来很麻烦,而且也要作修改才能导入,所以就不再叙述了:

焚风之爱莉琰 发表于 2017-1-14 18:05:40

本帖最后由 风火之炎岩 于 2017-1-14 18:25 编辑

我记得以前在玩的时候,将哥特电脑ai的名字修改成爱莉亚,然后各种对话也进行修改,比如原来命令盟友攻击的时候电脑的回复“是,陛下!”被我改成了“欧尼酱的话即是真理!”。还挺有趣的!

chuangwangwwws 发表于 2017-3-18 22:17:56

哇哇哇!不会用dll,终于找到楼主的帖子了!楼主万岁!好人一生平安!!!!!楼主万岁万岁万万岁!{:154:}{:154:}{:154:}

1497059433 发表于 2022-6-21 05:01:28

DE版本还可以用吗

我是谁004 发表于 2022-6-27 22:28:43

1497059433 发表于 2022-6-21 05:01
DE版本还可以用吗

DE版语言用的是txt文本文件,当然不需要再触及复杂的dll了

1497059433 发表于 2022-7-9 18:53:05

我是谁004 发表于 2022-6-27 22:28
DE版语言用的是txt文本文件,当然不需要再触及复杂的dll了

大佬我想问一下de里编辑器里脚本调用怎么用的,脚本调用怎么用

cly806 发表于 2022-7-9 21:01:59

1497059433 发表于 2022-7-9 18:53
大佬我想问一下de里编辑器里脚本调用怎么用的,脚本调用怎么用

那个本质使用的是up-effect及其扩展

金戈铁骑 发表于 2022-7-25 17:57:32

怎么修改版本号呀,我在RC文件那里找不到

大川 发表于 2023-3-6 16:54:21

有么有办法 显示中文age也显示听说转换格式 有教程吗
页: [1]
查看完整版本: 语言DLL的修改方法