骑马与砍杀吧 关注:755,244贴子:15,142,493
  • 9回复贴,共1

提高叛乱概率的修改方法

只看楼主收藏回复

最近沉迷和平玩法,不自立也不加入国家,只等叛乱窃城,
然而引发叛乱并不容易,也看过网上有很多玩法可能是我太笨总是触发不了,
我这档有两个陷落的城忠诚度都很低了就是不叛乱,实在等不下去了,
翻了翻以前的记录文档发现修改的方法早就总结过,只是没在意一直被束之高阁了
先看下效果,不过我真担心打下来会不会再叛乱了,还没有测试过...


IP属地:河南1楼2024-02-12 12:00回复
    这个想达到比较明显的效果,需要改几个地方,并不复杂
    仍然是用DnSpy修改TaleWorlds.CampaignSystem.dll
    找命名空间
    // TaleWorlds.CampaignSystem.CampaignBehaviors.RebellionsCampaignBehavior


    这里有两个方法要改(图1上标红点的),打开方法CheckRebellionEvent,这个是检查叛乱的必要条件,
    原理咱最后再说,这里在第二个if中添加条件 && mobileParty.Owner.IsHumanPlayerCharacter
    (图2上划线的),另外返回值(注意这里是bool型,我们目的要返回true)判断语句后面改成num * 0.5f;
    这里是民兵力量大于驻军一半就可以引发了,也可以改更小根据你的需要.

    然后第二个,打开方法DailyTickSettlement,这个是触发叛乱事件的判断逻辑(个人理解可能不太准确),
    这里图3划线的地方改成 MBRandom.RandomFloat < 0.5f
    这里是每天触发叛乱的概率(前提是符合必要条件),原本是25%,修改后就是50%,也是根据需要改.
    最后,触发叛乱的第一个条件是忠诚度要达到叛乱阈值,就是图1的第一个if语句那里
    这个两个阈值在另一处
    // TaleWorlds.CampaignSystem.SandBox.GameComponents.DefaultSettlementLoyaltyModel

    图4上标红点的两个属性打开,这个就不截图了,返回值分别是15和25,我这里改成25和30,
    这里是高叛乱风险和叛乱风险的阈值,可以根据需要去改.


    IP属地:河南2楼2024-02-12 12:02
    回复
      2025-07-29 22:50:04
      广告
      不感兴趣
      开通SVIP免广告
      这里总结一下叛乱的机制,当忠诚度低于叛乱阈值时,民兵力量大于驻军力量一定程度的时候,
      有概率引发叛乱事件,这里如果有领主部队进驻的时候,是算作驻军的,所以第一处修改我加了
      个条件是只有玩家部队的才累加,AI的不算.
      所以如果你还在苦等叛乱,先看一下是否有领主在镇场子,如果有就别傻等了


      IP属地:河南3楼2024-02-12 12:04
      回复
        技术贴


        IP属地:广东来自iPhone客户端4楼2024-02-12 12:57
        回复
          收藏吃灰贴


          IP属地:河南来自Android客户端5楼2024-02-12 13:06
          回复
            可以练交易买城,特别是多次争夺的城池,所有方是入侵者的,一般都有城,不过只要钱够多,没什么领地是不可以卖的,更简单点,打mod,直接把城修改成自己的


            IP属地:浙江来自Android客户端6楼2024-02-12 14:42
            回复
              终于有从代码角度分析叛乱得了,我傻傻的等了1个月,忠诚度治安度都很低,原来还得有驻军因素


              IP属地:山东来自Android客户端8楼2024-07-16 16:08
              回复
                大神,战死率太高,怎么调整,战役选项里有,但是怎么设置都不作用,一场战斗能死十几个NPC,求解。


                IP属地:安徽9楼2024-08-21 11:19
                收起回复
                  2025-07-29 22:44:04
                  广告
                  不感兴趣
                  开通SVIP免广告
                  实测CheckRebellionEvent和概率修改了必报错,而且DailyTickSettlement是触发叛乱事件的判断逻辑存疑(下面有一个DailyRebellionCheckChance不知道有什么作用,修改同样报错),不知道楼主有没有自己试一试,几率的修改机制和战死和生育相比更加复杂,忠诚度阈值倒是可以修改,应该是纯数值判断条件


                  IP属地:上海11楼2024-09-06 02:58
                  回复