主站 / 小组 / 骑马与砍杀 / 骑马与砍杀MOD Campaign AI Fixes and Tweaks AI修复和调整

骑马与砍杀MOD Campaign AI Fixes and Tweaks AI修复和调整

骑马与砍杀MOD Campaign AI Fixes and Tweaks AI修复和调整

发布用户:bity_1700368256发布类型:转载

原创作者:Motomataru所在平台:互联网

发布日期:2023-07-24 10:21:09更新日期:2024-10-27 00:58:30

是否开源:否是否免费:是

审核人员:甜面酱(违规侵权资源,点击直接联系可快速删除!)

模组标签:功能性运行环境:骑马与砍杀

浏览次数:6

MOD介绍:

Campaign AI Fixes and Tweaks AI修复和调整

还记得主和活动在Mount&Blade的1.122版周围大幅下降吗?在我们的Brytenwalda mod玩家的要求下,我调查了为什么这么多领主都坐在他们的城堡里 - 有些情况下是几百个游戏日。我发现,如果这些政党出于某种原因不能招募更多的军队,那么在他们招募更多军队之前,一个旨在将动力不足的政党留在家中的制度就没有规定。然后我决定,只要我在那里,我就会解决竞选AI的其他长期烦恼,就像我在战场AI中所做的那样。

以下是更改的摘要:

常规修复

1.将更多的派对操作付诸实践。

2.不要以30%的比例限制政党的参与(对于理想规模为300的军队来说,这可能是一个相当大的一方)。

3.为了平衡#1,减少村庄袭击的数量,部分是将其作为派系目标。

4.解决党派规模和政党实力之间的混淆(规模一般为力量的1/20)。

5.解决两个距离函数的比例之间的混淆(一个是其他的1/100)。

6.避免设置无效的AI目标。

7.防止元帅在以前的敌人目标上集结军队。

8.防止元帅在行动中陷入困境。

9.将spai_screening_party更好地作为spai_accompanying_army的子状态处理。

10.将lord个性应用于process_hero_ai以及party_set_ai_state。

问题:领主互相忽视

1.调整攻击性设置,更新。

2.修复元帅的筛选方(现在平均150人,大到足以面对敌人)。

3.在任何时候都有元帅的筛选方,而不仅仅是在进攻开始之后。

3.元帅的随从是否接近目标。

4A。导致两名附近的敌方警察进攻,而不仅仅是经过。

4B。当他们的指挥官参加战斗时,使派对更具攻击性。

问题:派系在主场忽视麻烦

1.固定派对将加强他们的弱中心(如果低于100人 - 不低于7)。

2.派系AI更具动态性(随着它变得更小,受损,会变得更加防御)。

3.即使不打算进攻,即使有更理想的攻击,也要保卫。

4.概括元帅的紧急行为。

即使没有一名元帅也有阵营防守。

6.攻击村庄袭击者以及城镇围攻者。

7.概括攻击军队的防御行为(而不仅仅是在被攻击的中心巡逻)。

8.巡逻军队靠近他们正在巡逻的中心。

问题:小警察逃避目标

1.允许弱势群体在其他行动之前招募。

2.为所有各方(不仅仅是弱势群体)提供低优先级的招聘选项。

3.弱警察从过度防守的中心征兵(留下100-700的驻军)。

4.为投票决策添加政党规模组成部分(权重约为知名度的50%)。

5.弱队员失去名声(从而导致较低的规模期望和更好的选员选举)。

为了便于使用,我尝试将我的更改限制为module_scripts。但是,这些更改会影响脚本中的其他几个位置:

module_simple_triggers 1154 

现在正确设置了攻击性,您可以注释掉昂贵且写得不好的script_allow_vassals_to_join_indoor_battle:#Process alarm 

- 也许可以将其分解为几个组,使用modula

(1,#现在每次调用所有中心的1/3,因此有望减轻CPU负载

[

(call_script,“script_process_alarms”),

#(call_script,“script_allow_vassals_to_join_indoor_battle”),

(call_script,“script_process_kingdom_parties_ai”),

]),

module_dialogs 13002 

[任何人,“lord_tell_objective”,[ # 

MOTO使用子状态来正确表示筛选

#(party_slot_eq,“$ g_talk_troop_party”,slot_party_ai_state,spai_screening_army)],

(party_slot_eq,“$ g_talk_troop_party”,slot_party_ai_state,spai_accompanying_army),

( party_slot_eq,“$ g_talk_troop_party”,slot_party_ai_substate,1)],

#MOOT最终使用子状态来正确表示筛选

“我正在筛选{s1}的进展。{s14} {s15}”,“lord_pretalk”,[

(party_get_slot,“:ai_object”,“$ g_talk_troop_party”,slot_party_ai_object),

(party_stack_get_troop_id,“:ai_object_commander”,“:ai_object”,0),

(str_store_troop_name,s1,“:ai_object_commander”)

]],

module_game_menus 2477

(try_for_parties,“:screen_party”),

#MOTO使用子状态来正确表示筛选

#(party_slot_eq,“:screen_party”,slot_party_ai_state,spai_screening_army),

(party_slot_eq,“:screen_party”,slot_party_ai_state,spai_accompanying_army),

(party_slot_eq,“:screen_party”,slot_party_ai_substate,1),

#MOTO最终使用子状态来正确表示筛选

(store_faction_of_party,“:screen_party_faction”,“:screen_party”),

(eq,“:screen_party_faction”,“:faction_no”),

(str_store_party_name,s38,“:screen_party”),

(str_store_string,s12,“@ {!} {s12} ^筛选方:{s38}”),

(try_end),

注意:

1。在游戏开始时减少选项和大型军队,少数中心在早期就改变了所有权。

一般来说,所有的领主都会有更多的战斗。使用此mod,派对大小约为一半。我不知道对比赛的轻松程度有什么影响,因为据推测,球员在保护自己和王国方面也会有两倍的努力。它可能会让玩家更容易达到建立王国的程度。

3.某些尺寸和距离可能需要调整。在Brytenwalda,派对一般大40%,围墙中心之间的距离只有1000个,所以我不得不在那里进行调整。

真的,我应该做一个介绍,当一个元帅从一个玩家的封地征兵。为了保持这些变化的“足迹”很小,我只是有一个屏幕消息。

我很抱歉没有把它放进去 - 我只是没有时间。也许有人会这么善良?

1.1更改列表

- 更正囚犯比例(135:100而不是35:1)

- 减少128限制以下使用的局部变量数量

- 修复与解雇不成功的裁判相关的失控声誉损失

- 修复主蹲在需要加固的中心

- 初始化应税中心搜索正确

- 为独奏攻击行动添加派对大小要求

- 再次删除不必要的双曲线函数

- 恢复50%的进攻/防守得分通胀(我的改变正在影响其他一些平衡)

- 修复最近的中心例程

- 将以前/原始中心添加到阵营目标考试

Remember how lord activity drastically dropped around v. 1.122 of Mount & Blade? At behest of our Brytenwalda mod players, I investigated why so many lords sat in their castles -- in some cases for hundreds of game days. I found that a system intended to keep underpowered parties at home until they recruited more troops had no provision if such parties for one reason or another COULDN'T recruit more troops. Then I decided, as long as I was there, I'd address other longstanding annoyances of the Campaign AI, much as I did for battlefield AI.

Following is a summary of the changes:

General fixes

1. Put more party actions into play.

2. Don't restrict parties to castle on a 30% basis (for an army of ideal size 300, this can be quite a large party).

3. To balance #1, reduce amount of village raiding, in part by removing that as faction objective.

4. Resolve confusion between party size and party strength (size generally 1/20 of strength).

5. Resolve confusion between the scale of the two distance functions (one is 1/100 of other).

6. Avoid setting invalid AI objectives.

7. Prevent marshal from gathering troops at previous enemy objective.

8. Prevent marshal from getting stranded during operations.

9. Handle spai_screening_party better as a substate of spai_accompanying_army.

10. Apply lord personalities to process_hero_ai as well as party_set_ai_state.

Problem: Lords ignore each other

1. Tweak aggressiveness setting, updating.

2. Fix marshal’s screening party (now averages 150 troops, large enough to face enemies).

3. Have screening party for marshal at all times, not just after an offensive starts.

3. Have marshal’s followers get aggressive close to objective.

4a. Cause two nearby enemy marshals to attack rather than just pass by.

4b. Make parties aggressive when their commander joins battle.

Problem: Factions ignore trouble at home

1. Fix parties will reinforce their weak centers (if fall below 100 troops – not below 7).

2. Faction AI more dynamic (will get more defensive as it gets smaller, damaged).

3. Defend even if have more desirable attack if not going to attack anyway.

4. Generalize marshal emergency behavior.

5. Have faction defend even without a marshal.

6. Attack village raiders as well as town besiegers.

7. Generalize defensive behavior of attacking armies (instead of just patrolling the center being attacked).

8. Have patrolling armies stick close to the center they are patrolling.

Problem: Small marshals run away from objectives

1. Allow weak parties to recruit before other actions.

2. Put in low-priority recruit option for all parties (not just weak ones).

3. Weak marshals levy troops from over-defended centers (leaving garrisons of 100-700).

4. Add party size component to voting decisions (weight about 50% of renown).

5. Weak marshals lose renown (thereby leading to lower size expectations & better marshals elected).

For ease of use, I tried to restrict my changes to module_scripts. However, the changes there affect a couple other places in the scripts:

module_simple_triggers 1154 

Now that aggressiveness gets set properly, you can comment out expensive and badly written script_allow_vassals_to_join_indoor_battle:

# Process alarms - perhaps break this down into several groups, with a modula

(1, #this now calls 1/3 of all centers each time, thus hopefully lightening the CPU load

[

(call_script, "script_process_alarms"),

# (call_script, "script_allow_vassals_to_join_indoor_battle"),

(call_script, "script_process_kingdom_parties_ai"),

]),

module_dialogs 13002

[anyone,"lord_tell_objective", [

#MOTO use substate to represent screening properly

# (party_slot_eq, "$g_talk_troop_party", slot_party_ai_state, spai_screening_army)],

(party_slot_eq, "$g_talk_troop_party", slot_party_ai_state, spai_accompanying_army),

(party_slot_eq, "$g_talk_troop_party", slot_party_ai_substate, 1)],

#MOTO end use substate to represent screening properly

"I am screening {s1}'s advance. {s14}{s15}", "lord_pretalk",[

(party_get_slot, ":ai_object", "$g_talk_troop_party", slot_party_ai_object),

(party_stack_get_troop_id, ":ai_object_commander", ":ai_object", 0),

(str_store_troop_name, s1, ":ai_object_commander")

]],

module_game_menus 2477

(try_for_parties, ":screen_party"),

#MOTO use substate to represent screening properly

# (party_slot_eq, ":screen_party", slot_party_ai_state, spai_screening_army),

(party_slot_eq, ":screen_party", slot_party_ai_state, spai_accompanying_army),

(party_slot_eq, ":screen_party", slot_party_ai_substate, 1),

#MOTO end use substate to represent screening properly

(store_faction_of_party, ":screen_party_faction", ":screen_party"),

(eq, ":screen_party_faction", ":faction_no"),

(str_store_party_name, s38, ":screen_party"),

(str_store_string, s12, "@{!}{s12}^Screening party: {s38}"),

(try_end),

Notes:

1. With reduced options and large armies at start of game, a handful of centers change ownership early on.

2. There's a lot more fighting with all the lords generally out and about. Party sizes run at about half with this mod. I don't know the impact on the ease of play, as presumably the player will also have twice as hard a time protecting himself and his kingdom. It'll probably make it easier for the player to reach the point of establishing a kingdom.

3. Certain sizes and distances may need to be tweaked. In Brytenwalda, parties were in general 40% larger and distances between walled centers as little as 1000 mapels, so I had to adjust them there.

4. Really, I should have put in a presentation for when a marshal levies troops from a player's fief. In order to keep the "footprint" of these changes small, I just have a screen message.

5. I apologize for not putting this in modmerger -- I simply don't have the time. Perhaps someone would be so kind?

1.1 Changelist

- Correct prisoners ratio (135:100 rather than 35:1)

- Reduce number of local variable used below the 128 limit

- Fix runaway reputation loss related to firing unsuccessful marshals

- Fix lord squatting on center needing reinforcement

- Initialize taxable center search properly

- Add party size requirement for solo offensive actions

- Remove unnecessary hyperbolic function again

- Restore 50% offensive/defensive score inflation (my change was affecting some other balance)

- Fix closest center routine

- Add former/original centers to faction targeting consideration

Demo Project:

Download and play the compiled version accompanying this file! It also contains the Formations and AI minimods (see my other mod).

To install, make a copy of the Native Mod, rename it to whatever you like, then copy the contents of the Compiled zip file to that directory.

回复区

昵称:

邮箱:

内容:

查看更多回复...