零、囫囵吞枣
受 3DM 太吾绘卷板块 qweytr_1 发表的《一个无创修改assets的新思路》一文启发,我们可以通过 Unity Assets Bundle Extractor 提取 sharedassets0.assets 数据包,进而实现游戏参数修改与应用。
本文将以修改游戏中玩家每个月可活动次数(暂名 Action Point,AP)为例演示具体方法。
一、迁思回虑
Unity 引擎制作的游戏允许用户以补丁的形式,将文本文档格式的配置文件放置到对应目录,因补丁目录的优先级更高,游戏将优先访问修改后的配置文件,从而达到应用修改目的。
二、口诵心惟
以修改游戏中 AP 为例:
1、下载 Assets Bundle Extractor,在主菜单选择 File - Open,导航到《太吾绘卷》游戏资源目录中:steamapps\common\The Scroll Of Taiwu\The Scroll Of Taiwu Alpha V1.0_Data,然后打开 sharedassets0.assets 数据包。
2、定位配置文件。一般来说,文件名为 xxx_Date,类型为 TextAsset 的即为配置文件。把 Data 写成 Date 明显是开发组的锅啊,不过那群神人 C++++ 心法逆练大圆满,天天修仙肝更新,这点小毛病还是无视好了,反正我也吐槽四次了。
如下图,此时我们应该提取的是 Age_Date 文件。
2.1、提取配置文件。这里我们需要通过右侧面板的 Export Raw 来提取,随便放到一个目录,稍后用文本编辑工具修改它,我选择 Atom。
3、此时我们已经可以打开 unnamed asset-sharedassets0.assets-187.dat 这个配置文件,它大概是这样的:
3.1、根据 3DM 那篇教程贴的提示,我们要把首行 # 号之前的内容删掉,然后进行后续编辑。
3.2、现阶段因尚无官方 MOD 开发工具,我们如果想以这种形式制作 MOD,需要自行推测每个位置的参数代表何种意义。根据一番研究,我们会发现参数的首项是年龄,而第七项对应着游戏中的 AP。研究参数规律
3.3、之后,我们便可通过正则表达式替换,将每个年龄对应的 AP 进行修改。
具体的表达式仁者见仁了,笔者三脚猫功夫,有几个错误命中,需要手动调过。
在此感谢万能的 Reaper 群群友 RCJacH 教会了我 $1 的用法。
万能的 Reaper 群群友 Moy 提示我说 Atom 也支持多光标编辑,即通过正则表达式高亮命中内容之后 Alt+Enter 可以进入多光标编辑模式,试了一下对命中内容要求很高,感兴趣的朋友也可以试试。
3.4、然后将命中的项目的最后一项改成 60(不管它先前是 10、20 还是 30)
即查找内容为:
([0-9][0-9]*[0-9]*,-*(100|75|50|25|0),-*(100|75|50|25|0),(100|90|75|50|35|15|5|0),-*(100|75|50|25|0),-*(100|75|50|25|0),)(10|20|30)
替换内容为:
$160
注:这里的 $1 代表保持每行前面六个参数,而将第七个参数改成 60。如果想统一改成 100,那么就改成
$1100
4、一通操作之后,即可将每行的第七个参数改成你想改的内容。确认当前编码模式为 UTF-8,修改完毕后保存,将文件名重命名为 Age_Date.txt,然后将其拷贝到 steamapps\common\The Scroll Of Taiwu\The Scroll Of Taiwu Alpha V1.0_Data\Data目录。如果该目录不存在,手动创建一个即可。
5、启动游戏检查一下,当月活动完之后点下一回合(下个月),修改生效。
三、奇思妙想开发组把内息紊乱的五个阶段嵌到了年龄参数的前五岁中有点意思,但没明白具体用法。
年龄的参数中只配置了 0 到 100 岁的相关参数,而游戏中“相枢入体”设定会让人突破百岁,如果放着那类 NPC 不管会不会出 BUG,不得而知。
qweytr_1 的原贴写得及其晦涩,我感觉自己是点了融融惟才看懂的……
——That's all, happy modding.