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

注册 登录

QQ登录

只需一步,快速开始

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

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

[复制链接]

42

主题

2060

帖子

2万

积分

3DM Mod站 原创组

Rank: 12Rank: 12Rank: 12

贡献度
977
金元
184851
积分
22453
精华
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

查看全部评分

回复

使用道具 举报

2

主题

401

帖子

515

积分

高级玩家

Rank: 4

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-18 15:44 , Processed in 0.028708 second(s), 18 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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