四、建筑 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) — 占地格数。
如
[Building]>hp= (int) — 生命值。
1x1、2x2、3x3。决定放置占格与模型尺寸(每格 = TILE 像素)。注意:不同占地格的建筑模型不能互换 art,否则会错位。建筑通常 400-1200,防御塔 500-800。
[Building]>armor=building — 建筑护甲。
通常固定为 building。
[Building]>cost= (int) — 造价。
基础建筑 200-2000,高科 2000+。
[Building]>build= (number) — 建造时间(秒)。
注意:建筑总耗时还会受
[Building]>power= (int) — 电力。
tech 等级影响。正数为发电(如电厂 +100),负数为耗电(如防御塔 -25)。总电力不足时全基地效率降低。
[Building]>sight= (int) — 视野(格数)。
建筑暴露的视野范围。
[Building]>weapon= (weaponId) — 防御武器(可选)。
防御建筑(碉堡/炮塔/防空)设置,自动攻击射程内敌人。
[Building]>tab= (enum: base|def|inf|veh|air|navy) — 建造页签。
base=基地页,def=防御页,其余为生产页。决定建筑模型/PNG/.r。默认取节名。
[Building]>techLevel= (int) — 科技等级。
0=开局可造,1=需高科,2=进阶,
[Building]>ImmuneToSaboteurs= (boolean) — 免疫爆破手。
-1=永不可建造(仅地图放置)。用于建筑解锁门槛。设为 -1 的建筑默认免疫爆破手。设为
[Building]>CanC4= (boolean) — 可否被 C4 摧毁。
true 则爆破手(Saboteur=yes 的步兵)无法进入该建筑。未显式填写时的默认值:
- 写了
CanC4=no→ 默认yes(不可被 C4 摧毁 → 免疫爆破) techLevel=-1→ 默认yes(地图原生/不可建造)CanBeOccupied=yes或garrisonable=true→ 默认yes(可被占领/驻扎)unattackable/indestructible/invincible→ 默认yes(不可攻击/摧毁)
no(可被爆破)。此判定也决定敌方爆破手能否右键该建筑触发爆破。写
[Building]>CanBeOccupied= (boolean) — 可被步兵占领/驻扎。
no 表示不可被 C4 爆破(也默认免疫爆破手);缺省认为可。等价于
[Building]>Occupier= (boolean) — 接收进驻步兵。
garrisonable=true;可进驻的建筑默认免疫爆破手。与
[Building]>Factory.ExplicitOnly= (boolean) — 只建造指定单位。
CanBeOccupied= 语义一致,参与爆破免疫判定。设为
[Building]>buildable= (boolean) — 玩家可否建造。
true 的工厂只生产在自身 BuiltAt= 中列明的单位;未列明的单位不会在此建造。默认 no(可产同类别任意单位)。配合单位的 BuiltAt= 字段实现「狗屋/特战站」这类专用生产建筑:某单位在狗屋 BuiltAt=kennel,狗屋 Factory.ExplicitOnly=true,则该单位只在狗屋生产、狗屋也只产它。中立/特殊建筑设
[Building]>faction= (factionId) — 阵营专属(可选)。
false(仅地图放置)。仅该阵营可建。
[Building]>req= (comma-separated) — 前置建筑(可选)。
如
[Building]>tech= (int) — 科技点数贡献(可选)。
req=power。高科建筑
tech=1 或 tech=2,解锁对应 techLevel 建筑。4.3 特殊建筑类型
[Building]>superweapon= (superweaponId) — 超武充能建筑。该建筑存活时自动为超武充能,点满后可手动释放。
[Building]>superweaponUnlock= (superweaponId) — 超武解锁建筑。
该建筑存活时超武在防御栏解锁显示。
[Building]>garrisonable= (boolean) — 可进驻民房。
中立建筑(
[Building]>neutral=true — 中立建筑。
garrisonable=true)步兵可进驻获得火力加成,被毁判定归该方失败(排位赛军旗同理)。不参与胜负判定,可被工程师占领。
[Building]>harvesterDock= (boolean) — 精炼厂停靠位。
矿车返回此处卸载。
[Building]>exit= (X,Y) — 出兵点偏移。
生产单位出现的世界坐标偏移,如
exit=0,1。军旗建筑:排位赛的「军旗」(
[flag])是特殊建筑:hp=500、isFlag=true、buildable=false、invincible=false,由排位赛地图自动放置,被摧毁即判该方失败。MOD 不应修改此节。