3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 侠客前传 | 刺客信条 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 3108|回复: 7
打印 上一主题 下一主题

[讨论] 自制IL汇编语言源文件内容自动替换工具,继年前的帖子“Unity引擎类游戏MOD制作通用教程。。。”后新年第一弹!!!

[复制链接]

42

主题

1988

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
183126
积分
22281
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

跳转到指定楼层
主题
发表于 2019-2-22 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liyun_1981 于 2019-5-30 12:10 编辑

前言


    如题,IL汇编语言是啥玩意及这个工具的由来,请水友们先阅读我年前发的这个帖子:Unity引擎类游戏MOD制作通用教程,一个非游戏软件行业的软件系统架构师的经验谈,跟水友们分享经验,2019年春节前的献礼!!!


正题

    首先,此工具的主要作用是:通过指定的IL代码配置文件file-il.xml自动批量替换通过Java正则表达式查询匹配到的所有IL汇编语言源代码文件(下面简称IL源文件),以达到通过一个配置文件一次性替换多个不同游戏版本的IL源文件的目的。

    下面,再举例说明下使用此工具自动替换《开拓者:拥王者》的GOG v1.3.3 版本的反编译游戏核心业务逻辑类库文件Assembly-CSharp.dll后得到的IL源文件Assembly-CSharp.il,操作步骤如下:

1、解压缩game.7z(有需要的水友请到我这个帖子下载:强迫症必备,游戏修改党必备,游戏老玩家必备,高端玩家必备,自制游戏统一管理工具,对所有游戏均可参数化配置等等)到任意目录,例如:D:\tools

2、在任意硬盘分区新建3个目录,例如:E:\Decompile,E:\Decompile\DLL,E:\Decompile\DLL-ildasm,将文件Assembly-CSharp.dll复制到E:\Decompile\DLL目录

3、打开“VS 2017的开发人员命令提示符 ”,输入命令:
cd /d "E:\Decompile\DLL"
ildasm Assembly-CSharp.dll /output:..\DLL-ildasm\Assembly-CSharp.il
此时在E:\Decompile\DLL目录会生成Assembly-CSharp.res和Assembly-CSharp.il两个文件,我们只关心文件Assembly-CSharp.il

4、输入命令:
cd /d "D:\tools\game\bin"

file -rfil* (?i)\.il$ E:/Decompile/DLL-ildasm
这条file命令是条模拟执行命令,它的含义是根据配置文件D:\tools\game\bin\file-il.xml自动替换E:/Decompile/DLL-ildasm目录中所有文件扩展名为.il的文件内容;如果命令已正确的执行了,输出内容应该类似如下信息:<


此时,说明IL配置文件file-il.xml内容是与IL源文件Assembly-CSharp.il完全匹配的;再输入命令 file -rfil+ (?i)\.il$ E:/Decompile/DLL-ildasm 正式执行一遍,即可得到预期的已被修改了的IL源文件Assembly-CSharp.il;如果执行模拟命令时输出了错误信息,则说明IL配置文件file-il.xml内容IL源文件Assembly-CSharp.il不完全匹配,需要修正配置文件再重新执行命令;如果配置文件中配置的需要替换或新增的IL代码内容不能全部成功匹配的话,输出内容应该类似如下信息:
<

2楼附上本人使用的自动替换IL源文件Assembly-CSharp.il的配置文件片段,再跟水友们简明的说明下关键节点的含义。IL配置文件file-il.xml可以在 game\bin 目录下找到。



评分

1

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

42

主题

1988

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
183126
积分
22281
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

舒服的沙发
 楼主| 发表于 2019-2-22 16:34 | 只看该作者
本帖最后由 liyun_1981 于 2019-5-29 19:25 编辑

下面是我自动替换《开拓者:拥王者》GOG v1.3.3 版本的Assembly-CSharp.il文件使用的配置文件片段,此配置片段内容实现了以下两个主要功能及其他功能:


1、新增隐藏UI开关快捷键 Ctrl + Alt + H;
2、角色等级上限及经验值修改。


配置文件内容如下:<


此配置文件中最重要的节点是:ILCodes::mode、ILCode::processingMode、ILCode::lineNumber、ILCode::queryRegex、ILCode::codeRegex、ILCode::codeFragment,具体含义参见ILCodes::comment节点,已经进行了详细的说明。

最后,由于昨天我的开发工具 myeclipse2018.12CI 突然冒出了只剩5天到期的坑爹问题,因而这次新增的file命令的新命令选项 -rfil 还没来得及详细测试,难免会有bug,感兴趣的水友们可以多多测试并把问题反馈给我!


回复 支持 反对

使用道具 举报

58

主题

2254

帖子

209

积分

中级玩家

Rank: 3Rank: 3

贡献度
40
金元
487
积分
209
精华
0
注册时间
2009-10-31
硬硬的板凳
发表于 2019-2-22 18:28 | 只看该作者
大佬厉害 有没有办法替换游戏里的字库 解决显示个别字显示不了的问题
回复 支持 反对

使用道具 举报

42

主题

1988

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
183126
积分
22281
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

冰凉的地板
 楼主| 发表于 2019-2-23 00:00 | 只看该作者
q345593023 发表于 2019-2-22 18:28
大佬厉害 有没有办法替换游戏里的字库 解决显示个别字显示不了的问题

目前还没研究字库这块,有时间我研究研究。
回复 支持 反对

使用道具 举报

2

主题

355

帖子

421

积分

高级玩家

Rank: 4

贡献度
1
金元
4165
积分
421
精华
0
注册时间
2016-6-11
5#
发表于 2019-2-27 22:26 | 只看该作者
大佬你的40级补丁在1.24版本各种跳出
开局出门游戏跳出
游戏内读档跳出
大概是游戏内转场就会跳出
回复 支持 反对

使用道具 举报

42

主题

1988

帖子

2万

积分

3DM Mod 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
183126
积分
22281
精华
6
注册时间
2011-12-23

3DM MOD站(白银)

6#
 楼主| 发表于 2019-3-3 20:33 | 只看该作者
q345593023 发表于 2019-2-22 18:28
大佬厉害 有没有办法替换游戏里的字库 解决显示个别字显示不了的问题

字体补丁已经新鲜出炉!请转到我今天发的帖子下载!http://bbs.3dmgame.com/thread-5856425-1-1.html
回复 支持 反对

使用道具 举报

0

主题

9

帖子

11

积分

新手玩家

Rank: 1

贡献度
0
金元
106
积分
11
精华
0
注册时间
2018-4-3
7#
发表于 2019-3-14 05:58 | 只看该作者
大佬能不能出一个修改王者荣耀人物模型的教程
回复 支持 反对

使用道具 举报

2

主题

386

帖子

480

积分

高级玩家

Rank: 4

贡献度
7
金元
4517
积分
480
精华
0
注册时间
2014-2-5
8#
发表于 2021-9-5 23:32 | 只看该作者
大佬,我发现一个问题。我玩术士转职龙术士,因为龙术士升级经常要选天赋,而天赋数量是有限的,一直双倍加下去很快就会没有天赋可以选,然后就升不了级。

我想把这部分,也就是天赋X2的这段改回来,无奈没学过代码,想不出来怎么改,求指导。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|咖绿茵|求知网|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2024-4-25 08:14 , Processed in 0.109570 second(s), 26 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表