本帖最后由 我是demo 于 2023-8-1 14:31 编辑
以下部分并不要求一定要都能看得懂,毕竟这是面向 MOD 作者的教程,既要照顾萌新能听懂一部分,更多是为了向 MOD 作者演示常见的几种情况里面,D2RMM 里要怎么做。D2RMM 组件数目远远不够,我更希望有能力的同志一起加入进来,难免写得深入一些。如果你是 MOD DIY爱好者,你能看懂你所能看懂即可,不要纠结深入的内容看不懂,放过自己。如果你有兴趣写写 D2RMM 组件,那深入的东西可以写一写,尝试尝试,即使是 D2RMM 作者没有如此详尽的演示过文件修改常见情况该怎么写。
如果你只是一个爱好者,只想知道 D2RMM 组件怎么用的指路==》【D2RMM】暗黑2重制版 MOD管理器《入门图文教程》,D2RMM使用必看手册
【基础工具安装】
1. 工欲善其事必先利其器,笑
2. 为了更快入门,推荐使用国产编辑 notepad-- 进行后续的编辑文件操作,这能避免很多不必要的麻烦
3. 下载链接:[【notepad--】](https://gitee.com/cxasm/notepad- ... lugin-Installer.exe)
4. 这个的安装非常简单就不贴图了,当然你会用 vscode 或是 idea 等更有难度的富文本编辑器那就更好了
【基础设置】
1. 文件扩展名,是要勾选的,当然这个大部分人有开启过
【将 非D2RMM 的 mod 整合到 D2RMM】
【如何利用以前的 mod 简单做一个D2RMM组件】
1. 比如:在3DM论坛里找到一个说明还算完整的组件(侵删),下载[【召唤流数量和时间限制修改】](https://bbs.3dmgame.com/forum.ph ... 5ODE2fDYzMzY2NDM%3D),将它下载下来,原帖子:https://bbs.3dmgame.com/thread-6336643-1-1.html
2. 解压,打开文件夹,在 zhl.mpq 文件夹发现有个 data 文件夹,第一个知识点:所有整合 mod,真正起作用的东西都在 data 文件夹内,【复制这个 data 文件夹】
3. 来到 D2RMM 的安装目录下的 mods 目录,在这里我们建一个叫【(FS)召唤流数量和时间限制修改】的文件夹,F表示这个是一个需要覆盖原有游戏文件的D2RMM 组件,S表示它修改文件的首字母(skill.txt),这能其他玩家很方便的排序和归类
4. 把刚才复制的 data 文件夹粘贴,在这个文件夹底((FS)召唤流数量和时间限制修改)下
5. 在这个文件夹下新建一个叫做 mod.json 脚本,右键用 notepad-- 打开,将底下文本(包括两个花括号)复制进去,格式需要是 utf-8 编码,然后保存!<
6. 再新建一个叫做 mod.js 脚本,同样使用 notepad-- 打开,将底下文本(包括两个花括号)复制进去,格式需要是 utf-8 编码(如果不是可按下图操作步骤更改过来),然后保存!
<
7. 然后到 D2RMM 中,点击【刷新列表】,勾选【召唤流数量和时间限制修改】就能将其集成到其他 mod 里头了
8. 点击【安装已选模组】【开始游戏】,就可以愉快游戏了
【小结与答疑】
1. 上述只是一个小小的范例,这种方式制作 D2RMM 组件文件容易相互覆盖,有些功能会没法集成在一起,不过后续我们会讲讲该怎么解决这个问题
2. 还有就是由于原作者发布的文件是很早前的,后续游戏一更新,组件就会不能用,一安装就会闪退报错,后续我们会一同解决这个问题
3. 上述只是一个很小的功能项,那如果是一个包含很多功能的 mod 能用这个方法集成吗,当然可以,这也是做这篇文章最主要的目的
4. 如果是魔改的mod也可以吗,大部分情况是不行,由于魔改作者大部分采用.bin打包,文件被他们加密过,目前没有办法将他们解析回来,只能复制粘贴,不能修改
5. 后续我们将讲讲,创建 mod.js 和 mod.json 两个文件是做什么用的,这能让各位 mod 作者更好的自定义组件
【认识 mod.json】
1. 我们在上一篇幅中使用到 mod.json,并输入了{"name": "(FS)召唤流数量和时间限制修改", "description": "召唤流数量和时间限制修改"}
2. name - 组件的名称,这是最终显示在 D2RMM 中的名字,至于保存这个组件的文件夹叫什么 D2RMM 并不关心
3. description - 描述该组件是做什么用的
4. author - 组件作者名
5. website - 组件发布的网址,可以点击组件排序按钮打开对应网页
6. version - 组件版本
7. file - 组件涉及的文件,这是我自己汉化新增的字段,便于查看哪个组件与其他组件可能的冲突
8. config - 这是 D2RMM 组件能设置的关键,由于json不能注释,请查看图说明
9. 完整示例
<
【小结与注意项】
1. json 后缀的文件,所有你填写的字段都应该用英文双引号框起来,比如"我是一个英文双引号"
2. 例如:"name": "(AA)这是我的第一个组件" 冒号前的字段叫做键,冒号后叫值,他们组成键值对,写一个键值对的时候,需要在后面加逗号,不然会报错
【粗识 mod.js文件】
1. 在上上篇幅我们使用一句很简单的命令 D2RMM.copyFile('data', '', true );,让 D2RMM 去 copyFile(复制文件),将这个组件目录下的 data 文件夹,复制到 D2RMM/D2RMM.mpq/文件夹中,如果冲突了,那就直接覆盖掉,不覆盖就写(false)
<
2. 上述是 mod.js 最简单的用法,mod.js,后缀名是js,说明它本质是一个 JavaScript 的脚本,并且是 ES6 级别的。这是最难学习的部分,它需要一些编程的基础,不过我还是希望能通过一些简单的复制粘贴 MOD DIY 爱好者能自制一些常用组件
3. JavaScript(简称js) 入门到入土教程 => [【freeCodeCamp】](https://www.freecodecamp.org/chinese/learn/)
4. 开个玩笑,编程学习成本很大,有兴趣倒可以深入学习下,推荐上面的链接,全免费的。编程还是很有趣,特别是它能做游戏脚本的时候
5. 这个教程主要是让你能看得懂,别人写的脚本是在做什么,我们该如何模仿它写自己的东西
6. 不过我发现重点是得先明白为什么要这么改,改的数值是在用什么用的
7. 所以这节先搁置,后续再讲新的内容,先引入一些 mod 制作常见的工具
【小结】
一入编程深似海
【mod 开发常用工具使用】
1. 第二常用的工具一个是我们先前下载的 notepad-- 这是用来编辑 json 文件的
2. 最常用的工具是编辑和查看 txt 文件的[【AFJ Sheet】](https://bbs.3dmgame.com/thread-6174691-1-1.html)工具,先下载这个工具
3. 打开这个工具,找到zhl/zhl.mpq/data/global/exce/skills.txt,就是原先我们下载的小mod,只要一直往下点就可以了,它就只有这么一个有用的文件
4. 打开 skill.txt 我们会看到这是一个类似excel的文件,不过它需要专门的编辑,我选中这个kick 单元格,我们可以称它位置为第3行第D列,这个术语将在后面的介绍修改文件的时候用到。当然你也可以双击直接改里面的内容,不过如果你不熟悉的这个文件的话请不要这么做
5. 查找功能,点击箭头所指图标,打开搜索功能,以查找 kick字段为例,输入 kick 点击搜索/下一个即可找到这个字段。
6. 不过它有个小缺陷,如你所见,它现在选在attack上,它是位于kick之上的,这是搜索是可以搜到 kick,但一旦蓝色底框选在kick下的行,你再去搜索kick是搜不到这个单元格的,这是它很大的设计缺陷,使用的时候请注意。
7. 如上图还有替换为我就不多介绍了,就是替换功能
【小结】
这章节主要介绍 txt 文件编辑器的使用,方便我们后续查看 txt 文件
但是那些 txt 文件,每一列又是什么意思,是做什么用的,你知道吗
【txt文件详解】
如果你英语水平尚可,你可以看这个文件
[【官方英文版】【pdf】暗黑2重制版TXT文件所有列详解=TXT文件修改指南](https://bbs.3dmgame.com/thread-6431558-1-1.html)
那如果你英语像我一样惨不忍睹,请看这个文件,不过它毕竟是中文经验贴,难免没那么详细
[【简体中文】【pdf】学习制作MOD, 暗黑2常用TXT文件列详解/吐槽=TXT文件修改手册(暗黑2重制版可用)](https://bbs.3dmgame.com/thread-6436450-1-1.html)
这两个文件可以作为制作 mod 参考手册
但文字说明怎么改,难免没那么生动,我很希望你能去看看【隔壁大王】的 mod 课,这会让你的在后续的更复杂的教程中,能先系统的了解 mod 的原理和方法
[【隔壁大王 mod 课】](https://space.bilibili.com/31079 ... ondetail?sid=140238)详细且免费,推荐
【认识 D2RMM 接口,需要编程基础】
1. D2RMM.getVersion(),返回 D2RMM 版本,有些组件不适配低版本D2RMM,获取这个版本号能提示组件使用者该升级 D2RMM 了
2. D2RMM.readJson(文件路径),读取JSON文件(忽略注释、空白和D2R在JSON格式中出现的各种错误)会返回一个 js 中的字典
3. D2RMM.writeJson(文件路径,刚才返回的readJson返回的字典)
4. D2RMM.readTsv(文件路径),读取TXT文件并以JSON格式对其进行解析,返回 js 中的数组
5. D2RMM.writeTsv(文件路径),刚才返回的readreadTsv返回的数组)
6. D2RMM.readTxt(文件路径),以纯文本形式读取D2R文件
7. D2RMM.writeTxt(文件路径),纯文本写入数据目录
8. D2RMM.copyFile(从哪复制的路径,到哪去的路径,是否覆盖原有文件),将文件或目录从mod目录复制到数据目录
9. D2RMM.error(给用户报错)
【小结】
接口不多,也很简单(相对)
【自己写一个原创组件】<
【小结】
以上只演示了对 cubemain.txt 增加删除修改文件的操作,但并不意味着这些操作只能改这个文件 txt文件规则是一样的,不同的只是在列名称要描述要修改 对于大部分 MOD 的修改无非基于以上几种方式的细化,抽象罢了 加深对暗黑2 各种文件的理解才能写好 D2RMM 脚本
【结语】
MOD 应该是开放的,可供修改的
MOD 不开放,MOD 作者会越来越少,没人分享组件,MOD 会加密,开始收费
D2RMM 脚本是不加密的,数值是可自定义的,当然它是开放的,所以它是 Free 的
D2R 是一款值得一玩的老游戏,理应有很多 MOD
尝试一下吧 你也可以的~
【贴上最后的演示的脚本】
|