战争游戏红龙吧 关注:37,575贴子:307,232

回复:战争游戏mod制作基础教程

取消只看楼主收藏回复

如图,这是47227号【(双轴)炮塔描述器】(TTurretTwoAxisDescriptor)下属的
3个【附带武器描述器】(TMountedWeaponDescriptor)
我们可以看到每个【附带武器描述器】分别使用了不同的【弹药】(TAmmunition)
从每个【附带武器描述器】的1020行 Ammunition变量(意为弹药)可见
61871号【附带武器描述器】使用78516号【弹药】
61872号【附带武器描述器】使用73835号【弹药】
61873号【附带武器描述器】使用78516号【弹药】


IP属地:美国21楼2021-02-06 19:47
回复
    要想比较【弹药】,需要先理解【弹药】内各属性的意思。
    下面两张表基本概括了弹药内各属性的意思。



    IP属地:美国22楼2021-02-06 23:06
    收起回复
      广告
      立即查看
      由表可知我们要修改的HE伤害在545行 Physical Damage(物理伤害)。
      已知AML 60迫击炮的原版高爆伤害是2,动能弹/高爆反坦克弹的Physical Damage值一般为1。
      (注:烟雾弹的Physical Damage值一般为null), 结合已有知识,我们只需要观察78516号【弹药】, 73835号【弹药】,78516号【弹药】中哪个【弹药】的Physical Damage为2即可找到我们想改的【弹药】和对应的【附带武器描述器】。
      如下图箭头所示

      到此我们即可知道我们要改的【弹药】是78516号位于
      47227号【(双轴)炮塔描述器】的61871号【附带武器描述器】
      接下来只需要简单的双击545行的PhysicalDamages变量,输入3并按回车键,然后保存即可。
      如下图(圈出来的按钮可以查看刚刚做出的所有数据改动),保存按钮位于NDF编辑器的左上角的箭头所指处。


      IP属地:美国23楼2021-02-06 23:27
      回复
        下一步进入游戏,你就会发现AML 60迫击炮的HE伤害从2变成3了!


        IP属地:美国24楼2021-02-06 23:39
        回复
          当然,你如果对修改的结果不满意,可以回到【弹药】去修改,如果你之前没有关掉一个窗口的话,现在NDF修改器界面上应该有一大堆窗口,找到之前改动过的【弹药】费时费力。
          就像这张图:

          如果你之前记下来了【弹药】的号码,你可以放心的关掉所有这些窗口,因为NDF编辑器提供了一种方便快速的找到【弹药】的方法。
          如下图,在左边的框里输入TAmmunition,所有的【弹药】就都过滤出来了。
          在左边列表里下拉找到之前我们修改的78516号【弹药】,左键点击,右侧就出现了这个【弹药】的数据。
          直接双击想要更改的数据更改即可,别忘了点保存。


          IP属地:美国25楼2021-02-06 23:52
          回复
            同理,在NDF编辑器左边的框中输入【武器管理器模块的描述器】的类名称(TWeaponManagerModuleDescriptor)
            或者【(双轴)炮塔描述器】的类名称(TTurretTwoAxisDescriptor),或者是其他一些数据类的名称,然后找到他们对应的号码,就可以跳过繁琐的点开新窗口的过程,直接修改这些描述器的数据。
            注:TAmmunition是之前所说【弹药】的类名称。(即对应括号内的英文)


            IP属地:美国26楼2021-02-06 23:56
            回复
              这里要插一句,其实直接修改游戏根目录的文件其实不是一个很好的选择,因为如果修改完之后直接和原版玩家进行联机游戏会出现数据不同步/平行世界的问题,也就是说只有使用相同mod的玩家才可以互相联机。
              因此我们需要使用mod管理器,来方便的在各个mod和原版之间切换。
              如何在mod管理器里新建mod及mod管理器的使用教程见这个贴:https://tieba.baidu.com/p/7221022799


              IP属地:美国27楼2021-02-07 17:51
              回复
                Mod制作的另一个问题在于: 在顶层上,如何确定自己想要改哪些单位。
                因为除了游戏内单位的面板数据可以改,单位还有很多隐藏数据,而很多隐藏数据同样在单位的平衡性上起非常重要的作用。如何快速高效大量的查阅这些隐藏数据显然不能用moddingSuite一个一个找。
                这时候我们就需要ArmoryTool(即解包器),一个使用图形用户界面的(GUI)快速查看单位大部分重要隐藏数据的工具。
                Armory Tool发布在Github上,作者和MOD管理器的作者是同一人:puvtov

                下载解压后,运行armory Tool,按照提示设置完成后,在armoryTool的解压文件夹会出现一个setting.ini的文件。
                用txt(文本编辑器)打开这个文件,修改里面路径指向的文件到mod修改过(如果有)的NDF_win.dat(单位数据)和ZZ_win.dat(包含单位名称字典)文件即可查看单位的数据。


                IP属地:美国28楼2021-02-07 19:03
                收起回复
                  广告
                  立即查看
                  举个例子:
                  通过ArmoryTool,我们可以发现游戏中迫击炮的一个隐藏数据: 单发炮弹杀伤半径远远配不上它的口径。
                  2S1是一门122mm自行榴弹炮,它的炮弹杀伤半径是122

                  AS-90是一门155mm自行榴弹炮,它的炮弹杀伤半径是155

                  TELAKRH 66是一门160mm自行迫击炮,虽然口径是160mm,但是它的炮弹杀伤半径只有80

                  VPM 120是一门120mm自行迫击炮,口径是120mm,但是炮弹杀伤半径只有60

                  迫击炮在现实中单发炮弹的杀伤范围是明显超过同口径自行火炮的,通过观察隐藏数据,我们才能发现欧根在开发游戏时暗中削弱了迫击炮的杀伤范围。


                  IP属地:美国29楼2021-02-07 19:44
                  回复
                    有吧友反应想要修改单位名称时,打开ZZ_win.dat文件却发现一片空白。
                    这是因为游戏中有多个ZZ_win.dat文件。一般来说只有几kb大小的ZZ_win文件是空文件,而有几MB大小的则是有内容的ZZ_win文件。


                    IP属地:美国30楼2021-02-12 05:09
                    回复
                      今天战争游戏红龙增加了一个小型更新,对应游戏中的最新文件夹号码也已经改变,因此如果要继续使用mod,就需要把mod转换为新版。
                      我在本贴5楼说欧根的新版本号会是数字更大的一个文件夹,但是这次欧根违反了他们的传统,新的版本号从一直以来的9位数变为了现在的5位数!!
                      目前最新的版本号是47635,这可以从之前的版本号文件夹510117427文件夹内发现:

                      如图:欧根的上一版本文件夹内通常都有下一个版本的文件夹号码。这次的更新中,该47635文件夹内包含了新的修改UI/用户界面的ZZ文件,但是包含单位名称的【那个】ZZ_Win.dat(注意游戏使用多个ZZ_Win.dat文件)则没有更新,还在之前的510060540文件夹内。


                      IP属地:美国31楼2021-02-17 00:50
                      收起回复
                        而新的单位数据文件NDF_Win.dat文件则在最新的47635文件夹,如下图路径:

                        注意之前版本的510117427文件夹内的NDF_Win.dat文件因此就无效化了,因为有更新版本的NDF_Win.dat文件。
                        注:这里可以注意一下文件尺寸, 通常未经moddling suite修改过的NDF_Win.dat文件尺寸大概就如上图在20多MB,而经过modding suite修改后,modding suite会将文件内部的数据压缩,从而把NDF_Win.dat的文件尺寸缩小到7-8MB。
                        下面讲讲如何将mod常改的NDF_Win.dat文件更新到和最新版本兼容,以LZ制作的真实mod为例。


                        IP属地:美国32楼2021-02-17 01:00
                        回复
                          LZ的真实mod至今只修改了2个文件,一个ZZ_Win.dat文件(包含改变的单位/武器名字)和一个NDF_Win.dat文件(包含修改的单位/武器数据)。可能是因为LZ对部分单位修改幅度较大的关系(除了修改数值还增加了新武器/炮塔实例等),或者因为新的NDF_Win.dat文件内部被欧根改动,直接把LZ的老版本的NDF_Win.dat文件拖入最新的文件夹并运行游戏会导致LZ的游戏崩溃。
                          因此NDF_Win文件也必须对应更新。好在moddingSuite提供了编辑与在NDF_Win.dat文件之间复制数据模块的功能,因此这个“更新”不需要人手工从头到尾重新输入数据。


                          IP属地:美国33楼2021-02-17 01:11
                          回复
                            在开始编辑前我们先来比较一下新旧两个NDF_Win.dat文件:
                            下图是新版47635的NDF_Win.dat文件

                            而这是LZ的旧版本(510117427)mod使用的NDF_Win.dat文件
                            我们通常修改单位数据都在【everything.ndfbin】这个数据模块内(见本贴8楼),所以旧版本mod的everything.ndfbin这个数据模块的大小和最新版的原版NDF_Win.dat文件内的everything.ndfbin这个数据模块的大小有差异是正常的,但是其他数据模块的大小有差异,就说明欧根确实在新版修改了NDF_Win.dat文件,也是我们必须更新mod使用的NDF_Win.dat文件的原因。
                            如下图:
                            左为原版的最新版NDF文件内的数据模块尺寸排行,右为LZ的老版MOD使用的NDF文件内的数据模块尺寸排行。
                            排在最上面的【everything.ndfbin】。而下面是其他各种数据模块。

                            从对比中很明显我们能发现欧根修改了【everything.ndfbin】内的好几个数据模块。而我们mod使用的NDF文件必须使用最新版的数据模块(everything.ndfbin除外)才能正常运行。
                            因此,我们需要用包含我们mod中全部单位数据的【everything.ndfbin】模块替换最新版NDF_Win.dat文件内的【everything.ndfbin】模块来获得一个mod使用的最新版兼容的NDF_Win.dat文件。


                            IP属地:美国34楼2021-02-17 01:30
                            回复
                              广告
                              立即查看
                              替换模块过程很简单。
                              首先在modding Suite内打开老版本mod使用的NDF_Win.dat文件。(下图例子使用modding Suite 0.9.0)
                              然后在圈出的框内输入everything找到everything.ndfbin,左键点击选中,然后点击箭头指出的按钮选择export(输出)

                              如果出现错误可能是输出路径还没有设置,此时点下图箭头所示按钮(setting)并选择change export path来重新设置输出路径。

                              输出按钮按下后,如果没有报错,那么你会在对应的路径找到输出的everything.ndfbin文件,如下图:

                              接下来打开最新版的NDF_Win.dat文件,再次点击箭头所示按钮,选择replace(替换)即可完成替换。
                              最新版的NDF_Win.dat文件会直接被修改,不需要保存。

                              现在,你就得到了和最新版兼容的mod NDF文件。
                              当然,如果你的mod还修改了其他文件,那么也要检查他们是否和最新版游戏兼容,以保证mod顺利运行。
                              注:上面的替换过程还可以用于替换everything.ndfbin以外的其他数据模块


                              IP属地:美国35楼2021-02-17 01:47
                              回复