战争游戏红龙吧 关注:36,825贴子:303,726

战争游戏mod制作基础教程

只看楼主收藏回复




IP属地:美国1楼2021-02-05 17:59回复
    大佬,求问,怎么修改战役单位的主动点数


    IP属地:江苏来自iPhone客户端2楼2021-02-05 18:11
    收起回复
      战争游戏的数据修改大致有这几类:
      单位数据修改,
      单位模型的材质(Texture,又称皮肤)替换(比如给单位换上用户制作的自定义涂装),(注意,不是单位模型替换,红龙游戏发行至今7年,尚未有mod作者能够成功给游戏加入新模型)
      用户界面(UI)使用的各种图片资源修改,
      和其他游戏数据修改。
      下面将介绍如何进行单位数据修改。


      IP属地:美国3楼2021-02-05 20:12
      收起回复

        85-3改成96,舒服了


        4楼2021-02-05 20:25
        回复
          在开始单位数据修改之前,先要讲一下游戏的文件结构。
          下面是游戏的根目录,可以看到结构很简单,游戏的单位数据都在Data文件夹,EmptySteamDepot是一个空文件夹,而Maps文件夹内含地图相关的数据。

          进入Data文件夹,会看到两个子文件夹。上面的PC文件夹仅包含各版本的WarGame3.exe和几个dll文件,而游戏的单位数据都在下面的WARGAME 文件夹。

          点进WARGAME文件夹会发现只有一个PC文件夹

          继续进入PC文件夹即到达游戏数据所在的位置。
          数字从小到大的各个文件夹内就包含了各个版本的单位数据。要想修改最新版的游戏内单位数据,进入数字最大的文件夹即可。
          在目前,最新的版本即510117427,在下面的箭头处标出。如果欧根再次更新,那么510117427文件夹之后还会有更大数字的文件夹(虽然欧根在可见的未来更新版本的概率很小)。


          IP属地:美国5楼2021-02-05 20:44
          收起回复
            继续进入510117427文件夹,会发现一个叫做NDF_Win.dat的dat文件。红龙所有的单位数据,如单位移动速度,隐蔽,穿深,射速等等都在里面。

            要想打开这个文件,需要一个叫Modding Suite的工具,是由一个叫enohka的国外大佬制作的战争游戏dat文件编辑器。可以说没有Modding Suite,很多现在红龙的mod就不会存在。

            Modding Suite发布在Github上,可以的话请去作者的页面给他加个星。


            IP属地:美国6楼2021-02-05 22:02
            收起回复
              注:Windows使用的跨平台兼容版(支持和MAC/LINUX用户联机的最新版本)是510064564(图中箭头处)
              (红龙开发商欧根前几个月的一个修复bug的微型更新导致MAC/LINUX用户无法和Windows用户联机,后来欧根在steam红龙游戏属性的测试栏增加了兼容版(即老版本)的选择,见下图二)



              IP属地:美国7楼2021-02-05 22:13
              回复
                一旦下载好了ModdingSuite,我们就可以开始单位数据修改了。
                双击moddingSuite.exe打开。点击左上角的File按钮打开之前提到的对应版本的NDF_Win.dat文件,就会看到一长串的路径。在下图圈出的位置输入 everything找 到everything.ndfbin

                如图所示,双击即可打开NDF 文件编辑器



                IP属地:美国8楼2021-02-05 23:21
                回复
                  这个编辑器界面有好几个有用的功能,不过为了让这个教程的学习曲线平滑一些,让我先说说如何找到一个单位并修改其数据。
                  首先在界面左边的框(为过滤器/搜索器)内输入 TUniteAuSolDescriptor ,意思大致为【单位描述器】

                  如下图,输入后左边只剩一行,左键点击

                  此时黑色圈出的这一列数据就是游戏中所有的单位,每一行代表一个单位。箭头指出的数字表示这里一共有多少种不同的单位,原版是2006种。
                  左键点击这列单位中的第一个,我们就可以从右边看到这个单位的顶层数据,比如它的内部开发者名字,化名等。
                  如下图箭头指出。

                  有些人可能会问为什么NDF编辑器这里有2006种单位,但原版军械库中只显示了1988种。

                  这是因为游戏中有一些隐藏单位,即被欧根做了一半但是又被从游戏里砍掉的单位。


                  IP属地:美国9楼2021-02-06 00:23
                  回复
                    这里要注意,游戏内军械库上显示的单位名字和上面箭头指出的名字不总是一样,要想找到一个单位的精确名字,需要看下面447行,NameInMenuToken。这一行左边是这个变量的名字,中间是这个变量的类型(LocalisationHash,翻译为本地化散列函数,详情可参考计算机科学概念: 散列/哈希函数),而右边是这个变量的值: 8E14D59D2C0F8600,这一串字符就是这个单位的真正且唯一的名字。

                    要想找到这个单位名字对应的军械库内的中文名(战争游戏红龙的繁体中文版)或者英文名(英文版),
                    我们需要查字典,字典是一个叫ZZ_Win.dat的文件,同样可以用moddingSuite打开并编辑,在当前版本的红龙里,文件的位置如下图箭头所示

                    这里要注意如果未来红龙更新,和NDF_Win.dat文件一样,欧根会把新版的ZZ_Win.dat放在更大数字的文件夹中。


                    IP属地:美国10楼2021-02-06 00:47
                    收起回复
                      用moddingSuite打开ZZ_Win文件后,繁体中文字典见下图高亮处,英文字典见下图箭头处,双击即可打开。

                      字典如图:

                      在右上角输入之前找到的单位名字(哈希):8E14D59D2C0F8600,
                      就能找到对应的名字DANA


                      IP属地:美国11楼2021-02-06 00:57
                      收起回复
                        上面的字典查阅是双向的,也就是说我们可以在右上角的框内输入单位的英文名/中文名来找到单位的唯一名字(哈希名)。

                        比如这俩AML 60, 查字典我们就可以找到它的哈希名:C1615D0B00000000
                        回到之前打开的NDF编辑器
                        如下图,

                        点击1号位置打开过滤器,
                        点击2号位置选择NameInMenuToken
                        点击3号位置输入哈希名
                        点击4号位置(apply)应用
                        即可从左边的一大串单位清单中找到AML 60对应的单位数据


                        IP属地:美国12楼2021-02-06 01:16
                        回复
                          不明觉厉


                          IP属地:上海来自Android客户端13楼2021-02-06 12:50
                          回复
                            准备工作做完了,接下来就可以开始进行mod中最有趣的部分,修改单位了。
                            下面我将演示如何进行一次最简单的单位修改,把AML 60迫击炮的HE伤害增加1。
                            先放一张完成的图,如下:

                            另:我创建了一个战争游戏mod修改交流群,欢迎对mod修改有兴趣的吧友加入一起交流。
                            在群文件内放了mod制作需要的资源供有需要的吧友下载。如果有吧友对教程里提到的内容有问题,也欢迎加入提问。


                            IP属地:美国14楼2021-02-06 15:10
                            收起回复
                              首先使用上面说明的方法找到AML 60的单位描述器,(即使用在箭头处的过滤器)。
                              然后点击圈出的Modules变量(438行)

                              由于Module变量的值是一个列表(List),所以NDF编辑器在下方出现了一个新子窗口,里面显示了这个列表的内容。
                              在子窗口内找到WeaponManager那一行(如箭头所示)

                              这里要注意,只有变量的类型为列表(List)时NDF编辑器才会在左键点击时出现子窗口。
                              当变量的类型不是列表(List),比如468行UpgradeRequire的类型是未设置(Unset),

                              或467行VitesseCombat的类型是32位浮点数(Float32)时,左键点击就不会在下方出现子窗口。


                              IP属地:美国16楼2021-02-06 15:47
                              回复