三国全面战争吧 关注:252,574贴子:5,628,165

武将无双MOD开发记录

只看楼主收藏回复

玩了673个小时了,除黄巾军之外都双传奇通关了,最近感觉继续玩下去的热度下降得非常厉害
因此决定在离开之前搞个MOD,爽一爽,同时也给其他想做MOD的小伙伴们一些资料记录


IP属地:湖北1楼2019-08-12 10:47回复
    开发工具有三个
    Pack File Manager:俗称pfm,目前最新版本是5.2.0,在3dm可以下载到汉化版,使用的人非常多,但是在开发过程中会有一些东西改不了(例如词条显示为红色,无法进行编辑)
    Rusted Pack File Manager:俗称rpfm,目前最新版本是1.6.2,没有汉化版,在Github可以下载到
    Assembly Kit:官方提供的开发工具,不熟悉的话使用上很难入手,资料不够
    我用的是RPFM


    IP属地:湖北2楼2019-08-12 10:52
    回复
      我想搞一个把武将的各方面能力大大提升的MOD,可以让玩家只需要使用武将就能通关,但并不是我方武将才厉害,而是包括AI的武将都一起进行提升,同时玩家的士兵招募及维持费用提高,再通过控制武将的满意度、招募费、俸禄来限制经济


      IP属地:湖北3楼2019-08-12 10:55
      回复
        以火系先锋为例,这是他的技能表

        势力中刘表默认自带两个火将,其中一个开局有炎凤,所以从炎凤开始修改


        IP属地:湖北4楼2019-08-12 10:58
        回复
          打开RPFM,PackFile => Open PackFile => 选择三国安装目录下的data文件夹里的database.pack文件

          大概是这样一个界面,事实上大部分的mod其实是一个数据库文件,也可以理解为配置文件
          举个例子,假如有如下结构的文件夹
          全面战争三国
          ____数据库配置
          ________武将设置
          ____________武将技能绑定.txt
          ____________武将特性绑定.txt
          ________技能设置
          ________其他设置
          ____脚本配置
          ________各类脚本文件.lua
          其中【武将技能绑定.txt】打开之后,里面的内容如下
          吕布第二排第一个技能 => 神怒
          吕布第二排第二个技能 => 龙视
          夏侯渊第二排第三个技能 => 绝尘
          普通绿将第一排第一个技能 => XXX
          ……省略N行
          假如我们要给吕布替换掉龙视,那么就把txt文档里的龙视改成其他人的技能,比如绝尘
          以上是一个将mod文件翻译成大白话的例子,事实上MOD文件里不会有txt文件,而是类似excel表格的文件,如果将上面的结构通过软件生成为一个格式为pack的文件之后,那么这就是一个MOD了


          IP属地:湖北5楼2019-08-12 11:11
          回复
            database.pack文件包含了三国中大部分的设定,好比我们要改的武将、技能等资料就在里面,但是因为目录结构庞大,而且全是英文,因此修改难度非常大,挡住我们迈向新世界大门的通常就是语言。
            从database.pack文件的结构来看,他首先建立了一个名叫db的文件夹,然后在这个db的文件夹下面又建立了N个子文件夹,而我们要修改的武将和技能就在这个N个英文名的文件夹中
            比如我们要修改技能冷却时间,那么首先我们得知道这个设置放在哪个文件夹里
            第一个办法是一个一个文件夹找,这个比较傻,无聊的时候可以翻翻开
            第二个办法是通过技能的英文单词skill,进行过滤依次排除
            最简单的办法是去下载其他人修改武将技能的mod,然后使用rpfm打开,打开的方式如同刚刚打开datbase.pack一样,说到这里,其实database.pack也可以理解成是一个mod,打开别人的mod之后,你会发现里面的文件夹没有这么多,因此你就将排除目标缩放到很小的范围里


            IP属地:湖北6楼2019-08-12 11:19
            回复
              正式开始
              打开RPFM,PackFile => New PackFile

              这样我们就建立了一个未命名的pack文件,即mod文件,unknown.pack
              现在我们对着unknown.pack单击右键 => Create => Create Folder,在弹出的小窗口中,将文本框中默认的new_folder修改为db,然后点击New Folder,这样我们就在unknown.pack下面创建了一个叫db的文件夹
              然后再对着db单击右键,再次创建一个文件夹,名叫unit_special_abilities_tables
              然后再对着db单击右键,再次创建一个文件夹,名叫special_ability_phases_tables

              创建完成之后,大概是这个样子
              然后我们对着unit_special_abilities_tables文件夹单击右键,Create => Create DB,创建一个数据库表格

              其中文本框里的new_file改成一个任意的表格名称,比如tieba或是abcd等等任意
              然后将默认项为_kv_battle。。。的下拉菜单切换到我们的文件夹名称,即unit_special_abilities_tables

              好比这个样子,然后点击Create,就创建好了一个数据库表结构
              然后special_ability_phases_tables文件夹也依次创建一个以special_ability_phases_tables为模板的数据表结构
              这个过程用文字来描述的话,就是说
              我们模仿着三国的官方原文件database.pack为例,创建了一个目录结构一样的pack文件,但是我们只打算修改其中的一部分,因此只需要其中的若干个文件夹,以技能为例子,技能在unit_special_abilities_tables和special_ability_phases_tables文件夹中都有进行配置,而我们要改动技能的话,就需要对这两个文件夹进行改动,所以我们创建了这两个文件夹,并且在文件夹里都创建了数据表结构,等我们在数据库表结构里添加好了内容,最终我们的设置将会覆盖掉官方原文件database.pack里的设置


              IP属地:湖北7楼2019-08-12 11:37
              收起回复

                接下来我们新开一个rpfm,打开官方的database.pack,并定位到unit_special_abilities_tables文件夹下的data__数据文件,官方的数据库文件基本都叫data__,左键点击这个data__就能看到里面的数据

                这个数据文件就和excel一模一样,修改也是一样
                一行一个技能,以炎凤为例,在我上图中选中的那一行就是炎凤的设置,炎凤在官方数据库里对应的英文名叫3k_main_ability_flames_of_the_phoenix,所以我们只要看到了3k_main_ability_flames_of_the_phoenix或是名字里有关phoenix单词的,差不多就是炎凤了
                这个data__文件里,第一列是技能名字,第二列是持续时间,第三列是冷却时间
                炎凤的持续时间是10秒,冷却时间是30秒,也就是说使用完要再次使用需要间隔40秒,但是技能效果个人总感觉是不如吕布的炎凤,因此我们可以将持续时间或是冷却时间改少一些,以达到普通火将也能随意无双的效果
                但是我们不要直接修改官方的database.pack文件,可以创建自己的pack,创建文件夹,创建db等操作,我们将在自己的mod文件里进行设置,然后自己的mod会覆盖掉官方的设置,最终达到效果


                IP属地:湖北8楼2019-08-12 11:50
                回复
                  首先,我们把database.pack => db => unit_special_abilities_tables => data__ 中 Key 为 3k_main_ability_flames_of_the_phoenix 的这一行复制下来,复制过程很简单,因为每一行都是有行号的,比如3k_main_ability_flames_of_the_phoenix 这一行的行号是15,我们单击15,就能直接全部选中,然后Ctrl + C,进行复制

                  然后回到自己的mod那边,定位到相同的位置,在空白处单击右键,选择粘贴,粘贴到新行


                  然后将持续时间改成5,冷却时间改成15,具体数值可以自己设置,这里只是个例子
                  然后是special_ability_phases_tables文件夹,因为里面也有炎凤这个技能的设置,所以我们也同步进行设置
                  先在官方的database.pack文件里找到数据
                  database.pack => db => special_ability_phases_tables => data__,第20行,Key为3k_main_ability_flames_of_the_phoenix的这一行,同样复制到自己的mod中对应的位置
                  然后将duration改成5,Recharge Time 改成15

                  然后按Ctrl + S,保存,这个时候会提升你将mod保存在哪里,自己选好位置,并命名
                  比如我的叫 test.pack
                  然后再选择 PackFile => Change PackFile Type => Movie,完了再次按Ctrl + S,进行保存

                  最后,我们将这个test.pack复制到游戏安装目录下的data文件夹里,就可以进入游戏看看效果了


                  IP属地:湖北9楼2019-08-12 12:05
                  回复

                    可以看到,游戏中,炎凤已经是5秒的持续时间和15秒的冷却,说明我们的改动是没有问题的,我也进入战斗测试了,没有问题
                    接下来,我们再给炎凤增加一些冲锋加成和冲锋速度


                    IP属地:湖北10楼2019-08-12 12:19
                    回复

                      全程三倍速,只派刘琦出战,大概损失一半的血,打赢第一场
                      接下来给他加上冲锋速度和冲锋加成,看看效果


                      IP属地:湖北11楼2019-08-12 12:23
                      回复


                        IP属地:福建来自Android客户端12楼2019-08-12 12:29
                        回复
                          在db文件夹下创建名为character_skill_level_to_effects_junctions_tables的文件夹,并创建以character_skill_level_to_effects_junctions_tables为模板的db表结构

                          Character Skill Key:角色技能的Key,也就是技能的名字
                          Effect Key:效果的Key,什么叫效果,好比炎凤增加4点金属性,4点火属性,这两条就是效果
                          Level:生效的等级,填写1,表示1级就生效
                          Effect Scope:生效的区域,比如说对武将有效,对部曲有效,对我军有效等等
                          Value:就是具体的数值,好比+4点金属性,+8的火属性这种
                          我们的目标是给炎凤增加50冲锋加成,15点冲锋速度
                          首先先添加一行,在上图右侧的空白区域单击右键,选择Add Row,就是添加一行的意思
                          然后是Character Skill Key,该填写炎凤对应的Key,但是在这里炎凤的Key和之前炎凤的Key有所不同,我们可以双击新行中Character Skill Key单元格,会看到有一个下拉菜单,可以找出有关phoenix关键字的Key,例如3k_main_skill_special_ability_fire_flames_of_the_phoenix,这个就是炎凤在这里的Key,所以第一列我们填写
                          3k_main_skill_special_ability_fire_flames_of_the_phoenix
                          第二列的Effect Key:填写 3k_main_skill_fire_charge_bonus,这个Key对应的是冲锋加成,我是怎么找到这个Key的呢,是因为有其他技能是附带增加冲锋加成的,所以可以有针对性的去database.pack里的这个表里去过滤筛选,就能找到
                          第三列的Level:填写1
                          第四列的Effect Scope:我们想要这个效果对自己生效,所以填写character_to_character_own
                          第五列Value:填写50,就是冲锋加成50的意思
                          完了再添加一行,Effect Key填写3k_main_effect_character_stat_mod_charge_speed,Value填写15,也就是冲锋速度加15,这个冲锋速度不能太快,实测效果太快有个弊端,就是在和武将对打的时候,两人搞二人转一样

                          保存后,再次放到游戏安装目录的data文件夹里,可以将上次丢进去的覆盖掉,进入游戏看看效果


                          IP属地:湖北13楼2019-08-12 12:40
                          回复


                            效果还行,因为增加了冲锋速度,所以当武将攻击小兵时,可以看到他会自己来回冲杀
                            和之前对比,略微减少了被小兵卡住的机率,当然,具体数值可以后续再来调整
                            接下来我们给玩家方作个弊,给自己的所有武将添加免疫疲劳,而敌方武将则没有
                            将来战场上他们是有小兵的,而我们没有,所以心理上还能接受


                            IP属地:湖北14楼2019-08-12 12:48
                            回复
                              接下来我们要做的是创建一个永恒的Buff,这个Buff只有玩家阵营才会生效,具体效果是己方武将免疫疲劳
                              第一步,创建campaign_group_faction_effect_bundles_tables文件夹和db

                              创建一组战役中派系范围内生效的效果,其中效果绑定的Key叫 human_hero_buff,可以自己定义更改,时效为0,即永久生效,Apply To Human,勾选表示应用到玩家,Apply To Ai,不勾选表示AI就没必要了
                              第二步,创建一个Buff的效果图标,将会在游戏中显示,好比游戏中的任务完成后会在左上角有一排的buff图标的位置,创建effect_bundles_tables文件夹和db

                              首先Key是第一步中的Key,第二列是buff的描述,第三列是buff的标题名字,但这两列填写了也不会在游戏中有效果,所以随便填些什么,比如null,表示空,第四列是buff的图标图片,第五列是图片的状态,有积极的(绿色),普通的(灰色),消极的(红色),最后一列是问是否要显示,勾选
                              最后一步,给前几步的调整来设置具体的效果,比如,免疫疲劳,之前只是加了个buff图标,只对玩家生效,但是还没有具体效果
                              创建effect_bundles_to_effects_junctions_tables文件夹和db

                              第一列还是之前设置的Key,第二列是免疫疲劳对应的Key,第三列是对派系内的武将生效,最后一列表示建立新档时开始生效
                              保存,丢data目录
                              接下来可以去游戏里看看效果


                              IP属地:湖北15楼2019-08-12 13:03
                              回复