POC 颜色随机化模组

POC 颜色随机化模组

这个模组允许自由设置每个王国、家族或单位的颜色、旗帜和盾牌:可以具体指定或随机生成。你可以让单位穿戴他们专属的颜色和旗帜(例如你的每个同伴或单位类型)。

游戏玩法

最初这只是我个人的一个概念验证,试图区分单位的颜色(因为我不喜欢你那种方式)。氏族颜色会自动匹配您的王国颜色。因此得名此模组。

这个模组将允许:

  • 在游戏中更改任何家族或单位的颜色(不改变家族旗帜或王国颜色)
  • 覆盖王国和氏族的旗帜,或其主色或副色
  • 每个单位颜色可设置为随机(从游戏调色板的所有颜色中选取,或指定自定义调色板)
  • 你可以独立自定义主色和次色,并且随机化它们;你可以配置你的颜色在某个范围内随机化一组颜色配对(一个主色和一个次色)以将它们链接在一起。
  • 你可以为任何单位类型或同伴自定义旗帜:这不会改变氏族的旗帜。

版本 1.1.0 新增内容:

新功能允许在单位部分内指定新的标准来应用颜色。

每当你在任何"units"部分下定义单位通配符定义时,可以指定以下子部分:

  • 文化
  • 等级
  • 类型
  • 文化层级
  • 文化.类型
  • 等级.类型
  • 文化.等级.类型

根据部队的文化、等级或类型进一步自定义部队颜色。

文化部分将允许定义文化列表及其配置;
文化部分可以包含标准颜色配置,和/或等级部分或类型部分。

tiers 部分将允许基于层级编号定义配置。tiers 部分可以包含标准颜色配置和/或 types 部分。

类型部分可以包含专门针对单位类型的配置。定义的类型可以是以下任意一种类型:

  • "远程": 匹配所有远程单位
  • "近战": 匹配所有近战单位
  • "足部": 匹配所有足部单位
  • "已装载": 匹配所有已装载单位
  • "弓骑兵": 匹配所有远程与骑乘单位
  • "弓箭手": 匹配所有远程步兵单位
  • "骑兵": 匹配所有骑乘近战单位
  • "步兵": 匹配所有近战地面单位

例如,假设你想为家族中的瓦兰迪亚士兵指定一种独特的颜色:

"clans": {
  "玩家氏族": {
    "单位": {
      "士兵": {
        "cultures": {
          "Vlandia": { "模式": 3, "颜色": ..... , "盾牌": [...........] }
        }
      }
    }
  }
}

现在假设你希望所有第4、5、6级的阿塞莱士兵都拥有特定配置:

"clans": {
  "玩家氏族": {
    "单位": {
      "士兵": {
        "cultures": {
          "Vlandia": { "模式": 3, "颜色": ..... , "盾牌": [...........] },
          "阿塞莱": {
            "tiers": {
              "4": { "mode": 3, ....... },
              "5": { "模式": 2, ....... },
              "6": { "shields": [] }
            }
          }
        }
      }
    }
  }
}

如果你现在想让所有骑兵单位和弓箭手都穿黑色:

"clans": {
  "玩家氏族": {
    "单位": {
      "士兵": {
        "cultures": {
          "Vlandia": {"mode": 3, "color": ..... , "shields": [...........] },
          "阿塞莱": {
            "tiers": {
              "4": { "mode": 3, ....... },
              "5": { "mode": 2, ....... },
              "6": { "shields": [.....] }
            }
          }
        },
        "类型": {
          "骑兵": { "模式": 3, "颜色": ["#000000", "#000000"]},
          "弓箭手": { "模式": 3, "颜色": ["#000000", "#000000"]}
        }
      }
    }
  }
}

这些新标准也可以在组内定义...
但请记住标准的层级关系:

如果你想根据类型和等级定义配置,请使用:"tiers": { "X": { "types": { "Y" ....} } }
而不是 "types": { "Y": { "tiers": { "X": {.......} } } }

单位可以包含"文化"、"等级"和"类型"部分,
"cultures" 可以包含 "tiers" 和 "types" 部分,
"tiers" 只能包含 "types" 部分。

日志文件现在将为每个单位标准提供提示:它会显示单位是否已上马、是否为远程单位、其等级和文化:

例如:

==> 角色是: [萨尼恩] 来自 [阿尔戈罗斯] 家族 属于 [西方帝国] 王国 是否玩家王国 [否] 是否玩家家族 [否] 是否玩家 [否] 是否国王 [否] 是否领袖 [否] 是否英雄 [是] 是否骑马 [是] 是否远程 [否] 等级 [0] 文化 [帝国]
==> 角色是:[瓦兰迪亚冠军] 来自 [乔斯] 家族的 [瓦兰迪亚] 王国 isPlayerKingdom [假] isPlayerClan [真] isPlayer [假] isKing [假] isLeader [假] isHero [假] isMounted [真] isRanged [假] tier [5] culture [瓦兰迪亚]

利用这些日志提示来帮助定义您的配置。

版本1.0.28+新增内容:

  • 单位组:
"groups": [ { ... 组1 ... }, { ... 组2 ... }, .... { ....组N.... } ]

每个组可以包含任何配置属性,但必须包含"units"属性,这是一个单位名称的数组。

组定义 => { "单位": ["单位1","单位2", .... ] , "模式": X, "颜色": [...], "旗帜":...., "盾牌": ....... }

组内定义的配置属性将应用于该组的所有单位。

"groups" 可以在根元素、王国或氏族中定义。

示例:

...
"王国": {
  "瓦兰迪亚": {
    "groups": [
      {
        "单位": ["国王", "领袖"],
        "模式": 3,
        "颜色": .....,
        "横幅": .....,
        "护盾": .....
      },
      {
        "单位": ["约翰", "鲍勃", "乔" ],
        "模式": 2
      },
      {
        "单位": ["士兵类型1", "士兵类型2"],
        "模式": 3,
        "颜色": [ ... ]
      }
    ]
  }
}
...
{
  "王国": { .....},
  "氏族": { ..... },
  "单位": { .....},
  "组别": [ .... ]
}
....
"clans" : {
  "玩家氏族": {
    "单位": { "玩家": {.....} },
    "groups": [ ....... ]
  }
}
....

版本1.0.27+新增内容:

  • 新单位通配符:
    • "国王": 将匹配任何作为王国君主的单位
    • "Leader": 将匹配任何氏族领袖
    • "英雄": 将匹配任何英雄单位
    • "Trooper": 将匹配任何步兵单位

示例:

...
"王国": {
  "瓦兰迪亚": {
    "单位":
    {
      "King": { .... 瓦兰迪亚之王 },
      "领袖": { ... 任意瓦兰迪亚家族领袖 ...}
    }
  }
}
...
"clans": {
  "PlayerClan": {"units": { "Hero": { ... 玩家部落的任何英雄...},
                            "士兵": { ... 玩家阵营的任何士兵 ... } } }
}

这些通配符可用于任何"units"部分:无论是在王国、氏族还是独立配置中。

  • 战斗旗帜与盾牌:
"combatBanners": ["列表", "的", "旗帜" ]
==> 用这个来覆盖战斗中的单位旗帜
"combatShields": [ "list", "of", "shields" ]
==> 用于在战斗中覆盖单位的护盾

这些参数可以在配置文件的任何位置设置(王国、家族或部队部分),用于覆盖战斗中使用的旗帜和盾牌。

通过这些,你可以在战役地图、物品栏或队伍窗口以及战斗期间定义不同的横幅/盾牌。

如果你想在战役地图上让所有家族或王国使用相同的旗帜以简化操作,同时仍希望在战斗中拥有多样化的盾牌/旗帜,这会很有用。

...
"王国": {
  "瓦兰迪亚": {
    "横幅": ["瓦兰迪亚旗帜代码"],
    "战斗横幅": ["横幅1", "横幅2", "横幅3", "横幅4", ...., "横幅N" ],
    "clans": {
      "任意氏族" : { "战斗旗帜": ["氏族旗帜1", "氏族旗帜2", .... , "氏族旗帜N"] }
    }
  }
}
...
  • 王国与氏族派对图标:
"kingdomShield": ["banner.code"]
==> 在王国配置部分定义此项,将此旗帜用作所有王国部队的盾牌图标
"clanShield": ["banner.code"]
==> 在氏族配置部分定义此内容,将此旗帜用作所有氏族队伍的盾牌图标
如果设置了此项,将覆盖 kingdomShield。

示例:

...
"王国": {
  "瓦兰迪亚": {
    "kingdomShield": ["瓦兰迪亚旗帜守则"]
  }
}
...
  • 参数化横幅代码:

现在有了poc颜色模组,你可以在横幅代码中定义要替换的变量。变量可以是任何字符串,用于替换横幅代码的一部分。

示例包含以下横幅代码配置: "clanBanner": "11.x.y.1836.1836.724.746.1.0.0.424.121.116.500.500.787.747.1.1.0" (背景颜色被替换为变量x和y)。

我也可以这样做:"clanBanner": "bannerVar"(整个横幅代码被替换为变量bannerVar)。

变量必须在属性“vars”内定义:

"vars": [ { .... 组1 ... }, { ... 组2 ...}, { .... 组3 .....} ]

vars 是一个组的数组。

每组将是一组变量:

"vars": [ { "var1": ["列表", "的", "值" ], "var2": ["列表", "的", "值" ] ..... } , { ...组2 ...}, { ..组3 ....}, .... ]

每个变量将是一个可能值的列表:变量的值将从该列表中随机选择。

同一组内的变量将被同步。
因此,对于同一组内的每个变量,所选取的值将具有相同的索引。
值数组的大小应当保持一致。

例如,如果我拥有这个:

变量:[ { "x": ["1", "2", "3"], "y":["1", "2", "3"] } ]

我有一个包含2个变量(x和y)的单一组。由于x和y在同一组中,它们将同步(选择相同索引的值),因此它们的值将始终相等: 而我只会随机拥有以下任意一种组合: (x=1, y=1), (x=2, y=2), (x=3, y=3)

如果我在不同的组中定义x和y:

变量: [ { "x": ["1", "2"] }, { "y":["1", "2"] } ]

那么x和y将不会同步,我将随机获得以下任一组合: (x=1, y=1), (x=2, y=1), (x=1,y=2), (x=2,y=2)

变量可以在任何配置部分中定义。
但单位中定义的变量会覆盖氏族或王国中定义的变量,而氏族中定义的变量会覆盖王国中定义的变量。
因此请注意,当使用变量时,横幅代码内使用的所有变量必须在当前作用域中定义或从更低的作用域继承。
不同作用域中定义的变量不会被合并。

!!!! 如果你的横幅代码中存在未解析的变量,游戏将会崩溃,因为这会生成无效的横幅代码 !!!!

示例:

"kingdoms": {
  "瓦兰迪亚": { "变量": [ { "x": ["1", "2"] }, { "y":["1", "2"] } ],
    "单位": { "玩家":{ "变量": [ { "z": ["1","2","3"] } ],
      "横幅": "x.y.z.1836.1836.724.746.1.0.0.424.121.116.500.500.787.747.1.1.0" }
    }
  }
}
====> 当玩家成为瓦兰迪亚的一部分时,这会导致游戏崩溃!因为"Player"变量会覆盖"Vlandia"变量,导致变量x和y未定义(只有z会被识别)。

要解决这个问题,你需要确保在"player"中定义了x、y和z变量。有两种修复方法:

解决方案1: 在vlandia变量中添加z并移除玩家的变量

"kingdoms": {
  "瓦兰迪亚": { "变量": [ { "x": ["1", "2"] }, { "y":["1", "2"] }, { "z":["1", "2", "3"] } ],
    "单位": { "玩家":{ "旗帜": "x.y.z.1836.1836.724.746.1.0.0.424.121.116.500.500.787.747.1.1.0" }
    }
  }
}

解决方案2: 在玩家变量中添加x和y

"kingdoms": {
  "瓦兰迪亚": { "变量": [ { "x": ["1", "2"] }, { "y":["1", "2"] } ],
    "单位": { "玩家":{ "变量": [ { "x": ["1", "2"] }, { "y":["1", "2"] }, { "z":["1", "2", "3"] } ],
      "横幅": "x.y.z.1836.1836.724.746.1.0.0.424.121.116.500.500.787.747.1.1.0" }
    }
  }
}

如果你巧妙地使用变量,可以在配置中节省大量空间,并实现大量随机化(比如随机化图形、随机化背景、随机化颜色、随机化位置/大小等...)。

玩得开心!

版本1.0.26+新增内容:

"FollowKingdomBackgroundOnly": "真/假"

使用此选项强制使家族的旗帜背景颜色与其王国的主题色相匹配。
仅会更新家族旗帜的背景(作为统一背景),其颜色将与家族所属王国的主题色一致。
旗帜的其他元素将保持不变。

你可以在王国或氏族配置部分设置此配置参数。

示例:

...
"王国": {
  "瓦兰迪亚": {
    "仅跟随王国背景": "true"
  }
}
...
"clans": {
  "PlayerClan": { "FollowKingdomBackgroundOnly": "true" }
}

版本1.0.23+新增内容:

现在你可以具体配置统治家族/单位的颜色、旗帜和盾徽:

已添加以下配置参数:

"BearRulerColors": "真/假"
"BearRulerBanner": "真/假"
"BearRulerShield": "真/假"

如果省略,默认为"true"。

这三个参数可以在"defaultConfig"或任何"kingdom"、"clan"或"unit"部分中定义。它们用于指定统治氏族中的条目是否必须使用王国颜色、旗帜或盾牌。

例如,如果你想让"Vlandia"的领袖使用"Vlandia"旗帜(而不是其自己家族的旗帜),并禁用其他王国/家族的旗帜,你可以设置:

"defaultConfig": {
  "BearRulerColors" : "false",
  "BearRulerBanner" : "false",
  "BearRulerShield" : "假"
},
"王国": {
  "瓦兰迪亚": { "熊统治者颜色" : "否", "熊统治者旗帜" : "是", "熊统治者盾牌" : "否" .... }
}

现在,作为统治家族的瓦兰迪亚部队将携带王国的旗帜,但仍会保留自己家族的盾徽和颜色。

当然,你可以为英雄的部队定义这些设置,这样只有英雄会携带王国的颜色,而统治家族的普通部队则会携带家族的颜色。

除了这些参数外,还新增了参数以允许覆盖统治者模式、颜色、横幅和盾牌:

"rulerMode": X
====> 设置任意模式,仅当给定单位的BearRulerColors为true且该单位属于统治氏族时才会应用
"rulerColor": [ "调色板", "的", "颜色" ]
====> 设置用于标尺模式的主色调色板
"rulerColor2": [ "调色板", "的", "颜色", "2" ]
====> 设置用于rulerMode的辅助调色板
"rulerBanner": "banner.code"
===> 允许为符合"BearRulerBanner"参数且属于统治氏族的单位设置特定旗帜。
"rulerShield": "shield.banner.code"
====> 允许为符合"BearRulerShield"参数且属于统治氏族的单位设置特定盾徽。

如果这些参数未定义,但"BearRulerColors"、"BearRulerBanner"和"BearRulerShield"为真。王国的旗帜将被用作统治者旗帜、统治者盾牌,且统一颜色模式将为"模式:2"

版本1.0.22+新增内容:

现在你可以使用以下模式:

"mode": 4    ===> 统一颜色将与横幅颜色匹配(不包括盾牌)
"mode": 41   ===> 统一颜色将与横幅颜色匹配(在主色和次色之间交替)
"mode": 42   ===> 统一颜色将与横幅颜色匹配(随机化横幅中的所有颜色)

版本1.0.10+新增内容:

现在,你可以设置任何王国或家族旗帜的主色或副色(例如,如果你只想调整颜色)。
(此处应使用调色板颜色代码而非#RGB颜色代码。由于颜色将应用于旗帜,#RGB代码在此处无效。这些是在线旗帜编辑器使用的颜色代码 => https://bannerlord.party/banner-colors ):

在json的王国或氏族部分,添加以下属性:

"primaryColor": "颜色代码"
"secondaryColor": "颜色代码"

氏族的旗帜将根据您设置的颜色进行更新。
如果您覆盖了氏族的旗帜,颜色将应用于指定的旗帜(类似于原版)。

但是,kingdomBanner不会被更新!当你在王国级别设置主色和副色时,它只会影响默认旗帜或氏族旗帜(通过followkingdomColors属性)。如果你还用"kingdomBanner"覆盖了旗帜,那么颜色必须在旗帜代码中进行更改。它们不会随着主色和副色的更新而更新。

这样做的目的是,通过一个王国定义,让所有家族共享相同的颜色,同时为首领家族(使用王国旗帜)提供不同的旗帜(和颜色)。

现在,你可以指定是否希望家族自动跟随王国颜色。
将以下属性放入defaultConfig、kingdom部分或clan部分中:

"FollowKingdomColors": "true"
=> 使用此值时,王国的下属家族(如果为王国定义)或单个家族(如果为家族定义)将遵循颜色(默认情况下,如果未指定旗帜,则会是这种情况。就像原版一样)。
"FollowKingdomColors": "false"
=> 使用此值时,氏族将不遵循王国颜色。

默认行为为"true",因此未指定时,将应用原版行为。

每当定义了"clanBanner"或设置了氏族主要/次要颜色时,该氏族将不再遵循王国配色方案。

所以,如果你想为家族指定一个自定义旗帜,并且希望颜色匹配,使用"FollowKingdomColors": "true"来强制颜色与你覆盖的旗帜(通过clanBanner设置的旗帜)上的王国颜色相匹配。

注意:如果王国设置了“跟随颜色”为“true”,并且在该王国下定义了一个氏族,即使您定义了“氏族旗帜”,氏族配置也会继承王国的“跟随颜色”为“true”。要改变这一行为,您必须设置"FollowKingdomColors"为"false"。

每当为王国设置此值时,该值将被后续氏族继承。因此,如果在王国层面定义了该属性,但希望特定氏族采用不同规则,只需在该氏族配置中添加相应属性(如下例所示):

示例:

......
"generateTemplate":false,
"默认配置": {
  "模式": 2,
  "FollowKingdomColors" : "false"      <====== 这将设置默认行为,使家族不遵循王国颜色
},
"王国": {
  "我的王国": {
    "王国旗帜": "2.12.12.1764.3167.779.754.1.0.-30.220.111.111.253.259.616.660.0.1.90.220.111.111.253.259.895.674.0.1.90.220.111.111.253.259.758.919.0.1.90",
    "primaryColor" : "88",
    "secondaryColor" : "40",
    "FollowKingdomColors" : "true",    <====== 这将使该王国的所有家族颜色保持一致
    "clans": {
      "我的超级部落": {
        "氏族旗帜": "11.45.116.1536.1536.768.768.1.0.0.160.0.15.512.512.769.764.1.0.0",
        "primaryColor": "70",
        "FollowKingdomColors" : "false",  <==== 此处你可以修改数值使其与王国不同,因为即便我们设置了氏族旗帜和主色调,该值将从王国配置中继承
        "模式": 3,                                                                                 
        "颜色": ["#000000","88"]  由于在父级王国配置中明确将其定义为"真"。
      }
    }
  }
}
...

版本1.0.9+新增内容:

在您的config.json中指定王国或氏族的旗帜(该功能与已废弃的王国颜色模组相同):

在json的王国部分,添加以下属性:

"kingdomBanner": "王国的旗帜代码"

如果已定义 kingdomBanner 以及主色和/或辅色,则 kingdomBanner 的颜色将不会更新!因此,当设置 kingdomBanner 时,无法使用主色和辅色属性更改其颜色:您必须直接更改旗帜代码。

在json的clan部分,添加以下属性:

"clanBanner": "氏族的旗帜代码"

如果定义了clanBanner,同时指定了主要和/或次要颜色(或者如果followKingdomColors设置为true),clanBanner的颜色将根据指定的主要或次要(王国或氏族)颜色进行相应更新。

示例:

....
"kingdoms": {
  "Vlandia": {
    "王国旗帜": "11.45.119.1536.1536.768.768.1.0.0.160.0.15.512.512.769.764.1.0.0",
    "clans": {
      "dey Cortain": {
        "clanBanner": "11.45.116.1536.1536.768.768.1.0.0.160.0.15.512.512.769.764.1.0.0"
      }
    }
  }
}
....
"clans": {
  "dey Meroc": {
    "clanBanner": "11.45.2.1536.1536.768.768.1.0.0.160.0.15.512.512.769.764.1.0.0"
  }
}
....

该模组不会覆盖游戏的默认行为 => 王国的领导家族将自动使用其王国旗帜作为自己的旗帜。

如何安装:

Vortex安装:

全新安装:

  • 下载 PocColor-XXXXX.zip,并通过 Vortex 激活。
  • 下载可选的config-files.zip
  • 将config.json文件中的一个(且仅一个)直接复制到mod目录中:<BANNERLORD路径>/Modules/PocColor
  • 或者也可以:
  • 将mod目录中的config.json_prod重命名为config.json:<BANNERLORD PATH>/Modules/PocColor

更新: 下载PocColor-XXXXX.zip,并通过Vortex激活。如果该模组已经安装并配置过,您已拥有一个config.json文件,更新不会覆盖它。

手动安装:

  • 下载PocColor-XXXXX.zip,并将其内容解压到<BANNERLORD路径>/Modules
  • 下载可选的配置文件包config-files.zip
  • 将config.json文件中的一份(且仅一份)直接复制到mod目录中:<BANNERLORD PATH>/Modules/PocColor
  • 或者也可以:
  • 将mod目录中的config.json_prod重命名为config.json:<BANNERLORD PATH>/Modules/PocColor

故障排除:

在模组目录中生成了一个日志文件:log.txt

你可以打开这个文件查看发生了什么,它会给你关于当前情况的提示。

首先,在文件的最开头,你会看到你的config.json是否被正确读取:

  • 如果你看到"读取配置文件" 而没有其他内容:一切正常!
  • 如果你看到"读取配置文件",后面跟着一条错误消息:发生了不好的事情;该消息应相对直白地说明发生了什么。
  • 如果你看到"无法解析配置文件 :(",这基本上意味着你的config.json文件已损坏或语法不正确。
  • 可以借助在线json编辑器网站来找出问题所在,或者寻求帮助!

该模组会将旗帜、王国和家族信息加载到缓存中:因此你会看到大量"正在添加新缓存...."

它将为你提供基本的王国和氏族列表(包括它们的名称),你可以在你的json文件中进行配置。

当颜色被应用到单位时,你会看到这样的日志:

> 角色是: [Bushwacker],来自 [] 氏族,属于 [] 王国

这将告诉你单位的名称、氏族和王国。基本上,这些就是如果你想专门配置这个单位所需的信息。

==> 根据以下内容应用颜色:模式[2] 颜色[] 颜色2[] 新横幅[]

应用颜色日志将根据您的配置信息,显示将应用哪种模式及哪些颜色。

如果您为此单位配置了模式:3,却看到模式[2],这意味着您的配置文件中存在错误(可能是使用了默认配置,或者王国或氏族层级结构不正确)。

使用该模组完全安全:不会改变游戏结构,仅会覆盖内存中的单位颜色和旗帜。

你可以随时启用/禁用这个模组;
无需重新开始新游戏:它应该与之前的存档兼容。
而且我认为与其他模组一起使用也相当安全。
我个人推荐与Kingdom Color模组搭配使用。

但请注意:只有当你充分利用并调整配置文件以适应你的需求时,这个模组才能真正发挥其作用(如果你对默认配置感到满意,那确实很棒)。
但这可能是一项繁琐且不太容易的任务,取决于你是否熟悉编辑标记语言或json...
否则,深呼吸一下,继续进入"模组自定义"部分:

模组自定义:

所有配置都应通过mod目录中的config.json文件进行(你可以使用默认的config.json,或者从mod目录中的config.json.example开始): Mount & Blade II Bannerlord\Modules\PocColor

这个json相当直接(mod目录中有一个示例供你参考):

你可以为以下部分指定:

  • defaultConfig
  • kingdoms / clans / units
  • 默认配置
  • 王国/氏族/单位
  • 氏族(无王国)
  • 单位(全局定义)

每个部分由其名称定义(您可以查看mod目录中生成的log.txt文件:它将提供您需要用来定义每个部分的名称信息)。

每个部分可以包含多个属性:

"mode": 0
=> 这是设置为原版(即不应更改选项)的颜色模式
"模式": 1
=> 这将随机化单位的颜色(如果未指定则使用整个游戏调色板)。但你可以设置自己的调色板:我们稍后会讲到。主色和次色都将随机:因此对于2种颜色,你将得到:A/B、B/A、A/A、B/B
"模式": 11
=> 又称随机关联:这将随机化单位的颜色,但主色和次色会绑定在一起:它们要么成对设置(非独立),要么设置为相同。你可以让它们随机化: 仅A/A、B/B或仅A/B、B/A。
"mode": 2 => 此模式(默认激活):将你的单位颜色设置为与盾牌相匹配。
"mode": 21 => 此模式将单位颜色设置为与护盾相匹配,类似于模式2,但随机化主色和次色(它们会交替出现)
"mode": 22 => 此模式将随机化颜色,从盾牌的所有颜色中构建一个调色板:如果你的盾牌中有100个元素,包含10种不同的颜色,那将是一个10色调色板。
"模式": 4 => 此模式类似模式2,但使用旗帜颜色替代:将单位颜色设置为与旗帜相匹配。
"模式": 41 => 此模式将你的单位颜色设置为与旗帜相匹配,类似于模式4,但会随机化主色和副色(它们会交替出现)
"模式": 42 => 此模式将随机化颜色,从旗帜的所有颜色中构建一个调色板:如果你的旗帜中有100个元素,包含10种不同的颜色,那么将生成一个10色调色板。
"模式": 3 => 此模式将为您的单位设置一组特定的颜色(一对主色和副色)。

注意:模式2已允许通过王国颜色模组设置特定颜色:你可以覆盖家族旗帜(并使用虚拟颜色作为旗帜的首尾对象,利用这一技巧设定任意制服颜色)。但若未安装王国颜色模组,我强烈建议使用它,因为与本模组具有极佳的互补性。

"颜色": [ "颜色1", "颜色2"]
=> 当使用模式3时设置此项(需要指定要使用的颜色对。color1为主色,color2为次色。
"color": ["颜色1", "颜色2", "颜色3", .... , "颜色N"]
=> 当使用模式1或11时使用此选项。如果与模式1一起使用:主色和次色将从此调色板中随机选取。如果与模式11一起使用:主色和次色将完全相同(即单色模式)。
"颜色2": ["颜色1", "颜色2", "颜色3", ...., "颜色N"]
=> 此选项可与模式1或模式11配合使用,当您已定义"color"时用于增强自定义:此时必须同时设置"color"和"color2"。在模式1下:主色将从"color"中选取,次色将从"color2"中选取(当然每种颜色都会随机化)。在模式11下:主色将从"color"中选取,次色从"color2"中选取,但是!颜色索引将保持一致:因此两个列表必须包含相同数量的颜色(否则将使用最小值):

例如:"color":[ "color1", "color2"], "color2":[ "color3", "color4"] 如果使用模式1:你可以获得所有组合:c1/c3, c2/c3, c1/c4, c2/c4;

(空行)

如果你使用模式11:你只有这些组合:c1/c3 和 c2/c4。

颜色可以通过标准的十六进制RGB代码定义:#RRGGBB
或者你可以使用游戏内的颜色编号:就像Kingdom Color模组那样。

  • "kingdomBanner": "旗帜代码" 允许覆盖王国旗帜。城市旗帜图标以及百科全书中的家族旗帜也会受到影响。
  • "clanBanner": "旗帜代码" 允许覆盖氏族旗帜。城市的旗帜图标以及百科全书中的氏族旗帜也会受到影响。
  • "kingdomShield": "旗帜代码" 允许覆盖整个王国的所有派系图标。如果设置,所有派系的图标都将与此旗帜匹配。(该属性只能在王国配置部分中使用)。
  • "clanShield": "旗帜代码" 允许为整个家族覆写所有派系的图标。如果设置此项,所有派系的图标将与此旗帜匹配。(该属性只能在氏族配置部分中使用)。如果同时设置了kingdomShield和clanShield,clanShield的值将覆盖kingdomShield的值。
  • "横幅": "横幅代码" => 此项可用于覆盖单位的横幅。若未设置其他内容;盾牌也将与此相匹配。模式2将使制服颜色与这些横幅颜色相匹配(这是一种改变单位颜色的新方式)。
  • "横幅": ["列表", "的", "横幅", "代码"] 这将允许从此列表中随机更改横幅/盾牌。如果同时设置了"banner"和"banners",列表将是"banners"和"banner"代码的组合。
  • "shields": ["列表", "的", "护盾", "代码"] 如果设置了"shields",护盾将在指定值中随机生成。制服颜色在模式2下会自动与盾牌颜色匹配。如果你想保留与"氏族"旗帜颜色匹配的旧行为,只需将氏族设置为"模式3"并指定颜色(这种方式比配置每个单位更容易)。
  • "combatBanners": ["列表", "的", "横幅", "代码"] 这将仅允许在战斗中设置横幅/盾牌。如果设置了"banner"和/或"banners",在战斗期间,此列表将覆盖它们。这样你就可以在战斗和战役地图上拥有不同的旗帜。
  • "combatShields": ["战斗护盾", "列表", "的", "护盾", "代码"] 这将仅在战斗中允许设置护盾。如果设置了"护盾",在战斗期间,此列表将覆盖它们。通过这种方式,你可以在战斗期间设置不同的护盾以及在战役地图中。
  • "FollowKingdomColors": "真 / "假" 这将允许家族遵循王国的颜色(如原版游戏)。默认情况下,此参数假定为true。因此设置为false可禁用家族加入王国时的颜色变更。
  • "FollowKingdomBackgroundOnly": "真 / "假" 这将使家族能够跟随王国的颜色,但仅会应用背景色。旗帜上的图案将保持不变。
  • "primaryColor": "colorCode" "secondaryColor": "colorCode" 允许这两个属性改变王国或氏族的主色和副色。仅使用游戏颜色ID,而非十六进制RGB颜色(因为它们会应用于旗帜,如果使用RGB代码,会导致游戏崩溃)。
  • "BearRulerColors": "真" / "假" "BearRulerBanner": "真" / "假" "BearRulerShield": "真" / "假" 将这些值设置为禁用或强制王国的统治家族使用王国颜色、旗帜或盾徽。如果设置为true,统治家族(及其部队)将始终使用王国的制服颜色、旗帜和盾牌。
  • 如果将其中一个参数设置为true,还可以使用以下参数覆盖"统治模式的颜色、旗帜和盾牌":
    • "rulerMode": 任意模式值
    • "rulerColor": [ "标尺颜色1", "标尺颜色2" ]
    • "rulerColor2": [ "标尺颜色1", "标尺颜色2", .... ]
    • "rulerBanner": "尺子横幅代码"
    • "rulerShield": "统治者护盾代码"

单位通配符:

  • 你可以用单位通配符"King"来引用任何国王。
  • 你可以使用单位通配符"Leader"来引用任何氏族领袖。
  • 你可以使用单位通配符"Hero"来引用任何英雄单位。
  • 你可以使用单位通配符"Trooper"来引用任何普通士兵单位。

这些通配符区分大小写。

例如:

...
"单位" : { "国王": { .....}, "士兵": { .....} }
......

玩家王国、氏族与角色:

从1.0.1版本开始,您可以直接在json中使用"Player"作为单位名称来引用玩家角色。
(您角色的全名字符串也可以使用,如果文件中同时存在,将覆盖"玩家"条目)

玩家王国可以使用以下名称引用:"PlayerKingdom"。
玩家氏族可以通过以下方式引用:名称"PlayerClan"。

然而,使用特定命名将始终覆盖"通配符",因此如果您使用多个存档和不同的氏族名称进行游戏,您可以为您的氏族和单位定义多个存档相关的配置。

如果你使用通配符,当然,该值将不会保存为依赖项。

所以你可以同时使用...

通配符区分大小写。

默认配置:

默认配置可以通过在json中覆盖,只需在你的json中添加(参考config.json.prod):

"默认配置": {
  "模式": X
  "颜色": .............
},

模板生成:

可以通过将以下值添加到您的config.json文件中生成一个完整的json配置文件模板(请参考config.json.prod):

"generateTemplate":false

这将在你的存档加载后,在模组中构建一个模板,目录将包含