易北河之鹰吧 关注:632贴子:8,598
  • 14回复贴,共1

发布一下我两天摸索出来的点选特定武将招募士兵的脚本

只看楼主收藏回复

主要修改的是mod的data目录下的export_descr_character_traits.txt和data/text目录下的export_vnvs.txt和historic_events.txt,再有就是核心的修改文件data\world\maps\campaign\imperial_campaign下的campaign_script.txt。


IP属地:江苏1楼2024-09-28 11:54回复
    首先来说export_descr_character_traits.txt和export_vnvs.txt,这两个文件主要是用来建立人物特性的,方便作为后期刷兵用的锚点,防止每次点击将领都会弹事件。


    IP属地:江苏2楼2024-09-28 11:59
    回复
      Trait tianceshangjiang
      Characters family, named character
      Level tianceshangjiang
      Description tianceshangjiang_desc
      EffectsDescription tianceshangjiang_effects_desc
      Threshold 1
      Effect MovementPoints 50
      Effect Command 4
      Effect TroopMorale +4
      Effect BattleSurgery 80
      Effect Piety 5
      Effect HitPoints 10
      Effect PersonalSecurity 9
      Effect Mining 10
      Effect TaxCollection 20
      Effect Farming 2
      Effect Law 5
      Effect Chivalry 5
      Effect Authority 3
      按照这个格式在export_descr_character_traits.txt里面新建一条特性就叫做天策上将,对应的需要在export_vnvs.txt中建立一条对应的汉化记录,这样才可以进入游戏中看到对应的文本。
      {tianceshangjiang}天策上将
      {tianceshangjiang_desc}此人战无不胜,受封天策上将 \n\n【天策上将】\n☆战胜对手时,若此时移动力剩余50%以下\n则有50%几率恢复满移动力\n☆当1格内有一位优秀商人(理财能力大于\n 3星),在小型城镇上完全停留一回合可恢\n复战损\n☆当释放超过4000赎金的敌军可恢复部队损\n失的人员
      {tianceshangjiang_effects_desc}\n文功武治,无所不能
      汉化里边的三行原版是用来写名称,简介和效果的,随便写都可以,注意换行符\n,换行符之间的文字数量保持差不多,不然显示会有问题。


      IP属地:江苏3楼2024-09-28 12:04
      回复
        修改好了特性和汉化就可以修改historic_events.txt文件来形成游戏内的弹窗了,弹窗主要的作用还是填写说明文本,也提供了一定的选择能力,在脚本中可以通过monitor_event 来追踪不同弹窗的不同选择来执行不同的操作。
        先说historic_events.txt文件。
        {JINGRUI_8_BODY}\n军队训练系统,每次消耗一点精锐点
        \n是否要选择并部署军队?
        \n当前具有的精锐点数:8点
        {JINGRUI_8_TITLE}整装待发
        在这个文件里一个BODY和一个TITLE构成一个弹窗,这二者前面就是事件的名称,为了实现特定的将军通过点数训练部队的操作,我们需要建立三种事件,一种事件用来记录点数的获得,文本中可以写上获得点数的条件,第二种事件是当前的点数,用来查看我们还剩多少点数用于训练部队,第三种就是用来记录当前要训练的兵种。


        IP属地:江苏4楼2024-09-28 12:15
        收起回复


          IP属地:江苏5楼2024-09-28 12:21
          回复


            IP属地:江苏6楼2024-09-28 12:22
            回复
              这些准备工作都做好了之后就可以进行campaign_script.txt文件的修改了。
              要修改脚本就得先理解脚本中用到的几个工具monitor_event用来监视游戏过程中的事件,declare_counter用来声明变量记录数据,inc_counter用来改变变量的数据,historic_event用来让某个事件发生,至于更多的判断的条件就得自己到脚本里边看了,可以实现更多的操作。


              IP属地:江苏7楼2024-09-28 12:30
              回复
                下面我贴出我修改的代码,感兴趣的可以自己试着修改。
                首先是脚本文件当中的内容
                declare_counter jingrui
                declare_counter xunlian
                monitor_event PostBattle FactionIsLocal
                and WonBattle
                and BattleSuccess >= average
                and RandomPercent < 33
                inc_counter jingrui 1
                historic_event jingrui_gain
                end_monitor
                monitor_event PostBattle FactionIsLocal
                and WonBattle
                and BattleSuccess >= clear
                and RandomPercent < 66
                historic_event jingrui_gain
                inc_counter jingrui 1
                end_monitor
                monitor_event PostBattle FactionIsLocal
                and WonBattle
                and BattleSuccess >= crushing
                historic_event jingrui_gain
                inc_counter jingrui 1
                end_monitor
                monitor_event FactionTurnStart FactionIsLocal
                set_counter xunlian 0
                end_monitor
                monitor_event FactionTurnStart FactionIsLocal
                andI_TurnNumber = 0
                set_counter jingrui 8
                end_monitor
                monitor_event ScrollAdviceRequested ScrollAdviceRequested missions_scroll
                if I_CompareCounter jingrui > 7
                historic_event jingrui_8 true
                end_if
                if I_CompareCounter jingrui = 0
                historic_event jingrui_0 true
                end_if
                if I_CompareCounter jingrui = 1
                historic_event jingrui_1 true
                end_if
                if I_CompareCounter jingrui = 2
                historic_event jingrui_2 true
                end_if
                if I_CompareCounter jingrui = 3
                historic_event jingrui_3 true
                end_if
                if I_CompareCounter jingrui = 4
                historic_event jingrui_4 true
                end_if
                if I_CompareCounter jingrui = 5
                historic_event jingrui_5 true
                end_if
                if I_CompareCounter jingrui = 6
                historic_event jingrui_6 true
                end_if
                if I_CompareCounter jingrui = 7
                historic_event jingrui_7 true
                end_if
                set_counter xunlian 1
                end_monitor
                ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;训练翼骑兵
                monitor_event CharacterSelected CharacterIsLocal
                and not InEnemyLands
                and I_CompareCounter xunlian = 1
                and I_CompareCounter jingrui > 1
                and Trait tianceshangjiang >= 1
                historic_event recruit1 true
                end_monitor
                monitor_event EventCounter EventCounterType recruit1_accepted
                and I_EventCounter recruit1_accepted = 1
                ;and FactionIsLocal
                console_command create_unit "lishimin", "Polish fly Knights", 2 9 9 9
                console_command add_money -1200
                inc_counter jingrui -1
                set_event_counter recruit1_accepted 0
                end_monitor
                monitor_event EventCounter EventCounterType recruit1_accepted
                and I_EventCounter recruit1_accepted = 0
                ;and FactionIsLocal
                console_command create_unit "xuerengui", "Polish fly Knights", 1 9 9 9
                console_command create_unit "lijing", "Polish fly Knights", 1 9 9 9
                console_command add_money -1200
                inc_counter jingrui -1
                end_monitor


                IP属地:江苏8楼2024-09-28 12:32
                回复
                  接下来是事件文件的内容
                  {JINGRUI_GAIN_BODY}\n陛下,感谢您和您忠心耿耿的权臣将帅的日\n夜辛劳,万般权谋。您获得了精锐点数。
                  {JINGRUI_GAIN_TITLE}获得精锐点数!
                  {JINGRUI_0_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:0点
                  {JINGRUI_0_TITLE}整装待发
                  {JINGRUI_1_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:1点
                  {JINGRUI_1_TITLE}整装待发
                  {JINGRUI_2_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:2点
                  {JINGRUI_2_TITLE}整装待发
                  {JINGRUI_3_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:3点
                  {JINGRUI_3_TITLE}整装待发
                  {JINGRUI_4_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:4点
                  {JINGRUI_4_TITLE}整装待发
                  {JINGRUI_5_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:5点
                  {JINGRUI_5_TITLE}整装待发
                  {JINGRUI_6_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:6点
                  {JINGRUI_6_TITLE}整装待发
                  {JINGRUI_7_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:7点
                  {JINGRUI_7_TITLE}整装待发
                  {JINGRUI_8_BODY}\n军队训练系统,每次消耗一点精锐点
                  \n是否要选择并部署军队?
                  \n当前具有的精锐点数:8点
                  {JINGRUI_8_TITLE}整装待发
                  {RECRUIT1_TITLE}训练翼骑兵
                  {RECRUIT1_BODY}\n该将军可以招募翼骑兵,消耗800金。
                  \n主公,我军精锐部队已经训练完毕。现已\n整装待发,等待你的调遣。
                  \n点击‘是’由其带领。点击‘否’由其他\n将领带领。


                  IP属地:江苏9楼2024-09-28 12:34
                  回复
                    大佬牛啊


                    IP属地:山东来自Android客户端10楼2024-09-28 14:20
                    回复
                      大佬可以分享一下修改后的文件吗。


                      IP属地:吉林来自Android客户端11楼2024-09-28 19:47
                      收起回复
                        关于这个功能的触发要先点击任务卷轴然后点右上角的问号,弹出显示当前点数的事件后才可以点击对应的人物来训练兵种,不然是无法训练的。


                        IP属地:江苏来自Android客户端12楼2024-09-29 08:33
                        回复