MOD 制作教程 🏠 主页

四、建筑 buildings.ini 代码讲解

buildings.ini 定义游戏建筑(生产建筑、防御建筑、中立建筑等)。格式与游戏本体 data/buildings_ini.js 一致。

4.1 完整示例

[power]
name=电厂
desc=提供电力支持,是基地运转的基础。
kind=building
size=2x2
hp=400
armor=building
cost=300
build=4
power=100
sight=4
tab=base
art=power
techLevel=0
buildable=true

[cz_fort]
name=突击炮楼
desc=中型防御炮塔,射程中等。
kind=building
size=1x1
hp=600
armor=building
cost=700
build=9
power=-25
sight=7
weapon=cz_autoCannon
tab=def
art=cz_fort
techLevel=1
buildable=true

4.2 字段速查

[Building]>name= (string) — 显示名称。
建造列表、说明框显示。
[Building]>kind=building — 建筑固定为 building。
无需更改。
[Building]>size= (WxH) — 占地格数。
如 1x1、2x2、3x3。决定放置占格与模型尺寸(每格 = TILE 像素)。注意:不同占地格的建筑模型不能互换 art,否则会错位。
[Building]>hp= (int) — 生命值。
建筑通常 400-1200,防御塔 500-800。
[Building]>armor=building — 建筑护甲。
通常固定为 building。
[Building]>cost= (int) — 造价。
基础建筑 200-2000,高科 2000+。
[Building]>build= (number) — 建造时间(秒)。
注意:建筑总耗时还会受 tech 等级影响。
[Building]>power= (int) — 电力。
正数为发电(如电厂 +100),负数为耗电(如防御塔 -25)。总电力不足时全基地效率降低。
[Building]>sight= (int) — 视野(格数)。
建筑暴露的视野范围。
[Building]>weapon= (weaponId) — 防御武器(可选)。
防御建筑(碉堡/炮塔/防空)设置,自动攻击射程内敌人。
[Building]>tab= (enum: base|def|inf|veh|air|navy) — 建造页签。
base=基地页,def=防御页,其余为生产页。
[Building]>art= (artKey) — 美术资源名。
决定建筑模型/PNG/.r。默认取节名。
[Building]>techLevel= (int) — 科技等级。
0=开局可造,1=需高科,2=进阶,-1=永不可建造(仅地图放置)。用于建筑解锁门槛。设为 -1 的建筑默认免疫爆破手。
[Building]>ImmuneToSaboteurs= (boolean) — 免疫爆破手。
设为 true 则爆破手(Saboteur=yes 的步兵)无法进入该建筑。未显式填写时的默认值:
  • 写了 CanC4=no → 默认 yes(不可被 C4 摧毁 → 免疫爆破)
  • techLevel=-1 → 默认 yes(地图原生/不可建造)
  • CanBeOccupied=yes 或 garrisonable=true → 默认 yes(可被占领/驻扎)
  • unattackable / indestructible / invincible → 默认 yes(不可攻击/摧毁)
其余情况默认为 no(可被爆破)。此判定也决定敌方爆破手能否右键该建筑触发爆破。
[Building]>CanC4= (boolean) — 可否被 C4 摧毁。
写 no 表示不可被 C4 爆破(也默认免疫爆破手);缺省认为可。
[Building]>CanBeOccupied= (boolean) — 可被步兵占领/驻扎。
等价于 garrisonable=true;可进驻的建筑默认免疫爆破手。
[Building]>Occupier= (boolean) — 接收进驻步兵。
与 CanBeOccupied= 语义一致,参与爆破免疫判定。
[Building]>Factory.ExplicitOnly= (boolean) — 只建造指定单位。
设为 true 的工厂只生产在自身 BuiltAt= 中列明的单位;未列明的单位不会在此建造。默认 no(可产同类别任意单位)。配合单位的 BuiltAt= 字段实现「狗屋/特战站」这类专用生产建筑:某单位在狗屋 BuiltAt=kennel,狗屋 Factory.ExplicitOnly=true,则该单位只在狗屋生产、狗屋也只产它。
[Building]>buildable= (boolean) — 玩家可否建造。
中立/特殊建筑设 false(仅地图放置)。
[Building]>faction= (factionId) — 阵营专属(可选)。
仅该阵营可建。
[Building]>req= (comma-separated) — 前置建筑(可选)。
如 req=power。
[Building]>tech= (int) — 科技点数贡献(可选)。
高科建筑 tech=1 或 tech=2,解锁对应 techLevel 建筑。

4.3 特殊建筑类型

[Building]>superweapon= (superweaponId) — 超武充能建筑。
该建筑存活时自动为超武充能,点满后可手动释放。
[Building]>superweaponUnlock= (superweaponId) — 超武解锁建筑。
该建筑存活时超武在防御栏解锁显示。
[Building]>garrisonable= (boolean) — 可进驻民房。
中立建筑(garrisonable=true)步兵可进驻获得火力加成,被毁判定归该方失败(排位赛军旗同理)。
[Building]>neutral=true — 中立建筑。
不参与胜负判定,可被工程师占领。
[Building]>harvesterDock= (boolean) — 精炼厂停靠位。
矿车返回此处卸载。
[Building]>exit= (X,Y) — 出兵点偏移。
生产单位出现的世界坐标偏移,如 exit=0,1。
军旗建筑:排位赛的「军旗」([flag])是特殊建筑:hp=500、isFlag=true、buildable=false、invincible=false,由排位赛地图自动放置,被摧毁即判该方失败。MOD 不应修改此节。