本帖最后由 rilke198711 于 2013-11-25 15:00 编辑
前 言
本贴的目的,意在给许多有心制作“内部敌人”(以下简称EW)MOD的玩家,提供一些基本的信息。本帖大量资源来自N网和N网论坛,如涉及转载和原文引用,将直接标明出处。
我知道本论坛上已经有类似帖子,为什么我还要重开一贴呢,因为“内部敌人”发布后,原来所有的MOD几乎都无法使用了,而且整个游戏不但增加了要素,还改变了许多内部函数算法。这样,制作新MOD的时机和必要性都成熟了。
由于XCOM的制作团队对于玩家制作MOD比较反感(可以去看他们的一个访谈),所以实际上是故意设置了许多门槛,让MOD制作变得很难,目前最关键的难点有:
1.执行文件强制“不”读取某些自定义文件
2.设定文件在启动后自动更新覆盖(不知道D版是否也是这样,STEAM版肯定是)
3.强制检测UPK文件完整性(EW已经取消这一设定)
4.UPK文件编辑比较复杂(这倒不一定是故意的,但却是比许多游戏要复杂)
本帖第一阶段主要介绍以上四大难点,以及其解决方案。
本帖欢迎广大玩家探讨如何制作MOD,功能如何实现,函数如何修改,但不会直接提供修改好的文件。
另外制作XCOM的MOD需要一定的编程基础和HEX编辑能力,请有心制作MOD的朋友预先做好功课。
必须准备的软件:
1.HEX编辑器:N网上推荐Hex Editor(http://mh-nexus.de/en/hxd/),我本人不太喜欢,我爱用Ultraedit32(http://www.onlinedown.net/soft/262731.htm)。
2.UPK解压软件:Unreal Package Decompressor(http://www.gildor.org/downloads 下面的OTHER TOOLS里)
3.Ureal Script代码浏览软件: Unreal Explorer(http://eliotvu.com/portfolio/view/21/ue-explorer 感谢制作人Eliot)
4.一个好用的文本编辑器:Note PAD++(http://notepad-plus-plus.org/ 若用WIN自带记事本写字板 导致浏览编辑困难 从而出现问题 本人概不负责)
5.一个好用的文本对比软件:Winmerge(http://winmerge.org/)主要作用是对比两段代码或者文字的长度及异同,由于UPK文件的长度是限定的,所以很重要。
一. 如何让游戏读取自定义文件
注意:D版玩家无法进行此编辑,因为你们用的破解补丁被人加了完整性检测!我记得论坛里有人说有办法解决,请找那个帖子。
有些朋友可能已经发现,在“游戏安装目录\XEW\XCOMGAME\CONFIG”目录里,有一连串以"Default"开头的INI文件,比如Defaultgamecore.ini (以下简称DGC.INI),这个文件控制了决定游戏参数的一些核心变量,比如击落UFO后各种外星器具是否能保留下来,各个难度初始的金钱、设施、敌人强度,等等。
但如果直接尝试修改这个文件,就会发现没有任何作用。那是因为游戏执行文件将这些设定整合进了执行文件中,并且在文件中设定不去读取这些默认设定文件,所以之前大家都用Resource Hacker来直接修改执行文件。但这并不是好办法,因为:
A. 容易导致执行文件损坏
B. 无法做到通过在设定文件中增加参数来制作MOD
所以,最好的办法是让执行文件重新读取这些设定文件,只需要对执行文件做一个小小的修改,执行文件地址为“游戏安装目录\XEW\Binaries\Win32\XcomEW.exe,修改步骤如下:
A. 备份执行文件(若使用Ultraedit-32,则会在修改保存后自动生成.BAK备份文件)
B.打开Ultraedit-32,并在其中打开XcomEw.exe
C.查找以下十六进制串:
25 00 64 00 00 00 00 00 49 00 6e 00 69 00 56 00
65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 00 00
2e 00 2e 00 5c 00 2e 00 2e 00 5c 00 58 00 43 00
D.将C项字符串最后一行红色部分58改为:57
其实如果稍稍观察一下,就能发现这段十六进制串不过是一连串英语字母的ASCII代码,组合起来就是存放DGC.INI的目录,这就是游戏设定中强制不读取的文件存放位置,我们的改动只是故意让这个目录地址写错,这样游戏就会读取那些原先不读取的文件了。
注意!如果是从文件顶部开始查找整个文档,会发现两处符合的代码,修改第一处即可。
(以上内容参考页面:http://wiki.tesnexus.com/index.php/DefaultGameCore.ini_settings_-_XCOM:EU_2012)感谢N网广大作者。
(未完待续)
|