动态家族系统

动态家族系统

动态氏族系统是《骑马与砍杀2:霸主》的一个模组,为游戏中的氏族和王国机制带来了新的深度和活力。

游戏玩法

Support Me, Crypto, TRX: TAXZH7JskFoU35axMdeNsEJgBbp1LfhXV8

动态氏族系统

动态家族系统是一款适用于《骑马与砍杀2:霸主》的模组,为游戏中的家族与王国机制注入了全新的深度与活力。该模组旨在提升沙盒体验,引入了动态家族生成、发展、攻城战以及王国创建机制,让卡拉迪亚大陆的世界显得更加生动且难以预测。无论你是正在建立帝国的军阀,还是独行的冒险者,这款模组都能确保政治格局持续演变。

特色功能

  • 动态氏族生成:新的氏族会在可自定义的时间间隔内出现在卡拉迪亚,每个氏族都有独特的名称和领袖。通过控制生成频率和最大氏族数量,可以塑造世界的混乱或稳定局面。
  • 氏族成长与发展:氏族会随时间演化,积累声望、提升等级,并招募新的队伍。可精细调整成长间隔和声望获取速度,以平衡其力量。
  • 可定制的阵营选择:新氏族可以选择加入现有阵营、保持独立,或效忠于玩家的王国,每种结果的出现概率均可调整。
  • 攻城协调:氏族能够对定居点发起攻城战,可配置氏族实力要求和每日攻城概率等条件。观察氏族如何策略性地挑战地图上的势力平衡。
  • 创建王国:野心勃勃的氏族可以建立自己的王国,为游戏世界增添新的阵营。控制王国创建的可能性,营造动态的政治格局。
  • 全面自定义:通过模组配置菜单(MCM),可以调整模组的各个方面,从氏族生成率到攻城条件,以及用于获取详细反馈的调试设置。
  • 调试模式:启用详细日志以实时监控氏族活动、攻城战和成长过程,非常适合希望深入探索机制的模组制作者和玩家。

为何选择动态氏族系统?

此模组专为追求更具沉浸感与不可预测性的《霸主》体验的玩家打造。通过引入全新氏族并赋予其发展、征战与建立王国的能力,动态氏族系统确保每次游戏历程皆独一无二。无论是缔结联盟、击溃对手,或是坐观世界陷入混乱,该模组都为游戏增添了战略深度,让卡拉丁大陆始终充满活力与吸引力。

安装

要求:

  • Mount & Blade II: Bannerlord(建议使用1.2.0及以上版本)。
  • Mod配置菜单(MCM)v5(设置必需)。

步骤:

  1. 从[Nexus Mods]下载该模组。
  2. 将DynamicClanSystem文件夹解压至你的Modules目录(例如:SteamLibrary\steamapps\common\Mount & Blade II Bannerlord\Modules)。
  3. 确保MCM已安装并启用。
  4. 在游戏模组启动器中激活Dynamic Clan System。
  5. 通过游戏内MCM菜单的“Dynamic Clan System”选项配置设置。

配置

通过MCM菜单访问模组设置,进行自定义配置:

  • 创建宗族:设置生成间隔、最大宗族数量和等级范围。
  • 宗族发展:调整声望获取、队伍上限和发展等级。
  • 攻城战:启用/禁用攻城战、设置强度要求并调整每日攻城概率。
  • 王国系统:允许宗族创建王国并控制概率。
  • 系统设置:启用调试模式以记录详细信息,并选择所有宗族或仅模组创建的宗族遵循模组逻辑。

已知问题

  • 确保游戏语言设置为支持的语言(英语或俄语),以便正确本地化。如果本地化失败,请检查模组的XML文件并清除游戏缓存(C:\ProgramData\Mount and Blade II Bannerlord)。
  • 如果启用了调试模式,调试日志可能会在游戏聊天中刷屏。为了获得更干净的体验,请禁用调试模式。
  • 使用修改时,请使用新战役以避免不必要的问题。我尚未找出连接到已有存档时崩溃的原因。因此,对于那些修改崩溃的用户,在加载游戏时,请打开模组设置并进入ButterLib。找到SubSystem Distance Matrix部分,有两个标志,打开第一个“Consider Villiage”,关闭第二个“Enable”。
  • 动态氏族设置使用路径计算,出于某种原因,这与ButterLib存在冲突。

字幕

  • 开发者:[MFive] – 负责创建和维护模组。
  • MCM团队:提供模组配置菜单框架。
  • Bannerlord模组社区:提供工具、文档和支持。

模组工作原理的详细信息(开发者)

模组的主要组成部分

该模组包含几个核心行为(behaviors),它们通过事件和游戏周期(game cycles)系统集成到《霸主》游戏体系中。以下是主要组成部分:

1. ClanSpawner(氏族创建机制)

此组件负责在游戏中生成新的氏族。当游戏启动或加载时,ClanSpawner 会初始化并检查是否需要创建新氏族。它会创建具有唯一标识符(以 dcs_ 为前缀)的氏族,这些标识符与原版氏族不同。创建时,氏族会被赋予基本特征:

  • 部落首领(作为新英雄生成)。
  • 部落文化(基于游戏中可用的文化)。

ClanSpawner还可以从外部文件(JSON格式)加载部落数据,以便开发者可以提前自定义部落,包括部落名称。

2. 家族成长管理器(Clan Growth Manager)

这是模组核心,负责管理氏族的成长与发展。ClanGrowthManager 基于周期性触发机制(游戏周期),每数个游戏日运作一次。其运作方式如下:

  • 部落列表更新: 管理器维护一个包含模组覆盖的所有氏族的缓存。这可以是游戏中的所有氏族(如果启用了相应设置),也可以是仅由模组创建的带有前缀 dcs_ 的氏族。当游戏加载时或当氏族发生变化时(例如,如果一个氏族离开王国),缓存会更新。

  • 氏族成长: 管理者检查每个氏族的级别(等级)。若氏族低于最高阈值(例如等级5),则按设定速率增加声望值。

  • 生成增援: 如果一个部族的单位数量少于允许的最大单位数(例如,3个),管理者将随机决定是否创建新单位。创建概率取决于模组设置。

    • 在部落的城防设施(城市或城堡)中创建一支新的部队。
    • 如果部落没有城防设施,则随机选择一个与该部落文化相符的定居点。
    • 新小队的领袖被生成为一位新英雄,其特质取决于部落文化。
  • 王国创建: 如果一个部落不属于任何王国且拥有一座要塞(城市或城堡),其管理者可以发起创建一个新的王国。

    • 创建王国的概率由模组设置中的随机投掷决定。
    • 当一个王国被创建时,会生成一个带有唯一标识符(例如 dcs_kingdom_)的新王国对象。该王国被赋予:
      • 名称和描述(从外部文件加载,KingdomNames.json)。
      • 从氏族继承的文化。
      • 旗帜(通过游戏旗帜系统随机创建)。
    • 该部族成为新王国的一部分,其与其他派系的关系将转移至新创建的王国。也就是说,如果某个部族对瓦兰迪亚宣战并占领了其定居点,创建该王国将自动引发瓦兰迪亚与新王国之间的战争。同时,该部族所有现存战争状态都将转移至新王国。

3. 攻城协调行为(SiegeCoordinationBehavior)

该组件管理由模组下属氏族发起的围攻,其运作方式如下:

  • 检查围城的条件: 每天,经理都会从缓存中检查氏族。

    • 发动围城的条件:
      • 部落不属于任何一个王国。
      • 这个部族没有参与另一场攻城战。
      • 该部落有足够的单位(例如至少3个单位)。
      • 部落单位的总兵力超过给定阈值(例如300名士兵)。
      • 部落等级足够高(从第4级开始或更高,因为王国可以从第4级创建部落。我在原版游戏中就是这样做的)。
  • 目标选择: 如果条件满足,就会随机选择一个不属于任何部落且未被围困的防御工事(城市或城堡)。

    • 目标成为拥有该防御工事的派系(可以是王国或其他氏族)。
  • 围城开始: 经理使用《霸主》内置的围攻系统来发起围攻。主氏族单位(氏族首领)前往选定的防御工事,所有氏族成员开始跟随该首领。首领抵达选定围攻的定居点后,等待3个游戏日,然后开始围攻。成功到达首领位置的氏族成员与他一同发起围攻。未及时赶到的成员,若在围攻结束前有空余时间,可加入其中。

  • 攻城协调行为攻城状态管理: 攻城调度行为会持续追踪攻城战的状态。若攻城战结束(无论胜负或取消),所有部族单位将被释放以执行新行动。

    • 当游戏加载时,模组创建的所有活跃的攻城计划都会被取消,以避免与基础游戏产生冲突。

4. 子模块(模组入口点)

子模块是主类,负责将模组集成到游戏中。它执行以下功能:

  • 初始化: 加载模组后,SubModule 会在游戏系统中注册所有行为(ClanSpawner, ClanGrowthManager, SiegeCoordinationBehavior)。

    • 输出一条信息到日志中,表明模组已成功加载。
  • 事件处理: 子模块订阅游戏事件,例如开始会话、加载游戏或开始计时,并将这些事件传递给相应的行为。

  • 记录日志: SubModule提供了一个通用的日志系统,供mod的所有组件使用。消息会根据日志级别以不同的颜色输出到游戏控制台(例如,信息为绿色,错误为红色)。