钢铁之师吧 关注:7,216贴子:82,363

[MOD制作相关] 如何给一个师添加其他师的单位

只看楼主收藏回复

这里我们是假设大家已经知道怎么用官方的工具生成一个mod.如果你还不会,可以看下官方文档,步骤很简单.或者以后我再写一个教程也可以.OK,我们开始正题.
很多小伙伴想给自己的师增加各种五花八门的东西,比如想给自己的装甲师加一些牛逼的火炮,飞机,或者给步兵师加一些虎豹杠2.其实通过官方的mod制作工具,都可以做到.举个例子。比如要将德军14步兵师的携带500KG炸弹的JU88添加到第五装甲师。


IP属地:浙江1楼2020-07-11 05:05回复
    我们先进入到你的mod的主目录.
    第一步,先去找目标单位,即14步的JU88.
    打开GameData\Generated\Gameplay\Decks\Packs.ndf,会发现有很多如下类似的小段内容:

    几个关键的部分:
    1.Descriptor_Deck_Pack_TOE_GR_14_Inf_multi_Me_109G4_GER。
    这个是不会在GameData\Generated\Gameplay\Decks\Packs.ndf文件中重复的,正因为如此,所以它是某师的某一个单位在游戏中唯一识别,我们简称它为"师属单位唯一ID".。命名方式大概是:
    Descriptor_Deck_pack_TOE_派系简称_师的名字_其他补充_单位名称及变种
    注:一般"其他补充"可能是solo,multi等,用来说明是此师的一个特定场景,比如历史会战,多人联机,等等.有的师有可能没有这个其他补充字段.总之改的时候,找对你对应场景下的名字.
    当然了,多个师可能都有此型号Me_109,那么在命名时,你会发现他们的单位名称部分一样,但是其他部分不同,打个比方
    Descriptor_Deck_Pack_TOE_SOV_29_Pz_multi_Me_109_SOV(这个其实肯定不存在,我只是为了举例)
    2.DescriptorId = GUID:{e068cfb7-b88b-4988-b69d-d8933ea6587b}
    我们不需要去改这里,而且千万别乱改,因为这个GUID其实是"师属单位唯一ID"的单独编号,肯定不会重复,你人为把几个单位的GUID都改成一样的,极有可能会出问题,生成不了mod.至于它为啥长成这样?咱们就不展开了.
    3.
    UnitDescriptorList=
    [
    ~/Descriptor_Unit_Me_109G4_GER,
    ]
    一般UnitDescriptorList这个字段的值都只有一个,且可以在GameData\Generated\Gameplay\Gfx\UniteDescriptor.ndf中找到.这个文件是干嘛的呢?
    前面也提到了,此Me_109G4,可能多个师都有的,但是不管是属于哪个师的,他们都有同样的作战参数,比如航速,携带弹药型号,所带武器等.所以在GameData\Generated\Gameplay\Gfx\UniteDescriptor.ndf
    中,统一管理机型的作战参数.而在其他文件中,去管理此机型在不同师中的战场配置,比如一共有几卡,ABC那个阶段能出,能出几架,老练度等,这在程序设计上更加合理和方便.
    好了,以上3点以外的部分,我们可以先不用管了,开始找14步的JU88.在GameData\Generated\Gameplay\Decks\Packs.ndf中每个师的单位,都是一个个连续着的,所以我们就可以
    在GameData\Generated\Gameplay\Decks\Packs.ndf中先搜14_inf,来找这个师,然后一个个去找它下面的单位.目前此文件中,同一个师下所有的"师属单位唯一ID",是按照字典序排序的,至于什么是字典序,我们也不展开了.当然,如果这个单位只有个别师有,你也可以尝试先搜单位的名字,比如ISU_152.
    完成上面的步骤,就可以拿到14步的JU88的"师属单位唯一ID":
    Descriptor_Deck_Pack_TOE_GR_14_Inf_multi_Ju_88_S_500.
    那是不是该把它对应的那段内容复制一份出来,放到5装那里呢?像这样:

    显然这样做非常合理,可是却不行,原因是上面第2小点,"师属单位唯一ID"的DescriptorId属性是要保证唯一的,而我们自己没法生成.当然,你可以自己去尝试下按照格式分配一个目前不存在的DescriptorId给它,可是我也没验证过,也没法保证,Eugen会不会校验DescriptorId,从而导致mod制作失败.所以保险起见,我们就先拿到14步的JU88的"师属单位唯一ID",用别的办法塞给5装.我们继续.


    IP属地:浙江3楼2020-07-11 05:20
    回复
      第二步,新单位加入到新师.
      打开GameData\Generated\Gameplay\Decks\Divisions.ndf.
      你会发现这个文件里有很多类似的一大段一大段相似的内容:

      别的字段我们先不说,单独拿出PackList这一段,怎么样,是不是很眼熟,每一行都是我们上面提到的"师属单位唯一ID",后面还跟了一个数字."师属单位唯一ID"我们就不说了,那这个数字是什么意思呢?你如果把这个师下的单位扫一遍,且比较熟悉这个师,估计很有可能会猜到,这数字代表此单位在这个师一共有几卡.那怎么给这个师加单位呢?照猫画虎,按照格式在PackList里塞入一行,把内容改为14步Ju88的就好了.

      这样,我们就做到了第一步,给5装塞下了两卡14步的JU88.那么,完事儿了吗?显然没有啊,我们还没有定义5装的两卡新的JU88,是在ABC哪个阶段出,数量是多少,老练度如何这些卡组配置属性.不过剩下的任务不多了,我们继续下一步.


      IP属地:浙江4楼2020-07-11 05:23
      回复
        第三步,修改新单位在新师的卡组配置属性
        打开GameData\Generated\Gameplay\Decks\DivisionRules.ndf.
        第二步开始的时候,我们看到在Divisions.ndf中,有这么一行:
        exportDescriptor_Deck_Division_GR_5_Panzer_Dv2 is TDeckDivisionDescriptor
        你用Descriptor_Deck_Division_GR_5_Panzer_Dv2这一串在DivisionRules.ndf中搜索,就会找到以它开头的很长一串内容:

        UnitRuleList下面有很多个TDeckUniteRule,而这就是5装每个单位的卡组配置属性了.
        UnitDescriptor:对应的是第一步中第3小步说到的UnitDescriptorList的值,千万不要和"师属单位唯一ID"弄混.
        AvailableWithoutTransport:是否允许不带载具入场.我们改的是飞行单位,所以这里都是True.
        AvailableTransportList:如果是步兵或者火炮,AA,那么可以在这里给单位设置对应的载具.这里我们不展开说了.
        MaxPackNumber:最多几卡.目前我这里是和第二步中提到的数字是一致的,我还没有测试这俩不匹配的情况.
        NumberOfUnitInPackByPhase:括号中从左至右三个数字依次代表A,B,C三个阶段的数量.
        NumberOfUnitInPackXPMultiplier:决定每个阶段不同老练度可以出几个的因子,从左至右依次为白板,一星,两星.
        后两个字段解释下.比如这里,A阶段此单位可以出6个,那么6x 0 = 0,即A阶段此单位无法出白板的;一星的则为6x 1 = 6, 可以出6个一星的.两星的则为6x 0.66 =3.96.此时出现了小数,我自己简单测试了一下,发现是小数部分遵守四舍五入,所以A阶段两星的可以出4个.B和C阶段的计算同理.
        知道这些后,我们就可以给新加的JU88配置了.比如这样:

        这里要注意,似乎我们这个配置在UnitRuleList中的顺序,要和第二步中在PackList中所插入的顺序一致,如果上一步里的顺序是2,那么这里最好也是2.我并不能十分确定这里的约束条件,主要是当时自己一次试了好几个单位,然后报错了,但是只留下了一个,就没问题.
        好了,到此为止,我们就完成了给一个师添加其他师的单位的操作.利用mod工具,做出你的mod,启动游戏加载上,就可以体验了.


        IP属地:浙江5楼2020-07-11 05:30
        收起回复
          最后,需要注意的:
          1.编辑这些ndf文件时,千万不要搞乱格式,这并不需要什么编程基础,只要你心细,我想没什么问题.
          2.ndf文件中都是英文标点,所以请留意不要插入中文标点,不然可能会出问题.
          3.DLC的师现在无能为力,官方mod制作工具是没有办法生成这些师的数据的.
          4.阵营间的单位乱改,我没试过,应该可以,但是很多细节上需要留意,比如军械库里单位的国旗等等.
          如果还有其他问题,随时联系我,当然,如果有错误,还请指教.


          IP属地:浙江6楼2020-07-11 05:32
          回复
            后续我可以尝试将这些东西时发现的有意思的东西,都发出来.
            老实说,这工具挺不友好的,如果Eugen人力足够,弄成真正的工具,比如像魔兽争霸的编辑器那样,那会更好玩一点.当然,如果我是公司老板,在当前这种境况下,还是先把其他事做好吧.


            IP属地:浙江7楼2020-07-11 05:37
            回复
              实际效果如下。改了个变态的数字



              IP属地:浙江8楼2020-07-11 07:30
              回复
                如果要制作mod并在游戏中加载,请提前备份好重要的卡组。现在这工具貌似会导致DLC师的卡组配置丢失


                IP属地:浙江9楼2020-07-11 07:32
                收起回复


                  IP属地:江西来自iPhone客户端10楼2020-07-11 09:30
                  回复
                    大哥有没有那种去战争迷雾的,我打AI娱乐用的


                    11楼2020-07-11 10:40
                    收起回复
                      干货


                      IP属地:辽宁来自Android客户端12楼2020-07-11 10:41
                      回复
                        大佬请问下,2代的将军模式里的营级单位(旅)在哪里改配置啊?


                        IP属地:上海15楼2020-07-19 08:36
                        收起回复
                          大佬再问一下钢2的MOD生成的问题。
                          我用游戏目录下MODS文件夹下的CreateNewMod.bat文件生成自己的MOD文件后直接改里面的文件是吧?做完后运行自己的MOD文件夹下的GenerateMod.bat来上传,然后360通过2次,跳出个对话框
                          ............
                          不清楚哪里做错了


                          IP属地:上海16楼2020-07-22 15:24
                          回复
                            好吧,解决了。重新生成文件,然后直接运行GenerateMod.bat就成功了,之前可能有地方格式有错......


                            IP属地:上海17楼2020-07-22 16:58
                            收起回复