在本章中,我们将探讨如何在“骑马与砍杀2”(Mount & Blade II: Bannerlord)MOD中添加新的文化。通过定义文化,您可以为游戏中的阵营、势力或民族设定独特的背景、特性、单位类型等。以下是如何创建和配置新文化的详细指南。
步骤1:创建SPCultures文件
首先,您需要在MOD的ModuleData文件夹下创建一个名为spcultures.xml的新XML文件(如果已存在,则直接编辑该文件)。
示例代码及注释
<SPCultures>
<!-- 定义一个新的文化 -->
<Culture id="empire"
name="{=empirefaction}Empire"
is_main_culture="true"
color="0xff793191"
color2="0xffFCDE90"
elite_basic_troop="NPCCharacter.rc_e5_t2_1"
basic_troop="NPCCharacter.rc_e1_t1_1"
melee_militia_troop="NPCCharacter.imperial_militia_spearman"
...>
<!-- 文化的基本信息和属性 -->
<face_key_template value="BodyProperty.fighter_empire" />
<!-- 文化特定的面部特征模板 -->
<vassal_reward_items>
<!-- 臣民奖励物品列表 -->
<item id="Item.rc_polearm_zb_t7_2" />
...
</vassal_reward_items>
<banner_bearer_replacement_weapons>
<!-- 旗手替换武器列表 -->
...
</banner_bearer_replacement_weapons>
<default_policies>
<!-- 默认政策列表 -->
<policy id="policy_senate" />
...
</default_policies>
<male_names>
<!-- 男性名字列表 -->
<name name="{=v9B50R0Q}Acarion" />
...
</male_names>
<female_names>
<!-- 女性名字列表 -->
...
</female_names>
<clan_names>
<!-- 家族名字列表 -->
...
</clan_names>
...
<notable_and_wanderer_templates>
<!-- 显赫人物和流浪者模板 -->
...
</notable_and_wanderer_templates>
<lord_templates>
<!-- 领主模板 -->
...
</lord_templates>
...
</Culture>
</SPCultures>- id: 文化的唯一标识符。
- name: 文化的名称,可以是本地化的键。
- is_main_culture: 是否为主要文化。
- color和color2: 文化的主要颜色和次要颜色。
- elite_basic_troop, basic_troop, melee_militia_troop, ranged_militia_troop等: 定义文化特定的兵种。
- 其他元素如vassal_reward_items, default_policies, male_names, female_names等,用于定义文化特有的奖励物品、默认政策、命名习惯等。
一个简单的文化
spcultures.xml文件示例
<?xml version="1.0" encoding="utf-8"?>
<SPCultures>
<Culture id="grassland_empire"
name="{=gempire}草原帝国"
is_main_culture="true"
color="0xffAA7931"
color2="0xffB5DE90"
elite_basic_troop="NPCCharacter.ge_cavalry_elite"
basic_troop="NPCCharacter.ge_infantry_basic"
melee_militia_troop="NPCCharacter.ge_militia_infantry"
ranged_militia_troop="NPCCharacter.ge_militia_archer"
melee_elite_militia_troop="NPCCharacter.ge_militia_infantry_elite"
ranged_elite_militia_troop="NPCCharacter.ge_militia_archer_elite"
can_have_settlement="true"
town_edge_number="10"
villager_party_template="PartyTemplate.villager_grassland_empire_template"
default_party_template="PartyTemplate.kingdom_hero_party_grassland_empire_template"
caravan_party_template="PartyTemplate.caravan_template_grassland_empire"
elite_caravan_party_template="PartyTemplate.elite_caravan_template_grassland_empire"
militia_party_template="PartyTemplate.militia_grassland_empire_template"
rebels_party_template="PartyTemplate.rebels_grassland_empire_template"
vassal_reward_party_template="PartyTemplate.vassal_reward_troops_grassland_empire"
prosperity_bonus="2"
encounter_background_mesh="encounter_grassland_empire"
faction_banner_key="12.4.124.4345.4345.764.764.1.0.0.163.0.5.512.512.764.764.1.0.0"
default_face_key="000fa92e90004202aced5d976886573d5d679585a376fdd605877a7764b8987c00000000000007520000037f0000000f00000037049140010000000000000000">
<male_names>
<name name="{=ge_mn1}阿尔坦" />
<name name="{=ge_mn2}巴特尔" />
<name name="{=ge_mn3}查干" />
<name name="{=ge_mn4}德力格尔" />
</male_names>
<female_names>
<name name="{=ge_fn1}阿尔塔娜" />
<name name="{=ge_fn2}巴雅尔" />
<name name="{=ge_fn3}蒙古娜" />
<name name="{=ge_fn4}图雅" />
</female_names>
<!-- 其他配置项,如vassal_reward_items, default_policies 等 -->
</Culture>
</SPCultures>详细解释
- id="grassland_empire": 为这个新文化定义一个唯一标识符,这里我们使用"grassland_empire"。
- name="{=gempire}草原帝国": 定义文化的名称,这里使用中文"草原帝国"。{=gempire}是一个本地化标记,允许您在游戏的多语言文件中为不同的语言定义不同的文化名称。
- color和color2: 为文化定义主要和次要颜色,这些颜色通常用于地图标记和UI元素。
- elite_basic_troop和basic_troop: 指定文化的精英基础兵种和普通基础兵种的ID,这些ID应该与toops.xml中定义的兵种ID匹配。
- can_have_settlement="true": 表示这个文化可以拥有定居点。
- town_edge_number="10": 定义城镇边缘的数量,影响城镇的外观和大小。
- villager_party_template等: 指定不同类型的队伍模板,这些模板定义了该文化的商队、民兵、叛军等的组成。
- prosperity_bonus="2": 为该文化的定居点提供额外的繁荣度奖励。
- encounter_background_mesh="encounter_grassland_empire": 指定遭遇战的背景模型
步骤2:在SubModule.xml中注册SPCultures文件
确保您的spcultures.xml文件已在SubModule.xml文件中注册。
SubModule.xml配置示例
<Xmls>
<XmlNode>
<XmlName id="SPCultures" path="spcultures" />
<IncludedGameTypes>
<Gametype value="Campaign"/>
<Gametype value="CampaignStoryMode"/>
</IncludedGameTypes>
</XmlNode>
</Xmls>- 这个配置段告诉游戏在启动时包含spcultures.xml文件,并指定它在哪些游戏类型中有效。