六、国家 factions.ini 代码讲解
factions.ini 定义游戏国家/阵营。格式与游戏本体 data/factions_ini.js 完全一致。每个 [节名] 是一个阵营,节名即阵营 ID。
6.1 完整示例
[guard] name=自由同盟 short=同盟军 color=#3f8ce0 color2=#9fd0ff dark=#17324f desc=以美国为领衔的同盟阵线,具有装甲精良、火力均衡,拥有狙击手与高精度火炮。 unique=["sniper","grizzly"] tint=#3f8ce0 [cz_nation] name=苍蓝共和国 short=苍蓝军 color=#2a8fd8 color2=#9fd8ff dark=#0e2f4f desc=新国家示例,擅长空军与快速机动。 unique=["cz_jetFighter"] excludeUnits=["rifleman"] tint=#2a8fd8
6.2 字段速查
[Faction]>name= (string) — 阵营全称。对局内玩家名称显示。
[Faction]>short= (string) — 简称。
遭遇战界面下拉框、大厅、编辑器显示。
[Faction]>color= (hex) — 主色。
单位轮廓、阵营标识的主色。
[Faction]>color2= (hex) — 高光色。
装饰高光。
[Faction]>dark= (hex) — 暗色。
阴影/描边。
[Faction]>desc= (string) — 阵营描述。
科技树/选择界面显示。
[Faction]>unique= (JSON 数组) — 专属单位列表。
必须用 JSON 数组语法,如
[Faction]>excludeUnits= (JSON 数组) — 从通用列表排除的单位。
unique=["sniper","grizzly"]。对应单位需在 units.ini 中定义并设 faction= 或通过其他方式限定。可选。如
[Faction]>tint= (hex) — 阵营着色(同 color)。
excludeUnits=["rifleman"] 表示该阵营用自家步兵替换通用步枪兵(需自己定义同名单位)。兼容字段。
重点:数组字段(unique / excludeUnits)必须使用 JSON 数组语法
["a","b"]。若写成逗号分隔的字符串 unique=sniper,grizzly,当只有一个元素时会被解析成字符串而非数组,导致专属/排除逻辑失效。6.3 让新国家可用
定义阵营后,还需配合两点才能真正在游戏中选择:
- 在
units.ini/buildings.ini中给该阵营专属的单位/建筑设置faction=cz_nation; - 遭遇战界面按
R.FACTIONS列出可选阵营(跳过 neutral),新阵营会自动出现。
中立阵营
[neutral] 不要修改:它是中立建筑的归属阵营,参与胜负逻辑。