跳转到内容
RA2DIY-WIKI 当前处于维护模式:页面上的内容随时可能发生更改且不会事先告知。

2.单位属性rules词典:修订间差异

来自RA2DIY
无编辑摘要
(未显示2个用户的24个中间版本)
第1行: 第1行:
前言,单位属性代码一大堆,绝对不要试图在本文中摘取代码从空白开始写单位,请复制原版已有的单位进行修改
前言,单位属性代码一大堆,绝对不要试图在本文中摘取代码从空白开始写单位,请复制原版已有的单位进行修改


-A-


Accelerates =


==A==
可以设置为"yes"或者"no"来决定这个单位移动式是否慢慢加速至[TechnoType] -> Speed=定义的速度


===Accelerates===
与高级碾压([TechnoType] -> MovementZone=CrusherAll)共用有时候会莫名奇慢无比


可以设置为"yes"或者"no"来决定这个单位移动式是否慢慢加速至Speed定义的速度
AccelerationFactor =


与高级碾压(MovementZone=CrusherAll)共有时候会莫名奇慢无
填数值。这个代码要配合[TechnoType] -> Accelerates=yes使,指定单位运动中加速的百分,用小数表示,如设置为“.1”


===AccelerationFactor===
ActivateSound =
 
填数值。这个代码要配合Accelerates=yes使用,指定单位运动中加速的百分比,用小数表示,如设置为“.1”
 
===ActivateSound===


单位被激活的音效,默认全局值
单位被激活的音效,默认全局值


===Adjacent===
Adjacent =


填数值。这个代码指定建筑距离BaseNormal=yes的建筑距离
填数值。这个代码指定建筑距离另一个[BuildingType] -> BaseNormal=yes的建筑在多少个单元格距离内可以放置,默认3。


===Agent===
Agent =


填yes或no。这个代码指定步兵单位是否为间谍单位,用于渗透Spyable=yes的建筑获得不同效果
步兵单位是否为间谍单位,用于渗透[BuildingType] -> Spyable=yes的建筑获得不同效果


===AIBasePlanningSide===
AIBasePlanningSide =


写阵营序号(0=GDI,1=Nod,2=ThirdSide,Ares新阵营依次往后排),标明第几个阵营会建造该建筑(写-1时所有阵营都可造)
写阵营序号(0=GDI,1=Nod,2=ThirdSide,Ares新阵营依次往后排),标明第几个阵营会建造该建筑(写-1时所有阵营都可造)


===AIBuildThis===
AIBuildThis =


填yes或no。这个代码指定建筑是否可以被AI所建造,但是只会在<=1个时造1次(通过克隆生产同时拔起多个),Ares已允许定义数量,详见说明书
填yes或no。这个代码指定建筑是否可以被AI所建造,但是只会在<=1个时造1次(通过克隆生产同时拔起多个),Ares已允许定义数量,详见说明书


如果建造这句写no那么Ares下AI最多出一个电厂,原版则会崩溃
如果建造这句写no那么Ares下AI最多出一个电厂,原版则会崩溃


===AirportBound===
AirportBound =


可以设置为"yes"或"no"来决定这个战机是否需要一个机场(通常是指一个有Helipad=yes 代码的建筑物)的机位,如果没有机位,这个战机将会坠毁。这个战机一定要在PadAircraft=后面声明,否则会出现建造不受机位限制的问题
战机是否为机场战机,即需要有[BuildingType] -> Helipad=yes的建筑物提供机位,如果没有机位,这个战机将会坠毁。这个战机应当在[General] -> PadAircraft=后面声明,否则会出现建造不受机位限制的问题


由于WW在RA2删了没机位时战机从地图外飞来的效果,现在不在PadAircraft声明的战机把机位满后你却不拉出去的话图标虽然依然不会灰掉,但是点下去会卡在一半的位置并且无法取消
由于WW在RA2删了没机位时战机从地图外飞来的效果,现在不在[General] -> PadAircraft=声明的战机把机位满后你却不拉出去的话图标虽然依然不会灰掉,但是点下去会卡在一半的位置并且无法取消


如果没有武器还会有一些特殊的运动表现
如果没有武器还会有一些特殊的运动表现


===AirRangeBonus===
AirRangeBonus =


单位瞄准空中目标时的额外射程,不影响攻击时仍会尝试将目标套进武器Range的范围
单位瞄准空中目标时的额外射程,不影响攻击时仍会尝试将目标套进[Weapon] -> Range=的范围


但追击目标时用上此句可以防止追一步停一步,搭配OpportunityFire=yes食用效果奇佳
但追击目标时用上此句可以防止追一步停一步,搭配[TechnoType] -> OpportunityFire=yes食用效果奇佳


===AllowedToStartInMultiplayer===
AllowedToStartInMultiplayer =


填yes或no。这个代码指定单位是否可以在游戏开始时伴随基地车出现(如苏军开始时的动员兵、犀牛坦克)。根据单位的Owner进行分配,会自动寻找距离预定位置最近且符合MovementZone的区域,例如出生点周围全是陆地那么船会生成在最近的岸边
填yes或no。这个代码指定单位是否可以在游戏开始时伴随基地车出现(如苏军开始时的动员兵、犀牛坦克)。根据单位的[TechnoType] -> Owner=进行分配,会自动寻找距离预定位置最近且符合[TechnoType] -> MovementZone=设定值的区域,例如出生点周围全是陆地那么船会生成在最近的岸边


===AlternateArcticArt===
AlternateArcticArt =


填yes或no。这个代码指定步兵单位是否在雪地地图和陆地地图有两种不同的形态,如盟军的海豹部队。注意:如果填yes,该步兵单位就必须准备一个雪地型的步兵文件(SHP文件),并且命名规则为:该单位的温和地图形态+A.SHP,如海豹部队的温和地图形态文件名为SEAL.SHP,那么雪地地图形态文件名则为SEALA.SHP。Ares已扩展该逻辑到所有气候,但需要使用新的语句,详见Ares说明书
填yes或no。这个代码指定步兵单位是否在雪地地图和陆地地图有两种不同的形态,如盟军的海豹部队。注意:如果填yes,该步兵单位就必须准备一个雪地型的步兵文件(SHP文件),并且命名规则为:该单位的温和地图形态+A.SHP,如海豹部队的温和地图形态文件名为SEAL.SHP,那么雪地地图形态文件名则为SEALA.SHP。Ares已扩展该逻辑到所有气候,但需要使用新的语句,详见Ares说明书


===AmbientSound===
AmbientSound =


填Sound.ini中定义的声音名。这个代码指定该单位在地图上存在的声音。注意:这个声音会在该单位被摧毁前不停播放,声音太大可能会影响人类玩家进行游戏
填Sound.ini中定义的声音名。这个代码指定该单位在地图上存在的声音。注意:这个声音会在该单位被摧毁前不停播放,声音太大可能会影响人类玩家进行游戏


===Ammo===
Ammo =


填数值。这个代码指定该单位的弹药数量。战机不能自动装填弹药,需要在机场降落后进行装填。默认为负一,无限
填数值。这个代码指定该单位的弹药数量。战机不能自动装填弹药,需要在机场降落后进行装填。默认为负一,无限


对于Aircraft类则是按开火行为计算,也就是因为乘客而将开火换为踹乘客、五连发抛射体一轮攻击射了5次武器等等均按1Ammo来计算,对应的Ares的自定义武器消耗弹药量也对Aircraft无效
注意一个常规单位武器每一发都会消耗弹药,例如默认状态下[Weapon] -> Burst=10的武器会消耗10弹药,在Ares下通过[Weapon] -> Ammo=2定义每一发的消耗2弹药则依次开火射出10发扣除20弹药
 
当用于建筑且拥有[BuildingType] -> Hospital=yes或[BuildingType] -> Armory=yes中的至少一句时将无法自动装填,转而用于限制其效果的生效次数
 
对于Aircraft类则是按开火行为计算,也就是因为乘客而将开火换为踹乘客、五连发抛射体一轮攻击射了5次武器等等均按1点Ammo来计算,对应的Ares的自定义武器消耗弹药量也对Aircraft无效


并且Aircraft存在多种一样(一坨又一坨)的弹药计算规则,例如如果一个战机的剩余弹药量高于总弹药量的一半并且有目标那么它无法正常装填弹药(AI:这个我熟)
并且Aircraft存在多种一样(一坨又一坨)的弹药计算规则,例如如果一个战机的剩余弹药量高于总弹药量的一半并且有目标那么它无法正常装填弹药(AI:这个我熟)
在Aircraft踹出乘客后的下一次开火实际上无法完成但仍会消耗Ammo,因此每次踹乘客实际上会占用两发。例如一个4弹药3乘客的战机第一轮只能踹出前2个乘客,回机场补充一格弹药后才能踹第3个
如果武器拥有大于一的[Weapon] -> Burst=那么每一连发都会消耗一次弹药,并且存在一个Bug是对于正在尝试踹乘客的Aircraft在达到0时可能不会立即停止开火,这就导致可能跨越零值变负,然后变成无限弹药


原版下Infantry和Building的弹药逻辑基本是废的,Ares已修缮与完善并进行了拓展,详见说明书
原版下Infantry和Building的弹药逻辑基本是废的,Ares已修缮与完善并进行了拓展,详见说明书


===Armor===
Armor =


填下表中的相应项。这个代码指定该单位的装甲。注意:装甲和防御能力没有任何关系,单位的受伤程度是由攻击方的弹头对相应装甲的百分比决定
填下表中的相应项。这个代码指定该单位的装甲。注意:装甲和防御能力没有任何关系,单位的受伤程度是由攻击方的弹头对相应装甲的百分比决定


----
<nowiki>------------------------------------------------</nowiki>


None 无护甲,不是“不存在护甲”而是使用名为“none”的护甲参与计算,物体必然拥有护甲
   值     |          义          |


Flak 防弹衣
|------------|----------------------|


Plate
|  None      | 无护甲,不是“不存在护甲”而是使用名为“none”的护甲参与计算,物体必然拥有护


Light 轻型装甲
|  Flak      | 防弹衣


Medium 中型装
|  Plate     | 板


Heavy 型装甲
|  Light     | 轻型装甲


Wood 木质结构
|  Medium    | 中型装甲


Steel 钢铁结构
|  Heavy     | 重型装甲


Concrete 混凝土结构
|  Wood      | 木质结构


special_1 特殊装甲1,用于恐怖机器人
|  Steel     | 钢铁结构


special_2 特殊装甲2,用于子机导弹
|  Concrete  | 混凝土结构


甲和单位类型不存在硬性对应关系可以随意指定
|  special_1 | 特殊甲1用于恐怖机器人


----
|  special_2 | 特殊装甲2,用于子机导弹


===Artillary===
装甲和单位类型不存在硬性对应关系,可以随意指定,只要符合你的设计


填yes或no。这个代码指定建筑是否为载具通过DeploysInto部署后变成的建筑并且载具部署前转向东北方
<nowiki>------------------------------------------------</nowiki>


四句里这一句会导致vxl炮塔在Buildup时就绘制
Artillary =
 
设置该句的建筑由一个载具通过[TechnoType] -> DeploysInto=部署转换而来的情况下载具部署前会转向正北方
 
四句里这一句会导致vxl炮塔和炮管在拔起时就绘制
 
此外Artillary为Westwood错误拼写,正确的英文单词应当是"Artillery"


部署转向:
部署转向:


Artillary↗
Artillary为正北(),若没有该句则见下一条


TickTank↘
TickTank或SensorArray或ICBMLauncher任意一句满足为正东(


IsJuggernaut
前面四条都没有则朝向正南(


ICBMLauncher↘
YR下这四条的朝向效果全部报废,请用YR新增的[BuildingType] -> DeployFacing=[0-7]来控制


怀疑原定有朝向↖的但是代码没写对,YR下疑似朝向效果全部报废,请用YR新增的DeployFacing=[0-7]来控制
Armory =


===Armory===
填yes或no。这个代码指定建筑是否可以升级精英以下的步兵单位,任何进入该建筑的步兵单位都会升级为精英


填yes或no。这个代码指定建筑是否可以升级精英以下的步兵单位任何进入该建筑的步兵单位都会升级为精英
注意:如果想限制升级步兵的数量可以加入[TechnoType] -> Ammo=来限制,每进入一个步兵消耗一次弹药,弹药清零无法再进入


注意:如果想限制升级步兵的数量,可以加入Ammo=来限制,Ammo=的数值为你想要的限制数量
特殊规则见[BuildingType] -> Grinding=语句下方


在Ares中允许使用新的Academy系列逻辑直接设定所有单位生产出来的等级
在Ares中允许使用新的Academy系列逻辑直接设定所有单位生产出来的等级


===Assaulter===
Assaulter =


填yes或no。是否为突击者,这个代码指定步兵单位是否可以驱逐建筑中驻守的步兵单位而无须对该建筑造成任何损伤。这里的“驱逐”指将建筑中的所有驻守的步兵单位全部破坏
该步兵是否为突击者,可以驱逐建筑中驻守的步兵单位而无须对该建筑造成任何损伤。这里的“驱逐”指将建筑中的所有驻守的步兵单位全部击杀


驱逐过程动画由主武代码的AssaultAnim=来设定,原版废设使用UCFLASH,也留有UCBLOOD和UCELEC
驱逐过程动画由主武代码的[Weapon] -> AssaultAnim=来设定,原版废设使用UCFLASH,也留有UCBLOOD和UCELEC


原版下无法设定某个建筑对于某个突击者步兵来说是否可以突击,Ares允许设定步兵与建筑各自突击等级进行比较,详见说明书
原版下无法设定某个建筑对于某个突击者步兵来说是否可以突击,Ares允许设定步兵与建筑各自突击等级进行比较,详见说明书


===AttackCursorOnFriendlies===
AttackCursorOnFriendlies =


填yes或no。这个代码指定该单位可以对自己方单位展开攻击,一般用于医疗兵、疯狂伊文、维修车等单位
该单位在友军上也和敌人样默认显示攻击光标例如原版疯狂伊文,只不过因为[InfantryType] -> Ivan=yes导致攻击光标又被换成了伊文炸弹光标


===AttackFriendlies===
AttackFriendlies =


填yes或no。这个代码指定单位否主动攻击自己一方单位但也可以攻击敌人单位
单位将友军加入索敌目标,需要主动寻敌开启即在[TechnoType] -> CanPassiveAquire=no时无效


在CanPassiveAquire=no无效
原版下由于AI非维修单位在目标为一个友军会立即清掉目标所以可能会进入获得目标丢失目标的循环而难以开火,Phobos已修复


===AuxSound1===
AuxSound1 =


填Sound.ini中定义的声音名。这个代码指定飞机起飞时的声音,导弹类子机发射时也会使用
填Sound.ini中定义的声音名。这个代码指定飞机起飞时的声音,导弹类子机发射时也会使用


===AuxSound2===
AuxSound2 =


填Sound.ini中定义的声音名。这个代码指定飞机降落时的声音,导弹类子机撞击时并不使用
填Sound.ini中定义的声音名。这个代码指定飞机降落时的声音,导弹类子机撞击时并不使用


===AntiInfantryValue===
AntiInfantryValue =


建筑反步兵权重
建筑反步兵权重


===AntiArmorValue===
AntiArmorValue =


建筑反装甲权重
建筑反装甲权重


===AntiAirValue===
AntiAirValue =


建筑反空军权重
建筑反空军权重
第171行: 第183行:
AI会检索敌军单位类型数量并按该权重选择多造哪个防御建筑
AI会检索敌军单位类型数量并按该权重选择多造哪个防御建筑


===AirstrikeTeam===
AirstrikeTeam =


普通鲍里斯召唤空袭的数量
普通鲍里斯召唤空袭的数量


特殊效果为这个语句只要非0那么会禁止Secondary开火时FireUp后接入Guard帧而一直保持开火状态,哪怕并没有补全空袭逻辑的单位语句和使用空袭指示的武器
特殊效果为这个语句只要非0那么会禁止[TechnoType] -> Secondary=开火时[InfantryTypeArt] -> SecondaryFire=后接入Guard帧而一直保持开火状态,哪怕并没有补全空袭逻辑的单位语句和使用空袭指示的武器


此外如果为AircraftType使用这一写法,那么如果处于攻击任务中按 S 停止或失去目标会大概率直接飞出地图并删除。不过这个效果的触发成功率没有Landable和Selectable那套稳定
此外如果为有限弹药且[AircraftType] -> AirportBound=yes的战机将此值设为 1,那么如果处于攻击任务中按 S 停止或失去目标会大概率直接飞出地图并删除


若要成功召唤空袭需要与武器弹头上的Airstrike配合
若要成功召唤空袭需要与武器弹头上的[Warhead] -> Airstrike=yes配合,不过这个语句自身的值是否>=1也直接决定了能否启动空袭逻辑,若不满足则无论[TechnoType] -> EliteAirstrikeTeam=如何都无法启动空袭,若满足则即便[TechnoType] -> EliteAirstrikeTeam=不满足也会绘制激光线和染色效果只不过没有战机


===AirstrikeTeamType===
AirstrikeTeamType =


普通鲍里斯召唤空袭的飞机
普通鲍里斯召唤空袭的飞机


===AirstrikeRechargeTime===
AirstrikeRechargeTime =


普通鲍里斯召唤空袭的间隔
普通鲍里斯召唤空袭的间隔


===AltImage===
AltImage =


该单位在攻击时使用的代替图像。仅适用SHP单位,TS残留废弃,在TS中被器官兽使用
该单位在攻击时使用的代替图像。仅适用SHP单位,TS残留废弃,在TS中被器官兽使用


===AlphaImage===
AlphaImage =


该物品使用哪个Alpha光,Alpha类似Ares的AE,不过AlphaImage是改变亮度
该物品使用哪个Alpha光,Alpha类似Ares的AE,不过AlphaImage是改变亮度
第199行: 第211行:
AlphaImage正常只有1帧,Ares下也可以使用多帧对应多个面,但必须是8的倍数,并且可以跟随对象移动,不过实现相当暴力,每2帧擦除并重新生成一次,性能炸弹
AlphaImage正常只有1帧,Ares下也可以使用多帧对应多个面,但必须是8的倍数,并且可以跟随对象移动,不过实现相当暴力,每2帧擦除并重新生成一次,性能炸弹


AlphaImage并不是动画,对应的无需也无法在Animations中有效注册,直接写不带后缀的文件名就可以了,注意透明色为127号而非Animation用的的0号,向前变暗向后变亮
AlphaImage并不是动画,对应的无需也无法在[Animations]中有效注册,直接写不带后缀的文件名就可以了,注意透明色为127号而非Animation用的的0号,向前变暗向后变亮


AlphaImage的shp需要和鼠标动画一样使用ShpBuilder的Compression 1 Only模式(汉化版应该直接写为了“用于鼠标动画”)保存,保存常规单位的shp时要记得换回去否则Bug
AlphaImage的shp需要和鼠标动画一样使用ShpBuilder的Compression 1 Only模式(汉化版应该直接写为了“用于鼠标动画”)保存,保存常规单位的shp时要记得换回去否则Bug


===AutoCrush===
AlphaImage的亮色部分会影响线条绘制,这里的线条包括建筑选择框、原版IFV导弹的LineTrail尾迹线、EBolt的每一条线等
 
PhobosBuild47已进行性能优化,对于不需要移动的对象不再周期性重绘
 
AutoCrush =


TS开始该句出现在了矿车上,用于载具微定义自动碾压
TS开始该句出现在了矿车上,用于载具微定义自动碾压


===AircraftCostBonus===
AircraftCostBonus =


战机建造价格为原来多少倍
战机建造价格为原来多少倍


-B-


BurstDelayX =


==B==
载具武器有高于一的[Weapon] -> Burst=的情况下第X+1与X+2发之间间隔的帧数(这里是按从 1 开始的序列来描述)


===BurstDelayX===
实际上无法降到0,当然在玩家眼里除非卡的要死也足够表现得尽量像立即射出了。Phobos新增了让非战机类单位同时射出所有连发的武器语句,详见说明书


载具武器有Burst的情况下两发之间间隔帧数
默认为3~5之间的随机值


实际上无法降到0,当然在玩家眼里除非卡的要死也足够表现得尽量像立即射出了
BurstDelay0 =
 
===BurstDelay0===


第1发和第2发的间隔
第1发和第2发的间隔


===BurstDelay1===
BurstDelay1 =


第2发和第3发的间隔
第2发和第3发的间隔


===BurstDelay2===
BurstDelay2 =


第3发和第4发的间隔
第3发和第4发的间隔


===BurstDelay3===
BurstDelay3 =


第4发和第5发的间隔
第4发和第5发的间隔
第239行: 第255行:
注:如果只有X没有(X+1)则X+1继承X的值
注:如果只有X没有(X+1)则X+1继承X的值


原版下仅可用于VehicleType并且只能写在单位上,Infantry的会被Fireup、FireProne覆盖掉,Aircraft的则强制为0
原版下仅可用于VehicleType并且只能写在单位本体。其他类型中Infantry连发间隔被FireUp、FireProne影响,Aircraft的则强制为0


Phobos改为了类似FS中写在武器上的形式,并可以直接使用BurstDelays指定每两Burst之间的间隔而不局限于0-3分别定1-5发间隔,详见说明书
Phobos改为了类似FS中写在武器上的形式,并可以直接使用新语句指定每两连发之间的间隔而不局限于Index0-3之间分别定1-5发的4个间隔,详见说明书


BuildTimeMultiplier =


建造时间为正常的多少倍,越大越慢


===BuildTimeMultiplier===
BaseNormal =


正常少倍,越慢
是否延伸筑范围,即[BuildingType] -> Adjacent=判定是否可以将这个建筑视扩展节点
 
仅用于玩家,Ares允许定义对AI而言的BaseNormal,原版下AI仅有建筑拥有[TechnoType] -> UndeploysInto=同时拥有[BuildngTypeArt] -> Foundation=1x1或[TechnoType] -> ResourceGatherer=yes中的至一个才不被视为扩展节点
 
Bunker =
 
指定该建筑是一个坦克碉堡。载具进入后会获得一系列加成。
 
当载具进入这个建筑时会播放[AudioVisual] -> BunkerWallsUpSound=指定的音效,离开时播放[AudioVisual] -> BunkerWallsDownSound=指定的音效。
 
当载具进入这个建筑后会使用[CombatDamage] -> BunkerDamageMultiplier=作为火力倍率,[CombatDamage] -> BunkerROFMultiplier=作为射速(因为实际上是对间隔除运算)率,[CombatDamage] -> BunkerWeaponRangeBonus=作为射程增量(注意射程不是乘法而是加法)
 
注:以上五条除射程增量外从PhobosBuild48开始均可在建筑上微观定义
 
为了让载具能够顺利进入这个建筑它至少一条边需要于 1 格长,也就是说[BuildingTypeArt] -> Foundation=1x1的建筑实际上会导致载具虽然可以发起进入指令和靠近,但实际上并不能流畅地进入碉堡且即便进入也会有其他问题。
 
此外还要确保载具可以行驶到所需要的位置,因此需要使用例如[BuildingType] -> NumberImpassableRows=等来使得建筑拥有可通行的部分。


===BaseNormal===
如果这个建筑拥有武器且被进入时正在开火,那么它将停止开火但保留目标,等到载具离开建筑时再继续攻击原先的目标。


是否延伸建筑范围即Adjacent判定时是否可将这个建筑视为扩展节点
无论如何坦克碉堡只能进入一个载具,并且这不检查[BuildingType] -> NumberOfDocks=,无论你将它设为0还是9及其他。


仅用玩家,Ares允许定义对AI而言的BaseNormal,原版下AI仅有建筑拥有UndeploysInto的同时拥有Foundation=1x1或ResourceGatherer=yes中至少一个菜不被视为扩展节点
如果载具进入成功建筑,那么它会停在最中间的位置,并且使本体面向正南(屏幕左下)方向,对边长为偶数的建筑这会占据偏屏幕下方向那个单元格同时实际位置向相反方向移动半个单元格,在载具退出建筑时再重新修正回正确位置。


===Bunker===
如果是一边长为奇数的建筑,那么由于这个位置修正将会导致单位离开建筑后的实际位置出现错误,即它所占据的单元格的中心并不是它这个实体的中心,这会导致一些需要判定单元格的功能工作异常,例如原版的Arcing类抛射体将会攻击错误的位置而导致这样的单位就像有了100%的闪避一样。


填yes或no。建筑是否坦克碉堡
这不能与InfantryAbsorb等其他进入逻辑共同使用,首先这种情况下[BuildingType] -> InfantryAbsorb=yes会允许UnitAbsorb工作,且其默认值为no,使得载具不能进入但哪怕再设置[BuildingType] -> UnitAbsorb=yes,也依然会导致载具只能尝试进入建筑但永远无法真正进入。如果这个建筑的确使用了乘客逻辑,那么它会优先执行,并在装不下更多乘客后改上面的行为。


神奇是当这个建筑同时拥有ConstructionYard=yes的情况下进入过程会变得相当丝滑
正常坦克碉堡在进入时会顿一下,但如果这个建筑同时拥有[BuildingType] -> ConstructionYard=yes那么进入过程会相当丝滑,如果你有一个因为Foundation过大导致总是进入失败的建筑那么可以尝试一下与之合用


注意:
注意:


坦克碉堡不会影响单位除了射程外的受击判定,这就是为什么AI的辐射工兵也喜欢对着坦克碉堡中的坦克一通爆射
坦克碉堡不会影响内部单位除了射程外的受击判定,这就是为什么AI的辐射工兵也喜欢对着坦克碉堡中的坦克一通爆射


而这个射程判定WW是直接硬编码了个384Leptons长度的距离,怀疑就是专门给2x2碉堡应对近战单位(大概是YR里狂兽人)定制化编写的,并且坦克碉堡的Foundation也对奇数x奇数支持的很不好
而这个判定WW是直接硬编码了个无法被射程低于384Leptons(1.5格)长度的单位攻击,怀疑就是专门给2x2碉堡应对近战单位(大概是YR里狂兽人)定制化编写的


===Bunkerable===
Bunkerable =


填yes或no。该载具能否进入坦克碉堡,在这句之前优先判定载具是否满足下述至少一项:
填yes或no。该载具能否进入坦克碉堡,在这句之前优先判定载具是否满足下述至少一项:
第275行: 第309行:
除此以外对于使用了Mech/Hover/Fly类Locomotor的单位虽然不会禁用进入光标但实际上只能移动到旁边无法进入,有时用于制作一些特殊的站点机制
除此以外对于使用了Mech/Hover/Fly类Locomotor的单位虽然不会禁用进入光标但实际上只能移动到旁边无法进入,有时用于制作一些特殊的站点机制


*如果不手动设定,那么Locomotor=Hover的载具其SpeedType默认为Hover
<nowiki>*</nowiki> 如果不手动设定,那么Locomotor=Hover的载具其SpeedType默认为Hover


对于Locomotor=Ship的载具在进入坦克碉堡的瞬间会EIP:006A0220
对于Locomotor=Ship的载具在进入坦克碉堡的瞬间会EIP:006A0220
第281行: 第315行:
对于可以进入坦克碉堡且非Drive的Locomotor也会表现的比较奇怪,例如不会移动到正确的坐标
对于可以进入坦克碉堡且非Drive的Locomotor也会表现的比较奇怪,例如不会移动到正确的坐标


===BalloonHover===
BalloonHover =


填yes或no。这个代码指定使用Jumpjet运动模式的单位不能落地。会打断CloakStop
填yes或no。这个代码指定使用Jumpjet运动模式的单位不能落地。会打断CloakStop


此句生效时JumpjetHeight必须高于战车工厂的ExitCoord=的高度否则会卡住
此句生效时[TechnoType] -> JumpjetHeight=必须高于战车工厂的[BuildingType] -> ExitCoord=的高度否则会卡住


在RA2下只要有这那么单位击时就总想着往对头上飞,无论Locomotor如何
同时该语会限制单位可移动的单元格,例如点建筑旁边的地面会自动避开建筑所在单元格,点击桥面会将所有移动目标点均设在桥上而不考虑旁边的水,PhobosBuild47允许全局设置这一规则


在YR开始额外检测当前所使用武器其抛射体是否拥有Vertical=yes才决定该行为
在RA2下只要有这句那么单位手动攻击时就总想着往对面头飞,无论[TechnoType] -> Locomotor=如何


有这句的直升机原版下不会触发DeathWeapon,Ares已修复,但对应的你就得手动禁用一下原版直升机的死亡效果了,你也不想看见你的直升机被摧毁砸到地上突然爆出堆子弹命中的动画吧.jpg
在YR开始额外检测当前所使用武器其抛射体上是否拥[Projectile] -> Vertical=yes才使用这一行为


===Bib===
有这句的JumpJet单位即便没有[TechnoType] -> Explodes=yes也可以在坠落到地面时引爆[TechnoType] -> DeathWeapon=的武器,具体工作方式见[TechnoType] -> DeathWeapon=一句。


填yes或no。让建筑最东(右下)侧一列单元格可以通行[载具](矿场 车场)
Bib =


由于国际社区认为PVP中载具堵重工门禁止出是一种作弊,因此Ares硬编码仅对[友军]生效,不过社区论坛已经有大佬出手了https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=23762
填yes或no。让建筑最东(右下)侧一列单元格可以通行[载具](矿场、场)


===Bombable===
由于国际社区认为PVP中载具堵重工门禁止出车是一种作弊,因此Ares硬编码仅允许[友军]载具可通行


填yes或no。这个代码指定该单位是否能被疯狂伊文捆绑上定时炸弹
Bombable =


===BombSight===
填yes或no。这个代码指定该单位是否能被一个[InfantryType] -> Ivan=yes的步兵攻击
 
BombSight =


填数值。这个代码指定该单位对定时炸弹的警戒范围,当被捆绑上定时炸弹的我方单位进入警戒范围该单位会进行拆除定时炸弹的工作,该单位弹头要有BombDisarm=yes这个设置否则同样不能拆除。注意:当该单位本身被捆绑上定时炸弹时不能进行自我拆除定时炸弹的工作
填数值。这个代码指定该单位对定时炸弹的警戒范围,当被捆绑上定时炸弹的我方单位进入警戒范围该单位会进行拆除定时炸弹的工作,该单位弹头要有BombDisarm=yes这个设置否则同样不能拆除。注意:当该单位本身被捆绑上定时炸弹时不能进行自我拆除定时炸弹的工作


===BridgeRepairHut===
BridgeRepairHut =


填yes或no。这个代码指定建筑是否为桥梁维修小屋,这种建筑可以维修附近的毁损桥梁或提供其他单位(如谭雅)来炸毁桥梁
填yes或no。这个代码指定建筑是否为桥梁维修小屋,这种建筑可以维修附近的毁损桥梁或提供其他单位(如谭雅)来炸毁桥梁


===BuildCat===
BuildCat =


填下表的相应项。这个代码指定建筑的所属类型,用来给游戏分类和AI识别
填下表的相应项。这个代码指定建筑的所属类型,用来给游戏分类和AI识别
第317行: 第353行:
注意:原版引擎下一个没有BuildCat的建筑建造后取消会IE,只能拍下来,但建造进度效果也会依旧保留到下一个正常建筑建造,并且同步播放一次,Ares已修复
注意:原版引擎下一个没有BuildCat的建筑建造后取消会IE,只能拍下来,但建造进度效果也会依旧保留到下一个正常建筑建造,并且同步播放一次,Ares已修复


----
<nowiki>--------------------------------------------------</nowiki>


Combat 防御建筑,该建筑会出现在防御栏中
Combat 防御建筑,该建筑会出现在防御栏中
第329行: 第365行:
Tech 科技建筑,用来作为其他单位的建造条件
Tech 科技建筑,用来作为其他单位的建造条件


----
<nowiki>--------------------------------------------------</nowiki>


===BuildLimit===
BuildLimit =


填数值。这个代码指定单位的建造数量限制。负数为到达绝对值后删除图标,不能建造
填数值。这个代码指定单位的建造数量限制。负数为到达绝对值后删除图标,不能建造
第337行: 第373行:
对平民建筑(特指Insignificant=yes的)使用无法正常生效。此外AI生产也并不遵循这项,Ares已允许设定AI是否可以越过BuildLimit生产,详见说明书
对平民建筑(特指Insignificant=yes的)使用无法正常生效。此外AI生产也并不遵循这项,Ares已允许设定AI是否可以越过BuildLimit生产,详见说明书


===BuildupSound===
BuildupSound =


填Sound.ini中定义的声音名。这个代码指定拔起播放建造动画时播放的声音
填Sound.ini中定义的声音名。这个代码指定拔起播放建造动画时播放的声音


===BerserkFriendly===
BerserkFriendly =


是否不会被狂暴单位攻击,指被YR里精神突击车那种混乱弹头影响的单位,而非TS中Cyborg的发狂
是否不会被狂暴单位攻击,指被YR里精神突击车那种混乱弹头影响的单位,而非TS中Cyborg的发狂


===BarrelAnimIsVoxel===
BarrelAnimIsVoxel =
 
炮管图像是否为VXL,用于开启[BuildingType] -> VoxelBarrelFile=调用炮管图像
 
这会强制炮塔图像为SHP,但是在原版中这必须与[BuildingType] -> TurretAnimIsVoxel=yes共同使用
 
于是这就造成一种荒诞的情况:由于两个语句的共同作用[BuildingType] -> TurretAnim=无法使用任何图像文件,游戏只会绘制一个由[BuildingType] -> VoxelBarrelFile=定义的炮管
 
从Ares2.0开始这一问题得到解决,该语句得以允许在[BuildingType] -> TurretAnimIsVoxel=no的情况下使用,也就是可以正常使用一个SHP炮塔与一个VXL炮管了


炮管图像是否为VXL,用于开启VoxelBarrelFile
注:如果[Buildingtype] -> TurretAnim=的图像与建筑主体符合默认命名规则(XXX,XXXTUR)那么[BuildingType] -> TurretAnimIsVoxel=yes下可以无视[BuildingType] -> BarrelAnimIsVoxel=no绘制VXL炮管


===BarrelStartPitch===
BarrelStartPitch =


炮管的初始俯仰角度,RA2下疑似废的彻底
炮管的初始俯仰角度,RA2下疑似废的彻底
第355行: 第399行:
以下4句用于原版巨炮炮管伸缩,需要TurretRecoil开启
以下4句用于原版巨炮炮管伸缩,需要TurretRecoil开启


===BarrelTravel===
BarrelTravel =


该建筑炮管可偏移的像素值,默认 2
该建筑炮管可偏移的像素值,默认 2


===BarrelCompressFrames===
BarrelCompressFrames =


该建筑炮塔恢复所需要的帧数,默认 1
该建筑炮塔恢复所需要的帧数,默认 1


===BarrelHoldFrames===
BarrelHoldFrames =


该建筑炮管保持在受后坐力位置显示的帧数,默认 1
该建筑炮管保持在受后坐力位置显示的帧数,默认 1


===BarrelRecoverFrames===
BarrelRecoverFrames =


该建筑炮管恢复所需的帧数,默认 1
该建筑炮管恢复所需的帧数,默认 1


===BuildingsCostBonus===
BuildingsCostBonus =


普通建筑建造价格为原来多少倍
普通建筑建造价格为原来多少倍


-C-


 
CloseRange =
==C==
 
===CloseRange===


填yes或no。指定该单位是否使用近战武器(狂兽人),帮助AI判定选择目标的范围
填yes或no。指定该单位是否使用近战武器(狂兽人),帮助AI判定选择目标的范围


===C4===
C4 =


填yes或no。这个代码指定该步兵是否拥有C4炸弹
该步兵是否可以安装C4炸弹


注意:当为yes时,不管是主副武是否可以对建筑物,对付建筑物的武器都会被C4代替,除非攻击目标有CanC4=no的设定
注意:当为yes时,不管是主副武是否可以对建筑物,对付建筑物的武器都会被C4代替,除非攻击目标有CanC4=no的设定
第395行: 第437行:
如果光标为Sabotage,那么如果武器Versus=1%就会强行切换到另一个武器
如果光标为Sabotage,那么如果武器Versus=1%就会强行切换到另一个武器


C4=no且Loco非Walk的Infantry在水上停下时会直接死亡并留下空气墙
此外还会导致该步兵在被建筑攻击时强制不会主动反击
 
若C4=no且Loco非Walk的Infantry在水上停下时会直接死亡并留下空气墙


如果是军医类型的步兵使用负伤害治疗武器那么允许原本的禁止光标变得Ctrl下可以强制Attack
如果是军医类型的步兵使用负伤害治疗武器那么允许原本的禁止光标变得Ctrl下可以强制Attack


===CanBeach===
CanBeach =


填yes或no。这个代码指定该海军单位能否在沙滩上(接近陆地)的地方运行,同时还要有MovementRestrictedTo=Water这一项设定。但实际效果不怎么样,还不如改成两栖的,寻路智障
载具(应为海军能否在沙滩上(交界的海岸移动,同时还要有MovementRestrictedTo=Water这一项设定。但实际效果不怎么样,还不如改成两栖的,寻路智障


===CanBeOccupied===
CanBeOccupied =


填yes或no。这个代码指定建筑单位是否可以被进驻
填yes或no。这个代码指定建筑单位是否可以被进驻
第411行: 第455行:
盟军占领后使用Primary=的武器,苏军占领后使用Secondary=的武器
盟军占领后使用Primary=的武器,苏军占领后使用Secondary=的武器


这个建筑Buildup结束后就会改变所属为中立
这个建筑拔起结束后就会改变所属为中立


并且如果你真的有给这个建筑写Buildup的话会被中立直接卖掉
并且如果你真的有给这个建筑写[BuildingTypeArt] -> Buildup=的话会被中立直接卖掉


RA2下一种创建经验包的方法就是与Buildup=none及MaxOccupants=0禁用进驻连用
RA2下一种创建经验包的方法就是与[BuildingTypeArt] -> Buildup=none及[BuildingType] -> MaxNumberOccupants=0禁用进驻连用


YR为苏军NABNKR额外判定了是否拥有TechLevel=-1再作所属转换
YR为苏军NABNKR额外判定了是否拥有TechLevel=-1再作所属转换
第427行: 第471行:
但同样有所属造出来而无驻军的苏军碉堡(TechLevel>=0)也是如此,Ares的巷战相关拓展允许无人的碉堡允许敌方步兵驻军并转移所属方,详见说明书
但同样有所属造出来而无驻军的苏军碉堡(TechLevel>=0)也是如此,Ares的巷战相关拓展允许无人的碉堡允许敌方步兵驻军并转移所属方,详见说明书


===CanOccupyFire===
CanOccupyFire =


该建筑被驻军后驻军单位能否向外开火,同时使射程为全局<code>[CombatDamage] -> OccupyWeaponRange=</code>值+1
YR新增,该建筑被驻军后驻军单位能否向外开火,即便no掉也无法复原为RA2驻军武器规则,驻军建筑只是变成无论是否有驻军单位都只有攻击指针但实际无法开火


===CanC4===
CanC4 =


填yes或no。这个代码指定该单位是否能被有C4=yes的步兵炸毁。默认值是yes
填yes或no。这个代码指定该单位是否能被有C4=yes的步兵炸毁。默认值是yes
第437行: 第481行:
这句为no的建筑将无论如何至少受到1的伤害,LaserFence无视该效果可以放心用
这句为no的建筑将无论如何至少受到1的伤害,LaserFence无视该效果可以放心用


这也导致Damage<0或弹头比率<0的弹头在打到该建筑时会取绝对值造成伤害
这也导致Damage*Versus<0的弹头在打到该建筑时强制变为+1点,Phobos已允许在建筑上禁用这一规则


这就是维修圈会把油桶和弹药箱修爆炸的根源所在……
这就是维修圈会把油桶和弹药箱修爆炸的根源所在……
第445行: 第489行:
原版下你也可以使用ResourceGatherer和ResourceDestination连用来禁止被空袭
原版下你也可以使用ResourceGatherer和ResourceDestination连用来禁止被空袭


===CanDisguise===
CanDisguise =


填yes或no。这个代码指定该单位是否可以伪装而敌人无法发觉(狗除外),用在间谍和幻影坦克上
填yes或no。这个代码指定该单位是否可以伪装而敌人无法发觉(狗除外),用在间谍和幻影坦克上


===CanPassiveAquire===
CanPassiveAquire =


填yes或no。这个代码指定该单位是否能够自动攻击目标。默认yes
填yes或no。这个代码指定该单位是否能够自动攻击目标。默认yes
第461行: 第505行:
例如防空车总是被伞兵机之类的吸引走,维修车总是会去追伤残友军
例如防空车总是被伞兵机之类的吸引走,维修车总是会去追伤残友军


===CanApproachTarget===
CanApproachTarget =


填yes或no。该单位是否停留在某地时追向接近的敌方单位进行攻击,幻影坦克原版为no,以防止它们在警戒模式下朝目标移动,否则会因为伪装消失而被攻击
填yes或no。该单位是否停留在某地时追向接近的敌方单位进行攻击,幻影坦克原版为no,以防止它们在警戒模式下朝目标移动,否则会因为伪装消失而被攻击
第469行: 第513行:
如果no掉那么它们只会在被空军攻击时才会追着打
如果no掉那么它们只会在被空军攻击时才会追着打


===CanRecalcApproachTarget===
CanRecalcApproachTarget =


填yes或no。这个代码指定带有CanApproachTarget=yes代码的载具是否能重新计算敌人所在路径点。实际上在游戏中,人类玩家选择了一个攻击对象,游戏并不是攻击该对象而是该对象所在的路径点,然后给击中的目标一些伤害
填yes或no。这个代码指定带有CanApproachTarget=yes代码的载具是否能重新计算敌目标,默认yes


当然要选择yes,否则该载具就会变的极难操纵。其实就是是否会着打最后一个攻目标
若为否则只要选定了一个目标就会一直追击


===CanRetaliate===
CanRetaliate =


填yes或no。这个代码指定该单位是否能在遭到敌方攻击时进行反击
填yes或no。这个代码指定该单位是否能在遭到敌方攻击时进行反击


===Capturable===
对于隐形单位这可能导致它们在目标过远时会显形一次


填yes或no。这个代码指定建筑是否能被工程师占领
除了CanRetaliate=no外下列情况的单位不会反击


===CaptureEvaEvent===
1. 单位没武器能拿来反击


指定这个建筑被工程师占领后播放的EVA
2. 拥有C4=yes的步兵


===Carryall===
3. 奴隶矿场没爆时的奴隶矿工


此战机是否可以吊运载具,一定是运动模式为Fly({4A582746-9839-11d1-B709-00A024DDAFD1})的战机。不要是直升机(就是重工造出的实际是会飞的载具那种)
4. 已达心控心灵控制者


同时强落地踢出(放下)载员,并且把载员图像绘制到自己身上(无论载具载员还是步兵载员),放下载员时把自己的ROT传给载员(被吊运的载具实际上是战机载员)
5. 人类玩家控制的、当前已有目标单位


并且载员释放后会显得下沉了一部分,且光标悬浮在自己元格会变成允许移动,停止移动时炮塔还会转向一定角度再自动回正,Ares已修复部分问题
6. 盟友属攻击的


被吊运载具的OpenTopped可以正常工作。此外该战机降落时可以播放一个动画,详见Locomotor词条下的注解
7. 人类玩家控制的、部署为Artillary=yes建筑的载具


===Category===
8. 人类玩家拥有的、全局[General] -> PlayerReturnFire=no时、mission不为[Guard|Area Guard|Patrol]之一的单位
 
9. 电脑玩家拥有的、处于[TeamType] -> Suicide=yes的小队中的小队成员
 
10. 电脑玩家拥有的、当前已有目标的单位,且该目标在修建威胁评估节点后威胁值不发生变化
 
11. 所拥有的武器的弹头对目标对象的Versus<=0.01的单位(直接进行浮点运算)
 
Capturable =
 
填yes或no。这个代码指定建筑是否能被工程师占领
 
CaptureEvaEvent =
 
YR新增,指定这个建筑被工程师占领后播放的EVA
 
Carryall =
 
此战机是否可以吊运载具,一定是运动模式为Fly({4A582746-9839-11d1-B709-00A024DDAFD1})的战机。不要是直升机(就是重工造出的实际上是会飞的载具的那种)
 
同时强制落地踢出(放下)载员,并且把载员的图像绘制到自己身上(无论载具载员还是步兵载员),放下载员时把自己的ROT传给载员(被吊运的载具实际上是战机的载员)
 
并且载员被释放后会显得下沉了一部分,且光标悬浮在自己所在单元格会变成允许移动,停止移动时炮塔还会转向一定角度再自动回正,Ares已修复部分问题
 
被吊运载具的OpenTopped可以正常工作。此外该战机降落时可以播放一个动画,详见Locomotor词条下的注解
 
Category =


填下表中的相应项。这个代码指定单位的分类,用来给AI判断的(实际上然并卵)
填下表中的相应项。这个代码指定单位的分类,用来给AI判断的(实际上然并卵)


----
<nowiki>--------------------------------------------------</nowiki>


AirLift 运输机,用来运输步兵的飞机
AirLift 运输机,用来运输步兵的飞机
第523行: 第593行:
Soldier 步兵,所有步兵单位都用这个分类
Soldier 步兵,所有步兵单位都用这个分类


----
<nowiki>--------------------------------------------------</nowiki>


===ChargedAnimTime===
ChargedAnimTime =


填数字。这个代码指定超级武器建筑在超级武器启动前多长时间播放启动动画,单位为分钟,动画由Art.ini中的SuperAnimThree=来控制。该值应该小于相应超级武器的RechargeTime=值
填数字。这个代码指定建筑在[BuildingType] -> SuperWeapon=所填写的超级武器启动前多长时间播放启动动画,单位为分钟,动画由Art.ini中的[BuildingTypeArt] -> SuperAnimThree=来控制。该值应该小于相应超级武器的[SuperWeaponType] -> RechargeTime=值不然直接进待发射阶段


===ChronoInSound===
ChronoInSound =


填Sound.ini中定义的声音名。这个代码指定单位超时空运动开始的声效
填Sound.ini中定义的声音名。这个代码指定单位超时空运动开始的声效


===ChronoOutSound===
ChronoOutSound =


填Sound.ini中定义的声音名。这个代码指定单位超时空运动结束的声效
填Sound.ini中定义的声音名。这个代码指定单位超时空运动结束的声效


===Civilian===
Civilian =


填yes或no。这个代码指定单位是否是平民单位平民单位也就是大家说的中立单位。受地图触发“平民疏散” 事件影响
步兵是否是平民,受地图触发“平民疏散”效果影响


===ClearAllWeapons===
ClearAllWeapons =


填yes或no。该物体的武器均设为无法执行攻击命令
是否将单位所有开火用武器全部清空,包括(Elite)Primary/Secondary/Weapon1/Weapon2,但该逻辑不影响承载单位挂载武器的加载


IFV逻辑可以被载员给予武器,但是无法实际开火,也无法正常触发DeployToFire,只是有了攻击指针和红色瞄准线
IFV逻辑可以被载员给予武器,但是无法实际开火,也无法正常触发DeployToFire,只是有了攻击指针和红色瞄准线,哪怕是子机发射器类虚拟武器
 
示例:RA2S1中使用该逻辑清除了五角大楼和胜利纪念碑的武器


限制:无法清除YR下由驻军单位引入的驻军武器,另外PhobosBuild37以后只要显示攻击指针立即崩溃
限制:无法清除YR下由驻军单位引入的驻军武器,另外PhobosBuild37以后只要显示攻击指针立即崩溃


===ClickRepairable===
ClickRepairable =


填yes或no。这个代码指定建筑是否可以使用游戏建造栏的“维修小扳手”工具来维修
填yes或no。这个代码指定建筑是否可以使用游戏建造栏的“维修小扳手”工具来维修
第557行: 第629行:
如果不想这样,可以在建筑代码中加入Repairable=no。Ares已允许单独设置能否使用工程师进入维修,详见说明书
如果不想这样,可以在建筑代码中加入Repairable=no。Ares已允许单独设置能否使用工程师进入维修,详见说明书


===Cloakable===
Cloakable =


填yes或no。这个代码指定该单位是否可以隐形。注意:如果要给高于地面的悬浮单位和空军单位隐形,不能直接使用这个代码
填yes或no。这个代码指定该单位是否可以隐形。注意:如果要给高于地面的悬浮单位和空军单位隐形,不能直接使用这个代码
第563行: 第635行:
不过隐身状态会导致程序中一些判定指针无效,例如隐形的航母发射子机子机会认为母舰不存在而坠毁,来自导弹类子机的击杀也无法为母舰提供经验,Ares已解决子机认为隐形母舰丢失问题
不过隐身状态会导致程序中一些判定指针无效,例如隐形的航母发射子机子机会认为母舰不存在而坠毁,来自导弹类子机的击杀也无法为母舰提供经验,Ares已解决子机认为隐形母舰丢失问题


只能在VeteranAbilities=或EliteAbilities=加入Cloakable这个升级效果,不过只能在升级后才能隐形,Ares已解除该限制,允许定义能否隐形的判定高度,并将其默认为悬浮单位所用HoverHeight=的值,详见说明书
只能在VeteranAbilities=或EliteAbilities=加入CLOAK这个升级效果,不过只能在升级后才能隐形,Ares已解除该限制,允许定义能否隐形的判定高度,并将其默认为悬浮单位所用HoverHeight=的值,详见说明书


此外Ares还分离了部署状态、断电状态的隐形效果,详见Ares说明书
此外Ares还分离了部署状态、断电状态的隐形效果,详见Ares说明书


===CloakingSpeed===
注意:空中步兵绘制点状影子不检查单位是否处于隐形状态,该问题已在PhobosBuild49中修复
 
CloakingSpeed =


填1-10的数值。这个代码指定该单位的隐形速度(即出厂时的隐形速度和被发现后的再次隐形速度),要配合Cloakable=yes使用
填1-10的数值。这个代码指定该单位的隐形速度(即出厂时的隐形速度和被发现后的再次隐形速度),要配合Cloakable=yes使用
第573行: 第647行:
实际上是每一个隐形阶段所需的时长,越小越快,总时长由本句与全局CloakingStages共同决定,Ares已允许单位微观定义CloakingStages
实际上是每一个隐形阶段所需的时长,越小越快,总时长由本句与全局CloakingStages共同决定,Ares已允许单位微观定义CloakingStages


===CloakGenerator===
CloakGenerator =


填yes或no。这个代码指定该建筑是否可以将自身周围的已方单位全部隐形
填yes或no。这个代码指定该建筑是否可以将自身周围的已方单位全部隐形


注意:YR下只有高度0的单位才可以受到影响,也就是Locomotor为Hover这种不贴地的悬浮载具不受影响,Ares已允许定义高度判定值,并将默认值设为<code>[General] -> HoverHeight=</code>的值,因此Hover载具只要装上Ares就可以正常得到效果,如果希望还原原版的效果则使用Ares提供的语句手动设为0,详见说明书
注意:YR下只有高度0的单位才可以受到影响,也就是Locomotor为Hover这种不贴地的悬浮载具不受影响,Ares已允许定义高度判定值,并将默认值设为[General] -> HoverHeight=的值,因此Hover载具只要装上Ares就可以正常得到效果,如果希望还原原版的效果则使用Ares提供的语句手动设为0,详见说明书


===CloakRadiusInCells===
CloakRadiusInCells =


填数字。这个代码指定建筑隐藏周围已方单位的隐藏半径,要和CloakGenerator=yes配合使用。由于WW的诡异算法,此处0会没有范围,但是false却恰恰相反
填数字。这个代码指定建筑隐藏周围已方单位的隐藏半径,要和CloakGenerator=yes配合使用。由于WW的诡异算法,此处0会没有范围,但是false却恰恰相反


===CloakStop===
CloakStop =


填yes或no。停隐形,TS残留,Ares已复,详见Ares说明书
隐形效果是否仅在静时生效,原版实现方式有问题,移并不会打断隐形,Ares已复,详说明书


===Cloning===
会被[TechnoType] -> BalloonHover=yes或连用[TechnoType] -> DeployToLand=yes与[VehicleType] -> IsSimpleDeployer=yes实现的悬停打断


填yes或no。这个代指定建筑否为复制中心。克隆中心会把所有从兵营出厂的单位再免费赠与个同样的,也同样支持CreateUnitSound设定,仅克隆Factory=InfantryType的也就是兵营建筑生产的,Ares添加了用于克隆载具的同类功能,详见说明书
WW从TS里就专门设计了一条硬编效果用于AI的单位时只要隐形就会立即散开尝试移动从而解除隐形


===ConcentricRadialIndicator===
Cloning =
 
填yes或no。这个代码指定建筑是否为复制中心。克隆中心会把所有从兵营出厂的单位再免费赠与一个同样的,Ares添加了用于克隆载具的同类功能,详见说明书
 
原本在YR1.001下针对[BuildingType] -> Factory=AircraftType的建筑禁用集结点的效果会被该语句覆盖
 
RA2中可以进入步兵返还资金,YR中这个功能被拆分出去,需要使用[BuildingType] -> Grinding=yes启动回收
 
当复制中心启用回收后无论[BuildingType] -> InfantryAbsorb=为何值都会允许步兵类进入,就像RA2中那样
 
但若有[BuildingType] -> InfantryAbsorb=yes那么会遵守[BuildingType] -> UnitAbsorb=的设定,为no时选中载具类移动到该建筑上将会显示Select而不是NoEnter,就像RA2中那样
 
由于Absorb两句默认值均为no,所以相当于:若Cloning与Grinding合用则允许步兵类进入,若InfantryAbsorb为no或UnitAbsorb为yes则允许载具进入
 
ConcentricRadialIndicator =


填yes或no。这个代码指定建筑是否拥有“心灵感应装置”(苏军的)那样的雷达扫描效果,但该建筑必须要有HasRadialIndicator=yes的设定
填yes或no。这个代码指定建筑是否拥有“心灵感应装置”(苏军的)那样的雷达扫描效果,但该建筑必须要有HasRadialIndicator=yes的设定


===ConsideredAircraft===
ConsideredAircraft =


填yes或no。基洛夫空艇和火箭飞行兵这种实际上是载具的飞行单位使用,是否被视为常规空军单位
填yes或no。基洛夫空艇和火箭飞行兵这种实际上是载具的飞行单位使用,是否被视为常规空军单位,Aircraft默认yes


和Organic一样用于一些判定
和Organic一样用于一些判定
第603行: 第691行:
一些旧教程称控制是否从天窗飞出,实际与这句无关,检查的是JumpJet与BalloonHover是否拥有至少一条
一些旧教程称控制是否从天窗飞出,实际与这句无关,检查的是JumpJet与BalloonHover是否拥有至少一条


===ConstructionYard===
ConstructionYard =


填yes或no。这个代码是基地建筑专用的,变卖后不会变回载具,让AI判定该建筑为基地
填yes或no。这个代码是基地建筑专用的,变卖后不会变回载具,让AI判定该建筑为基地
第613行: 第701行:
然后AI就会把自己所有可操纵的单位全部集结过去,哪怕是一些非战斗单位,例如矿车。Phobos已对此行为允许【全局】层面关闭
然后AI就会把自己所有可操纵的单位全部集结过去,哪怕是一些非战斗单位,例如矿车。Phobos已对此行为允许【全局】层面关闭


===Cost===
Cost =


填数值。这个代码指定该单位的价格。每个可以建造的单位都应该设定其价格
填数值。这个代码指定该单位的价格。每个可以建造的单位都应该设定其价格
第621行: 第709行:
原版下如果Cost=0那么初始单位不会生成,也就是说你可以利用这个特性在无需Ares修复的情况下实现0初始单位
原版下如果Cost=0那么初始单位不会生成,也就是说你可以利用这个特性在无需Ares修复的情况下实现0初始单位


===Crashable===
Crashable =
 
填yes或no。这个代码指定此Jumpjet单位在空中被摧毁后,是否坠落到地面,否则凌空爆炸。不要给HoverLocomotor的单位使用否则被摧毁卡最后一滴血死不了


填yes或no。这个代码指定此Jumpjet单位在空中被摧毁后,否坠落到地面。不要给HoverLocomotor单位使用否则被摧毁卡最后一滴血死
只要该值设为yes那么即便地面爆炸会让乘员逃生


Ares已拓展至Aircraft,并允许Aircraft坠落的情况下是否旋转,Phobos已允许Jumpjet设定坠落的情况下是否旋转,详见说明书
Ares已拓展至Aircraft,并允许Aircraft坠落的情况下是否旋转,Phobos已允许Jumpjet设定坠落的情况下是否旋转,详见说明书


===CrashingSound===
目前Ares引擎下母舰被毁时子机无视[TechnoType] -> Crashable=no强制可以坠毁
 
CrashingSound =


填Sound.ini中定义的声音名。这个代码指定空军单位被摧毁坠落时爆炸的声效。要配合<code>[TechnoType] -> Crashable=yes</code>使用
填Sound.ini中定义的声音名。这个代码指定空军单位被摧毁坠落时爆炸的声效。要配合[TechnoType] -> Crashable=yes使用


===CarriesCrate===
CarriesCrate =


填yes或no。这个代码指定载具被摧毁后是否会在附近生成一个箱子,例如原版[TRUCKB]就是
填yes或no。这个代码指定载具被摧毁后是否会在附近生成一个箱子,例如原版[TRUCKB]就是


箱子的内容在遭遇战中是随机的,在单人任务地图中则是全局<code>[CrateRules] -> WoodCrate=</code>所指定的类型(但并不全都是它所指定的类型)
注意:如果想要让建筑物拥有这个效果要换成[BuildingType] -> CrateBeneath=yes


注意:如果想要让建筑物拥有这个效果要换成CrateBeneath=yes
对于[VehicleType] -> CarriesCrate=yes且[TechnoType] -> IsTrain=no的情况由地图[Basic] -> TruckCrate=决定是否掉落


对于<code>[VehicleType] -> CarriesCrate=yes</code><code>[TechnoType] -> IsTrain=no</code>的情况由地图<code>[Basic] -> TruckCrate=</code>决定是否掉落
对于[VehicleType] -> CarriesCrate=yes且[TechnoType] -> IsTrain=yes的情况由地图[Basic] -> TrainCrate=决定是否掉落


对于<code>[VehicleType] -> CarriesCrate=yes</code>且<code>[TechnoType] -> IsTrain=yes</code>的情况由地图<code>[Basic] -> TrainCrate=</code>决定是否掉落
该逻辑需要当前游戏开启箱子掉落,对于单人任务地图而言需要rules(md).ini中有[MultiplayerDialogSettings] -> Crates=yes


===CrateBeneath===
CrateBeneath =


填yes或no。这个代码指定建筑被摧毁时是否在附近生成箱子。箱子的内容在没有专门设定下是随机的
填yes或no。这个代码指定建筑被摧毁时是否在附近生成箱子。箱子的内容在没有专门设定下是随机的


===CrateBeneathIsMoney===
CrateBeneathIsMoney =


填yes或no。这个代码指定建筑摧毁后生成的箱子的内容是“获得金钱”。要配合<code>[BuildingType] -> CrateBeneath=yes</code>使用
填yes或no。这个代码指定建筑摧毁后生成的箱子的内容是“获得金钱”。要配合[BuildingType] -> CrateBeneath=yes使用


===CrateGoodie===
CrateGoodie =


填yes或no。这个代码指定载具单位能否从箱子中获得,获得该载具的机率要看使用这个代码的载具数量
填yes或no。这个代码指定载具单位能否从箱子中获得,获得该载具的机率要看使用这个代码的载具数量


===CreateSound===
CreateSound =


填Sound.ini中定义的声音名。这个代码指定该单位被建造时的声音
填Sound.ini中定义的声音名。这个代码指定该单位被建造时的声音


===CreateUnitSound===
CreateUnitSound =


填Sound.ini中定义的声音名。这个代码指定单位生成时Factory建筑(包括克隆工厂)播放的声音。每种类型单位出厂时工厂都可以播放不同的声音:默认全局CreateInfantrySound=,CreateUnitSound=,CreateAircraftSound=分别对应步兵、载具单位(包括海军单位)、战机
填Sound.ini中定义的声音名。这个代码指定单位生成时Factory建筑(包括克隆工厂)播放的声音。每种类型单位出厂时工厂都可以播放不同的声音:默认全局CreateInfantrySound=,CreateUnitSound=,CreateAircraftSound=分别对应步兵、载具单位(包括海军单位)、战机


===Crewed===
Crewed =


填yes或no。当此单位或建筑被摧毁后,是否有步兵从里面逃出(逃出的可能性在rules的开头有控制)
填yes或no。当此单位或建筑被摧毁后,是否有步兵从里面逃出(逃出的可能性在rules的开头有控制)
第671行: 第763行:
如果物体被自己的Suicide=yes武器摧毁,强制没有幸存者,Phobos已添加新语句解除,详见说明书
如果物体被自己的Suicide=yes武器摧毁,强制没有幸存者,Phobos已添加新语句解除,详见说明书


===Crushable===
Crushable =


填yes或no。这个代码指定步兵单位是否能够被载具单位碾压。同样适用于建筑单位,但该建筑要为围墙类建筑(实际上是覆盖物)
填yes或no。这个代码指定物体是否能够被载具单位碾压。


===DeployedCrushable===
适用于包括但不限于步兵、载具、建筑、围墙、地形对象的一切ObjectType,但工作方式略有不同


填写no,则步兵在部署状态下不被碾压(重装大兵)
对于建筑类若非[BuildingTypeArt] -> Foundation=1x1只是单纯穿过,就像Ares引入的[BuildingType] -> IsPassabe=yes那样


该语句在Crushable之工作也就是你不能反过来让重装大兵只有部署时可以被碾压而站着时不能
对于地形对象,碾压屏幕不会立即刷新,只有移动视角后原地形对象的图像才会消失


===Crusher===
Crusher =


填yes或no。这个代码指定载具单位是否能够碾压步兵和可碾压围墙,并且通过碾压也可以正常升级,当然需要Trainable语句上没有设为禁止升级
填yes或no。这个代码指定载具单位是否能够碾压步兵和可碾压围墙,并且没有[TechnoType] -> Trainable=no的情况下通过碾压也可以正常升级


===CrushSound===
这也会影响载具类单位的默认SpeedType,详见[TechnoType] -> Locomotor=语句注解
 
CrushSound =


填Sound.ini中定义的声音名。这个代码指定步兵(或围墙类建筑)被碾压的声效。要和Crushable=yes配合使用
填Sound.ini中定义的声音名。这个代码指定步兵(或围墙类建筑)被碾压的声效。要和Crushable=yes配合使用


===Cyborg===
Cyborg =


步兵是否为半机械人,允许受EMP效果影响但依然可以被铁幕秒杀
步兵是否为半机械人,允许受EMP效果影响但依然可以被铁幕秒杀


每次攻击该步兵至多打到红血,然后进入伤残状态转为匍匐图像
每次攻击该步兵至多打到红血,然后进入伤残状态转为匍匐图像
第697行: 第791行:
在该步兵不匍匐的情况下常规伤害无法将其击杀,可用Fearless禁用匍匐转换
在该步兵不匍匐的情况下常规伤害无法将其击杀,可用Fearless禁用匍匐转换


损坏/破坏一个机器人会播放<code>[General] -> InfantryExplode=</code>的动画
损坏/破坏一个机器人会播放[General] -> InfantryExplode=的动画


如果<code>[CombatDamage] -> BerzerkAllowed=yes</code>则会发狂(仅限TiberiumSun)
如果[CombatDamage] -> BerzerkAllowed=yes则会发狂(仅限TiberiumSun)


部署和取消部署会导致取消机器人的爬行(伤残)状态,因此部署和半机械人无法很好的配合
部署和取消部署会导致取消机器人的爬行(伤残)状态,因此部署和半机械人无法很好的配合
第705行: 第799行:
进入再退出运输载具也会取消半机械人的爬行(伤残)状态
进入再退出运输载具也会取消半机械人的爬行(伤残)状态


-D-


DamageSelf =


==D==
填写yes。允许该单位发射的武器伤害自身。由于开火不伤自身实际上是找格子里的第一个对象,所以空中单位始终可以伤害
 
===DamageSelf===
 
填写yes。允许该单位发射的武器伤害自身


原本是YR中为了处理核弹井砸自己不掉血而添加的,并且并不影响非常规杀伤的其他效果,例如AresAE始终是允许给自己加的
原本是YR中为了处理核弹井砸自己不掉血而添加的,并且并不影响非常规杀伤的其他效果,例如AresAE始终是允许给自己加的
第717行: 第809行:
不过这个语句作为单位语句自然对此单位的所有武器都生效,如果你要单个武器进行设置详见Phobos添加的弹头自定义是否杀伤开火者效果
不过这个语句作为单位语句自然对此单位的所有武器都生效,如果你要单个武器进行设置详见Phobos添加的弹头自定义是否杀伤开火者效果


===Doggie===
Doggie =


是否为泰伯利亚恶魔,TS残留无效,Ares已还原相关逻辑,详见说明书
该步兵是否为泰伯利亚恶魔,TS残留无效,Ares已还原相关逻辑,详见说明书


===DontScore===
DontScore =


填写yes。该单位不计入杀伤统计和单位经验
填写yes。该单位不计入杀伤统计和单位经验


实际上是对 <code><nowiki>[ObjectType] -> Insignificant=</nowiki></code> 语句效果的分离
实际上是对[ObjectType] -> Insignificant=语句效果的分离


但引入了一个新Bug:如果载具使用会导致程序始终认为载具依然存活,即所属方永不判负,进而导致游戏无法结束,同时也会导致 9 号触发条件永远无法被视为满足
如果载具使用会导致程序始终认为载具依然存活,即所属方永不判负,进而导致游戏无法结束,Ares已修复


===DoubleOwned===
还会导致 9 号触发条件永远无法被视为满足
 
副作用是这样的对象无法满足先决条件
 
DoubleOwned =


用于秘密科技实验室系列逻辑,新增于YR但没有做完,Ares重做的秘密科技实验室系统中有同类逻辑并更加方便,详见说明书
用于秘密科技实验室系列逻辑,新增于YR但没有做完,Ares重做的秘密科技实验室系统中有同类逻辑并更加方便,详见说明书


===Drainable===
Drainable =


填写yes。则该建筑可以被飞碟吸
填写yes。则该建筑可以被飞碟吸


===DeployToLand===
DamageParticleSystems =


写yes让悬停在空中直升机播放螺旋桨动画
粒子系统名称这个代码指定所有单位黄血时产生粒子系统


和IsSimpleDeployer=yes连用可让Jumpjet单位悬停不落地(与BalloonHover等效)
只能使用Smoke和Spark类的粒子系统
 
不同的是BalloonHover会打断CloakStop,并且可以悬停在建筑上
 
当然也可以正常与BalloonHover一句合用
 
===DamageParticleSystems===
 
填粒子系统名称。这个代码指定所有单位黄血时产生的粒子系统
 
只能使用Smoke和Spark类的粒子系统


只有单位高于地平面才会有粒子系统
只有单位高于地平面才会有粒子系统
第765行: 第851行:
Spark:
Spark:


根据
根据[General] -> ConditionYellowSparkingProbability=的值


<code>[General] -> ConditionYellowSparkingProbability=</code>的值
以及[General] -> ConditionRedSparkingProbability=的值
 
 
<code>[General] -> ConditionRedSparkingProbability=</code>的值


决定创建几率,步兵需要拥有Cyborg=yes才能用Spark类粒子,Ares已允许使用新的语句分离控制,详见说明书
决定创建几率,步兵需要拥有Cyborg=yes才能用Spark类粒子,Ares已允许使用新的语句分离控制,详见说明书


达到<code>[ParticleSystemType] -> Lifetime=</code>后删除
达到[ParticleSystemType] -> Lifetime=后删除


另有规则:当对象血量低于50%或<code>[AudioVisual] -> ConditionRed=</code>的比率时将创建Smoke粒子系统
另有规则:当对象血量低于50%或[AudioVisual] -> ConditionRed=的比率时将创建Smoke粒子系统


与Spark不同,Smoke被硬编码为该阈值而不读取<code>[AudioVisual] -> ConditionYellow=</code>的设定
与Spark不同,Smoke被硬编码为该阈值而不读取[AudioVisual] -> ConditionYellow=的设定


===DamageReducesReadiness===
DamageReducesReadiness =


受伤掉弹药,这个代码指定单位受到伤害时是否会减少弹药
受伤掉弹药,这个代码指定单位受到伤害时是否会减少弹药
第793行: 第875行:
也就是填负数会补弹药,但是不检查单位Ammo值,也就是会超出Ammo继续装……
也就是填负数会补弹药,但是不检查单位Ammo值,也就是会超出Ammo继续装……


===DamageSound===
DamageSound =


填Sound.ini中定义的声音名。这个代码指定单位被攻击时被攻击方播放的损害声效
填Sound.ini中定义的声音名。这个代码指定单位被攻击时被攻击方播放的损害声效


===DamageSmokeOffset===
DamageSmokeOffset =


填X,Y,Z的数值。这个代码指定所有单位、建筑单位临近毁坏时冒烟的位置。默认为0,0,0
填X,Y,Z的数值。这个代码指定所有单位、建筑单位临近毁坏时冒烟的位置。默认为0,0,0


===DamSmkOffScrnRel===
在血量达到固定值50%与[AudioVisual] -> ConditionRed=时创建,使用smoke类粒子系统
 
DamSmkOffScrnRel =


填X,Y,Z的数值。这个代码指定所有单位、建筑单位临近破坏时冒烟的位置,不过这个位置冒的烟比DamageSmokeOffset=冒的烟更难观察到。默认为0,0,0
填X,Y,Z的数值。这个代码指定所有单位、建筑单位临近破坏时冒烟的位置,不过这个位置冒的烟比DamageSmokeOffset=冒的烟更难观察到。默认为0,0,0


===DeaccelerationFactor===
DeaccelerationFactor =


填数值。这个代码指定单位接近攻击目标时减慢的速度的百分比,降低百分比是以该单位的Speed=的数值来作标准的
填数值。这个代码指定单位接近攻击目标时减慢的速度的百分比,降低百分比是以该单位的Speed=的数值来作标准的


===DeadBodies===
DeadBodies =


填动画列表,步兵死亡后的尸骨动画,列表内随机选取,不继承所属方,默认全局值,与下句同时生效
填动画列表,步兵死亡后的尸骨动画,列表内随机选取,不继承所属方,默认全局值,与下句同时生效


===DeathAnims===
DeathAnims =


填动画列表,列表序数与弹头InfDeath=的序号一一对应,与原版死亡方式的序号一一对应,你也可以凭借它在原版添加更多种死亡动画,最主要的是:它的列表是定义在死者单位上的,而非仅由杀伤来源控制
填动画列表,列表序数与弹头InfDeath=的序号一一对应,与原版死亡方式的序号一一对应,你也可以凭借它在原版添加更多种死亡动画,最主要的是:它的列表是定义在死者单位上的,而非仅由杀伤来源控制
第821行: 第905行:
其中dummy要自己弄个有效的空动画,否则会直接跳过。而Die1、Die2序列可以刷个同素材步兵再死一次来调用序列,原版0-10之后的同样使用与弹头InfDeath=值对应的规则
其中dummy要自己弄个有效的空动画,否则会直接跳过。而Die1、Die2序列可以刷个同素材步兵再死一次来调用序列,原版0-10之后的同样使用与弹头InfDeath=值对应的规则


不过【只有15个】有效,也就是InfDeath=0-14的范围,对应的如想完全应用起来你得用拓展引擎的弹头自定义死亡动画逻辑把原版的通用死亡动画全部弹头微观定义遍(一个简单的批量替换)来空出这14个位
不过【只有15个】有效,也就是InfDeath=0-14的范围,InfDeath=15强制使用空效,InfDeath>=16则始终播放第


在经过上述处理空出DeathAnims的可用空间后就可以借助这个实现在【单位上】自定义Die12345和WetDie12345678910X的效果,而不需要去复原原版未启用的Die3-Die5那套编码机制
在经过上述处理空出DeathAnims的可用空间后就可以借助这个实现在【单位上】自定义Die12345和WetDie12345678910X的效果,而不需要去复原原版未启用的Die3-Die5那套编码机制


使用规则见<code>[Warhead] -> InfDeath=</code>词条底端
使用规则见[Warhead] -> InfDeath=词条底端


通过这个语句创建的动画会使用死者的所属方,Ares允许动画上定义所属方的继承来源,详见Ares说明书
通过这个语句创建的动画会使用死者的所属方,Ares允许动画上定义所属方的继承来源,详见Ares说明书


===DeathWeapon===
DeathWeapon =


武器名。这个代码指定该单位被摧毁时使用的武器,默认Primary=指定的武器。需要配合Explodes=yes
死亡武器,当单位死亡且单位拥有[TechnoType] -> Explodes=yes或单位当前主武器(包括IFV的任何模式所对应唯一武器)上拥有[Weapon] -> Suicide=yes时会被引爆


对于处于空中的单位会爆两次,在空中被摧毁时先Explosioin并爆一次DeathWeapon,砸到地面再爆一次DeathWeapon
默认使用当前主武器([TechnoType] -> Primary=/IFV当前武器)主武器不存使用[CombatDamage] -> DeathWeapon=的武器


对于导弹类对象,其命中使用自己全局或Ares自定义导弹参数中所设定的弹头和武器,而被摧毁使用这里设定的死亡武器
对于导弹类对象,其命中仅会使用自己全局或Ares自定义导弹参数中所设定的弹头和武器,而被摧毁时才除此之外同时使用这里设定的死亡武器


===DeathWeaponDamageModifier===
事实上死亡武器也可以在[TechnoType] -> Locomotor=Jumpjet/Fly的单位从天上坠毁到地面时【额外】触发一次,其中使用Jumpjet的情况还要有[TechnoType] -> BalloonHover=yes,此时相当于把落地那次播放[TechnoType] -> Explosion=动画的行为换成引爆一次死亡武器


填数值。这个代码指定该单位DeathWeapon=武器增加或减少威力倍数
两种情况都要求载具上明确拥有[TechnoType] -> Crashable=yes,也就是说通过[Warhead] -> IsLocomotor=yes的弹头牵引[TechnoType] -> Crashable=no的载具逃课是不可行


===DebrisAnims===
当然由于JumpjetAircraft落地后会丝血保留始终不死所以并不会引爆


填动画名。这个代码指定该单位被摧毁时弹出的shp碎片列表,碎片用逗号隔开,默认<code>[General] -> MetallicDebris=</code>的列表
对于[TechnoType] -> Explodes=no但可以通过坠毁触发该武器的单位总是会在坠落到地面被摧毁时引爆一次死亡武器
 
对于[TechnoType] -> Explodes=yes且可以通过坠毁触发该武器的单位会在空中刚死就爆一次,概率性马上着陆时爆一次,如果落到大型建筑上还会多死几次而引入多次完整死亡爆炸,再在实际落地移除实体时额外引爆一次
 
在PhobosBuild12修复后[TechnoType] -> Explodes=yes只会空中死亡时爆一次,可坠毁额外触发该武器的单位落地时再爆一次
 
DeathWeaponDamageModifier =
 
填数值。这个代码指定该单位[TechnoType] -> DeathWeapon=的武器增加或减少威力的倍数
 
DebrisAnims =
 
填动画名。这个代码指定该单位被摧毁时弹出的shp碎片列表,碎片用逗号隔开,默认[General] -> MetallicDebris=的列表


需要配合MaxDebris=和MinDebris=两条语句
需要配合MaxDebris=和MinDebris=两条语句
第849行: 第945行:
温馨提示:WestWood在原版rules(md).ini中的Max/MinDebris有许多处使用了小写debris导致语句无效
温馨提示:WestWood在原版rules(md).ini中的Max/MinDebris有许多处使用了小写debris导致语句无效


===DebrisTypes===
DebrisTypes =


填动画名。这个代码指定该单位被摧毁时弹出的vxl碎片列表,碎片用逗号隔开
填动画名。这个代码指定该单位被摧毁时弹出的vxl碎片列表,碎片用逗号隔开
第857行: 第953行:
还需要在全局
还需要在全局


<code>[General] -> ExplosiveVoxelDebris=<List of VoxelAnims></code>
[General] -> ExplosiveVoxelDebris=<List of VoxelAnims>


<code>[General] -> TireVoxelDebris=<VoxelAnimType></code>
[General] -> TireVoxelDebris=<VoxelAnimType>


<code>[General] -> ScrapVoxelDebris=<VoxelAnimType></code>
[General] -> ScrapVoxelDebris=<VoxelAnimType>


后面写上来声明这是vxl残损爆出的碎片
后面写上来声明这是vxl残损爆出的碎片


===DebrisMaximums===
DebrisMaximums =
 
填数值。这个代码指定该单位被摧毁时弹出的vxl碎片的最大数量,和上条对应,分别用逗号隔开,超出上条数量的元素会被忽略


填数值。这个代码指定单位摧毁时弹出的vxl碎片的最大数量,和上条对应,分别用逗号隔开
在RA2/YR中逻辑已破坏,实际上并不能准确限制数量。Phobos在列表元素大于1的情况下可以正常予以限制


===DefaultToGuardArea===
DefaultToGuardArea =


填yes no。这个代码指定该单位是否自动进入区域警戒(Area Guard)状态,一旦有敌方进入警戒范围,该单位会自动追上前去迎敌
该单位是否自动进入区域警戒(Area Guard)状态,一旦有敌方进入警戒范围,该单位会自动追上前去迎敌


当区域警戒的目标为建筑(相当于单元格)的情况下程序会从[2*GuardRange与4096Leptons(16格)]这两个值中取更小的那个再*1.1来获取单位的警戒范围
当区域警戒的目标为建筑(相当于单元格)的情况下程序会从[2*GuardRange与4096Leptons(16格)]这两个值中取更小的那个再*1.1来获取单位的警戒范围
第879行: 第977行:
对于矿车(Harvester=yes)类载具其Area Guard状态的实际效果其实是会把这个矿车送去采矿
对于矿车(Harvester=yes)类载具其Area Guard状态的实际效果其实是会把这个矿车送去采矿


===Deployer===
Deployer =


填yes或no。这个代码指定步兵能否部署。部署的样子由Art.ini中该步兵的Sequence控制
步兵能否部署。部署的样子由Art.ini中该步兵的Sequence控制


===DeployFire===
DeployFire =


填yes或no。这个代码指定步兵部署后是否能够开火。要和Deployer=yes配合使用
该单位部署后是否能够开火


注意:它会覆盖整个武器选用优先级,例如YR中的GGI拥有一个可以对空的副武器,但非部署状态下哪怕你让他去攻击一个空中目标他也会用主武尝试发起攻击行为,然后由于主武无法对空而没有任何行为。该效果自YR加入,RA2没有
注意:它会覆盖整个武器选用优先级,例如YR中的GGI拥有一个可以对空的副武器,但非部署状态下哪怕你让他去攻击一个空中目标他也会用主武尝试发起攻击行为,然后由于主武无法对空而没有任何行为。该效果自YR加入,RA2没有
第891行: 第989行:
举个例子:让YR中的尤里复制人可以使用副武器攻击狗
举个例子:让YR中的尤里复制人可以使用副武器攻击狗


首先<code>[(Y)(A)DOG] -> ImmuneToPsionics=yes</code>得换成<code>[Controller] -> Versus=0%</code>来使用正常的武器选用逻辑
首先[(Y)(A)DOG] -> ImmuneToPsionics=yes得换成[Controller] -> Versus=0%来使用正常的武器选用逻辑


然后禁用部署开火逻辑例如改为<code>[YURI] -> DeployFire=no</code>绕过部署开火所强制的一套武器选用规则限制
然后禁用部署开火逻辑例如改为[YURI] -> DeployFire=no绕过步兵部署开火所强制的一套武器选用规则限制


最后再去掉武器上必须部署的语句例如改为<code>[PsiWave] -> AreaFire=no</code>来允许步兵正常使用这个武器
最后再去掉武器上必须部署的语句例如改为[PsiWave] -> AreaFire=no来允许步兵正常使用这个武器


===DeployFireWeapon===
DeployFireWeapon =


填0-1的数值。这个代码指定步兵部署后所使用的武器。填“0”为使用主武器,填“1”为使用副武器。默认值为“1”
填0-1的数值。这个代码指定步兵部署后所使用的武器。填“0”为使用主武器,填“1”为使用副武器。默认值为“1”


当一个载具同时拥有部署逻辑和盖特逻辑时将始终使用它的Weapon1
Phobos允许使用-1来让部署态的单位也能使用两种武器
 
DeployedCrushable =


就是说部署释放武器不随盖特逻辑升阶更换武器
该步兵在部署状态下能否被常规碾压碾死,默认yes,原版重装大兵上设置为no以免疫常规碾压


Phobos允许使用-1来让部署的单位也使用两种武器
该语句仅在[ObjectType] -> Crushable=yes时工作,也就是你不能反过来让重装大兵只有部署时可以被碾压而站着时不能
 
DeployToLand =
 
填写yes。让悬停在空中直升机播放螺旋桨动画
 
和[VehicleType] -> IsSimpleDeployer=yes连用可让Jumpjet单位悬停不落地(与[TechnoType] -> BalloonHover=yes类似,包括会打断[TechnoType] -> CloakStop=的效果)
 
不同的是[TechnoType] -> BalloonHover=yes可以悬停在建筑上
 
当然这可以正常与[TechnoType] -> BalloonHover=yes一句合用
 
一个附加效果是反部署时会尝试起飞,表现在地面载具上则是会移动一下
 
当该句为no且[VehicleType] -> IsSimpleDeployer=yes时即便拥有[TechnoType] -> BalloonHover=yes也会尝试降落而无法保持悬停,PhobosBuild48已修复
 
DeployingAnim =
 
部署时播放的动画,原版用于武装直升机这种[VehicleType] -> IsSimpleDeployer=yes的单位在部署与反部署时播放一个过程动画,动画播放时IsLocomotor类弹头仍可尝试锁定但会失败然后放弃目标
 
在原版中拥有[VehicleType] -> IsSimpleDeployer=yes的地面载具无论是否有部署动画都可以任意部署,飞行载具在空中降落时则总是会转向[General] -> DeployDir=的方向
 
该动画不支持使用[Animation] -> Normalized=yes和[Animation] -> Reverse=yes功能,并且影子不会计算当前高度以绘制到正下方的地面上,PhobosBuild48已修复


===DeployingAnim===
从Ares2.0开始地面载具拥有部署动画的话第一次部署指令会先转向[General] -> DeployDir=的方向然后才能部署,飞行载具无部署动画则降落时保持原有的方向


部署时播放的动画,原版于武装直升机IsSimpleDeployer=yes下部署与反部署状态切换,动画播放时IsLocomotor类弹头仍可尝试锁定但会失败然后放弃目标
从PhobosBuild48开始无论是否拥有部署动画都会转向你可以使[TechnoType] -> DeployDir=-1来禁用


===DeployToFire===
DeployToFire =


填yes或no。攻击动作触发部署。要和DeploysInto=或IsSimpleDeployer=配合使用
该载具是否会攻击动作触发部署。可与DeploysInto=或IsSimpleDeployer=配合使用


它会执行攻击行为时转为部署,但是影响主动寻敌
它会执行攻击行为时转为部署,但是影响主动寻敌
第921行: 第1,043行:
如果该单位执行DeployToFire时恰好脚下有矿或其他情况妨碍部署,它还会自动移动到附近的空旷区域
如果该单位执行DeployToFire时恰好脚下有矿或其他情况妨碍部署,它还会自动移动到附近的空旷区域


===DeployTime===
DeployTime =


填时间。这个代码指定该单位部署的延迟时间。单位为帧
填时间。这个代码指定该单位部署的延迟时间。单位为帧


===DeploysInto===
DeploysInto =


填建筑名称。这个代码指定载具部署后变成的建筑
填建筑名称。这个代码指定载具部署后变成的建筑


被心控的载具部署后会断掉心控链接彻底改变所属,YR1.001为禁用了被心控单位的该逻辑,Phobos已允许正常交接并解除禁用效果
被心控的载具部署后会断掉心控链接彻底改变所属,YR1.001为尤里X白嫖建造场问题禁用了被心控单位部署为 {{cd|[BuildingType] -> ConstructionYard{{=}}yes}} 建筑的该逻辑,[[Phobos]] 已允许正常交接心控链接并允许定义是否解除禁用效果


实际上是TechnoType通用标签,值的类型也是TechnoType,由于拥有跨类别T选同类对象的效果,曾也用于原版引擎下的类Ares中GroupAs功能的效果,原版下可能造成一些问题,Ares已进行修复,同时提供新的GroupAs作为另一种可选的实现
实际上是TechnoType通用标签,值的类型也是TechnoType,由于拥有跨类别T选同类对象的效果,曾也用于原版引擎下的类Ares中GroupAs功能的效果,原版下可能造成一些问题,Ares已进行修复,并允许禁用这句的跨类T选效果,同时提供新的GroupAs作为可选的替代


由于DeploysInto和UndeploysInto的单向跨类T选拥有层次效果,可结合GroupAs做出注入“第一次T选MTNK选中所有MTNK,第二次T选选中所有MTNK、HTNK、LTNK”的效果
由于DeploysInto和UndeploysInto的单向跨类T选拥有层次效果,可结合GroupAs做出注入“第一次T选MTNK选中所有MTNK,第二次T选选中所有MTNK、HTNK、LTNK”的效果
第939行: 第1,061行:
此外这样的转变很多效果无法继承,例如铁幕,Phobos已允许继承其中一部分
此外这样的转变很多效果无法继承,例如铁幕,Phobos已允许继承其中一部分


===DeploySound===
DeploySound =


填Sound.ini中定义的声音名。这个代码指定载具DeploysInto成为建筑时或进入SimpleDeployer时的音效
填Sound.ini中定义的声音名。这个代码指定载具DeploysInto成为建筑时或进入SimpleDeployer时的音效


===DetectDisguise===
DetectDisguise =


填yes或no。这个代码指定该单位是否能发现伪装的敌人并展开攻击(是用主武攻击)
填yes或no。这个代码指定该单位是否能发现伪装的敌人并展开攻击(是用主武攻击)


===DetectDisguiseRange===
DetectDisguiseRange =


填数值。这个代码指定该单位发现伪装的敌人的距离。要和DetectDisguise=yes配合使用
填数值。这个代码指定该单位发现伪装的敌人的距离。要和DetectDisguise=yes配合使用
第953行: 第1,075行:
特指发现CanDisguise=yes的单位
特指发现CanDisguise=yes的单位


===DestroyAnim===
DestroyAnim =


填动画名。这个代码指定建筑被摧毁时播放的动画,但是所属色映射错误,且可能导致RE,Ares已修复
填动画名。这个代码指定建筑被摧毁时播放的动画列表,但是所属色映射错误,且可能导致RE,Ares已修复


===DestroyParticleSystems===
如果动画数量为8个且可以追溯到击杀者那么会根据击杀者与建筑的相对位置进行选择,否则随机选择
 
DestroyParticleSystems =


填粒子系统名。这个代码指定该单位被摧毁时播放的粒子动画
填粒子系统名。这个代码指定该单位被摧毁时播放的粒子动画


===DestroySmokeOffset===
DestroySmokeOffset =


填X,Y,Z的数值。这个代码指定该单位被摧毁时播放粒子动画的位置
填X,Y,Z的数值。这个代码指定该单位被摧毁时播放粒子动画的位置


===DieSound===
DieSound =


填Sound.ini中定义的声音名。这个代码指定该单位被摧毁时的声音
填Sound.ini中定义的声音名。这个代码指定该单位被摧毁时的声音


===Disableable===
Disableable =


填yes或no。这个代码指定该单位是否被遭遇战模式的选项所影响,与TS的残留逻辑有关,当选择'No Bases'多人游戏选项时,MCV实际上被禁用
填yes或no。这个代码指定该单位是否被遭遇战模式的选项所影响,与TS的残留逻辑有关,当选择'No Bases'多人游戏选项时,MCV实际上被禁用


===DisguiseWhenStill===
DisguiseWhenStill =


填yes或no。这个代码指定伪装单位在不移动时会把自身伪装起来,如幻影坦克
填yes或no。这个代码指定伪装单位在不移动时会把自身伪装起来,如幻影坦克,需要与[TechnoType] -> CanDisguise=yes合用


===DistributedFire===
注意:使用Shape资源文件的单位使用该句会对可以见到其本体图像的所属方在伪装时表现为图像消失再还原,需要在art(md).ini中添加一句[VehicleType] -> StandingFrames=0来解决
 
DistributedFire =


填yes或no。这个代码指定该单位(神盾)在自动攻击状况下攻击一次后更换目标。只有一个敌人的话也会停顿一下再开火
填yes或no。这个代码指定该单位(神盾)在自动攻击状况下攻击一次后更换目标。只有一个敌人的话也会停顿一下再开火


===Dock===
Dock =


填建筑名称。这个代码指定单位可以进入的平台,如矿车能进入矿场,战机能回到机场
填建筑名称。这个代码指定单位可以进入的平台,如矿车能进入矿场,战机能回到机场
第993行: 第1,119行:
注意:在PadAircraft中声明为机场战机的战机类对象必须拥有非空的Dock否则0045ED61
注意:在PadAircraft中声明为机场战机的战机类对象必须拥有非空的Dock否则0045ED61


===DockUnload===
DockUnload =


填yes或no。这个代码指定单位进入这个建筑后是否进行“卸货”即执行Unload命令。原版仅用在矿场上,一些应用见Weeder一句
填yes或no。这个代码指定单位进入这个建筑后是否进行“卸货”即执行Unload命令。原版仅用在矿场上,一些应用见Weeder一句
第999行: 第1,125行:
对于矿场的矿车倒矿,矿车会在返回矿场前记录当时的格子坐标,因此倒矿后也是前往那个格子再开始寻矿,而不是倒矿时立即重新开始寻找最近的矿区
对于矿场的矿车倒矿,矿车会在返回矿场前记录当时的格子坐标,因此倒矿后也是前往那个格子再开始寻矿,而不是倒矿时立即重新开始寻找最近的矿区


===DeployFacing===
DeployFacing =


表示载具部署建筑前朝向哪个方向,0-7对应从北到西北的八个标准方向
表示载具通过DeploysInto部署成这个建筑前朝向哪个方向,0-7对应从北到西北的八个标准方向


===DetectionDistance===
DetectionDistance =


该步兵需要靠近拥有PsychicDetectionRadius的建筑这么多的距离才会被觉察,YR引入但实际废弃
该步兵需要靠近拥有PsychicDetectionRadius的建筑这么多的距离才会被觉察,YR引入但实际废弃


===DefensesCostBonus===
DefensesCostBonus =


防御建筑建造价格为原来多少倍
防御建筑建造价格为原来多少倍


-E-


 
EligibleForDelayKill =
==E==
 
===EligibleForDelayKill===


填yes或no。这个代码指定建筑是否为油桶一类的单位。血条为0后隔一段时间才爆炸
填yes或no。这个代码指定建筑是否为油桶一类的单位。血条为0后隔一段时间才爆炸


===EligibileForAllyBuilding===
EligibileForAllyBuilding =


填yes或no。这个代码指定玩家能否在这个建筑上与其他玩家结盟
填yes或no。这个代码指定玩家能否在这个建筑上与其他玩家结盟


此代码会强制BaseNormal,只在“于盟友建造旁建设”选项激活时生效
此代码会强制BaseNormal,只在“于盟友建造旁建设”选项激活时生效


===EliteAbilities===
EliteAbilities =


填下表中的相应项。这个代码指定单位升级精英时拥有的能力
填下表中的相应项。这个代码指定单位升级精英时拥有的能力
第1,033行: 第1,157行:
对应的,老兵时通过VeteranAbilities获得的能力也不会当单位升级到精英时丢失
对应的,老兵时通过VeteranAbilities获得的能力也不会当单位升级到精英时丢失


----
<nowiki>--------------------------------------------------</nowiki>


便于复制:
便于复制:
第1,041行: 第1,165行:
FASTER
FASTER


单位移动速度加快(Speed*<code>[General] -> VeteranSpeed=</code>
单位移动速度加快(Speed*[General] -> VeteranSpeed=)


STRONGER
STRONGER


单位的生命值增加(Strength*<code>[General] -> VeteranArmor=</code>
单位的生命值增加(Strength*[General] -> VeteranArmor=)


SCATTER
SCATTER


单位自动散以躲避炮火
单位受到伤害时会自动散以躲避下一轮炮火,当被一个AircraftType发起攻击时也会提前散开,对于步兵在被其他单位尝试碾压时和在一个飞向它的[Weapon] -> Speed=小于[CombatDamage] -> Incoming=的ROT类抛射体发射时也会散开避免(但是方向随机,所以对碾压而言有时候躲了个寂寞)。当单位的所属方为人类玩家且[CombatDamage] -> PlayerScatter=yes时、当单位所属方的IQ高于[IQ] -> Scatter=时天然拥有该效果。此外当单位处于精英等级时硬编码开启该效果。


FIREPOWER
FIREPOWER


单位攻击力加强(武器的Damage*<code>[General] -> VeteranCombat=</code>
单位攻击力加强(武器的Damage*[General] -> VeteranCombat=)


ROF
ROF


单位射速增快(武器ROF*<code>[General] -> VeteranROF=</code>
单位射速增快(武器ROF*[General] -> VeteranROF=)


SIGHT
SIGHT


单位的视力加大(Sight*<code>[General] -> VeteranSight=</code>
单位的视力加大(Sight*[General] -> VeteranSight=)


CLOAK
CLOAK


单位可以隐形(Cloakable=yes)
单位可以隐形(Cloakable=yes)
GUARD_AREA
单位可以自动进入区域警戒(DefaultToGuardArea=yes)
CRUSHER
单位可以碾压(Crusher=yes)


SELF_HEAL
SELF_HEAL
第1,086行: 第1,218行:


单位被杀伤时不会匍匐(Fearless=yes)
单位被杀伤时不会匍匐(Fearless=yes)
GUARD_AREA
单位可以自动进入区域警戒(DefaultToGuardArea=yes)
CRUSHER
单位可以碾压(Crusher=yes)


C4
C4


单位拥有C4炸弹(C4=yes)
单位拥有C4炸弹,TS残留,在RA2/YR中仅更改单位攻击建筑时的光标而不实际赋予绑炸弹的能力(C4=yes)


TIBERIUM_PROOF
TIBERIUM_PROOF
第1,110行: 第1,234行:


单位可以在泰矿上被治愈,TS残留无效(TiberiumHeal=yes)
单位可以在泰矿上被治愈,TS残留无效(TiberiumHeal=yes)


原版缺少升级后免疫辐射、免疫超时空传送、免疫毒气、免疫精神攻击、免疫心灵控制的效果,Ares已补充并拓展,还给了单位升级后变成另一个单位的功能可以更方便的支持其他可设定的效果
原版缺少升级后免疫辐射、免疫超时空传送、免疫毒气、免疫精神攻击、免疫心灵控制的效果,Ares已补充并拓展,还给了单位升级后变成另一个单位的功能可以更方便的支持其他可设定的效果


----
<nowiki>--------------------------------------------------</nowiki>


===EliteAirstrikeTeam===
EliteAirstrikeTeam =


精英鲍里斯召唤空袭的数量
精英鲍里斯召唤空袭的数量


===EliteAirstrikeTeamType===
EliteAirstrikeTeamType =


精英鲍里斯召唤空袭的飞机
精英鲍里斯召唤空袭的飞机


===EliteAirstrikeRechargeTime===
EliteAirstrikeRechargeTime =


精英鲍里斯召唤空袭的间隔
精英鲍里斯召唤空袭的间隔


===ElitePrimary===
ElitePrimary =


填武器名。这个代码指定单位精英时使用的主武
填武器名。这个代码指定单位精英时使用的主武


===EliteSecondary===
EliteSecondary =


填武器名。这个代码指定单位精英时使用的副武
填武器名。这个代码指定单位精英时使用的副武


===EliteOccupyWeapon===
EliteOccupyWeapon =


填武器名。这个代码指定步兵精英时使用的驻军武器
填武器名。这个代码指定步兵精英时使用的驻军武器


===EliteWeaponX===
EliteWeaponX =


填武器名。这里的X指的是武器序号。这个代码指定精英级别多武器单位使用的武器
填武器名。这里的X指的是武器序号。这个代码指定精英级别多武器单位使用的武器


===EliteStage1===
EliteStage1 =


===EliteStage2===
EliteStage2 =


===EliteStage3===
EliteStage3 =


===EliteStage4===
EliteStage4 =


===EliteStage5===
EliteStage5 =


===EliteStage6===
EliteStage6 =


盖特武器[X]阶保持到计数器达到多少后转到下一阶,这里的[X]有效范围受制于WeaponStages的值
盖特武器[X]阶保持到计数器达到多少后转到下一阶,这里的[X]有效范围受制于WeaponStages的值
第1,161行: 第1,283行:
最后一阶由于不存在下一阶所以会保留当前阶段,想要跳到第一阶往往使用一个FireOnce的武器搭配RateDown=0来实现,但是会丢失原目标需要重新索敌,Ares引擎允许语句控制最后一阶跳转第一阶,详见Ares说明书
最后一阶由于不存在下一阶所以会保留当前阶段,想要跳到第一阶往往使用一个FireOnce的武器搭配RateDown=0来实现,但是会丢失原目标需要重新索敌,Ares引擎允许语句控制最后一阶跳转第一阶,详见Ares说明书


===EmptyReload===
EmptyReload =


填时间。这个代码指定单位弹药完全用完后重装弹药的所耗时,覆盖Reload
填时间。这个代码指定单位弹药完全用完后重装弹药的所耗时,覆盖Reload
第1,167行: 第1,289行:
原版下每次只能装1枚弹药,Ares允许定义
原版下每次只能装1枚弹药,Ares允许定义


===EMPulseCannon===
EMPulseCannon =


填yes或no。这个代码指定建筑可否用EMP武器。EMP武器是从TS遗留下来的。原版引擎无效,残留[硬编码]:EMPulseCannon=yes时该建筑不会主动发射它的Primary
填yes或no。这个代码指定建筑可否用EMP武器。EMP武器是从TS遗留下来的。原版引擎无效,残留[硬编码]:EMPulseCannon=yes时该建筑不会主动发射它的Primary


===Engineer===
Engineer =
 
该步兵是否为工程师。强制单位不会主动攻击和寻敌,并且无法在目标对象上显示攻击光标


填yes或no。这个代码指定步兵是否为工程师。强制单位不会主动攻击,也不会寻敌,当然手动攻击依然是可行的
当然手动攻击地面依然是可行的,在不使用[TechnoType] -> PreventAttackMove=yes禁用的情况下移动攻击也仍可生效


===EnterBioReactorSound===
EnterBioReactorSound =


复制中心回收的声音
复制中心回收的声音,实际只读全局,PhobosBuild47已修复


===EnterGrinderSound===
EnterGrinderSound =


部队回收厂回收的声音
部队回收厂回收的声音,实际只读全局,PhobosBuild47已修复


===EnterTransportSound===
EnterTransportSound =


填Sound.ini中定义的声音名。这个代码指定的是单位进入运兵单位时的声音
填Sound.ini中定义的声音名。这个代码指定的是单位进入运兵单位时的声音


===EnterWaterSound===
EnterWaterSound =


进入水域时的声音,仅步兵可用
进入水域时的声音,仅步兵可用


===ExitCoord===
ExitCoord =


格式X,Y,Z。这个代码指定的是战车工厂或兵营制造出的单位初始创建的位置,例如https://www.bilibili.com/opus/637024588733087767
格式X,Y,Z。这个代码指定的是战车工厂或兵营制造出的单位初始创建的位置,例如https://www.bilibili.com/opus/637024588733087767
第1,199行: 第1,323行:
战车工厂需要WeaponsFactory=yes才会尊重这句的设定,对于地面载具由于还有一个开出去的行为所以会瞬移到厂内通道
战车工厂需要WeaponsFactory=yes才会尊重这句的设定,对于地面载具由于还有一个开出去的行为所以会瞬移到厂内通道


===Explodes===
Explodes =


填yes或no。这个代码指定的是该单位是否能够在被摧毁时爆炸并伤害到邻近的单位,爆武器是主武。当然也可以用DeathWeapon=来专门设定
该单位死亡时是否爆炸,主要效果是引死亡武器,具体规则见[TechnoType] -> DeathWeapon=一句


对于Aircraft类强制开启
同时爆炸必然同时杀死所有载员、建筑在拔起与出售时也会正常引爆(Phobos允许更改这一行为结果)


同时爆炸必然同时杀死所有载员、建筑在Buildup与出售时也会正常引爆(Phobos允许更改这一行为结果)
Explosion =


位z主要武器(包括IFV的任何模式所对应的唯武器)上的Suicide=yes覆盖并强制执行,例如原版IFV装了恐怖分子和伊文的情况
爆炸时播放的动画会从该序列中随机选取,建筑则是每个格子都会单独随机个来播放


===Explosion===
对于[TechnoType] -> BalloonHover=no的Jumpjet载具会死亡时播放一次落地时再播放一次,对于[TechnoType] -> BalloonHover=yes的Jumpjet载具则是将落地那次替换为引爆[TechnoType] -> DeathWeapon=的武器


填动画名。个代码指定的是单位和建筑爆炸时播放的动画。用于建筑会在建筑所占每个格子都播放一个
在原版中由于地图上仍然存在的实体在死亡过程中还能因为其他所属方败北之类的方式死亡,种情况还可能在中途额外多播放一次
 
用于[TechnoType] -> Explodes=yes的载具且被摧毁弹药未打空则强制使用列表中最后一条,这也包括不使用弹药逻辑([TechnoType] -> Ammo=-1,无限弹药)情况


一种特殊情况下因为特殊设定启用了DeathWeapon而导致了Explosion被隐藏,这种情况下只是不绘制而TrailerAnim还是SpawnsParticle均正常执行,虽然一般也不会有人遇到这种情况
一种特殊情况下因为特殊设定启用了DeathWeapon而导致了Explosion被隐藏,这种情况下只是不绘制而TrailerAnim还是SpawnsParticle均正常执行,虽然一般也不会有人遇到这种情况


===ExtraPower===
ExtraPower =


填数值。这个代码指定建筑特殊状态更改的额外电力
填数值。这个代码指定建筑特殊状态更改的额外电力
第1,237行: 第1,363行:
注:对于不使用GapGenerator的生物科技发电其部署释放单位效果不会受当前电力值限制
注:对于不使用GapGenerator的生物科技发电其部署释放单位效果不会受当前电力值限制


===Enslaves===
Enslaves =


奴隶矿场的奴隶类型,填步兵,当建筑被摧毁时奴隶会被释放
奴隶矿场的奴隶类型,填步兵,当建筑被摧毁时奴隶会被释放


-F-


 
Factory =
==F==
 
===Factory===


填下表中的对应项。这个代码指定工厂类建筑的生产类型
填下表中的对应项。这个代码指定工厂类建筑的生产类型


----
<nowiki>------------------------------------------------</nowiki>


InfantryType 步兵工厂,一般用在兵营
InfantryType 步兵工厂,一般用在兵营
第1,263行: 第1,387行:
此外原版下任何一个Factory类建筑都会被计入同类的多工厂加成中,也就是你可以在Ares中靠某个建筑存在时Deliver一大堆Factory=UnitType的假建筑来制作生产加速效果,Phobos已允许设定特定建筑被多工厂加成排除在外
此外原版下任何一个Factory类建筑都会被计入同类的多工厂加成中,也就是你可以在Ares中靠某个建筑存在时Deliver一大堆Factory=UnitType的假建筑来制作生产加速效果,Phobos已允许设定特定建筑被多工厂加成排除在外


----
<nowiki>------------------------------------------------</nowiki>


注意:
注意:
第1,277行: 第1,401行:
4、如果AI已经没有了任何Factory类建筑,并且一段时间内没有被攻击,那么它就会开始卖家冲锋(然后被快速游戏毙了)
4、如果AI已经没有了任何Factory类建筑,并且一段时间内没有被攻击,那么它就会开始卖家冲锋(然后被快速游戏毙了)


有Buildup上禁止出售才能保留一些建筑,不让玩家直接爽到。Phobos已允许【全局】层面控制是否出售和是否冲锋以及执行这个操作的延时
有[BuildingTypeArt] -> Buildup=层面上禁止出售才能保留一些建筑,不让玩家直接爽到。Phobos已允许【全局】层面控制是否出售和是否冲锋以及执行这个操作的延时


===Fake===
Fake =


填yes或no。RA1残留无效,Ares已复原,详见说明书
填yes或no。RA1残留无效,Ares已复原,详见说明书


===Fearless===
Fearless =


填yes或no。这个代码指定步兵是否畏惧
步兵是否不知道害怕。实际上这个语句的真正效果是让单位保持特定状态


注意:当为yes时,步兵的恐慌时的匍匐、哀叫将被取消
例如[InfantryType] -> Cyborg=yes的步兵需要这句来让自己在匍匐状态(断腿)状态下不自动站起来


实际上还禁止匍匐切换的效果,例如Cyborg需要这句来让自己匍匐状态不会自动站起来
对于[InfantryType] -> Fraidycat=yes的步兵若有这句则永远不会解除惊慌失措乱跑的效果


如果一个Jumpjet步兵拥有Fearless=yes,那么会计算弹头的ProneDamage
如果[InfantryType] -> Locomotor=Jumpjet,那么该语句导致[Warhead] -> ProneDamage=参与杀伤计算


注:原版[BORIS]下并没有此句,其不会倒是依靠在artmd.ini中为步兵图像设置Crawls=no实现的
注:原版[BORIS]下并没有此句,其不会倒是依靠在artmd.ini中为步兵图像设置[InfantryTypeArt] -> Crawls=no实现的


===Fighter===
Fighter =


填yes或no。这个代码指定Locomotor=Fly的单位否在射程内正常发射任意抛体类型的武器。实际上也是导致战机抛双弹、开火有个随机前摇的元凶
仅用于战机类单位,控制是否在开火前跳过额外检查,例如TS中战机需要与目标保持武器[Weapon] -> Range=设定的距离来悬停然后朝向目标进行开火,在RA2中添加[AircraftType] -> Fighter=yes即可跳过这一步骤使得只要满足射程等基础设定即可开火


===FireAngle===
对于[TechnoType] -> Locomotor=Rocket的战机(即导弹类)介于其特殊的运动方式几乎无法保持在上述条件点所以如果你希望让导弹类开火那么添加[AircraftType] -> Fighter=yes几乎是必要的,尤其在[TechnoType] -> MissileSpawn=no而导致五连发有时都无法稳定触发的情况下


填0-64的数值。这个代码指定单位炮管倾斜度。“0”为水平,“64”为竖直
不过句实际上也是导致战机抛双弹(甚至三弹)、开火有随机前摇、开火时扭一下身子元凶


认值并不是0所以如果使用了炮管并希望无角度请记得手动调.jpg
FlyBy =
 
该战机是否会飞越目标,可以避免开火前扭一下身子
 
此外还有一个附加效果是让战机可以保持当前朝向降落而不是要转向全局或建筑的方向
 
FlyBack =
 
看程序里会在设为yes时一些禁用相对复杂的寻路与移动行为,原版中仅用于导弹子机
 
FireAngle =
 
单位炮管的倾斜度。256分圆,64为90°垂直于地面,认10所以如果使用了炮管并希望无角度请记得手动调为0值


在特定方向上存在视觉上突然变成FireAngle=0的问题,然而这个功能到RA2以后本就是纯粹的视觉效果,所以直接当这逻辑半残好了
在特定方向上存在视觉上突然变成FireAngle=0的问题,然而这个功能到RA2以后本就是纯粹的视觉效果,所以直接当这逻辑半残好了


===FirestormWall===
FirestormWall =


填yes或no。这个代码是从TS遗留下来的,残留效果让建筑可通行单位,Ares已复原整套逻辑,并将可否通行的效果分离出了单独的语句,详见说明书
填yes或no。这个代码是从TS遗留下来的,残留效果让建筑可通行单位,Ares已复原整套逻辑,并将可否通行的效果分离出了单独的语句,详见说明书


===FlightLevel===
FlightLevel =


填数值。这个代码指定空军单位的飞行高度,同时要有Locomotor=Fly的设定。默认全局值
填数值。这个代码指定空军单位的飞行高度,同时要有Locomotor=Fly的设定。默认全局值
第1,319行: 第1,455行:
并不会因为没有机位而坠毁,同时也无法正常探开黑幕,且弹药没打完就摧毁目标那么YR下会飞向地图边界
并不会因为没有机位而坠毁,同时也无法正常探开黑幕,且弹药没打完就摧毁目标那么YR下会飞向地图边界


可以为负数,在地下,但开火踹乘客乘客会带着降落伞闪现到地面
若设为-1则为默认值,若设为0则无法响应指令且在狩猎者上强制表现[General] -> HunterSeekerDetonateProximity=0时的效果(无法成功触发)
 
可以为负数,在地下,但开火踹乘客乘客会带着降落伞闪现到地面,并且直线飞到地图边界或高度变化时才转弯,停下时会达到0并不再接受指令
 
竖直方向提升的最大速度与当前高度与该值的差有关,对于[TechnoType] -> IsDropship=yes的单位最大每帧16,否则无乘客最大每帧20有乘客最大每帧10


===ForbiddenHouses===
ForbiddenHouses =


填国家名。这个代码指定该单位不能被指定的国家所建造,即使指定的国家所有条件都满足了
填国家名。这个代码指定该单位不能被指定的国家所建造,即使指定的国家所有条件都满足了


===Fraidycat===
Fraidycat =


填yes或no。这个代码指定步兵是否在受到打击后做出逃跑动作。逃跑的动作由Art.ini中步兵的Sequence中的Panic=指定
步兵在受到打击后是否会做出逃跑动作。逃跑的动作由Art.ini中步兵的Sequence中的Panic=指定


===FreeUnit===
FreeUnit =


填载具名称。这个代码指定建筑建造后是否附带1个单位,原版用于矿厂
填载具名称。这个代码指定建筑建造后是否附带1个单位,原版用于矿厂
第1,349行: 第1,489行:
Phobos早期版本的CreateUnit也是如此,后来的版本去掉了这个效果并且生成的类型不再仅限载具类
Phobos早期版本的CreateUnit也是如此,后来的版本去掉了这个效果并且生成的类型不再仅限载具类


===FactoryPlant===
FactoryPlant =


这个建筑是否是工业工厂,开启下面的这5个语句,Ares允许在单位上再单独定义一个倍率与此处相乘以微观控制
这个建筑是否是工业工厂,开启下面的这5个语句,Ares允许在单位上再单独定义一个倍率与此处相乘以微观控制


<code>[BuildingType] -> InfantryCostBonus=<float></code>
[BuildingType] -> InfantryCostBonus=<float>


<code>[BuildingType] -> UnitsCostBonus=<float></code>
[BuildingType] -> UnitsCostBonus=<float>


<code>[BuildingType] -> AircraftCostBonus=<float></code>
[BuildingType] -> AircraftCostBonus=<float>


<code>[BuildingType] -> BuildingsCostBonus=<float></code>
[BuildingType] -> BuildingsCostBonus=<float>


<code>[BuildingType] -> DefensesCostBonus=<float></code>
[BuildingType] -> DefensesCostBonus=<float>


这五句用于设定工业工厂建筑导致的特定类型单位价格倍率,例如原版工业工厂第二项为0.75故载具生产成本*75%
这五句用于设定工业工厂建筑导致的特定类型单位价格倍率,例如原版工业工厂第二项为0.75故载具生产成本*75%


-G-


 
GapGenerator =
==G==
 
===GapGenerator===


填yes或no。这个代码指定建筑是否为“黑幕产生器”
填yes或no。这个代码指定建筑是否为“黑幕产生器”


===GapRadiusInCells===
GapRadiusInCells =


填数值。这个代码指定“黑幕产生器”建筑产生的黑幕半径。要和GapGenerator=yes配合使用
填数值。这个代码指定“黑幕产生器”建筑产生的黑幕半径。要和GapGenerator=yes配合使用


===Gate===
Gate =


填yes或no。这个代码指定建筑是否为“门”型建筑,已方单位进入已方的“门”型建筑时,“门”型建筑就会打开。另外敌方间谍伪装进入时,已方“门”型建筑也会打开
填yes或no。这个代码指定建筑是否为“门”型建筑,已方单位进入已方的“门”型建筑时,“门”型建筑就会打开。另外敌方间谍伪装进入时,已方“门”型建筑也会打开


===GateCloseDelay===
GateCloseDelay =


填时间。这个代码指定“门”型建筑关闭的所花时间。要和Gate=yes配合使用
填时间。这个代码指定“门”型建筑关闭的所花时间。要和Gate=yes配合使用


===GDIBarracks===
GDIBarracks =


填yes或no。这个代码指定该建筑是否为盟军兵营,步兵从相对建筑中心位于[1,2]的格子离开建筑,用来给AI判断的。所有南北向短于东西向的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题
填yes或no。这个代码指定该建筑是否为盟军兵营,步兵从相对建筑中心位于[1,2]的格子离开建筑,用来给AI判断的。所有南北向短于东西向的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题


===GuardRange===
GuardRange =


填数值。这个代码指定该单位的警戒距离,用于围墙则代表围墙的连接距离,TS激光墙逻辑与Ares战壕逻辑的连接距离也是同理
填数值。这个代码指定该单位的警戒距离,用于围墙则代表围墙的连接距离,TS激光墙逻辑与Ares战壕逻辑的连接距离也是同理


默认的警戒距离使用武器的Range,如果指定则主副武器都使用此值而不是根据各自的Range分离计算范围,对于使用Range=-2武器的单位如果想要让它这个无限射程武器正常主动索敌那么是非常有必要的,拥有Organic=yes和Underwater=yes以及SelfHealing=yes的单位忽略该项直接使用GuardRange,例如原版巨型乌贼
默认的警戒距离使用当前主要武器的Range,如果指定则主副武器都使用此值而不是根据各自的Range分离计算范围,对于使用Range=-2武器的单位如果想要让它这个无限射程武器正常主动索敌那么是非常有必要的,拥有Organic=yes和Underwater=yes以及SelfHealing=yes的单位忽略该项直接使用GuardRange,例如原版巨型乌贼


如果你手动指定了GuardRange来控制警戒范围,并且GuardRange大于武器的Range,那么你应当与DefaultToGuardArea=yes搭配使用,以便单位进入区域警戒(Area Guard)然后前去迎击。否则单位会保持锁定状态但不靠近目标,由于射程够不到目标而无法开火,只能干愣着,可参考去掉DefaultToGuardArea的巨型乌贼
如果你手动指定了GuardRange来控制警戒范围,并且GuardRange大于武器的Range,那么你应当与DefaultToGuardArea=yes搭配使用,以便单位进入区域警戒(Area Guard)然后前去迎击。否则单位会保持锁定状态但不靠近目标,由于射程够不到目标而无法开火,只能干愣着,可参考去掉DefaultToGuardArea的巨型乌贼
第1,401行: 第1,539行:
此外原版并没有EliteGuardRange,当然你可以使用Ares的升级变形逻辑完全变为另一个单位来解决,详见Ares说明书
此外原版并没有EliteGuardRange,当然你可以使用Ares的升级变形逻辑完全变为另一个单位来解决,详见Ares说明书


===Gunner===
如果使用默认规则那么会考虑原武器实际能否射向目标,例如原武器有[Projectile] -> SubjectToWalls=yes那么默认寻敌不会越过墙类覆盖物,但是如果使用GuardRange设定相同的范围则会移动以绕过覆盖物来发起攻击
 
Gunner =


填yes或no。这个代码指定载具是否可以依据不同情况转换炮台。在红色警戒2中只能用在多功能步兵载具上
填yes或no。这个代码指定载具是否可以依据不同情况转换炮台。在红色警戒2中只能用在多功能步兵载具上
第1,415行: 第1,555行:
IsChargeTurret的优先级高于IFV逻辑,与其合用可像IFV一样两次踢人而不启用IFV逻辑
IsChargeTurret的优先级高于IFV逻辑,与其合用可像IFV一样两次踢人而不启用IFV逻辑


===Grinding===
NormalTurretIndex =


该建筑是否为部队回收厂
NormalTurretWeapon =


原版下与InfantryAbsorb和UnitAbsorb搭配使用并不正常,Phobos已修复
RepairTurretIndex =


RepairTurretWeapon =


MachineGunTurretIndex =


==H==
MachineGunTurretWeapon =


===HalfDamageSmokeLocation===
FlakTurretIndex =


填X,Y,Z的数值。这个代码指定载具冒黄烟的开始位置
FlakTurretWeapon =


===HalfDamageSmokeLocation1===
PistolTurretIndex =


填X,Y,Z的数值。这个代码指定建筑冒黄烟的开始位置
PistolTurretWeapon =


===HalfDamageSmokeLocation2===
SniperTurretIndex =


填X,Y,Z的数值。这个代码指定建筑冒第二个黄烟的开始位置
SniperTurretWeapon =


===Harvester===
ShockTurretIndex =


填yes或no。这个代码指定单位是否为矿车。用于超时空载具可取消其超时空移动的硬直时间
ShockTurretWeapon =


也就是直接用于没有Teleporter的Locomotor=Teleport的单位会无CD超时空移动
ExplodeTurretIndex =


===HasRadialIndicator===
ExplodeTurretWeapon =


填yes或no。这个代码指定建筑是否拥有攻击范围圆弧(如机枪碉堡的那种圆弧),Ares已允许所有科技类型使用,并允许使用专门的语句指定半径,详见说明书
BrainBlastTurretIndex =


圆弧的半径由CloakRadiusInCells=或GapRadiusInCells=或SuperGapRadiusInCells=指定
BrainBlastTurretWeapon =


或者也可以设定成PsychicDetectionRadius=,这是另一种雷达扫描效果(苏军的“心灵感应装置”那种圆弧效果)
RadCannonTurretIndex =


仅限于BuildingType的Primary,所以盖特机炮的圆环范围不取决于WeaponX
RadCannonTurretWeapon =


当武器Range=-2时该操作无效
ChronoTurretIndex =


原版下这个效果只能友军可见,Phobos已允许【全局】设定
ChronoTurretWeapon =


===HasTurretTooltips===
TerroristExplodeTurretIndex =


填yes或no。这个代码指定运兵单位运兵时是否显示武器名称,“<多功能步兵>载具”,而且运兵量必须为1。Ares已扩展全套逻辑,详见说明书
TerroristExplodeTurretWeapon =


针对该句,IFV的名称显示规则如下:
CowTurretIndex =


如果不存在任何步兵(Infantry)Passenger,那么载具仅显示为UIName=指定的内容
CowTurretWeapon =


如果为VehiclePassenger,不属于InfantryPassenger规则如上
InitiateTurretIndex =


如果为InfantryPassenger,UseOwnName=yes,显示为<Passenger> <UIName>
InitiateTurretWeapon =


如果为InfantryPassenger,UseOwnName=no:
VirusTurretIndex =


若使用Tur[1],显示为{(CSFLabel        Tip:MachineGun) (<code>[TransportVehicle] -> UIName=</code>)}
VirusTurretWeapon =


若使用Tur[2],显示为{(CSFLabel        Tip:Repair    ) (<code>[TransportVehicle] -> UIName=</code>)}
YuriPrimeTurretIndex =


若使用Tur[3],显示为{(<code>[InfantryPassenger] -> UIName=</code>) (<code>[TransportVehicle] -> UIName=</code>)}
YuriPrimeTurretWeapon =


若使用Tur[X],显示为{(CSFLabel        Tip:Rocket    ) ([<code>TransportVehicle] -> UIName=</code>)}
GuardianTurretIndex =


在RA2中不存在UseOwnName,但若主武弹头存在Bullets=yes则强制显示为“Machine Gun IFV”
GuardianTurretWeapon =


===HasSpotlight===
多功能步兵车IFV专用,炮塔编号及武器编号


填yes或no。这个代码是从TS遗留下来的,在红色警戒2和YR除了给你个005F5155以外没什么作。Ares已复原该逻辑详见说明书
两句连指定几号武器对应几号炮塔其他XXXTurretIndex和XXXTurretWeapon同理


===HasStupidGuardMode===
XXX名字代码为程序内定,原版不可新增


填yes或no。这个代码指定建筑是否能够自动攻击敌方目标。填yes时不能自动攻击
Ares已扩展全套逻辑,详见说明书


实际上决定建筑使用哪一套威胁值计算方式,详见全局DumbMyEffectivenessCoefficient部分
Grinding =


===Helipad===
该建筑是否为部队回收厂


填yes或no。这个代码指建筑是否为机场建筑。入侵者一的需要机场的空军单位就从这里制造。注意:需要停在机场的战机应该在PadAircraft=的列表中声明
如果想要通过[BuildingType] -> InfantryAbsorb=和[BuildingType] -> UnitAbsorb=设no来禁止特定类


===Hospital===
则需要与[BuildingType] -> Cloning=yes或[BuildingType] -> Armory=yes或[BuildingType] -> Hospital=yes共用


填yes或no。这个代码指定建筑是否为医院。进入医院的受伤步兵全部都会在短时间内痊愈。如果要限制治疗数量可以加入Ammo=来限制。注意:因为红色警戒2内核问题看上去是治愈了步兵,其实从医院出来了一个一模一样的同等级步兵,这时复制中心就会复制出另外一个一样的新兵。在尤里复仇中这个问题得到了解决
更好方式见Phobos拓展的新语句


不要与兵营连用,弱智AI会倾向于这个兵是刷出来的新的单位而不是自己原本生产的单位于是一直造
-H-


===HoverAttack===
HalfDamageSmokeLocation =


填yes或no。这个代码原用于定Jumpjet单是否需要起飞以攻击目标,单位会在发起攻击时尝试起飞。但你也可以给地面单位使用,实际表现为打一枪移动一下(因为依然没能飞起来)
填X,Y,Z的数值。这个代码指定载具冒黄烟的开始


===HoverPad===
HalfDamageSmokeLocation1 =


填yes或no。这个代码是从TS遗留下来
填X,Y,Z的数值。这个代码指定建筑冒黄烟开始位置


如果全局中的SeparateAircraft=no 则所有带HoverPad=yes的建筑会自动生成PadAircraft=的第一个单位
HalfDamageSmokeLocation2 =


===HunterSeeker===
填X,Y,Z的数值。这个代码指定建筑冒第二个黄烟的开始位置


填yes或no。这个代码是从TS遗留下来的,在红色警戒2中还有部分作用
Harvester =


该单位可以跟踪选的目标,但永久禁实际开火和移动,Ares已复原,详见说明书
填yes或no。这个代码指载具否为矿车。于[TechnoType] -> Locomotor=Teleport的载具可取消其超时空移动的硬直时间


===HarvestRate===
也就是直接用于没有[TechnoType] -> Teleporter=yes但[TechnoType] -> Locomotor=Teleport的载具类单位会使其无CD超时空移动


采集速率,YR中用于奴隶矿工
HasRadialIndicator =


填yes或no。这个代码指定建筑是否拥有攻击范围圆弧(如机枪碉堡的那种圆弧),Ares已允许所有科技类型使用,并允许使用专门的语句指定半径,详见说明书


圆弧的半径由CloakRadiusInCells=或GapRadiusInCells=或SuperGapRadiusInCells=指定


==I==
或者也可以设定成PsychicDetectionRadius=,这是另一种雷达扫描效果(苏军的“心灵感应装置”那种圆弧效果)


===IsGattling===
仅限于BuildingType的Primary,所以盖特机炮的圆环范围不取决于WeaponX


填yes或者no,单位是否使用盖特武器系统,步兵无效
当武器Range=-2时操作无效


盖特逻辑即使Versus=0或LandTargeting=1导致当前武器无法发射也会继续升档
原版下这个效果只能友军可见,Phobos已允许【全局】设定


同样,它对地也不会根据LandTargeting=2换用偶数武器,你依然会看到最高阶奇数武器对地猛轰
HasTurretTooltips =


注意:盖特逻辑纯依照对地奇数武器对空偶数武器来处理无法在奇数武器攻击不了时使用偶数武器,Phobos硬编码改为允许
填yes或no。这个代码指定运兵位运兵时是否显示武器名称,“<多功能步兵>载具”而且运兵量必须为1。Ares扩展全套逻辑,详见说明书


升档使用计数器实现,即处于开火状态每帧+RateUp,没有目标每帧-RateDown
针对该句,IFV的名称显示规则如下:


通过这样的机制控制计数器的增减当计数器超过Stage[X]指定的阈值后切换为[X+1]阶段
如果不存在任何步兵(Infantry)Passenger那么载具仅显示为UIName=指定的内容


也就是说
如果为VehiclePassenger,不属于InfantryPassenger规则如上


WeaponStages=3
如果为InfantryPassenger,UseOwnName=yes,显示为<Passenger> <UIName>


Stage1=100
如果为InfantryPassenger,UseOwnName=no:


Stage2=200
若使用Tur[1],显示为{(CSFLabel        Tip:MachineGun) ([TransportVehicle] -> UIName=)}


Stage3=300
若使用Tur[2],显示为{(CSFLabel        Tip:Repair    ) ([TransportVehicle] -> UIName=)}


代表计数器累加到100/200/300时进入第2阶段/第3阶段/保持3阶(因没有4阶段可供3阶段升阶)阶段
若使用Tur[3],显示{([InfantryPassenger] -> UIName=) ([TransportVehicle] -> UIName=)}


而不是第一阶经过100帧后到第二阶第二阶经过200帧后到第三阶
若使用Tur[X]显示为{(CSFLabel        Tip:Rocket    ) ([TransportVehicle] -> UIName=)}


这也是旧时代实现一个单位多种器的一种方法
在RA2中不存在[InfantryType] -> UseOwnName=yes但若主弹头存在[Warhead] -> Bullets=yes则强制同Tur[1]规则


例如
HasSpotlight =


填yes或no。这个代码是从TS遗留下来的,在红色警戒2和YR除了给你个005F5155以外没什么作用。Ares已复原该逻辑,详见说明书


HasStupidGuardMode =


[VehicleType]
填yes或no。这个代码指定建筑是否能够自动攻击敌方目标。填yes时不能自动攻击


IsGattling=yes
实际上决定建筑使用哪一套威胁值计算方式,详见全局DumbMyEffectivenessCoefficient部分


Weapon1=FakeWeapon
Helipad =


Weapon3=Comet
填yes或no。这个代码指定建筑是否为机场建筑。入侵者一类的需要机场的空军单位就从这里制造。注意:需要停在机场的战机应该在PadAircraft=的列表中声明


Weapon5=120mm
Hospital =


Weapon7=M60
填yes或no。这个代码指定建筑是否为医院。进入医院的受伤步兵全部都会在短时间内痊愈。


Weapon9=120mmx
其实是从医院出来了一个一模一样的同等级步兵,出院时复制中心也会复制出另外一个一样的新兵。在尤里复仇中这个问题得到了解决


WeaponCount=10
不要与兵营连用,弱智AI会倾向于这个兵是刷出来的新的单位而不是自己原本生产的单位于是一直造


WeaponStages=5
注意:如果想限制升级步兵的数量,可以加入[TechnoType] -> Ammo=来限制,每进入一个步兵消耗一次弹药,弹药清零无法再进入


Stage1=1
特殊规则见[BuildingType] -> Grinding=语句下方


Stage2=1
YR中使用另一种医院,拥有任意[BuildingType] -> InfantryGainSelfHeal=1或更高的建筑时每隔[General] -> SelfHealInfantryFrames=帧为全场己方单位恢复[BuildingType] -> InfantryGainSelfHeal= * [General] -> SelfHealInfantryAmount=点血量直至达到[TechnoType] -> Strength=的值


Stage3=1
HoverAttack =


Stage4=1
填yes或no。这个代码原用于指定Jumpjet单位是否需要起飞以攻击目标,单位会在发起攻击时尝试起飞。但你也可以给地面单位使用,实际表现为打一枪移动一下(因为依然没能飞起来)


Stage5=1
HoverPad =


RateUp=1
填yes或no。这个代码是从TS遗留下来的


RateDown=0
如果全局中的SeparateAircraft=no则所有带HoverPad=yes的建筑会自动生成PadAircraft=的第一个单位


HunterSeeker =


填yes或no。这个代码是从TS遗留下来的,在红色警戒2中还有部分作用


[CometWH]
该单位可以跟踪选定的目标,但是永久禁用实际开火和移动,Ares已复原,详见说明书


Verses=0,0,0,0,0,0,1,1,1,0,0
HarvestRate =


[AP]
采集速率,YR中用于奴隶矿工


Verses=0,0,0,1,1,1,0,0,0,0,0
-I-


[SA]
IsGattling =


Verses=1,1,1,0,0,0,0,0,0,0,0
填yes或者no,该单位是否使用盖特武器系统,步兵无效


[ApocAP]
盖特逻辑即使Versus=0或LandTargeting=1导致当前武器无法发射也会继续升档


Verses=0,0,0,0,0,0,0,0,0,1,1
同样,它对地也不会根据LandTargeting=2换用偶数武器,你依然会看到最高阶奇数武器对地猛轰


注意:盖特逻辑单纯依照对地奇数武器对空偶数武器来处理,无法在奇数武器攻击不了时使用偶数武器,Phobos已硬编码改为允许


升档使用计数器实现,即处于开火状态每帧+RateUp,没有目标每帧-RateDown


那么由于一开火计数器立即达到1而所有阶段全开
通过这样的机制控制计数器的增减,当计数器超过Stage[X]指定的阈值后切换为[X+1]阶段


由于Versus为0所以高阶武器攻击某个目标时会向下切回低阶武器
也就是说


那么从弹头比率上区分类型靠盖特系统计数器武器选用规则来切换
WeaponStages=3


Stage1=100


Stage2=200


上面的FakeWeapon是一个抹掉所有特殊效果Verses全100%的假武器,用于初始锁定目标和升阶
Stage3=300


因为盖特的第一武器必然会先待命发射一次,哪怕StageX=0或RateDown<0初始累加计数器,那么也会先射一发一武器再跳到计数器所决定阶段的武器
代表计数器累加到100/200/300时进入第2阶段/第3阶段/保持3阶(因为没有4阶段可供3段升阶段


不是第一阶经过100帧后到第二阶,第二阶经过200帧后到第三阶


这也是旧时代实现一个单位多种武器的一种方法,成品参考https://www.bilibili.com/opus/955527925895004169


===InfantryAbsorb===
原理释义如下:


步兵能否进入该生化反应炉,同时开启特殊的建筑工作动画效果,即根据是否有步兵进入分别使用ActiveAnim1和2,不过3和4以及IdleAnim并不受影响
[VehicleType]


===IdleRate===
IsGattling=yes


填数值。单位空闲动画播放速率,素材中每帧实际播放多少帧。可用于shp载具vxl载具
Weapon1=FakeWeapon


===IFVMode===
Weapon3=Comet


填多功能步兵载具的相关炮台数值。这个代码指定步兵进入多功能步兵载具后多功能步兵载具的状态
Weapon5=120mm


===IgnoresFirestorm===
Weapon7=M60


填yes或no。该单位是否无视火风暴墙,TS残留无效,Ares已复原,详见说明书
Weapon9=120mmx


===Image===
WeaponCount=10


填Art.ini的图象定义名。这个代码指定该单位的图象
WeaponStages=5


不设定时即和Art.ini中的名称相同。注意:Art.ini中的单位名称应该和单位对应的素材(SHP、VXL/HVA)名称相同,否则会无法显示单位的图象只会显示图标
Stage1=1


重要问题:原版很多数据直接读取同名ART段落而非Image指定的ART段落,例如[A]Image=B则Foundation会先找ART中[A]的Foundation而不是[B]的
Stage2=1


===ImpactLandSound===
Stage3=1


填Sound.ini中定义的声音名。这个代码指定单位被摧毁落地时的声效,如果有Crashable=no会半空爆炸
Stage4=1


===ImpactWaterSound===
Stage5=1


AircraftType撞到水上的音效,已在全局定义默认值
RateUp=1


===Immune===
RateDown=0


填yes或no。这个代码指定单位是否会受到损害
[CometWH]


当为yes时单位为无敌状态,任何损伤都没有用。一般用于桥梁维修小屋一类的重要建筑
Verses=0,0,0,0,0,0,1,1,1,0,0


仅限物理伤害,心控/时空等特殊武器需要单独调用免疫条目
[AP]


并且在指令上仅影响玩家手动锁定,所以主动寻敌或者卡光标Bug依然可以攻击只是不掉血
Verses=0,0,0,1,1,1,0,0,0,0,0


===ImmuneToPsionics===
[SA]


填yes或no。这个代码指定单位是否免疫精神武器。注意:建筑默认yes 其他单位默认no
Verses=1,1,1,0,0,0,0,0,0,0,0


===ImmuneToPsionicWeapons===
[ApocAP]


填yes或no。这个代码指定单位是否免疫尤里气波类精神攻击武器,默认同上一句
Verses=0,0,0,0,0,0,0,0,0,1,1


YR下免疫神经车毒气的与否也跟随ImmuneToPsionics的设置,在Ares中可以独控制
那么由于一开火计数器即达到1而所有阶段全开


===ImmuneToRadiation===
由于Versus为0所以高阶武器攻击某个目标时会向下切回低阶武器


填yes或no。这个代码指定单位是否会受到辐射类弹头的影响
那么从弹头比率上区分类型靠盖特系统计数器武器选用规则来切换


然而蛋疼的标签只影响杀伤和手动索敌,以你在原版就能见到AI家和你家的DESO激情对射或者你的DESO靠近AI家附近开对AI家的矿车射个不停
上面的FakeWeapon抹掉有特殊效果Verses全100%的假武器用于初锁定目标和升阶


===ImmuneToVeins===
因为盖特的第一阶武器必然会先待命发射一次,哪怕StageX=0或RateDown<0初始累加计数器,那么也会先射一发一阶武器再跳到计数器所决定阶段的武器


填yes或no。这个代码指定步兵单位是否会受到泰矿废矿伤害,TS残留无效,Phobos已复原,详见说明书
ICBMLauncher =


===Infiltrate===
同时也决定载具通过DeploysInto部署成该建筑前是否转向正东方


填yes或no。这个代码指定步兵是否可以“渗透”建筑物,然而没有任何其他效果
部署转向规则见[BuildingType] -> Artillary=一条下方


C4=yes、Engineer=yes、Agent=yes、Assaulter=yes等可以独立于该语句使用,自带进入效果
InfantryAbsorb =


不过各种针对建筑进入特殊攻击行为最终执行只会一种
建筑是否允许步兵进入,同时开启特殊的建筑工作动画效果,即根据是否步兵进入分别使用ActiveAnim1和2,不过3和4以及IdleAnim并不受影响


大致优先级排序为[ occupier > assaulter > engineer > C4 > Ivan > agent > thief ]
在建筑有[BuildingType] -> Cloning=yes或[BuildingType] -> Armory=yes或[BuildingType] -> Hospital=yes时使用特殊规则


===InitialAmmo===
Phobos已更改规则,详见Phobos说明书


填数字。这个代码指定该单位出厂时的初始弹药数。当不设定时,初始弹药数为Ammo=的数值
IdleRate =


===Insignificant===
填数值。单位空闲动画播放速率,素材中每帧实际播放多少帧。可用于shp载具vxl载具,默认0,静止时不播放。对于直升机起降相关的见Ares说明书中[TechnoType] -> AirRate=一条


填yes或no。这个代码指定该单位是否为“无关紧要的单位”一般用于平民中立单位
IFVMode =


即在破坏时EVA不会播发EVA_UnitLost讯息,ai也不会主动攻击它
填多功能步兵载具相关炮台数值。这个代码指定步兵进入多功能步兵载具后多功能步兵载具的状态


会使建造限制(BuildLimit)、机位限制、超武、触发事件等很多逻辑失效
IgnoresFirestorm =


在Yr中被心控的单位会被AI为有目标
填yes或no。该单位是否无火风暴墙,TS残留无,Ares已复原,详见说明书


*对于可以正常播放EVA_UnitLost的单位Ares已经允许微观定义具体的EVA条目或关闭EVA播报而无需此类语句支持
Image =


===Invisible===
填Art.ini的图象定义名。这个代码指定该单位的图象


填yes或no这个代码指定该单位是否无形,仅非所属方有效,不过非所属方依然可以看到其生成其他动画。建筑上不佳直接用下句建筑专用即可
不设定时即和Art.ini中的名称相同注意:Art.ini中的单位名称应单位对素材(SHP、VXL/HVA)名称相同否则会无法显示单位图象只会显示图标


===InvisibleInGame===
重要问题:原版很多数据直接读取同名ART段落而非Image指定的ART段落,例如[A]Image=B则Foundation会先找ART中[A]的Foundation而不是[B]的


填yes或no。这个代码指定建筑是否不能被游戏者发现和选中、攻击等,只能看见它的动画等特效。一般用于灯光建筑
ImpactLandSound =


可以攻击,但免疫物理伤害不过例海豚波的穿透伤害和粒子伤害等可以正常生效
填Sound.ini中定义的声音名。这个代码指定单位被摧毁落地时的声效,如果有Crashable=no会半空爆炸


不应该用于玩家可拥有的建筑,否则会导致重连错误(RE)
ImpactWaterSound =


===IsBaseDefense===
AircraftType撞到水上的音效,已在全局定义默认值


填yes或no。这个代码指定建筑是否为防御建筑,AI会根据选项来自动建造防御工事来防御自己,对于水上防御塔需要添加Naval=yes来让AI认识
Immune =


===IsChargeTurret===
填yes或no。这个代码指定单位是否会受到损害


填yes或no。充能炮塔如光棱坦克,用于Voxel炮塔,攻击次后将TurretCount所指定量的炮塔逐个播放,来表现种下次开火前逐步充能效果
当为yes时单位为无敌状态任何损伤都没有般用于桥梁维修小屋重要建筑


这个逻辑虽然使用WeaponX系统但实际上只会使用Weapon1和EliteWeapon1,也常被用于证明单武器效果
仅限物理伤害,心控/空等特殊武器需要单独调用免疫条目


这个逻辑下最好武器ROF>=TurretCount因为逆序播放几号炮塔根据ROF/BurstDelayX余量结合TurretCount计算的
并且在指令上仅影响玩家手动锁定,所以主动寻敌或者卡光标Bug依然可以攻击只不掉血


以原版SREF举例,炮塔素材有sreftur+sreftur[1|2|3]共4个对应TurretCount=4参数设定
ImmuneToPsionics =


如果ROF=4,那么常态使用tur,开火后变为tur3,下帧变为tur2,再下帧变为tur1,然后满
填yes或no。这个代码指定单位是否免疫精神武器。注意:建筑默认yes其他单位默认no


如果ROF=3,那么常态使用tur,开火后因为ROF从一开始只剩3,于是直接跳过tur3使用tur2
ImmuneToPsionicWeapons =


Phobos已允许独立每个武器和Burst独立于ROF/BurstDelayX设定控制炮塔充能动画切换的这参数,详见说明书
填yes或no。这代码指定单位是否免疫尤里气波类精神攻击武器,默认同上


===IsCanine===
YR下免疫神经车毒气的与否也跟随ImmuneToPsionics的设置,在Ares中可以独立控制


填yes或no。RA1残留无效,因为已经被DetectDisguise=yes替代了
ImmuneToRadiation =


===IsDropship===
填yes或no。这个代码指定单位是否会受到辐射类弹头的影响


否为DropShip,实际上这个东西在TS的战役里出现过这句与吊运逻辑一样可让FlyLocomotor单位降落时播放一动画,详见Locomotor词条注解
然而蛋疼的是这个标签影响杀伤和手动索敌你在原版就能见到AI家和你家的DESO激情对射,或者你的DESO靠近AI家附近开始对AI家矿车射不停


相较于吊运逻辑,这个语句不仅限Aircraft使用,并且可以禁用FlyLocomotor自带的硬编码上下浮动浮动效果,但也会引入其他硬编码效果
ImmuneToVeins =


===IsSelectableCombatant===
填yes或no。这个代码指定步兵单位是否会受到泰矿废矿伤害,TS残留无效,Phobos已复原,详见说明书


填yes或no。这个代码指定该单位是否能被玩家按N和M选中,也影响P选和框选,不过由于原程序发送事件的缓冲区限制因此一个指令同一帧内只能对最多128个对象下达
Infiltrate =


===IsSimpleDeployer===
该步兵能否“渗透”建筑物,然而没有任何其他效果


填yes或no。这个代码指定单位部署后会变成另一个图像但实际上仍然是同一个单位,例如原版武装直升机,部署后
像C4=yes、Engineer=yes、Agent=yes、Assaulter=yes等可以独立于语句使用自带进入效果


武器使用Secondary与EliteSecondary或Weapon2与EliteWeapon2指定副武器,盖逻辑无法升档,光棱充能炮塔逻辑会失去武器,哪怕WeaponCount=2解开数量限制也无法手动控制其攻击能通过主动寻敌来开火,并且依然使用Weapon1所指定的武器
不过各种针对建筑进入和攻击行为最终执行的会有一种


图像使用UnloadingClass=指定从哪个单位获取,例如UnloadingClass=MTNK,又由于原版MTNK使用Image=GTNK实际使用的是GTNK作图像,因此Deployer状态下会变为GTNK
大致优先级排序[ occupier > assaulter > engineer > C4 > Ivan > agent > thief ]


由于该标签仅对Vehicle有效,所以需要与这个标签合用的Ares的Convert.Deploy等功能也随之在实际应用范围上仅限Vehicle
InitialAmmo =


事实上处于SimpleDeployer状态的VehicleType比常态BuildingType在超远程Arcing抛射体精度上问题上还要更高一些
填数字。这个代码指定该单位出厂时的初始弹药数。当不设定时,初始弹药数为Ammo=的数值


===IsTilter===
由于非建筑和战机类单位创建时就会尝试补充一次弹药,所以 0 值也会初始 1 弹药,而特殊值-1为默认值即全满,因此需要使用-2来让单位初始 0 弹药


填yes或no。这个代码指定单位在斜坡上是否会倾斜,然而这个标签是废的
Insignificant =


只要Locomotor为Drive(包括没钻地时的Tunnel)都会倾斜,是原版超时空矿车静止时总是不倾斜,Phobos已修复
填yes或no。这个代码指定该单位是否为“无关紧要的单位”一般用平民中立单位


===IsTrain===
即在破坏时EVA不会播发EVA_UnitLost的讯息,ai也不会主动攻击它


填yes或no。这个代码指定载具单是否为火车。可以碾压矿场之类可以踩上去的建筑
会使建造限制(BuildLimit)、机限制、超武、触发事件等很多逻辑失效


如果是从工厂开出来可能造出来就把工厂压毁了而直接在仓内暴毙开不出来
在YR中被心控单位会被AI视为有效目标


多个火车之间不会互相考虑,也就是扎堆移动能互碾
<nowiki>*</nowiki> 对于以正常播放EVA_UnitLost的单位Ares已经允许微观定义具体的EVA条目或关闭EVA播报而无需此类语句支持


火车逻辑碾压一切,毕竟本来就不是所谓碾压等级,而是高度客制化的检查轨道上有没有东西如果就一头创死。但是如果火车逻辑额外拥有碾压语句,那么再碾死目标碾压逻辑优先执行诸如碾压触发死亡武器设定之类效果
注意:该句有时会导致手动建造建筑在通过工程师占领或伤残等方式刷新状态前不显示图像


===Ivan===
Invisible =


填yes或no。这个代码指定步兵是否为疯狂伊文类型的单位作用是和电脑作区分强制步兵Attack光标为IvanBomb绑纯单位是是步兵和弹头能不能绑,Ares已允许非步兵单位正常使用IvanBomb类弹头
填yes或no。这个代码指定该单位是否无形仅对非所属方有效,不过非所属方依然可以到其生成的其他动画。建筑上佳,直接用下句建筑专用的即可


===InfantryGainSelfHeal===
InvisibleInGame =


科技医院效果回血血量倍率,每隔SelfHealInfantryFrames时间,步兵恢复该值*<code>[General] -> SelfHealInfantryAmount=</code>数量的血量,此外Organic=yes的载具也被算入
填yes或no。这个代码指定建筑是否不能被游戏者发现和选中、攻击等只能看见它动画等特效。一般用于灯光建筑


===IsPlug===
可以攻击,但免疫物理伤害,不过例如海豚波的穿透伤害和粒子伤害等可以正常生效


该建筑是插件塔,用于全局IonCannonValue判定
不应用于玩家可拥有的建筑则会导致重连错误(RE)


据说在TS中该语句会判定建筑注册名是否为[GAPLUG]然后强制启用一些诸如硬改Foundation的硬编码效果,RA2中倒是似乎砍完了
IsBaseDefense =


===IsTemple===
填yes或no。这个代码指定建筑是否为防御建筑,AI会根据选项来自动建造防御工事来防御自己,对于水上防御塔需要添加Naval=yes来让AI认识


该建筑是否被视为神殿,用于全局IonCannonValue判定
IsChargeTurret =


===IsThreatRatingNode===
该单位是否使用充能炮塔逻辑,就像原版光棱坦克这种使用Voxel炮塔的单位,攻击一次后将TurretCount所指定量的炮塔逐个播放,来表现一种下次开火前逐步充能的效果


该建筑是否为威胁评级节点使位智能AI更好的评定威胁级,使用default threat取代dumb threat
同时这个逻辑虽然启用WeaponX系统但实际上只会使用Weapon1和EliteWeapon1曾经也常被用于证明武器效果不过从PhobosBuild48开始允许使用新的多武器逻辑在这句启用的情况下使用其他武器,详见说明书


然而似乎没什么卵用,强制开启
这个逻辑下最好武器ROF>=TurretCount因为逆序播放几号炮塔是根据ROF/BurstDelayX余量结合TurretCount计算的


===InfantryCostBonus===
以原版SREF举例,炮塔素材有sreftur+sreftur[1|2|3]共4个对应TurretCount=4参数设定


步兵建造价格为原来多少倍
如果ROF=4,那么常态使用tur,开火后变为tur3,下帧变为tur2,再下帧变为tur1,然后满


如果ROF=3,那么常态使用tur,开火后因为ROF从一开始只剩3,于是直接跳过tur3使用tur2


Phobos已允许独立每个武器和Burst独立于ROF/BurstDelayX设定控制炮塔充能动画切换的这一参数,详见说明书


==J==
IsCanine =


===JumpJetTurn===
RA1残留无效,已被[TechnoType] -> DetectDisguise=yes取代


填yes。让飞行兵使用正确的开火位置
IsDropship =


是否为DropShip,实际上这个东西只在TS的战役里出现过,这句与吊运逻辑一样可以让FlyLocomotor的单位降落时播放一个动画,详见Locomotor词条注解


相较于吊运逻辑,这个语句不仅限Aircraft使用,并且可以禁用FlyLocomotor自带的硬编码上下浮动浮动效果,但也会引入其他硬编码效果


===JumpJet===
当这样的单位使用FlyLocomotor时升降速率最大为16,且接近地面时为6,坠毁时最大48


填yes或no。这个代码指定单位是否为Jumpjet式飞行,一般与Locomotor=Jumpjet合用,仅用于一些判定,实际运动模式由Locomotor决定
IsSelectableCombatant =


会导致单位不会自动采矿
填yes或no。这个代码指定该单位是否能被玩家按N和M选中,也影响P选和框选,过由于原程序发送事件的缓冲区限制因此一个指令同一帧内只能对最多128个对象下达


以下语句在Locomotor=Jumpjet且处于空中时使用
IsSimpleDeployer =


(也就是远距离飞行近距里步行的飞行兵仅在飞行时使用JumpjetSpeed在地用Walk时正常使用Speed)
该载具能否部署以使用另一个武器和图像,但实际仍然是同一个单位,例如原版武装直升机


注:原版INI中WW大小写非常不规范除上面两句外余的Jumpjet系列语句第二个j均为小写
武器使用Secondary与EliteSecondary或Weapon2与EliteWeapon2指定的副武器盖特逻辑无法升档,光棱充能炮塔逻辑会失去武器,哪怕WeaponCount=2解开数量限制也无法手动控制攻击,只能通过主动寻敌来开火,并且依然使用Weapon1所指定的武器


也就是原版很多单位下的JumpJetAccel和JumpJetTurnRate是无效的,实际取了全局默认值
图像使用UnloadingClass=指定从哪个单位获取,例如UnloadingClass=MTNK又由于原版MTNK使用Image=GTNK实际使用的是GTNK作为图像,因此Deployer状态下会变为GTNK


但是你如果改回正确的标签让它生你会发现WW那些无效标签的值简直是瞎写,并且会导致并不正常的效果
由于该标签仅对Vehicle有效,所以需要与这个标签合用的Ares的Convert.Deploy等功能也随之在实际应用范围上仅限Vehicle


===JumpjetAccel===
事实上处于SimpleDeployer状态的VehicleType比常态BuildingType在超远程Arcing抛射体精度上问题上还要更高一些


填数值。个代码指定飞行单位在移动中加速比率,一般填整数
不会检查单位是否真正可以执行部署,因此哪怕不能部署情况下也可能显示为常规的允许部署光标,Phobos已允许设置


减速度为JumpjetAccel*1.5
对于[TechnoType] -> Locomotor=Jumpjet/Hover且拥有[TechnoType] -> DeployToLand=yes的单位不能在水域和沙滩上部署,Phobos已允许设置


如果写的很高会导致单位还没有抵达目的地就被减速而无法完成移动指令,例如尝试降落但永远无法降到地面而是卡在比平飞高度低一些的位置,并且会导致单位会重叠在同一个格子中,而且攻击非面向方向的目标可能会指令无效。但是以外的解决了原版的JumpjetLocomotor载具Turret=yes则炮塔始终朝向正东的问题,当然现在不需要用这种歪法了
IsTilter =


===JumpjetClimb===
该载具在斜坡上是否会倾斜,然而这个标签是废的。实际只要Locomotor=Drive(包括没钻地时的Tunnel)都会倾斜,于是原版超时空矿车静止时总是不倾斜,Phobos已修复


填数值。这个代码指定飞行单位在越过山崖等高地时的攀登速度
IsJuggernaut =


===JumpjetCrash===
这是个FS语句,RA2/YR中就没这个语句,所以当然也不会有效果,但是因为总有人从一些老材料里抄来所以特列于此


填数值。这个代码指定飞行单位被摧毁时坠地的速度,一般不要大于15
IsTrain =


一定要比JumpjetClimb大,能在建筑上坠毁时永远圈但情况
该单位是为火车。可以碾压矿场之类以踩上去的建筑,并且导致该载具每次身最大转135°而不是180°(火车本来也该在轨道上直接掉头)这也导致HoverLocomotor火车每次转弯都会导致车距变大


原版下JumpjetLocomotor单位坠时总会转着圈掉下,Phobos已允许定义(毕竟像《世界轴承》中RITC阵营的NMSL号空天母舰那样的大型飞行载具转着圈坠地给人的感觉实在有些太蠢了)
如果是从工厂开出来可能造出来就把工厂压了而直接在仓内暴毙开不出


===JumpjetDeviation===
实际上一个附带效果导致它寻路时绕过建筑的路线会比较呆导致哪怕是不能开上去的也会擦边碾爆……毕竟这玩意本来就是设计于通过[VehicleType] -> MovementRestrictedTo=限制只在特定的地形上跑的


填数值。个代码指定飞行单位浮动幅度
里的碾压是实际上是硬编每次碾压使用[CombatDamage] -> C4Warhead=指定的弹头对目标造成10000点伤害同时对自己造成20点伤害,此处的杀伤值不受该弹头[Warhead] -> Verses=与[CombatDamage] -> MaxDamage=设置影响


===JumpjetHeight===
多个火车之间不会互相考虑,也就是扎堆移动可能互碾,碾过载具有硬编码间隔以至于可能碾漏(也可能由于移速过慢而对同一个血量够厚的对象碾多次)但碾步兵可以稳定创死,如果没有[TechnoType] -> MovementZone=CrusherAll那么可能会穿过围墙而不造成任何效果,对于地形对象则虽然能碾但只会对自己造成杀伤而目标完好无损(不是单纯视觉残留)


填数值。这个代码指定飞行单位的飞行高度,通常置为800
火车逻辑碾压一切,毕竟本来就不是所谓碾压等级,而是高度客制化的检查轨道上有没有东西如果有就一头创死。但是如果火车逻辑额外拥有碾压语句那么再碾死目标时碾压逻辑优先执行诸如碾压触发死亡武器定之类的效果


只要起飞,实际达到的平飞高度坐标最低255以上
另外如果地图设置[Basic] -> TrainCrate=yes那么火车单位被摧毁后会留下一个工具箱


===JumpjetNoWobbles===
Ivan =


填yes或no。这个代码指定是否禁止飞行单位浮动。填yes时禁止该单位浮动
该步兵是否为疯狂伊文类型,涉及免疫效果无法攻击[ObjectType] -> Bombable=no的对象


===JumpjetWobbles===
此外还会强制步兵使用IvanBomb替代Attack作为攻击光标,而绑不绑纯看单位是不是步兵类以及弹头能不能绑,Ares已允许非步兵单位


填数值。这个代码指定飞行单位的浮动频率,不能为0,不需要浮动请用上句
InfantryGainSelfHeal =


===JumpjetSpeed===
科技医院效果,回血血量的倍率,每隔SelfHealInfantryFrames时间,步兵恢复该值*[General] -> SelfHealInfantryAmount=数量的血量,此外Organic=yes的载具也被算入


填数值。这个代码指定飞行单位的平飞速度,即在没有地形影响时飞行单位的运行速度
IsPlug =


===JumpjetTurnRate===
该建筑是否是插件塔,用于全局IonCannonValue判定


填数值。这个代码指飞行单位掉转方向速率,当JumpjetSpeed/JumpjetTurnRate足够大时即可让Jumpjet像Fly那样盘旋,例如https://www.bilibili.com/opus/764036774809829440
据说在TS中该语句会判建筑注册名是否为[GAPLUG]然后强制启用一些诸如硬改Foundation硬编码效果,RA2中倒是似乎砍完了


原版写的过小可能反而瞬间转向,Ares下会崩溃
IsTemple =


该建筑是否被视为神殿,用于全局IonCannonValue判定


IsThreatRatingNode =


该建筑是否为威胁评级节点,使单位智能AI更好的评定威胁级,使用default threat来取代dumb threat


然而似乎没什么卵用,强制开启


==K==
InfantryCostBonus =


===KenosisBlessedIt===
步兵建造价格为原来多少倍


让这段代码获得Kenosis的保佑(并不
-J-


JumpJetTurn =


拥有[TechnoType] -> Locomotor=Jumpjet的飞行步兵能否使用正确的朝向绘制开火位置,并在移动和转向时禁止开火


==L==
JumpJet =


===Landable===
填yes或no。这个代码指定单位是否为Jumpjet式飞行,一般与Locomotor=Jumpjet合用,仅用于一些判定,实际运动模式由Locomotor决定


填写yes或no。决定该AircraftType是否能够在地上或是具有Helipad=yes的建筑上着陆,与Spawned有一些令人疑惑的联
会导致单位不会自采矿


默认为no,所你必须手动把它设定为yes才能让飞机着陆。
下语句在[TechnoType] -> Locomotor=Jumpjet且单位处于空中时使用


对于不回机场(AirportBound=no&Dock=none)且Landable与Selectable任意为no战机目标丢失后会离开图,例如原版伞兵飞机
(也就是远距离飞行近距里步行飞行兵仅在飞行时使用JumpjetSpeed在地上用Walk时正常使用Speed)


===LeadershipRating===
注:原版INI中WW大小写非常不规范,除上面两句外其余的Jumpjet系列语句第二个j均为小写


用于AI小队中的队长判定,选择该值最高的单位作为队长进行寻路和目标判定该值默认为5
也就是原版很多单位下的JumpJetAccel和JumpJetTurnRate是无效的实际取了全局默认


===LeaveRubble===
但是你如果改回正确的标签让它生效了,你会发现WW那些无效标签填的值简直是瞎写,并且会导致并不正常的效果


填写yes或no。表示建筑死亡后会不会留下残骸废墟地表(油井,医院等),实际使用RUBBLE_OVERLAY这个覆盖物在原Foundation占用的格子上占地,需要建筑素材自身的特定帧作为图像,可自行提取原版平民建筑了解
JumpjetAccel =


===LeaveBioReactorSound===
填数值。这个代码指定飞行单位在移动中加速的比率,一般填整数


脱离复制中心回收的声音
减速度为JumpjetAccel*1.5


===LeaveGrinderSound===
如果写的很高会导致单位还没有抵达目的地就被减速而无法完成移动指令,例如尝试降落但永远无法降到地面而是卡在比平飞高度低一些的位置,并且会导致单位会重叠在同一个格子中,而且攻击非面向方向的目标可能会指令无效。但是以外的解决了原版的JumpjetLocomotor载具Turret=yes则炮塔始终朝向正东的问题,当然现在不需要用这种歪法了


脱离部队回收厂回收的声音
JumpjetClimb =


===LeaveTransportSound===
填数值。这个代码指定飞行单位在越过山崖等高地及建筑时的攀升和下降速度,同时也是基础坠落速度


填Sound.ini中定义的声音名。这个代码指定运兵单位中的单位释放时的声音
JumpjetCrash =


===LegalTarget===
填数值。坠毁时会使用JumpjetClimb+JumpjetCrash来获得一个正方向向下的速度


填yes或no。这个代码指定该单位能否被直接攻击(即不按下Ctrl键强制攻击的情况下)。典型的应用是平民的医院不能被直接攻击。注意:当按住Ctrl强制攻击,即使你设定了LegalTarget=yes,该单位都遭到攻击
如果值没有JumpjetClimb大的话单位在建筑上坠毁时会由于落地减速而永远无法死亡


===LeaveWaterSound===
原版下JumpjetLocomotor的单位坠毁时总会转着圈掉下来,Phobos已允许定义(毕竟像《世界轴承》中RITC阵营的NMSL号空天母舰那样的大型飞行载具转着圈坠地给人的感觉实在有些太蠢了)


离开水域时的声音,仅步兵可用
JumpjetDeviation =


===LeptonMindControlOffset===
填数值。这个代码指定飞行单位浮动的幅度


这个单位被心控时心灵控制线的结束点向上偏移多少,起始点是心控方FLH
JumpjetHeight =


YR新增算法非智障,竟然是用Lepton而不是Pixel而且也不是等比扩大,默认70在大多载具炮塔的位
填数值。这个代码指定飞行单位的飞行高度为800


即便写了低于208的值游戏也仍会确保该平飞高度高于空地判定界限,不过只要你不用[TechnoType] -> JumpjetNoWobbles=yes禁用上下浮动那么它仍可越界低于该界限而被视为地面对象进行攻击


JumpjetNoWobbles =


===Locomotor===
填yes或no。这个代码指定是否禁止飞行单位浮动。填yes时为禁止该单位浮动
{{:2.单位属性rules词典/Locomotor}}


===LightVisibility===
JumpjetWobbles =


建筑对地面染色(效果类似辐射)范围单位为Leptons,256为一格
填数值。这个代码指定飞行单位浮动频率不能为0,不需要浮动请用上句


这个效果在读档后将无法由于建筑被摧毁消除,Phobos已修复
JumpjetSpeed =


===LightIntensity===
填数值。这个代码指定飞行单位的平飞速度,即在没有地形影响时飞行单位的运行速度


建筑对地面染色的强度
JumpjetTurnRate =


===LightRedTint===
填数值。这个代码指定飞行单位掉转方向的速率,当JumpjetSpeed/JumpjetTurnRate足够大时即可让Jumpjet像Fly那样盘旋,例如https://www.bilibili.com/opus/764036774809829440


建筑对地面染色红色量
原版写过小可能反而瞬间转向,Ares下会崩溃


===LightGreenTint===
-K-


建筑对地面染色的绿色量
KenosisBlessedIt =


===LightBlueTint===
让这段代码获得Kenosis的保佑(那么先去下个KratosPP


建筑对地面染色的蓝色量
-L-


===LaserFencePost===
Landable =


建筑是否为激光墙节点,公版引擎下墙体只为第一个拥下句的建筑,节点可无限
战机是否能够在地上、母舰甲板或是具[BuildingType] -> Helipad=yes的建筑上着陆与[TechnoType] -> Spawned=yes有一些令人疑惑的联动


拥有此句的建筑可在拥有下句建筑上建造,就像加载物那样,但是会直接移除原建筑
默认为no,所你必须手动把它设定为yes才能让[TechnoType] -> Locomotor=Fly单位着陆


像围墙那样根据GuardRange决定延伸距
对于不回机场(AirportBound=no&Dock=none)且Landable与Selectable任意为no的战机在目标丢失后会开地图,例如原版伞兵飞机


若不存在LaserFence建筑那么Post之间不会显示连接的格子
LargeVisceroid =


注:如果你单纯只想让建筑像墙那样造早排大可使用Ares提供的战壕逻辑,详见2025教程包附赠的Ares说明书
该载具否为大型器官兽,具有直乱跑和系列硬编码动作。TS残留,相关逻辑不完整,Ares已复原,详说明书


===LaserFence===
LeadershipRating =


建筑是否激光墙墙体与上句共用于同一建筑会导致崩溃
用于AI小队中的队长判定,选择值最高的单位作队长进行寻路和目标判定该值默认为5


YR1.001因为WW的疏忽导致激光墙墙体建筑将始终处于不工作状态,Ares已修复
LeaveRubble =


强制拥有Immune=yes效果但是为了防海豹还是需要添加CanC4=no
填写yes或no。表示建筑死亡后会不会留下残骸废墟地表(油井,医院等),实际使用RUBBLE_OVERLAY这个覆盖物在原Foundation占用格子上占地,需要建筑素材自身特定帧作为图像,可自行提取原版平民建筑了解


拥有这句的建筑在摆下前会清空矿石覆盖物,哪怕实际上最后没生成成功
LeaveBioReactorSound =


对应的生成时它同一单元格的实体会被摧毁,步兵强制使用电死的效果
脱离复制中心回收声音,际只读全局,PhobosBuild47已修复


同样,根据Post链接时哪怕中间的格子被前两句所说的物体占据也不影响建造
LeaveGrinderSound =


而手动建造时更是可以直接在存在单位单元格上建造
脱离部队回收厂回收声音


你可以利用这个性质配合现代拓展引擎当中的单位BaseNormal实现类似向单位上放置加载物升级的效果
LeaveTransportSound =


你也可以利用这个性质控制某个建筑初始摆设置,只不过为了摆下后正常受伤要再走一步转化
填Sound.ini中定义的声音名。这个代码指定运兵单位中单位释时的声音


LegalTarget =


填yes或no。这个代码指定该单位能否被直接攻击(即在不按下Ctrl键强制攻击的情况下)。典型的应用是平民的医院不能被直接攻击。注意:当按住Ctrl强制攻击时,即使你设定了LegalTarget=yes,该单位都会遭到攻击


帧使用规则为(此处以ShpBuilder中的序号举例,从1开始)
LeaveWaterSound =


1-东西方向普通墙体
离开水域时声音,仅步兵可用


2-西端与节点相连的墙体
LeptonMindControlOffset =


3-东端与节相连的墙体
这个单位被心控时心灵控制线的结束向上偏移多少,起始点是心控方FLH


4-东西方向两个节点中间唯一一节墙体(东西方向与两个节点相连)
YR新增,算法非常智障,竟然是用Lepton而不是Pixel而且也不是等比扩大,默认70在大多载具炮塔的位置


——
Locomotor =


5-南北方向的普墙体
运动模式。与单位类型无对应关系,只是常用法


6-南端与节点相连的墙体
注:


7-北端与节点相连的墙体
以下SpeedType默认值均默认用于Vehicle或Aircraft


8-南北方向两个节点中间唯一一节墙体(南北方向与两个节点相连)
步兵(Infantry)无论什么Locomotor都默认Foot


————
{4A582741-9839-11d1-B709-00A024DDAFD1} 地面载具载具


9-16用于断电与罢工状态
简称Drive


————————
SpeedType默认Wheel,若Crusher=true则默认Track


17-32影子帧
如果步兵使用且设置了一个极低的速度那么在第一次接近目标单元格时会直接停下并永远完成不了移动动作也无法用新指令覆盖这一动作


===LightningRod===
{4A582742-9839-11d1-B709-00A024DDAFD1} 悬浮载具(遥控坦克、气垫船)


是否为避雷针,TS残留无效,Ares已还原相关逻辑,详见说明书
简称Hover


SpeedType默认Hover


Drive与Hover在不考虑加速度和SpeedType等因素下速度比大致为14:17


==M==
被瘫痪(YR遥控坦克断电、TS的EMP和离子风暴等)会落到地面静止或坠海喂鱼


===MoveToShroud===
使用该Locomotor的运输单位如果SpeedType不是Hover,那么释放乘客时虽然可以D键部署正常释放,但手动释放会显示为不能部署的光标也点不下去,除非你用IsSimpleDeployer等语句让它为别的行为显示可以部署的光标,不过那就又要引入其他语句的特性了~


是否可以命令该单位进入黑幕里
使用该Locomotor的单位如果速度过高那么非直线移动时的轨迹会比较飘逸,并且原版Arcing类抛射体对这类目标的落点计算会很难精确处理


===MobileFire===
{4A582743-9839-11d1-B709-00A024DDAFD1} 钻地载具


填写yes或no,指定此单位是否有移动中开火和自动装填弹药的能力
简称Tunnel


如果设置为no则OpportunityFire=yes时仍不能移动时开火
SpeedType默认与Drive相同


===MaxNumberOccupants===
并不存在Underground这个SpeedType!那是DeeZire教程中遗留下来的错误!


平民建筑能进驻多少人
仅当目标地块未设置[TileSet] -> AllowBurrowing=no时才可以钻取


===MissileSpawn===
距离目的地的距离高于 11 个单元格则会选择钻地


填写yes表示此子机单位为导弹类子机(V3 无畏),母舰发射后立即进入SpawnRegenRate
潜地下潜速度由[TechnoType] -> Speed= * [General] -> TunnelSpeed=定义


第一次火后立即消失,非命中撞击使用导弹参数定义的爆炸或被拦截摧毁爆出DeathWeapon
潜地钻地动画与音效由全局[AudioVisual] -> Dig=与[AudioVisual] -> DigSound=定义,但是由于[AudioVisual] -> DigSound=还被WW在RA2发过程中拿去做核弹警报音效(他们为了赶Demo版直接使用了由于RA2中并不使用被他们认为毫无意义的这个INI标签作为接口)因此不便使用,Ares对钻地动画与音效以及超武生效音效全部微观定义,并且允许分离钻入和钻出时不同效果,详见说明书


是否为导弹类子机并不限定Locomotor,FlyLocomotor的Aircraft同样可以使用而RocketLocomotor的Aircraft同样可以删除该语句或设no来允许跟踪(每次武器开火时刷新目标位置)
地下水平移动速度硬编码7.5地下水平移动深度硬编码-256


没有此语句子机生位置只遵循FL而H无效,Ares已修复
Phobos已允许微观定义地下移动水平速度和高度(TunnelSpeed:为什么会变这样呢?第一次有了……)


建筑航母生成Locomotor=Rocket的子机将会导致IE,Ares已修复
常规移动速度由单位Speed定义


拥有这个语句的子机无法追踪目标单位也不同步母舰命令,Kratos允许,且Kratos下的导弹即便拥有这个语句(例如原版V3无畏雷鸣导弹)其武器的目标也会是目标单位而不再是地面
原版下无法正常翻转与倾斜,Phobos修复


===ManualReload===
步兵和战机类只要使用这一运动模式就会全程钻地,并且无视[TileSet] -> AllowBurrowing=no的限制,甚至可以从海底钻出来。PhobosBuild44扩展后步兵一钻地就会崩溃


是否必须进一个UnitReload=yes的建筑才能装弹,RA1布雷车残留逻辑但有效
{4A582744-9839-11d1-B709-00A024DDAFD1} 地面步兵


建筑需要可以Dock和Enter也就是得是维修厂和坦克碉堡以及矿场那类的建筑
简称Walk


战机认yes,其他默认no,有一个特殊效果是
SpeedType认与Drive相同(步兵情况见上文)


和战机一样需要在Dock=写上这个建筑
允许由Sequence的相关项控制在水里的移动图像


空投时步兵的阴影使用infshdw.shp,降落伞使用全局[General] -> Parachute=的动画,原版为parach.shp


空降仓超武的步兵在空中时,使用pod.shp,但是原版Ra2空降仓相关逻辑砍了


这样单位弹药装满后会被内部额外装填一次,也就是Ares下满Ammo(Techno)实际上开火时弹药改变量按Ammo(Techno)+ReloadAmount-Ammo(Weapon)来算,视觉上就第一发会消耗Ammo(W)-ReloadAmount的Ammo(T)
使用该Locomotor步兵如果速度过低那么在向SW/NE方向移动时会中间想要向正S/N方向走两步再转回去


对应的如果Ammo(W)<=ReloadAmount就出现满弹药一直不消耗Ammo(T)问题,除非有ROF(W)<<Reload(T)
在每格上停留 1 帧,不计环境因素最终计算下来 Walk 和 Mech 的 7 接近 Drive 4。


{4A582745-9839-11d1-B709-00A024DDAFD1} 空降仓投送


简称DropPod


===MoveSound===
用于空降仓,TS残留。直接给单位用上会稳定炸裂祭天7C812FD3/7587845D


移动时发出什么声音,盖特武器Report使用类似的系统
可以通过磁电弹头使用,但会留下空气墙,光标悬浮在单位上于原位置显示血条,Bug很多


===MindClearedSound===
载具可以用碾压和超时空碾爆,战机会崩并且极易内存损坏导致EIP只能抛出00000000或一个极大数而不是实际的崩溃地址


精神控制车控制的单位脱离控制的声音,YR新增
{4A582746-9839-11d1-B709-00A024DDAFD1} 机场飞机飞行运动模式


===MindControlRingOffset===
简称Fly


这个单位被心控心灵控制的标记动画向上偏移多少
SpeedType默认Winged,然而寻路的候实际按MovementZone=Normal和SpeedType=Track来找空地


YR新增智障,竟然是用Lepton而不是Pixel而且也不是等比扩大,默认140在大多步兵脑袋位置
于是因为原版[Water] -> Track=0%禁止SpeedType=Track的单位移动上去原版战机直接点击移动到水上是无执行


===MaxDebris===
也可以用于载具,但会造成一些问题,例如影子直接画在本体上


对象被毁爆出碎片的最大量
根据在Art中的Trailer可以拥有一个尾烟,然而这个尾烟哪怕降落在机场也不会停……


===MinDebris===
对于Aircraft使用该Locomotor可以使用Carryall=yes来吊运载具


对象被毁爆出碎片的最小量
<nowiki>*</nowiki> 原版雌鹿直升机是Vehicle并且Locomotor也不是这个所以Carryall无效


拥有Carryall=yes的Aircraft落地会播放名为[CARYLAND]的动画


拥有IsDropship=yes的Techno落地会播放名为[DROPLAND]的动画


==N==
最好不要用于Infantry,极易随机IE


===NormalTurretIndex===
爬升时


===NormalTurretWeapon===
如果有[TechnoType] -> IsDropship=yes则最大16


===RepairTurretIndex===
否则有载员的最大10无载员的最大20


===RepairTurretWeapon===
降落时


===MachineGunTurretIndex===
如果有[TechnoType] -> IsDropship=yes则最大16,特殊情况最大6


===MachineGunTurretWeapon===
对于[TechnoType] -> IsDropship=no的单位,最小20最大50


===FlakTurretIndex===
坠毁时的速率变化为新的下降速率为前下降速率/20(IsDropship的额外+10)


===FlakTurretWeapon===
如果有[TechnoType] -> IsDropship=yes则最大48,然后逐渐减速接近10


===PistolTurretIndex===
对于[TechnoType] -> IsDropship=no的单位,最小20最大50


===PistolTurretWeapon===
当处于空中时被瘫痪(EMP/离子风暴)会直接祭天


===SniperTurretIndex===
根据Fighter的值决定是轰炸还是悬浮定点开火,Fighter=no且非五连发抛射体时为悬浮定点开火,此时遵照全局[General] -> CurleyShuffle=控制是否打一发换个位置


===SniperTurretWeapon===
{4A582747-9839-11d1-B709-00A024DDAFD1} 超时空运动


===ShockTurretIndex===
简称Teleport


===ShockTurretWeapon===
SpeedType默认与Drive相同


===ExplodeTurretIndex===
所以想要超时空移动到水上需要修改SpeedType


===ExplodeTurretWeapon===
如果工厂具有Naval=yes,那么这个单位会生成后直接传送,而不需要慢慢开出来


===BrainBlastTurretIndex===
原版下无法正常翻转与倾斜,Phobos已修复


===BrainBlastTurretWeapon===
{55D141B8-DB94-11d1-AC98-006008055BB5} 机甲步行


===RadCannonTurretIndex===
简称Mech


===RadCannonTurretWeapon===
SpeedType默认与Drive一样


===ChronoTurretIndex===
使用该Locomotor的单位如果速度较低那么会走几步改变一次朝向(WW似乎打算以此表现一种“振动”的效果https://www.bilibili.com/opus/746197069772881955),在非 Phobos 环境下还有速度限制,很多时候还不如用VXL地面载具通用的Drive


===ChronoTurretWeapon===
部分旧词典从DeeZire教程翻译来说这样的单位可以使用Powered,然而这个效果仅生效于TS,RA2下并不存在,但是从YR开始可以使用遥控坦克的PoweredUnit实现类似的效果


===TerroristExplodeTurretIndex===
同时如果在水上下沉时会表现为竖直下沉而不是翻船


===TerroristExplodeTurretWeapon===
{92612C46-F71F-11d1-AC9F-006008055BB5} Jumpjet飞行


===CowTurretIndex===
简称Jumpjet


===CowTurretWeapon===
SpeedType默认Hover


===InitiateTurretIndex===
该运动模式在JumpJet和BalloonHover至少一句为yes的情况下初始生成后就会立即尝试移动升空而无需等待玩家手动发出的移动指令


===InitiateTurretWeapon===
这一特性也可以与Teleporter=yes结合使用来做出DriveLocomotor的单位生成后先移动一下的效果


===VirusTurretIndex===
(例如使用Ares的Deliver超武搭配一个空降仓落地动画来假拟轨道投送单位那么可以用这个特性来做内部载具类单位着陆后立即开出空降区域的效果)


===VirusTurretWeapon===
矿车类单位使用该Loco会导致从重工开出来后不自动前去采矿,此外即便已有正在对接的矿车也仍可手动让另一矿车进行对接导致单位交叠然后崩溃,PhobosBuild48已修复


===YuriPrimeTurretIndex===
对于Infantry在判定某个格子能否移动上去时硬编码视为SpeedType=Hover的情况来处理,也因此Locomotor使用Jumpjet类的Infantry无法停留在建筑和悬崖上


===YuriPrimeTurretWeapon===
原版部分Jumpjet单位的标签中第二个J的大小写可能是错误的(实际上只有JumpJet与JumpJetTurn两句的第二个J为大写)导致它们实际上读取的是全局[JumpjetControls]中设定的默认值


===GuardianTurretIndex===
如果想要保留原版的效果直接把那几句删了或者改小写后抄上默认值即可,如果直接用原版错误标签后面WW赋的值反而会被非常不合适的数值坑到


===GuardianTurretWeapon===
<nowiki>*</nowiki> 2025版词典中 -J- 部分的Jumpjet*/JumpJet*类标签均为大小写正确的有效标签,可供对照


多功能步兵车IFV专用,炮塔编号及武器编号
这个运动模式的单位起飞时总是突然转向正东方向,Phobos已修复


两句连指定几号武器对应几号炮塔,其他XXXTurretIndex和XXXTurretWeapon同理
Aircraft也可以使这个Locomotor但是如果Ammo清空则无视Crashable=no强制坠落到地面然后不死如果弹药无限或通过他方式避免打空则可靠Crashable=no禁用被攻击导致坠毁从而正常使用


XXX名字代码为程序原版可新增
Infantry使用该Locomotor且拥有JumpJet=yes、没有HoverAttack=yes时可以像TS中的Jumpjet步兵那样近距里(3格及以)步行远距离飞行若要复刻最好也要有BalloonHover=yes以避免成为“无脚鸟”


{2BEA74E1-7CCA-11d3-BE14-00104B62A16C}舰船


简称Ship


Ares已扩展全套逻辑,详见说明书
SpeedType默认Float


{B7B49766-E576-11d3-9BD9-00104B972FE8}导弹


简称Rocket


===Natural===
SpeedType默认Winged


填yes表示不能攻击带有Unnatural=yes的单位
例如V3导弹,无畏导弹,雷鸣导弹。原版参数设置在[General]且无法新增,新增需要Ares


典型运用:狗和狂兽人
其他:


游戏硬编码单位注册名为[DESO]时强制根据脚下地面辐射残留量决定能否部署释放武器。Ares允许定义一个单位是否使用这样的效果


游戏硬编码单位注册名为[COW]时会到处乱走,无论什么Locomotor,哪怕是Teleport。Ares允许定义一个单位是否使用这样的效果


===Name===
LightVisibility =


填任何内容。这个代码指定该单位的注释内容,在游戏中没有实际作用。图编辑器等其他外部工具可能会读,也可能使用自己新读取方式但那就和游戏自身无关了
建筑对面染色(效果类似辐射)范围单位为Leptons,256为一格


===Naval===
这个效果在读档后将无法由于建筑被摧毁消除,Phobos已修复


填yes或no。这个代码指定该单位是否为海军单位。所有海军单位都应该有Naval=yes的设置,有这个设置的单位会被船坞类建筑生产
LightIntensity =


在Factory=UnitType的建筑上使用指定这个建筑为船厂,否则为战场工厂,同时禁用ExitCoord
建筑对地面染色的强度


也就是同样有Factory=UnitType,有Naval的生产建筑生产有Naval的载具,没有Naval的生产建筑生产没有Naval的载具
LightRedTint =


对于建筑,Naval=yes会强制该建筑放置在Water块上,而不像WaterBound那样可以相对自由的设定,Naval=yes的该效果无视WaterBound的设置(在Phobos前)而对于AI建造水上防御塔行为判定而言书写Naval是完全有必要
建筑面染色红色量


巨型乌贼式寄生相关见Organic一条的注解
LightGreenTint =


原版下重工和船厂会共用AI同一条生产线,Phobos下可以分离生产
建筑对地面染色绿色量


===NavalTargeting===
LightBlueTint =


默认0
建筑对地面染色的蓝色量


填下表中的对应项。这个代码指定单位对海攻击规则
LaserFencePost =


攻击对象位于LandType=Water或Beach格子上时才启用
该建筑是否为激光墙节点,公版引擎下墙体只能为第一个拥有下句建筑,节点可无限


----
拥有此句的建筑可以在拥有下句的建筑上建造,就像加载物那样,但是会直接移除原建筑


0=水下单位隐身(视为没有上浮)时无法攻击
像围墙那样根据GuardRange决定延伸距离


1=对水下单位始终使用副武攻击(原版驱逐舰)
若不存在LaserFence建筑那么Post之间不会显示连接的格子


2=对水下使用主武攻击其他单位无法攻击(原版反潜机)
注:如果你纯只是想让建筑像墙那样一造早一排大可使用Ares提供的战壕逻辑详见2025教程包附赠的Ares说明书


3=对有生单位或非生物体使用副武攻击,其他单位使用主武(乌贼对雷鸣)
LaserFence =


4=对悬浮单位或有生单位使用主武攻击其他单位使副武(海豹手撸乌贼却不用C4)
该建筑是否为激光墙墙体与上句共于同一建筑会导致崩溃


*由于逻辑仅在目标位水和沙滩上时运,一辆SpeedType非Hover的载具在正常陆地上仍会被使用主武攻击,直到它移动到水面和沙滩上才会根据NavalTargeting=4的效果换用副武
YR1.001因为WW的疏忽导致激光墙墙体建筑将始终处不工状态,Ares已修复


5=对一切对象使用主武器攻击主武无法攻击则切副武
强制拥有Immune=yes的效果但是为了防海豹还是需要添加CanC4=no的


6=对一切水上体都无法攻击包括水面(原版狗和恐怖机器人)
拥有这句的建筑在摆下前会清空矿石覆盖物,哪怕实际上最后没生成成功


7=对一切对象使用主武器攻击,主武无法攻击则切副武
应的生成时它同单元格的实体会被摧毁,步兵强制使用电死的效果


(通过解析程序运作方式得出结论:除012346外的数值都一样,也就是-1/5/7/8都是相同效果,因此5和7是完全相同的,Westwood在原版INI中对7的注释纯属扯淡)
样,根据Post链接时哪怕中间的格子被前两句所说物体占据不影响建造


而手动建造时更是可以直接在存在单位的单元格上建造


你可以利用这个性质配合现代拓展引擎当中的单位BaseNormal实现类似向单位上放置加载物升级的效果


单位指Underwater=yes
你也可以利用这个性质控制某个建筑的初始摆放设置,只不过为了摆后正常受伤要再走一步转化


有生单位指Organic=yes
帧使用规则为(此处以ShpBuilder中的序号举例,从1开始)


非生物指Unnatural=yes
1-东西方向的普通墙


悬浮单位指SpeedType=Hover
2-西端与节点相连的墙体


3-东端与节点相连的墙体


4-东西方向两个节点中间唯一一节墙体(东西方向与两个节点相连)


注:所有步兵默认Organic=yes
——


----
5-南北方向的普通墙体


===LandTargeting===
6-南端与节点相连的墙体


默认0
7-北端与节点相连的墙体


填下表的对应项。这代码指定单位对地攻击规则。较NavalTargeting更优先
8-南北方向两个节点间唯一一节墙体(南北方向与两节点相连)


----
————


0 可以攻击陆地
9-16用于断电与罢工状态


1 不能攻击陆地
————————


2 用副武器攻击陆地,并且强制不主动攻击
17-32影子帧


虽然LandTargeting=2和盖特逻辑都是YR新增的,但是WW完全没有考虑二者的配合
LightningRod =


所以盖特依然会正常升档
是否为避雷针,TS残留无效,Ares已还原相关逻辑,详见说明书


----
-M-


===NeedsEngineer===
MoveToShroud =


填yes或no。这个代码指定建筑是否占领后才生效,如油井占领后播放动画。对应的通过更改所属等方法直接获得的建筑将无法正常工作
是否可以命令该单位进入黑幕里,AircraftType默认no其他默认yes


原版下被超时空弹头冻结过的建筑会回到未被占领的工作状态也就是NeedsEngineer重新需要一个工程师来激活一次,Ares已修复
MobileFire =


拥有这个语句的建筑被其他所属方占领会为原所属方播放EVA_TechBuildingLost音效,Ares已允许建筑微观定义并且还允许占领与失去播放CSF信息文本而不仅仅是EVA警报
该单位在移动能否开火若为no哪怕单位有OpportunityFire=yes也没用。默认yes


===NoAutoFire===
此外若为no则移动时还会暂停补充弹药,但会保留原弹药补充冷却计时器的进度


填yes或no。这个代码指定该单位能否自攻击目标会覆盖CanPassiveAquire不过不影响还击
另有附加效果若主动停止移则强写当前开火冷却副武有IsSonic/UseSparkParticles/UseFireParticles/IsRailgun中任意一句(后三句则还要有正确定义粒子系统)则取副武[Weapon] -> ROF=的值除以4否则 1 帧后立即可以开火


===NODBarracks===
MaxNumberOccupants =


填yes或no。这个代码指定该建筑(兵营类)是否为苏联方兵营,步兵从相对建筑中心位于[2,2]的格子离开建筑,给AI判断用的。所有面积为【N*N】(正方形)的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题
平民建筑能进驻多少人


===Nominal===
MissileSpawn =


填yes或no。TS残留
填写yes表示此子机单位为导弹类子机(V3、畏),母舰发射后立即进入SpawnRegenRate


===NoShadow===
第一次开火后立即消失,而非命中撞击使用导弹参数定义的爆炸或被拦截摧毁爆出DeathWeapon


填yes或no。这个代码指定该单位是否没有阴影。当为yes,单没有阴影
是否为导弹类子机并不限定Locomotor,FlyLocomotor的Aircraft同样可以使用,而RocketLocomotor的Aircraft同样可以删除该语句或设no来允许跟踪(每次武器开火刷新目标置)


===NoSpawnAlt===
没有此语句的子机生成位置只遵循FL而H无效,Ares已修复


填yes或no。这个代码指定VXL单位发射出卵单位后是否会变成“无卵”图像。典型运用是V3导弹发射车发射后车上的导弹短暂的不见,变成一辆没有导弹的V3弹发射车,还有无畏级战舰。注意:“无卵”图像实际上是调用另一个VXL文件,所以当NoSpawnAlt=yes时,要把准备的“无卵”图像VXL和HVA文件改名为 原单位VXL名+WO.VXL 和 原单位VXL名+WO.HVA。如V3,应该改名为V3WO.VXL和V3WO.HVA
建筑航母生成Locomotor=Rocket子机将会导致IE,Ares已修复


子机单位使用此代码得到一个精致的6258CC3C
拥有这个语句的子机无法追踪目标单位也不同步母舰命令,Kratos已允许,且Kratos下的导弹即便拥有这个语句(例如原版V3无畏雷鸣导弹)其武器的目标也是目标单位而不再是地面


NoSpawnAlt与炮塔vxl使用同一存储空间,因此不能同时使用,Ares3.0版本已解决
ManualReload =


===NotHuman===
是否可以进入一个UnitReload=yes的建筑进行装弹,与自动补充单位相叠加


填yes或no。这个代码指定步兵单位,通常用于各种动物,这种单位死亡效果不受<code>[Warhead] -> InfDeath=</code>的值影响而始终播放单位自身的Die1序列
建筑需要可以对接和进入也就维修厂和坦克碉堡以及矿场那类的建筑


===NotWorkingSound===
然而维修厂修残血单位后送出建筑和矿场倒矿行为都会导致无法补充弹药


填Sound.ini中定义的声音名。这个代码指定建筑停止工作时的声音
战机不受该句影响


===NukeSilo===
这样的单位弹药装满后会被内部额外装填一次,也就是Ares下满Ammo(Techno)时实际上开火时弹药改变量会按Ammo(Techno)+ReloadAmount-Ammo(Weapon)来算,视觉上就是第一发会消耗Ammo(W)-ReloadAmount的Ammo(T)


填yes或no。这个代码指定建筑是否为核井。当为yes时才可以成功发射“核弹攻击”的超级武器。没有这句却带MultiMissile或(TS的)ChemMissile类超武则无法释放
对应的如果Ammo(W)<=ReloadAmount就会出现满药下一直不消耗Ammo(T)的问题除非有ROF(W)<<Reload(T)


===NumberImpassableRows===
MoveSound =


填数值。须配合Bunker=yes 或 UnitRepair=yes 使用,这个代码指定建筑左侧多少列单元格不能通行载具(剩余列可通行载具)
移动时发出什么声音,盖特武器Report使用类似的系统


===NumberOfDocks===
MindClearedSound =


填数值。这个代码指定可停载单位建筑最大可停载量,如机场可以停载4架战机,矿厂能够停载1辆矿车
精神控制车控制的单位脱离控制声音,YR新增


然而矿场是硬编码的一辆矿车Dock一个矿场Unload倒矿然后润掉换下一辆的,改了也没用
MindControlRingOffset =


===NumberOfWaitingPoints===
这个单位被心控时心灵控制的标记动画向上偏移多少


遗留自RA2开发版本的废弃语句用于设定有少个矿车等待位置,搭配ART中WaitingOffsetX使用,正式版中强制1辆倒矿1辆等待,等待坐标使用ART中的QueueingCell设定
YR新增,算法非常智障,竟然是用Lepton而不是Pixel而且也不是等比扩大默认140在大步兵脑袋的位置


===NaturalParticleSystem===
MaxDebris =


该建筑拔起时生成粒子系统
对象被毁爆出碎片最大量


原版bug:解除隐形时也会生成一次
MinDebris =


===NaturalParticleLocation===
对象被毁爆出碎片的最小量


粒子系统出现的位置,使用XYZ坐标系
-N-


===NonVehicle===
Natural =


是否被视为载具,TS残留,用于载具免疫被偷车贼逻辑影响,VehicleThief在其上会获得一个禁止进入光标,Ares下可以禁止成为被吊运对象
填yes表示能攻击带有Unnatural=yes单位


无法被负伤害+正比例的武器所维修
典型运用:狗和狂兽人


不影响正伤害负比例和维修厂
Name =


填任何内容。这个代码指定该单位的注释内容,在游戏中没有实际作用。地图编辑器等其他外部工具可能会读,也可能使用自己的新读取方式,但那就和游戏自身无关了


Naval =


==O==
填yes或no。这个代码指定该单位是否为海军单位。所有海军单位都应该有Naval=yes的设置,有这个设置的单位会被船坞类建筑生产


===OpenTopped===
在Factory=UnitType的建筑上使用指定这个建筑为船厂,否则为战场工厂,同时禁用ExitCoord


填yes或no。内部乘客否可以向外开火(战斗要塞)
也就同样有Factory=UnitType,有Naval的生产建筑生产有Naval的载具,没有Naval的生产建筑生产没有Naval的载具


如果IFV有OpenTopped=yes,一个载员武器为常规武器,但IFV武器超时空武器,那么IFV释放后由于步兵出来仍会攻击目标但由于武器不再超时空武器非Ares环境下将导致IE
对于建筑,Naval=yes会强制该建筑放置在Water地块上而不像WaterBound那样可以相对自由设定,Naval=yes的该效果无视WaterBound的设置(在Phobos前)而对于AI建造水上防御塔行判定而言书写Naval完全有必要的


===OpenTransportWeapon===
巨型乌贼式寄生相关见Organic一条的注解


指定该单位作为战斗要塞乘客时使用哪个武器,0代表主武器 1代表副武器,默认-1,平时样遵照武器选用规则不被强制使用特定武器
原版下重工船厂会共用AI的同条生产线,Phobos下可以分离生产


该语句强制力较高,例如使用OpenTransportWeapon=1强制BORIS使用副武器攻击同时拥有ResourceGatherer=yes和ResourceDestination=yes的对象
NavalTargeting =


那么哪怕BORIS实际上无法对这类目标开火,它也会依然使用副武器,哪怕实际上不会产生任何效果,也不会和非载员一样切换回主武器来进行攻击
默认0


===Occupier===
填下表中的对应项。这个代码指定单位对海攻击规则


填yes或no。这个代码指定步兵单是否可以进入可驻守建筑物
攻击对象于LandType=Water或Beach格子上时才启用


===OccupyPip===
<nowiki>----------------------------------------------------------------</nowiki>


用于指定步兵作驻军的格点,可用值和效果见Pip=条目
0=水下单位隐身(视没有上浮)无法攻击


该功能新增于YR,在RA2中硬编码使用pips.shp的特定帧,盟军12苏军11其他10
1=对水下单位始终使用副武攻击(原版驱逐舰)


(此处以第一帧为1算)Ares允许直接指定Pip使用pips.shp中的某一帧详见说明书
2=对水下单位使用主武攻击其他单位无法攻击(原版反潜机)


===OccupyWeapon===
3=对有生单位或非生物体使用副武攻击,其他单位使用主武(乌贼对雷鸣)


步兵驻军
4=对悬浮单位或有生单位使用主攻击,其他单位使用副武(海豹手撸乌贼却不用C4)


===OmniCrusher===
<nowiki>*</nowiki> 由于逻辑仅在目标位于水和沙滩上时运作,一辆SpeedType非Hover的载具在正常陆地上仍会被使用主武攻击,直到它移动到水面和沙滩上才会根据NavalTargeting=4的效果换用副武


填yes可以碾压载具和围墙(战斗要塞)
5=对一切对象使用主武器攻击主武无法攻击则切副武


仅Crusher=yes时工作,用于[代表]种“更高级别”的碾压但也不过是设定如此
6=切水上物体都无法攻击包括水面(原版狗和恐怖机器人)


此外这个语句会让载具更倾向于将目标碾毙而总是想要移动过去,哪怕速度慢的要死,Ares已允许单位上设定是否禁止这效果详见说明书
7=对切对象使用主武器攻击主武无法攻击则切副武


===OmniCrushResistant===
(通过解析程序运作方式得出结论:除012346外的数值都一样,也就是-1/5/7/8都是相同的效果,因此5和7也是完全相同的,Westwood在原版INI中对7的注释纯属扯淡)


填yes。不被战斗要塞碾压
水下单位指Underwater=yes


注意:这与Crusher碾压Crushable并不冲突,彼此独立运作,因此实际上并不存在所谓的“碾压等级”设定
有生单位指Organic=yes


例如:Crusher=yes & OmniCrusher=yes 的载具可以正常碾死 Crushable=yes & OmniCrushResistant=yes 的载具
非生物体指Unnatural=yes


===OpportunityFire===
悬浮单位指SpeedType=Hover


填yes或no。是否移动开火,指定此单位是否可以在执行其他操作(例如移动、采矿)时开火。这个代码不能用于建筑物
注:所有步兵默认Organic=yes


优先级低于MobileFire一句的限制和步兵的移动状态检测
<nowiki>----------------------------------------------------------------</nowiki>


例如Jumpjet步兵在建筑上方由于JumpjetLocomotor决定的一些硬编码移动判定而无法开火(见Locomotor条目)
LandTargeting =


例如Walk步兵在移动时必须播放移动序列,而步兵序列与步兵许多动作关联,因而也常常无法移动时开火
默认0


优先级也低于Ctrl+Shift移动中索敌效果,例如YR天启虽然没有写OpportunityFire=yes但可以通过Ctrl+Shift越过这个逻辑的规则在移动中检索到其他目标并发起攻击
填下表中对应项。这个代码指定单位对地攻击规则。较NavalTargeting更优先


不过Ctrl+Shift的优先级也低于上面Jumpjet和Walk步兵的硬限制,二者受制于移动状态直接无法发起攻击动作,更不会实际执行攻击行为
<nowiki>----------------------------------------------------------------</nowiki>


===OrePurifier===
0 可以攻击陆地


填yes或no。这个代码指定建筑是否为矿石精炼器。原版盟军矿石精炼器的逻辑
1 不能攻击陆地


即从矿石精炼厂中获得的资金再增加一定百分比的额外资金
2 用副武器攻击陆地,并且强制不主动攻击


在建筑上决定是否启用这个逻辑但这个百分比却要在局PurifierBonus=设定
虽然LandTargeting=2和盖特逻辑都是YR新增的,是WW完没有考虑二者的配合


===Organic===
所以盖特依然会正常升档


填yes或no。是否为活体单位,同时防止乌贼寄生(会改用副武拍打),被超时空和铁幕使用<code>[CombatDamage] -> C4Warhead=</code>的弹头秒杀,被寄生秒杀。步兵默认yes
<nowiki>-----------------------</nowiki>


步兵如果另有Teleporter=yes则仍可被超时空,只要满足Organic=no或Teleporter=yes其一即可
NeedsEngineer =


若载具使用则该载具会和步兵一样受医院加血果影响并且不能像正常载具一样受到科技商店的维修效果
填yes或no。这个代码指定建筑是否占领后才生效,如油井占领后播放动画。对应的通过更改所属等方法直接获得的建筑将无法正常工作


无法磁电坦克的运动模式弹头攻击,直接禁用IsLocomotor=yes弹头瞄准该对象
原版下超时空弹头冻结过建筑会回到未被占领的工作状态也就是NeedsEngineer重新需要一个工程师来激活一次,Ares已修复


如果该单位还有Naval=yes并且使用寄生类(<code>[Warhead] -> Parasite=yes</code>)武器则硬编码为巨型乌贼类寄生行为,具体表现例如寄生一步兵不会秒杀而是每40帧对目标造成一次武器Damage指定杀伤,并强制从<code>[CombatDamage] -> SplashList=</code>的列表中抽取一个以作为攻击的效果动画,使用名为[SQDG]的Animation对象作开火缠绕果和缠住摇晃效果帧序号行为硬编码对应,帧序列使用规则见https://gitee.com/PB_LAB/YR_MIX_Cataloging_Project/blob/master/ra2.mix/conquer.mix/sqdg.shp.md。此外会使得<code>[Warhead] -> Culling=</code>一句能够生效,并禁止攻击陆地对象(覆盖LandTargeting与NavalTargeting),若被这个步兵拖上岸那么它会被立即弹出到相邻的水域(为什么会有被拖上岸的情况见《6.武器系统代码词典2024.ini》中<code>[Warhead] -> Paralyzes=</code>一条的注解)
拥有这语句建筑被其他所属方占领原所属方播放EVA_TechBuildingLost音,Ares已允许建筑微观定义并且还允许占领失去播放CSF信息文本而不仅仅是EVA警报


如果该单位处于水中那么一个拥有NavalTargeting=3的单位会使用副武器对其开火
NoAutoFire =


如果该单位还有Underwater=yes和SelfHealing=yes那么它直接去使用GuardRange而是考虑主副武器中射程更长的那个武器的射程来寻敌,同样用于原版巨型乌贼
填yes或no。这个代码指定该单位能否自动攻击目标,覆盖CanPassiveAquire,不过影响还击


步兵被寄生弹头秒杀另有其他判定,并非单纯设为Organic=no即可免于一死
NODBarracks =


强制死亡时不有沉船效果
填yes或no。这个代码指定该建筑(兵营类)是否为苏联方兵营,步兵从相对建筑中心位于[2,2]的格子离开建筑,给AI判断用的。所有面积为【N*N】(正方形)的兵营都应该使用,否则导致生产一个飞行步兵后无法继续生产其他步兵等问题


Ares下可以禁止成为被吊运的对象
Nominal =


Ares3.0中<code>[Warhead] -> Culling=yes</code>不再要求巨型乌贼类寄生行为并得到了更多拓展,详见Ares说明书
填yes或no。TS残留无效


YR1.000中巨型乌贼式寄生还会判定目标是否Naval=yes,也因此YR1.000中巨型乌贼寄生遥控坦克会使用它色盘错误的武器开火动画而不是硬编码的SQDG
NoShadow =


===Owner===
填yes或no。这个代码指定该单位是否没有阴影。当为yes时,单位没有阴影


生产建筑必须拥有至少一个与被生产对象相同的Owner才可以正常生产
NoSpawnAlt =


本条目独立于Prerequisite系统被PrerequisiteOverride高优先级覆盖
该Voxel载具在发射任意子机后是否转为使用空仓图像例如原版V3导弹车、无畏级战舰和驱逐舰、海岸巡防艇在发射子机后转为无导弹/反潜机的图像


新阵营单位生产不了之类的Bug往往可能错在这里
空仓图像实际上使用另一个Voxel文件来显示,例如:V3导弹车常态使用V3.VXL和V3.HVA,导弹射出后使用V3WO.VXL和V3WO.HVA,如果没有-WO的Voxel文件那么空仓时图像会消失


新阵营基础建筑的Owner如果设置错误会导致AI无法识别甚至直接崩溃
NoSpawnAlt与炮塔vxl使用同一存储空间,因此不能同时使用,Ares3.0版本已解决


无子机单位使用此代码会让玩家在看过来时得到一个精致的006B7D51,Ares3.0更改了逻辑运作方式不再崩溃但由于无子机又没-WO会导致图像消失,如果有-WO那么继续崩溃——然而本来就不该给无子机的单位用这个


原先这样的单位在空仓时会继续使用满仓时的影子,PhobosBuild39开始可以正确更新


在Ares中由于解除了单位生产够快时多个工厂同时生产单位的限制(原版仅搜索相同注册名对象,Ares下拓展到所有同类型工厂)所以可能出现原本Owner限制无法生产某单位的工厂由于排序规则被分配用于生产这个单位,需要使用Ares的狗窝逻辑手动限制,详见说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的
NotHuman =


该步兵是否非人类,通常用于各种动物,这种单位的死亡效果不受[Warhead] -> InfDeath=的值影响而始终播放单位自身的Die1序列


NotWorkingSound =


===Overpowerable===
填Sound.ini中定义的声音名。这个代码指定建筑停止工作时的声音


填yes或no。这个代码指定建筑是否为充能建筑,当类似磁暴步兵类的充能单位对其进行充电时,该建筑转为副武攻击,典型的运用是苏军的磁暴线圈
NukeSilo =


填yes或no。这个代码指定建筑是否为核弹井。当为yes时,才可以成功发射“核弹攻击”的超级武器。没有这句却带MultiMissile或(TS的)ChemMissile类超武则无法释放,Ares引入了其他释放方法,详见说明书


如果用于[TechnoType] -> Turret=yes的建筑,那么只要从该建筑发射了一个[SuperWeaponType] -> Type=MultiMissile的超武就会导致建筑的Mission一直保持在Missile状态以至于无法再次开火,可以用1帧EMP弹头进行刷新


==P==
NumberImpassableRows =


===PixelSelectionBracketDelta===
填数值。须配合Bunker=yes或UnitRepair=yes使用,这个代码指定建筑左侧多少列单元格不能通行载具(剩余列可通行载具)


血条的高度,负值向上,仅用于非建筑类,建筑根据art中的Height计算
NumberOfDocks =


医院自愈与科技商店维修给予的标志并不遵循这个的设定,Phobos已修复
填数值。这个代码指定可停载单位建筑最大可停载量,如机场可以停载4架战机,矿厂能够停载1辆矿车


然而矿场是硬编码的一辆矿车Dock一个矿场Unload倒矿然后润掉换下一辆的,改了也没用


NumberOfWaitingPoints =


===PowersUnit===
遗留自RA2开发版本的废弃语句,用于设定有多少个矿车等待位置,搭配ART中WaitingOffsetX使用,正式版中强制1辆倒矿1辆等待,等待坐标使用ART中的QueueingCell设定


控制中心用,同时如果这个单位不是载具会注册一个载具,也就是这必然是个载具
NaturalParticleSystem =


只要有一个拥有PowersUnit=的建筑物PoweredUnit=yes单位就可以保持活动
建筑拔起时生成粒子系统


但如果是已瘫痪的单位重新唤醒,则必须是有PowersUnit=这个单位的建筑才行
原版Bug:解除隐形时也会生成一次


原版每个建筑只能控制一个单位,Ares对此进行了扩展,详见Ares说明书
NaturalParticleLocation =


===PoweredUnit===
粒子系统出现的位置,使用XYZ坐标系


遥控坦克用,如果没有PowersUnit=自己的建筑处于工作状态则瘫痪
NonVehicle =


该载具是否不被视为载具,TS残留,用于载具免疫被偷车贼逻辑影响,VehicleThief在其上会获得一个禁止进入光标,Ares下可以禁止成为被吊运的对象


无法被负伤害+正比例的武器所维修


===PackupSound===
不影响正伤害负比例和维修厂


填Sound.ini中定义的声音名。这个代码指定建筑收回为载具时播放的声音,不设定时就为基地车收回的那种声音
-O-


===Parasiteable===
OpenTopped =


填yes或no。这个代码指定该单位是否能被寄生,这里的寄生是指被像恐怖机器人一类的单位所寄生
填yes或no。内部乘客是否可以向外开火(战斗要塞)


===Passengers===
如果IFV有OpenTopped=yes,一个载员的武器为常规武器,但IFV武器为超时空武器,那么IFV释放后由于步兵出来仍会攻击目标但由于武器不再是超时空武器非Ares环境下将导致IE


填数值。这个代码指定单位的乘客格子数量。如果要容纳占多格的单位,可以修改SizeLimit=这个代码。想要显示乘客格子需要手动添加PipScale=passengers
OpenTransportWeapon =


注意Aircraft类单位开火会甩出乘客伞兵,直到没有乘客了才能正常发射武器,但即便没有发射武器而是转为踹出乘客也会按执行攻击任务扣除弹药
指定该单位战斗要塞乘客时使用哪个武器,0代表主武器,1代表副武器,默认-1,和平时一样遵照武器选用规则不被强制使用特定武器


用武器上的Burst指定一次踹出多个乘客,也可以用MovementRestrictedTo配合Ares的InitialPayload让乘客实际上无法被踹出把开火交给乘客
该语句强制力较高,例如使用OpenTransportWeapon=1强制BORIS使武器攻击同时拥有ResourceGatherer=yes和ResourceDestination=yes的对象


在TS中Vehicle无法作为Passenger在RA2始允许原版下仅有Infantry类可以手动进入Aircraft而Vehicle卡在Enter中始终进去并且选中立即失去选中效果,Kratos解除了这限制
那么哪怕BORIS实际上无法对这类目标也会依然使用副武器,哪怕实际上会产生任何效果,也不会和非载员样切换回主武器来进行攻击


===Passive===
Occupier =


填yes或no。这个代码指定单位是会自动攻击敌人,TS残留,请用CanPassiveAquire=和CanRetaliate=控制
步兵能进驻可驻军建筑


===PermaDisguise===
在RA2中步兵进驻建筑后根据所属方阵营选择使用建筑自身的主武或副武


填yes或no。这个代码指定伪装单位是否可以在移动不会破坏己的伪装。典型运用是间谍,间谍在移动中不会轻易被敌人识破
在YR步兵进驻建筑后使用步兵身[InfantryType] -> (Elite)OccupyWeapon=定义驻军武器


如果载具使用这句那么他会使用Allied/Soviet/ThirdDisguise=的步兵图像而非DefaultMirageDisguises并且由于shp载具和shp步兵的序列书写方式不同在移动时他会像一个没写序列的shp载具那样从一直播放(旋转)
OccupyPip =


===PhysicalSize===
用于指定步兵作为驻军时的格点,可用值和效果见Pip=条目


指定步兵的Z-fudge值,所有步兵都应设为1,具体功能未知
该功能新增于YR,在RA2中硬编码使用pips.shp的特定帧,盟军12苏军11其他10


===Pip===
(此处以第一帧为1算)Ares允许直接指定Pip使用pips.shp中的某一帧,详见说明书


填对应颜色名。这个代码指定单位进入运兵单位后下面小格显示的颜色,在红色警戒2中有green、yellow、white、red和blue
OccupyWeapon =


尤里的复仇中额外添加persongreen、personyellow、personwhite、personred、personblue、personpurple几个颜色可供选择。默认为green
YR新增,步兵驻军武器


步兵作为驻军时使用<code>[InfantryType] -> OccupyPip=</code>标签指定,一般使用尤里的复仇中新增的6种,但也不妨碍你用点别的
OmniCrusher =


由于基于TS引擎开发RA2的过程中WW引入了一些代码错误从RA2开始地图内置单位时必须重新指定这个标签,否则会显示成错误的效果,Ares已修复
填yes可以碾压载具和围墙(战斗要塞)


Pip与OccupyPip可值在pips.shp与pips2.shp中序号规则下(从00开始):
仅Crusher=yes时工作,于[代表]一种“更高级别”碾压,但也不过是设定


empty 00 00 pips.shp为建筑菱形方块,pip2.shp为4x4空心小方块
此外这个语句会让载具更倾向于将目标碾毙而总是想要移动过去,哪怕速度慢的要死,Ares已允许单位上设定是否禁止这一效果,详见说明书


*仅限TS,RA2/YR中不支持Pip=empty这样的写法
OmniCrushResistant =


green 01 01 pips.shp为建筑菱形方块,pip2.shp为4x4小方块
该单位是否无法被战斗要塞碾压


yellow 02 02 pips.shp为建筑菱形方块,pip2.shp为4x4小方块
注意:这与Crusher碾压Crushable并不冲突,彼此独立运作,因此实际上并不存在所谓的“碾压等级”设定


white 03 03 pips.shp为建筑菱形方块,pip2.shp为4x4小方块
例如:Crusher=yes & OmniCrusher=yes 的载具可以正常碾死 Crushable=yes & OmniCrushResistant=yes 的载具


red 04 04 pips.shp为建筑菱形方块,pip2.shp为4x4小方块
OpportunityFire =


blue 05 05 pips.shp为建筑菱形方块,pip2.shp为4x4小方块
该单位能否移动开火,指定此单位是否可以在执行其他操作(例如移动、采矿)时开火,原版天启没有这句所以很呆


persongreen 07 07 pips.shp与pips2.shp均为人形标志
优先级低于MobileFire一句的限制和步兵的移动状态检测


personyellow 08 08 pips.shp与pips2.shp均为人形标志
例如Jumpjet步兵在建筑上方由于JumpjetLocomotor决定的一些硬编码移动判定而无法开火(见Locomotor条目)


personwhite 09 09 pips.shp与pips2.shp均为人形标志
例如Walk步兵在移动时必须播放移动序列,而步兵序列与步兵许多动作关联,因而也常常无法移动时开火


personred 10 10 pips.shp与pips2.shp均为人形
优先级也低于Ctrl+Shift的移动中索敌效果,例如YR天启虽然没有写OpportunityFire=yes但可以通过Ctrl+Shift越过这个逻辑的规则在移动中检索到其他目并发起攻击


personblue 11 11 pips.shp与pips2.shp均人形标志
不过Ctrl+Shift的优先级也低于上面Jumpjet和Walk步兵的硬限制,二者受制于移动状态直接无法发起攻击动作,更不会实际执行攻击行


personpurple 12 12 pips.shp与pips2.shp均为人形标志
OrePurifier =


此外,Ares允许直接定Pip使用pips2.shp中某一帧,详见说明书
填yes或no。这个代码定建筑是否为矿石精炼器。原版盟军矿石精炼器逻辑


===PipScale===
当矿车倒矿时实际所得的资金为矿车所载矿的价值 * (1 + (玩家所拥有的 OrePurifier=yes 的建筑数量 * [General] -> PurifierBonus=的数值))


对应项。这个代码指定单位下方小格显示类型。注意:小格数量在特殊状况下PipWrap=指定
对于遭遇战的 AI 玩家,这里的 OrePurifier=yes 建筑数量还会根据其设定的难度额外加上全局[General] -> AIVirtualPurifiers=中对应的数量


----
例如原版冷酷 AI 在有一个矿石精炼器的情况下超时空矿车满载下一车矿的价值是 500 * (1 + (1 + 4) * 0.25) = 1125,在 Phobos 下如果开启了[AudioVisual] -> DisplayIncome=yes可以很方便的观察到


Passengers 乘客,小格数量由Passengers=这个代码的数值指定
Organic =


Ammo 弹药这里不是小格表示而是竖线方式表示小格数量由Ammo=这个代码数值指定
填yes或no。是否为活体单位同时防止乌贼寄生(会改用副武拍打)被超时空和铁幕使用[CombatDamage] -> C4Warhead=的弹头秒杀,被寄生秒杀。步兵默认yes


Power 电力实际上从TS开始就没用,大概是WW开发阶段设计如此但最后选择了工具条
步兵如果另有Teleporter=yes则仍可被超时空只要满足Organic=no或Teleporter=yes其一即可


Tiberium 矿石,只能在矿石精炼厂采矿车上小格数量由Storage=这个代码的数值逻辑 指定
若载具使则该载具会步兵一样受医院加血效果影响并且不能像正常载具一样受到科技商店维修效果


Mindcontrol 心控目标数量用于心灵控制单位,小格数量表示已经控制了多少格
无法被磁电坦克的运动模式弹头攻击直接禁用IsLocomotor=yes的弹头瞄准该对象


注:子机格子并不受PipScale控制,想要禁止显示请使用Phobos说明书
如果该单位还有Naval=yes且使用寄生类([Warhead] -> Parasite=yes)武器则硬编码为巨型乌贼类寄生行为,具体表现例如寄生一个步兵会秒杀而是每40帧对目标造成一次武器Damage指定的杀伤,并强从[CombatDamage] -> SplashList=的列表中抽取一个以作为攻击时的效果动画,使用名为[SQDG]的Animation对象作为开火缠绕效果和缠住摇晃效果,帧序号与行为硬编码对应,帧序列使用规则见https://gitee.com/PB_LAB/YR_MIX_Cataloging_Project/blob/master/ra2.mix/conquer.mix/sqdg.shp.md。此外会使得[Warhead] -> Culling=一句能够生效禁止攻击陆地对象(覆盖LandTargeting与NavalTargeting)若被这个步兵拖上岸那么它会被立即弹出到相邻的水域(为什么会有被拖上岸的情况《6.武器系统代码词典2024.ini》中[Warhead] -> Paralyzes=一条的注解)


----
如果该单位处于水中那么一个拥有NavalTargeting=3的单位会使用副武器对其开火


===PipWrap===
如果该单位还有Underwater=yes和SelfHealing=yes那么它会直接去使用GuardRange而不是考虑主副武器中射程更长的那个武器的射程来寻敌,同样用于原版巨型乌贼


填数值。这个代码指定单位下方显示的小格的数量限制,不同阶段会用不同颜色表示,如弹药,不同阶段由不同颜色表示弹药的数量。要和PipScale=Ammo连用
步兵被寄生弹头秒杀另有其他判,并非纯设为Organic=no即可免于一死


===PitchAngle===
强制死亡时不会有沉船效果


填数值。指定此单位在飞行时向前倾斜量。默认为20.0度
Ares下可以禁止成为被吊运对象


图像效果但实际飞行动作的仰角还是取决于Speed和FlightLevel
Ares3.0中[Warhead] -> Culling=yes不再要求巨型乌贼类寄生行并得到了更多拓展详见Ares说明书


===PitchSpeed===
YR1.000中巨型乌贼式寄生还会判定目标是否Naval=yes,也因此YR1.000中巨型乌贼寄生遥控坦克会使用它色盘错误的武器开火动画而不是硬编码的SQDG


填数值。指定此单位向前(PitchAngle)与向侧边(RollAngle)倾斜所需的速度百分比下限。默认为0.25
Owner =


用于Locomotor为Fly或Jumpjet的单位,令其仅在(当前Speed/[TechnoType] -> Speed)大于PitchSpeed的比率时会倾斜
生产建筑必须拥有至少一个与被生产对象相同的Owner可以正常生产


===PlaceAnywhere===
本条目独立于Prerequisite系统,不会被PrerequisiteOverride高优先级覆盖


填数值。这个代码指定建筑的建造是否会受到场地的影响,如凹凸等。当为yes时,建筑任何场地建造。然而仍然受到Adjacent的限制
新阵营单位生产了之类的Bug往往能是错这里


===Points===
新阵营基础建筑的Owner如果设置错误会导致AI无法识别甚至直接崩溃


遭遇战积统计数据无实际意义尤其【不】影响验计算,验计算看是Cost
在Ares中由于解除了单位生产够快时多个工厂同时生产单位的限制(原版仅搜索相同注册名对象,Ares下拓展到所有同类型工厂)所以可能出现原本Owner限制无法生产某单位的工厂由于排序规则被配用于生产这个单位,需要使用Ares的狗窝逻辑手动限制,详见说明书如果你获得本文档的同时没有配套这一文件说明你的文档非从原正式发布渠道获取,而是已被第三方未许可拆分修改过


===Power===
Overpowerable =


填数值。这个代码指定建筑单位生产的电力。当正数时供电
填yes或no。这个代码指定建筑是否充能建筑该建筑进入过载模式后会转副武攻击,典型的运用是苏军的磁暴线圈


===Powered===
固定 2 个武器的弹头上有[Warhead] -> ElectricAssault=yes的单位充能可以在没电时保持运作


填yes或no。这代码指定建筑单位是否会受到停电后影响,如不能使用武器、建筑动画不播放等。
固定 1 武器的弹头上有[Warhead] -> ElectricAssault=yes的单位可以在运作时进入过载


如果想设定建筑受到停电影响后可以继续播放动画,可以设定Art.ini中的ActiveAnimPowered=no,反之为yes
该规在Phobos下已允许自


如果Power>0又Powered=yes,建筑动画没有ActiveAnim[N]Powered还是会傻掉,需要手动设置
-P-


===PowersUpBuilding===
PixelSelectionBracketDelta =


指定该加载物可以加载到其的主体建筑
血条的高度,负值向,仅用于非建筑类,建筑根据art中的Height计算


拥有这个语句说明这个建筑是个加载物,也就是附属建筑
医院自愈与科技商店维修给予的标志并不遵循这个的设定,Phobos已修复


它只能放在主体建筑上面,不能放在空地或其他地方的建筑,同时原版下这样的建筑存在算法错误导致无法正常作为先决条件,Ares已予以修复
PowersUnit =


需要配合Upgrades与下句可以参考TS中的组合塔
控制中心用同时如果这个单位不是载具会注册一个载具,也就是这必然是个载具


注意:如果加载物武器,那么加载后将会表现为主副武器同时开火,但是副武器往往只能使用Arcing类
只要一个拥有PowersUnit=的建筑物PoweredUnit=yes的单位就可以保持活动


由于建筑使用主武射程若主体建筑没有主武器而加载物也不赋予主武器,那么主体建筑原有的副武器还是通过加载获得副武器都是无法开火的
但如果是已瘫痪的单位重新唤醒则必须是有PowersUnit=这个单位的建筑才行


此外,第一有武器的加载物其主武会覆盖主体建筑的参数
原版每个建筑只能控制一个单位,Ares对此进行了扩展,详见Ares说明书


1.主体 Primary=none & Secondary=none
PoweredUnit =


-1.果PowersUp[1]给予Secondary,如上文所述,并且PowersUp[2]摆大烂
遥控坦克用,果没有PowersUnit=自己的建筑处于工作状态瘫痪


-2.如果PowersUp[1]给予Primary,则可以开火,并且还能通过PowersUp[2]再加个Secondary
PackupSound =


-3.也可PowersUp[1]一次性给予Primary与Secondary
填Sound.ini中定义的声音名。这个代码指定建筑收回为载具时播放的声音,不设定时就为基地车收回的那种声音


其他组合暂不全列于此,可先自行测试,不排除拓展引擎下药修改结果
Parasiteable =


填yes或no。这个代码指定该单位是否能被寄生,这里的寄生是指被像恐怖机器人一类的单位所寄生,默认yes


Passengers =


也就是如果先后加两个带武器的加载物分别给予主武器和副武器,那么需先加装给予主武器加载物否则也无法刷新Range以进行开火,然而建筑原本拥有副武器由加载物提供主武器那么是可以开火的
填数值。这个代码指定单位的乘客格子数量。如果要容纳占多格单位,可以修改SizeLimit=这个代码。想要显示乘客格子需要手动添加PipScale=Passengers


===PowersUpToLevel===
注意Aircraft类单位开火会甩出乘客为伞兵,直到没有乘客了才能正常发射武器,但即便没有发射武器而是转为踹出乘客也会按执行攻击任务扣除弹药


于加载物建筑,指定加载物建筑的编号
武器上的Burst指定一次踹出多乘客,也可以用MovementRestrictedTo配合Ares的InitialPayload让乘客实际上无法被踹出把开火交给乘客


可用1/2/3分别对应主体建筑Art中PowerUp1/PowerUp2/PowerUp3关联动画
如果乘客是通过Ares初始载员逻辑塞的那么踢完乘客也仍然无法正常开火


只能到3,因程序内做了3种,实际是TS遗留来的逻辑只不过依能用(勉强)
拥有乘客的Aircraft起飞时竖直方向最大速度会减半、并且有专门的运输行使得要这战机闲置就总是会尝试回到机场或(没有机场则找个)友军单位附近降落且有时会阻碍战机降落到机场你可以用SlowdownDistance来一定程度上避免这种行为


然而&#126;&#126;&#126;很惜的是在Phobos修复前个对应关系并不是那么的致。AlexB:真该把WW的程序员装进大炮里发射到太阳上
在TS中Vehicle无法作为Passenger,这在RA2开始允许,原版下也仅有Infantry类以手动进入Aircraft而Vehicle会卡在Enter中始终进不去并且选中立即失去选中效果,Kratos解除了这一限制


如果此值为1/2/3则同时也代表建筑已经从3种中选择了1种而无视主体建筑的Upgrades禁止其他加载物继续加载
Passive =


特殊值-1代表自动适应也就是使用排队模式,这种情况下对同一建筑加载的上限遵循主体建筑的Upgrades
该载具是否【禁止】主移动,可以尝试发起移动动作但无法实际执行移行为在火车车厢上使用以使其老老实实跟着车头跑


而-1时对于上面PowerUp1/PowerUp2/PowerUp3则会在前三次每加载一次启用与次数相同的编号对象
PermaDisguise =


对于玩过TS玩家来说就很好讲了,-1就是GDI发电厂用1/2/3就是GDI插件塔
填yes或no。这个代码指定伪装单位是否可以在移动中不会破坏自己伪装。典型的运是间谍间谍在移动中不会轻易被敌人识破


不过GDI插件塔使用不同炮塔的效果还有些内部硬编码支持
如果载具使用这句那么他会使用Allied/Soviet/ThirdDisguise=的步兵图像而非DefaultMirageDisguises并且由于shp载具和shp步兵的序列书写方式不同在移动时他会像一个没写序列的shp载具那样从直播放(旋转)


可以前往RA2DIY论坛https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=14548进行了解
PhysicalSize =


===Prerequisite===
指定步兵的Z-fudge值,所有步兵都应该设为1,具体功能未知


填建筑名。这个代码指定该单位制造时所必须的建筑,当已方没有这些建筑时该单位不能建造
Pip =


也可以写先决条件组组名,在全局PrerequisitePower=前后部分,只要拥有组中任意对象即视为满足其一个条件
对应颜色。这个代码指定步兵进入运兵单位后下面小格显示的颜色,在红色警戒2有green、yellow、white、red和blue


例如Prerequisite=RADAR,NATECH就是拥有PrerequisiteRadar=列表任意建筑+NATECH即生产,以下是原版的先决条件组组名表:
尤里的复仇额外添加persongreen、personyellow、personwhite、personred、personblue、personpurple几个颜色供选择。默认为green


----
步兵作为驻军时使用[InfantryType] -> OccupyPip=标签指定,一般使用尤里的复仇中新增的6种,但也不妨碍你用点别的


RADAR 雷达类建筑,这种类型新建筑应该同时在PrerequisiteRadar=中注册
由于基于TS引擎开发RA2的过程中WW引入了一些代码错误从RA2开始地图内置单位时必须重新指定个标签,否则会显示成错误效果,Ares已修复


BARRACKS 兵营类建筑,这种类型新建筑应该同时在PrerequisiteBarracks=中注册
Pip与OccupyPip可用值在pips.shp与pips2.shp中序号规则如下(从00开始):


TECH 科技类建筑,这种类型的新建筑应该同时在PrerequisiteTech=中注册
empty 00 00 pips.shp为建筑菱形方块,pip2.shp为4x4空心小方块


PROC 矿厂类建筑,这种类型的新建筑应该同时在PrerequisiteProc=中注册
<nowiki>*</nowiki> 仅限TS,RA2YR中不支持Pip=empty工作


YR中PrerequisiteProcAlternate=的载具也会被考虑在内
green 01 01 pips.shp为建筑菱形方块,pip2.shp为4x4小方块


POWER 发电厂类建筑,这种类型的新建筑应该同时在PrerequisitePower=中注册
yellow 02 02 pips.shp为建筑菱形方块,pip2.shp为4x4小方块


FACTORY 战车工厂建筑,这种类型的新建筑应该同时在PrerequisiteFactory=中注册
white 03 03 pips.shp为建筑菱形方块,pip2.shp为4x4小方块


原版引擎无法新增先决条件组,需要使用Ares
red 04 04 pips.shp为建筑菱形方块,pip2.shp为4x4小方块


也无法添加更多PrerequisiteProcAlternate那样使用载具作先决条件的效果,需要Ares
blue 05 05 pips.shp建筑菱形方块,pip2.shp为4x4小方块


也无法使用战机和步兵作先决条件,需要Ares
persongreen 07 07 pips.shp与pips2.shp均人形标志


也无法正常使用加载物作先决条件,需要Ares
personyellow 08 08 pips.shp与pips2.shp均人形标志


----
personwhite 09 09 pips.shp与pips2.shp均为人形标志


===PrerequisiteOverride===
personred 10 10 pips.shp与pips2.shp均为人形标志


填建筑名。这个代码指定该单位可以在Prerequisite=之外另外指定必须建筑,相当于第二个Prerequisite=的作用
personblue 11 11 pips.shp与pips2.shp均为人形标志


但列表中的单位是或的关系,也就是只要当列表中的单位满足任何一个时,强制允许建造,无视其他条件
personpurple 12 12 pips.shp与pips2.shp均为人形标志


优先级过高,存在多无视其他限制的Bug慎用
此外,Ares允直接指定Pip使用pips2.shp中的某一帧详见说明书


===PreventAttackMove===
PipScale =


填yes或no单位是否支持移动警戒(ctrl+shift)
填下表中的对应项这个代码指定单位下方小格显示的类型。注意:小格数量在特殊状况下PipWrap=指定


对于有Primary的单位默认为yes
<nowiki>---------------------------------------------------------------------------------------------------------</nowiki>


===PreventAutoDeploy===
Passengers 乘客,小格数量由Passengers=这个代码的数值指定


遗留自RA2开发版本的废弃语句,这个代码指定该单位是否能够自动部署
Ammo 弹药,这里不是小格表示而是竖线方式表示小格数量由Ammo=这个代码的数值指定


===Primary===
Power 电力,实际上从TS开始就没用,大概是WW开发阶段设计如此但最后选择了工具条


填武器名。这个代码指定该单位的主武,也就是所谓的主要武器、第一武器
Tiberium 矿石,只能用在矿石精炼厂和采矿车上,小格数量由Storage=这个代码的数值的 逻辑 指定


对于AI而言如果基地正在受攻击(无论杀伤的来源是哪个所属)都会将拥有武器的建筑优先建造
Mindcontrol 心控目标数量,用于心灵控制单位,小格数量表示已经控制了多少格


===ProduceCashAmount===
注:子机格子并不受PipScale控制,想要禁止显示请使用Phobos,详见说明书


填数值。这个代码指定建筑在每隔固定时间就会给拥有者多少资金。典型的运用是科技钻油井。这里的时间由ProduceCashDelay=这个代码的数值指定
<nowiki>---------------------------------------------------------------------------------------------------------</nowiki>


===ProduceCashDelay===
PipWrap =


多长时间给予玩家ProduceCashAmount的金钱超时空头打断油井效果相关描述见NeedsEngineer一句下方
填数值。这个代码指定单位下方显示的小格的数限制,不同阶段会用不同颜色表示,如弹药不同阶段由不同颜色表示数量。要和PipScale=Ammo连用


===ProduceCashStartup===
PitchAngle =


填数值。这个代码指定当该建筑被占领占领方获得资金典型的运用是科技钻油井
填数值。指定此单位在飞行向前倾斜默认为20.0度


一次扣完现有资金那么现有资金会正常从0开始,而不从负数开始
仅为图像效果,但实际飞行动作仰角还取决于Speed和FlightLevel


===ProtectWithWall===
PitchSpeed =


填yes或no这个代码指定建筑在AI使用时是否会被围墙围住,该围墙由当选择国家的所属阵营来决定,也可以通过设定AIBasePlanningSide=来指定
填数值。指定此单位向(PitchAngle)与向侧边(RollAngle)倾斜所需速度百分比下限。默认为0.25


===PsychicDetectionRadius===
用于Locomotor为Fly或Jumpjet的单位,令其仅在(当前Speed/[TechnoType] -> Speed)大于PitchSpeed的比率时才会倾斜


填数值。这个代码指定探测敌人动作的半径范围。典型的运用是苏军的“心灵感应装置”
PlaceAnywhere =


===Pushy===
填数值。这个代码指定建筑的建造是否不会受到场地的影响,如凹凸等。当为yes时,建筑可以在任何场地建造。然而仍然受到Adjacent的限制


配合DirectRocker=使用
Points =


确定该单位是否能够在“推”另一个对象后再次移动和发射
遭遇战积分统计数据,无实际意义,尤其并【不】影响经验计算,经验计算看的是Cost


用于武器有一个已设置DirectRocker=yes弹头的单位
Power =


===PlayerReturnFire===
填数值。这个代码指定建筑单位生产的电力。当为正数时,则为供电


玩家控制该单位时单位是否会主动的还击
Powered =


例如AI一个单位攻击了玩家控制的一个单位,并且该单位PlayerReturnFire=no,那么即使它有CanRetaliate=yes也会发起还击
填yes或no。这代码指定建筑单位是否会受到停电后影响如不能使用武器、建筑动画能播放等。


===PoweredSpecial===
如果想设定建筑受到停电影响后可以继续播放动画,可以设定Art.ini中的ActiveAnimPowered=no,反之则设定为yes


建筑被镭射幽浮或间谍断电而进入LowPower状态时是否播放LowPower动画,相关语句可见ART中+PoweredSpecial相关
如果Power>0又Powered=yes,建筑动画没有ActiveAnim[N]Powered还是会傻掉需要手动设置


PowersUpBuilding =


指定该加载物可以加载到其上的主体建筑


==Q==
拥有这个语句说明这个建筑是个加载物,也就是附属建筑


没有收录以Q开头语句
它只能放在主体建筑上面,不能放在空地或其他地方建筑,同时原版下这样的建筑存在算法错误导致无法正常作为先决条件,Ares已予以修复


需要配合Upgrades与下句,可以参考TS中的组合塔


注意:如果加载物有武器,那么加载后将会表现为主副武器同时开火,但是副武器往往只能使用Arcing类


==R==
由于建筑使用主武射程,若主体建筑没有主武器而加载物也不赋予主武器,那么主体建筑原有的副武器还是通过加载获得副武器都是无法开火的


===RateUp===
此外,第一个有武器的加载物其主武会覆盖主体建筑的参数


攻击状态时盖特计数器每帧增加多少
1.主体 Primary=none & Secondary=none


===RateDown===
-1.如果PowersUp[1]给予Secondary,则如上文所述,并且PowersUp[2]摆大烂


非攻击状态时盖特计数器每帧减少多少
-2.如果PowersUp[1]给予Primary,则可以开火,并且还能通过PowersUp[2]再加个Secondary


如果填负数则在无目标时仍旧累加计数器
-3.也可PowersUp[1]一次性给予Primary与Secondary


填0实际上并不能保持档位而是瞬间清零
其他组合暂不全列于此,可先自行测试,不排除拓展引擎下药修改结


===RadialFireSegments===
也就是如果先后加两个带武器的加载物分别给予主武器和副武器,那么需要先加装给予主武器的加载物,否则也无法刷新Range以进行开火,然而建筑原本拥有副武器由加载物提供主武器那么是可以开火的


用于扇形开火,抛体射出方向水平转动的次数,从0到180度 (神盾导弹发射时呈扫射状),配合抛射体中的CourseLockDuration效果更佳
PowersUpToLevel =


每次转动角度无法自定义,只会使用180°/RadialFireSegments
用于加载物建筑,指定这个加载物建筑编号


以用弹药逻辑中途切无弹药武器简单模拟
用1/2/3分别对应主体建筑Art中PowerUp1/PowerUp2/PowerUp3关联的动画


如果写1话会只能向正右侧开火炮斗术!
只能到3,因为程序内只做了3种,实际是TS遗留来逻辑,不过依然勉强


===Radar===
<nowiki>然而~~~很可惜的是在Phobos修复前这个对应关系并不是那么的一致。AlexB:真该把WW的程序员装进大炮里发射到太阳上</nowiki>


填yes或no。这个码指定建筑是否拥有雷达功能
如果此值为1/2/3则同时也建筑已经从3种中选择了1种而无视主体建筑的Upgrades禁止其他加载物继续加载


个没电的建筑,如果使用Ares3.0电池超武过载逻辑,哪怕依然没电,这个建筑的雷达也会正常工作
特殊值-1代表自动适应,也就是使用排队模式,这种情况下一建筑加载上限遵循主体建筑的Upgrades


===RadarInvisible===
而-1时对于上面PowerUp1/PowerUp2/PowerUp3则会在前三次每加载一次启用与次数相同的编号对象


填yes或no。这个代码指定该单位是否会被敌方雷达检测到效果是敌人无法在小地图看见该单位
对于玩过TS的玩家来说就很好讲了用-1就是GDI发电厂,用1/2/3就是GDI插件塔


在Invisible、InvisibleInGame等逻辑中也都自带相同效果
不过GDI插件塔使用不炮塔的效果还有一些内部硬编码支持


注意:这是让原本会显示的对象不显示,如果是原本就不显示的对象开启显示需要用下句
可以前往RA2DIY论坛https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=14548进行了解


===RadarVisible===
Prerequisite =


填yes或no。这个代码指定该单位能否在非己雷达上显示,原版用于让Insignificant=yes的科技建筑也正常显示在玩家的雷达上
填建筑名。这个代码指定该单位制造时所必须的建筑,当已没有这些建筑时该单位不能建造


===RadialColor===
也可以填写先决条件组组名,在全局PrerequisitePower=前后部分,只要拥有组中任意对象即视为满足其中一个条件


无效语句,雷达上实际使用该建筑所属方的颜色或者遭遇战设置时颜色
例如Prerequisite=RADAR,NATECH就是拥有PrerequisiteRadar=列表中任意建筑+NATECH即可生产以下原版先决条件组组名表:


===Refinery===
<nowiki>------------------------------------------------------------------------------------------</nowiki>


填yes或no。个代码指定建筑是否为矿石精炼厂。给AI判断用的,比如AI会指定部队围着矿石精炼厂打。如果是Factory那么会强制无法将单位生产出来
RADAR 雷达类建筑,种类型的新建筑应该同时在PrerequisiteRadar=中注册


===RefinerySmokeOffsetOne===
BARRACKS 兵营类建筑,这种类型的新建筑应该同时在PrerequisiteBarracks=中注册


填X,Y,Z的值。个代码指定矿石精炼厂在接受采矿车矿石后冒烟的位置,这是第一个位置
TECH 科技类建筑,种类型新建筑应该同时在PrerequisiteTech=中注册


===RefinerySmokeOffsetTwo===
PROC 矿厂类建筑,这种类型的新建筑应该同时在PrerequisiteProc=中注册


填X,Y,Z值。这个代码指定矿石精炼厂接受采矿车的矿石后冒烟的位置,这是第二个位置
YR中PrerequisiteProcAlternate=载具也会被考虑


===RefinerySmokeOffsetThree===
POWER 发电厂类建筑,这种类型的新建筑应该同时在PrerequisitePower=中注册


填X,Y,Z的值。这个代码指定矿石精炼在接受采矿车的矿石后冒烟的位置,这是第三个位置
FACTORY 战车工建筑,这种类型的新建筑应该同时在PrerequisiteFactory=中注册


===RefinerySmokeOffsetTwo===
原版引擎无法新增先决条件组,需要使用Ares


填X,Y,Z值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置这是第四个位置
也无法添加更多PrerequisiteProcAlternate那样使用载具作为先决条件效果需要Ares


===RefinerySmokeParticleSystem===
也无法使用战机和步兵作为先决条件,需要Ares


填粒子系统名称这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的类型,只能填一个
也无法正常使用加载物作为先决条件需要Ares


===RefinerySmokeFrames===
<nowiki>------------------------------------------------------------------------------------------</nowiki>


填正整数类型值,这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的时间,单位为帧
PrerequisiteOverride =


===ReadinessReductionMultiplier===
填建筑名。这个代码指定该单位可以在Prerequisite=之外另外指定必须建筑,相当于第二个Prerequisite=的作用


填数值。这个代码指定该单位的损害乘法器。和DamageReducesReadiness=yes连用
但列表中的单位是或关系,也就是只当列表中的单位满足任何一个时,强制允许建造,无视其他条件


===RejoinTeamIfLimboed===
优先级过高,存在许多无视其他限制的Bug,慎用


填yes或no。用于武器拥有LimboLaunch=yes的单位,这个代码指定处于一个team中的该单位limbo消灭目标后unlimbo时是否归队。通常用于寄生单位
PreventAttackMove =


===ReselectIfLimboed===
填yes或no。决定此单位是否支持移动警戒(ctrl+shift)


填yes或no。用武器拥有LimboLaunch=yes的单位,这个代码指定该寄生单位寄生前若处于被选中状态并且没有其他动作那么它从目标身上Unlimbo返回时是否仍是被选中状态,如果为no那么狗和恐怖机器人每寄生击杀一个目标你都要重新手动选中它一次
有Primary的单位默认为yes


===Reload===
PreventAutoDeploy =


填数值。这个代码指定该单位装填弹药的所需帧数。如果为0那么会立即装回
遗留自RA2开发版本的废弃语句,这个代码指定该单位是否能够自动部署


当弹药空仓时转为使用EmptyReload的值
Primary =


原版下每次只能装1枚弹药,Ares允许
填武器名。这个代码指该单位的主武,也就是所谓的主要武器、第一武器


载员法在载具内装弹,Phobos已修复
对于AI而言如果基地正在受攻击(论杀伤的来源是哪个所属)都会将拥有武器的建筑优先建造


===ReloadIncrement===
ProduceCashAmount =


填数值。指定装弹速度根据PipWrap修正,默认0
填数值。这个代码指定建筑在每隔固定时间就会给拥有者多少资金。典型运用是科技钻油井。这里的时间由ProduceCashDelay=这个代码的数指定


公式:真reload帧数=Reload + ( ReloadIncrement * ( 当前弹药数 / PipWrap )^2 )
ProduceCashDelay =


===Repairable===
多长时间给予玩家ProduceCashAmount量的金钱,超时空弹头打断油井效果相关的描述见NeedsEngineer一句下方


填yes或no。这个代码指定建筑是否能够被工程师所修复。当为no时工程师不能进入修复。实际上应该是用来限制扳手维修的,Ares下已允许分离控制
ProduceCashStartup =


===RequiredHouses===
填数值。这个代码指定当该建筑被占领时占领方获得的资金。典型的运用是科技钻油井


填国家名。这个代码指定该单位只能被指定国家所建造。对于其他国家即使满足了Prerequisite=和TechLevel=,只要不是指定的这个国家,就不能建造
如果一次扣完现有资金,那么现有资金会正常从0开始不是从负数开始


===RequiresStolenAlliedTech===
ProtectWithWall =


填yes或no。这个代码指定该单位是否在已方间谍渗透<code>[AI] -> BuildTech=</code>第一项即原版盟军高科技实验室后才能建造,Ares重做了一套新渗透功能系统详见间谍渗透功能强化一节
填yes或no。这个代码指定建筑在AI使用时是否会被围墙围住,该围墙由当前选择国家所属阵营来决定也可以通过设定AIBasePlanningSide=来指定


===RequiresStolenSovietTech===
PsychicDetectionRadius =


填yes或no。这个代码指定该单位否在已方间谍渗透<code>[AI] -> BuildTech=</code>第二项即原版苏军的高科技实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节
填数值。这个代码指定探测敌人动作的半径范围。典型的运用是苏军的“心灵感应装置”


===RequiresStolenThirdTech===
Pushy =


填yes或no。这个代码指定该单位是否在已方间谍渗透<code>[AI] -> BuildTech=</code>第三项即原版尤里的高科技实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节
配合DirectRocker=使用


===RevealToAll===
确定该单位是否能够在“推”另一个对象后再次移动和发射


填yes或no。这代码指定对象是否会生成雷达事件,例如雷达标记,并向敌方揭开该建筑Sight区域内地图
用于武器有一已设置DirectRocker=yes弹头单位


===RollAngle===
PlayerReturnFire =


填数值。这个代码指定此单位转弯时的侧向倾斜角度。默认为30.0度
玩家控制该单位时单位是否会主动还击


此外该单位需要满足PitchSpeed条件同时PitchAngle需要大于0
例如AI一个单位攻击了玩家控制一个单位,并且该单位PlayerReturnFire=no那么即使它有CanRetaliate=yes也不会发起还击


同时会导致VXL单位占用的画布过大而崩溃,与巨型VXL素材上斜坡和沉没同理
PoweredSpecial =


===ROT===
该建筑被镭射幽浮或间谍断电而进入LowPower状态时是否播放LowPower动画,相关语句可见ART中+PoweredSpecial相关


填数值。这个代码指定该单位转弯的比率,数值越大转弯越快。默认值为0
-Q-


同时对于Turret=yes单位其炮塔旋转速度也使用此值,Ares允许分离设定
没有收录以Q开头语句


===ResourceGatherer===
-R-


原版用于三方矿车和尤里矿场,用于AI处理矿石采集和存储任务,如果建筑用了会影响AI出矿场的数量计算
RateUp =


也用于AI的建筑扩展节点判定,详见BaseNormal一节
攻击状态时盖特计数器每帧增加多少


此外可以用于屏蔽载具DeploysInto成建筑失败时的EVA_CannotDeployHere语音
RateDown =


===ResourceDestination===
非攻击状态时盖特计数器每帧减少多少


原版用于三方矿场和尤里矿车,用于AI处理矿石采集和存储任务
如果填负数则在无目标时仍旧累加计数器


两句用于让AI学会处理同的矿石处理和储存方式
如果填0实际能保持档位而是瞬间清零


但是连用还有禁止BORIS空袭指示器武器攻击该建筑的效果,不过并不禁止被C4摧毁
RadialFireSegments =


可以屏蔽建筑UndeploysInto成载具的EVA_NewRallyPointEstablished语音
用于扇形开火,抛体射出方向水平转动的次数,从0到180度(神盾导弹发射呈扫射状),配合抛射体中的CourseLockDuration效果更佳


每次转动的角度无法自定义,只会使用180°/RadialFireSegments


可以用弹药逻辑中途切无弹药武器简单模拟


==S==
如果写1的话会只能向正右侧开火(炮斗术!)


===SAM===
Radar =


填yes或no。TS残留代码,这个代码指定建筑是否为SAM导弹
填yes或no这个代码指定建筑是否拥有雷达功能


目标必须为在<code>[General] -> PadAircraft=</code>列表中的Aircraft否则根本不会锁定,也就是火箭飞行兵和夜鹰直升机那些实际上是Infantry与Vehicle的对象不成为目标
对于一个没电的建筑,如果使用Ares3.0电池超武的过载逻辑哪怕依然没电这个建筑的雷达也会正常工作


此外目标Aircraft必须Dock为空,并且只有SAM获取目标时这个Aircraft就是在空中悬停的状态那么SAM才能正常发射武器,一旦Aircraft之后移动了一下,那么SAM就会哑火
RadarInvisible =


只有一些特的转弯情况偶尔突然射两发,然后继续哑火,并且这种情况下SAM炮塔仍然会去重新同步目标方向但再次同步的间隔并不武器的ROF,也并不是固定值
填yes或no。这个代码指该单位是否被敌方雷达检测到,效果敌人无法在小地图看见该单位


甚至前面说的突然射两发的情况可以并不面向目标开火,哪怕并不存在<code>[WeaponType] -> OmniFire=yes</code>
在Invisible、InvisibleInGame等逻辑中也都自带相同效果


此外SAM还强制只能空攻击落到地面的目标
注意:这是让原本会显示的象不显示如果是原本就不显示的启显示需要用下句


也就是SAM的目标只能是拥有AirportBound=yes与Dock=none且起飞过的Aircraft
RadarVisible =


只有一些原版引擎下需要特殊判定效果地方会用到,现代引擎下已经没有必要死磕这个逻辑
填yes或no。这个代码指定该单位能否在非己方雷达上显示,原版用于让[ObjectType] -> Insignificant=yes的科技建筑也正常显示在玩家雷达上


===Secondary===
RadialColor =


填武器名。这个代码指定单位副武也就所谓次要武器、第二武器。当主武不能攻击某目标时,游戏会自动转为副武攻击,当副武不能攻击时,游戏才会判断该单位不能攻击
无效语句,雷达上实际使用建筑所属方颜色或者遭遇战设置时颜色


建筑主副武器始终使用其主武器的Range作为射程,如果不存在主武器那么副武器相当于没射程也用不了
Refinery =


===Selectable===
填yes或no。这个代码指定建筑是否为矿石精炼厂。给AI判断用的,比如AI会指定部队围着矿石精炼厂打。如果是Factory(包括Cloning)那么会强制无法将单位生产出来


填yes或no。这个代码指定该单位能否被玩家选中。典型的运用是V3导弹,与Spawned有一些令人疑惑的联动
RefinerySmokeOffsetOne =


对于不回机场(AirportBound=no & Dock=none)且Landable与Selectable任意为no战机目标丢失会离开地图例如原版伞兵飞机
填X,Y,Z值。这个代码指定矿石精炼厂接受采矿车的矿石冒烟的位置这是第一个位置


对应的:这些不应用于原版黄蜂类型的子机战机,否则完成(非中断)任务的子机不会返回母舰而是飞出地图后从游戏中移除,进而导致母舰传递指令时崩溃
RefinerySmokeOffsetTwo =


===SelfHealing===
填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第二个位置


填yes或no。这个代码指定该单位是否能够自动恢复生命点。间隔由全局<code>[General] -> RepairRate=</code>指定,Ares已允许微观定义,详见说明书
RefinerySmokeOffsetThree =


然而建筑如果依靠自愈回到了未损伤状态其图像也不会正常转换,Phobos已修复
填X,Y,Z值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第三个位置


原版下无法设定单位是否脱战才能开始自愈,Ares已允许设定,并添加了多项拓展,详见说明书
RefinerySmokeOffsetTwo =


===SensorArray===
填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第四个位置


填yes或no。该【建筑】能否探测隐形和地下单位,范围由SensorsSight指定,建筑被断电、摧毁、移交所属、超时空冻结等均不会刷新(停止)效果,Ares已修复
RefinerySmokeParticleSystem =


===Sensors===
填粒子系统名称,这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的类型,只能填一个


填yes或no。这个代码指定此物体是否能够在周围3x3范围内探测隐形,并解除,但是对友军建筑也有效,并且一些情况下单位被摧毁会遗留反隐效果,Phobos已修复
RefinerySmokeFrames =


===SensorsSight===
填正整数类型值,这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的时间,单位为帧


填数值。这个代码指定此物体检测其它隐形单位的半径范围,但是并不解除,非建筑类填上就能用,建筑需要SensorArray=yes启用
ReadinessReductionMultiplier =


逻辑从TS就有死亡遗留反隐区等各种问题,RA2中对于Naval=yes且始终在地表的单位进行了特殊处理解决了部分Bug,然而依旧存在大量问题,Phobos已修复部分
填数值。这个代码指定单位的损害乘法器。要和DamageReducesReadiness=yes连用


===ShowOccupantPips===
RejoinTeamIfLimboed =


填yes或no。这个代码指定当建筑被步兵驻守后是否显示底下的小格
填yes或no。用于武器拥有LimboLaunch=yes的单位,这个代码指定处于一个team中的该单位limbo消灭目标后unlimbo时是否归队。通常用于寄生单位


===Sight===
ReselectIfLimboed =


填数值。这个代码指定该单位的视力范围。数值越高,该单位在探路拨开的黑雾越大。单探开视野功能而言原版最大值11更大需要Ares
填yes或no用于武器拥有LimboLaunch=yes的单位,这个代码指定该寄生单位寄生前若处于被选中状态并且没有其他动作那么它从目标身上Unlimbo返回是否仍是被选中状态如果为no那么狗和恐怖机器人每寄生击杀一个目标你都重新手动选中它一次


===SinkingSound===
Reload =


填Sound.ini中定义的声音名。这个代码指定海军单位被摧毁后下沉声音。该海军单位的Weight要大于3。如果想设定让海军单位下沉的Weight的阈值可以修改全局<code>[General] -> ShipSinkingWeight=</code>的数值
填数值。这个代码指定单位装填弹药所需帧数。如果为0那么会立即装回


===Size===
当弹药空仓时转为使用EmptyReload的值


填数值。这个代码指该单位的大小。默认为1。仅载具的乘客格子正常绘制多格,尤里电厂和驻军建筑始终为1格大小
原版下每次只能装1枚弹药,Ares允许


===SizeLimit===
载员无法在载具内装弹,Phobos已修复


填数值。这个代码指定运兵单位最大支持的单个乘客占格数,Ares允许对于运输载具设定任何单位在这个单位内也只占1格,但仍然遵循本语句设定检查是否允许进入
ReloadIncrement =


===Soylent===
填数值。指定装弹速度根据PipWrap的修正值,默认0


值。这个代码指定该单位被出售后所得的资金。对于步兵单位,只有通过进入RA2苏军的“复制中心”YR尤里的回收站(或同类型建筑)才能卖掉
公式:真reload帧=Reload + ( ReloadIncrement * ( 当前弹药数 / PipWrap )^2 )


===Spawned===
Repairable =


填yes或no。这个代码指定是否为子机类单位。用来和一般单位作区的,可以禁用Unit Lost警报。在战机上与Landable、Selectable有一些小绕的编码工作方式,参见https://t.bilibili.com/884748819012517897
填yes或no。这个代码指定建筑是否能够被工程师所修复。当为no时工程师不能进入修复实际上应该是用来限制扳手维修的,Ares下已允许离控制


===Spawns===
RequiredHouses =


战机名。这个代码指定子机发射器发射的子机类型。子机发射器单位的武器需有Spawner=yes来声明使用是一单纯用于发射子机的虚拟武器
国家名。这个代码指定单位只能被指定国家所建造。对于其他国家,即使满足了Prerequisite=和TechLevel=,只不是指定国家,就不能建造


原版下对于空中单位放出的子机需要母舰落回地面才可以返回,否则子机只会落到地上或飞出地图(然后崩溃),Ares已允许空中单位正常使用和回收子机,且无需额外设定
RequiresStolenAlliedTech =


不过依旧需要满足子机与母舰XY坐标致的条件才能回收,所以也无法移动中回收,Phobos已拓展该逻辑,允许设定个回收子机最大范围,详见说明书
填yes或no。个代码指定该单位是否在已方间谍渗透[AI] -> BuildTech=第项即原版盟军作战实验室后才能建造,Ares重做了套新渗透功能系统,详见间谍渗透功能强化一节


当然在现代拓展引擎下使用其他逻辑刻出子机管理器系统也并非不可能,例如https://www.bilibili.com/opus/994486096720035847,图中的航母就可以移动中回收子机和显示子机装弹进度。也可以突破仅能Aircraft类作为子机和子机不可手动操作的限制,如https://www.bilibili.com/opus/993682443903959046。甚至还能让子机根据目标数量自动分配https://www.bilibili.com/opus/1001916368673570822
RequiresStolenSovietTech =


如果由建筑类作为母舰,那么便在断电状态下子机逻辑也仍然工,Phobos已允许控制,详见说明书
填yes或no。这个代码指定该单位是否在已方间谍渗透[AI] -> BuildTech=第二项原版苏军战实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节


原版下子机返航的朝向并不会检查是否与母舰一致,Phobos已修复
RequiresStolenThirdTech =


目前作为子机的Aircraft母舰被毁时无视其Crashable=no坠毁
填yes或no。这个代码指定该单位是否已方间谍渗透[AI] -> BuildTech=第三项即原版尤里作战实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节


===SpawnsNumber===
RevealToAll =


子机数目
填yes或no。这个代码指定对象是否会生成雷达事件,例如雷达标记,并向敌方揭开该建筑Sight区域内的地图


===SpawnRegenRate===
RollAngle =


子机重生帧
值。这个代码指定此单位转弯时的侧向倾斜角度。默认为30.0度


===SpawnReloadRate===
此外该单位需要满足PitchSpeed的条件,同时PitchAngle需要大于0


子机装弹帧数
同时会导致VXL单位占用的画布过大而崩溃,与巨型VXL素材上斜坡和沉没同理


ROT =


填数值。这个代码指定该单位转弯的比率,数值越大转弯越快。默认值为0


===SpecialThreatvalue===
对于AircraftType而言0值为不能旋转,会按初始方向直线飞出,对于载具类别0值为瞬间旋转,步兵始终瞬间掉头


填0-1数值。用于原版工程师和MCV等无威胁单位正常进入威胁计算,防止这些实际上并不简单的单位被主动寻敌无视掉
同时对于[TechnoType] -> Turret=yes的单位其炮塔旋转速度也使用此值,Ares允许分离设定


===Speed===
注意:单位炮塔与本体同时旋转时旋转速度不会叠加,也就是说在炮塔与车体转速想相同(原版)的情况下同时向同方向旋转时炮塔与车体的夹角是固定的


填数值。这个代码指物体运动速度。每个非建筑物体都一定要设置这个项。最小值为0,最大值为100,程序内再*256/100换算
关于算法:ROT为每帧转过的角度,但使用256分圆,也就是64相当于一帧转90度,128为一帧即可掉头,非机场战机且运动方式恰当的单位在为0时会瞬间转向


步兵类Walk与甲Mech两种运动模式实际Speed不得超过14,否则卡在原地无法运动。考虑到升级捡箱子等因素,写速度时不要大于10,Phobos解除
原版中[AircraftType] -> Carryall=yes的战吊起过载具被放下后继续使用战机的ROT,Ares修复


原版下只能整数,Phobos允许使用小数
ResourceGatherer =


注意:何运动模式在极低速度下都可能出现一些不太正常的表现具体效与单位类别也有所不同
原版用于三方矿车和尤里矿场,用于AI处理矿石采集和存储建筑用了会影响AI出矿场数量计算


===SpeedType===
也用于AI的建筑扩展节点判定,详见BaseNormal一节


填下表中的对应项。这个代码指定该单位的速度类型
此外可以用于屏蔽载具DeploysInto成建筑失败时的EVA_CannotDeployHere语音


决定单位在不同的地形上能否运动及运动速度改变多少,见2025教程大包内附赠的《9.覆盖物词典.ini》开头[Water]部分
ResourceDestination =


应该和Locomotor=以及MovementZone=适当配合使
原版于三方矿场和尤里矿车,用于AI处理矿石采集和存储任务


----
以上两句用于让AI学会处理不同的矿石处理和储存方式


Amphibious 两栖速度类型
但是连用还有禁止BORIS空袭指示器武器攻击该建筑的效果,不过并不禁止被C4摧毁


在旧版本词典中有一个“Underground 潜地速度类型”,实际上这是二十多年前最早的一批教程中长期遗留下来的错误,并不存在Underground这个用值
以屏蔽建筑UndeploysInto成载具时的EVA_NewRallyPointEstablished语音


FloatBeach 滨海速度类型
-S-


Float 船舶速度类型,使用这个SpeedType的建筑可以无视Buildable依靠SpeedType控制建造地块类型,见WaterBound词条
SAM =


Winged 飞机速度类型
填yes或no。TS残留代码,这个代码指定建筑是否为SAM导弹


Hover 悬浮速度类型
目标必须为在[General] -> PadAircraft=列表中的Aircraft,否则根本不会锁定,也就是火箭飞行兵和夜鹰直升机那些实际上是Infantry与Vehicle的对象不会成为目标


SpeedType=Hover的Jumpjet载具(例如夜鹰直升机)被超时空到水时并不会沉没,甚至还操作下达指令让它飞起来正常工作这个问题在Ares中已被修复
此外目标Aircraft必须Dock为空,并且只有SAM获取目标这个Aircraft就是在空中悬停的状态那么SAM才能正常发射武器,一旦Aircraft之后移动了一下那么SAM就会哑火


Wheel 轮式载具速度类型
只有一些特定的转弯情况偶尔会突然射两发,然后继续哑火,并且这种情况下SAM炮塔仍然会去重新同步到目标方向,但再次同步的间隔并不是武器的ROF,也并不是固定值


Track 半履带车速度类型
甚至前面说的突然射两发的情况可以并不面向目标开火,哪怕并不存在[Weapon] -> OmniFire=yes


Foot 步兵步行速度类型
此外SAM还强制只能对空攻击,也就是不能对落到地面的目标开火


SpeedType=Amphibious/Hover会让一些vxl载具影子绘制在body之上
也就是SAM的目标只能是拥有AirportBound=yes与Dock=none且起飞过的Aircraft


----
只有一些原版引擎下需要特殊判定效果的地方会用到,现代引擎下已经没有必要死磕这个逻辑


===MovementZone===
Secondary =


表示单位使用何种寻路方式填下表中对应项有试图字样需要单位本身满足条件)
填武器名。这个代码指定该单位的副武也就是所谓次要武器、第二武器当主武不能攻击某目时,游戏会自动转为副武攻击,当副武不能攻击时,游戏才会判断该单位不能攻击


对于处于OpenTopped载具中的乘客只有在可运动的MovementZone上才可以正常对外开火,Ares下用InitialPayload做多武器载具需要注意可以用下面句来限制不能踢出(不过Ares提供了于VehicleType与Aircraft的的禁止手动装载乘客NoManualEnter与禁止手动卸载乘客NoManualUnload直接用Ares提供的新语句就足够,详见Ares说明书
建筑主副武器始终使用武器的Range作为射程如果不存在主武器么副武器相当于没射程也用


----
Selectable =


Amphibious 两栖可以同时被船厂和维修厂维修
填yes或no。这个代码指定该单位能否被玩家选中。典型的运用是V3导弹与Spawned有一些令人疑惑的联动


AmphibiousCrusher 两栖并试图碾压步
对于不回机场(AirportBound=no & Dock=none)且Landable与Selectable任意为no的战机在目标丢失后会离开地图例如原版伞飞机


AmphibiousDestroyer 两栖并试图摧毁障碍物树木 沙袋 铁丝网两栖步兵卡树原因之一
对应的:这些不应用于原版黄蜂类型的子机战机否则完成非中断任务子机不会返回母舰而是飞出地图后从游戏中移除,进而导致母舰传递指令时崩溃


Crusher 陆地,并试图碾压步兵
SelfHealing =


CrusherAll 陆地,并试图碾压一切包括围墙,根据Crusher决穿墙而过还强行碾掉不碾的墙(真正决是否为高级碾压的语句)
填yes或no。这个代码指该单位够自动恢复生命点。间隔由全局[General] -> RepairRate=指,Ares已允许微观定义,详见说明书


Destroyer 陆地,并试摧毁障碍物和碾压沙袋
然而建筑如果依靠自愈回到了未损伤状态其像也不会正常的转换,Phobos已修复


Fly 寻路限制
原版下法设定单位是否脱战才能开始自愈,Ares已允许设定,并添加了多项拓展,详见说明书


Infantry 陆地,一般步兵
SensorArray =


InfantryDestroyer 步兵 试图摧毁障碍物
填yes或no。该【建筑】能否探测隐形和下单位,范围由SensorsSight指定,建筑被断电、摧毁、移交所属、超时空冻结等均不会刷新(停止)效果,YR已废弃,Ares已修复


Normal 陆地,并试图摧毁地形障碍和碾压步兵
同时也决定载具通过DeploysInto部署成该建筑前是否转向正东方


Subterannean 钻地车用,移动距离远时试图钻地,不钻地时与Crusher类似
部署转向规则见[BuildingType] -> Artillary=一条下方


Water 只在水中寻路
Sensors =


WaterBeach 可水中和海滩寻路
填yes或no。这个代码指定此物体是否能够周围3x3范围内探测隐形,并解除,但是对友军建筑也有效,并且一些情况下单位被摧毁会遗留反隐效果,Phobos已修复


----
SensorsSight =


填数值。这个代码指定此物体检测其它隐形单位的半径范围,但是并不解除,非建筑类填上就能用,建筑需要SensorArray=yes启用


该逻辑从TS就有死亡遗留反隐区等各种问题,RA2中对于Naval=yes且始终在地表的单位进行了特殊处理解决了部分Bug,然而依旧存在大量问题,Phobos已修复部分


===MovementRestrictedTo===
ShowOccupantPips =


该【载具】只能在某类地形上运动
填yes或no这个代码指定当建筑被步兵驻守后是否显示底下的小格


如果你想要从Factory创建一个不能移动的单位并且正常开出来,那么你需要用Ares的Convert逻辑让它开出来以后再变成你要的限制了运动区域的单位
Sight =


----
填数值。这个代码指定该单位的视力范围。数值越高,该单位在探路时拨开的黑雾越大。单探开视野功能而言原版最大值10,想要更大需要Ares


Clear
SinkingSound =


Road
填Sound.ini中定义的声音名。这个代码指定海军单位被摧毁后下沉的声音。该海军单位的Weight要大于3。如果想设定让海军单位下沉的Weight的阈值可以修改全局[General] -> ShipSinkingWeight=的数值


Rough
Size =


Rock
填数值。这个代码指定该单位的大小。默认为1。仅载具的乘客格子正常绘制多格,尤里电厂和驻军建筑始终为1格大小


Tiberium
SizeLimit =


Water
填数值。这个代码指定运兵单位最大支持的单个乘客占格数,Ares允许对于运输载具设定任何单位在这个单位内也只占1格,但仍然遵循本语句设定检查是否允许进入


Railroad
SmallVisceroid =


Tunnel
该载具是否为小型器官兽,具有一直乱跑和一系列硬编码动作。TS残留,相关逻辑不完整,Ares已复原,详见说明书


Beach
在RA2YR仍然保留着小器官兽会尝试靠近一个同类来合成大器官兽的行为,但是由于合成相关的逻辑没了,所以只会每个同类接近一次然后继续跑


Weeds
Soylent =


Ice
填数值。这个代码指定该单位被出售后所得的资金。对于步兵单位,只有通过进入RA2苏军的“复制中心”YR尤里的部队回收厂(或同类型建筑)才能卖掉


Wall
默认0即不启用该逻辑,并非默认Cost/2。如果[TechnoType] -> Soylent=0


----
实际算法为:[TechnoType] -> Cost=<int>*[Country] -> Cost(Infantry|Units|Aircraft|Buildings|Defenses)Mult=<float>*[BuildingType] -> (Infantry|Units|Aircraft|Buildings|Defenses)CostBonus=<float>


若所属方为人类玩家,在此基础上再*[General] -> RefundPercent=<float>,原版为50%(0.5)。


Spawned =


填yes或no。这个代码指定是否为子机类单位。用来和一般单位作区分的,可以禁用Unit Lost警报。在战机上与Landable、Selectable有一些小绕的编码工作方式,参见https://t.bilibili.com/884748819012517897


Spawns =


===Spyable===
填战机名。这个代码指定子机发射器发射的子机类型。子机发射器单位的武器需要有Spawner=yes来声明使用的是一个单纯用于发射子机的虚拟武器


填yes或no。这个代码指定建筑是否能够被间谍渗透,被间谍渗透建筑会根据建筑类型触发相应的事件如渗透发电厂类建筑导致停电等,而效果判定语句同时也是建筑功能语句,无法分离控制,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节
原版下对于空中单位放出子机需要母舰落回地面才可以返回否则子机只落到地上或飞出地图(后崩溃),Ares已允许空中单位正常使用和回收子机需额外设定


===SpySat===
不过这依旧需要满足子机与母舰XY坐标一致的条件才能回收,所以也无法移动中回收,Phobos已拓展该逻辑,允许设定一个回收子机的最大范围,详见说明书


填yes或no是否开全(间谍卫星)
当然在现代拓展引擎下使用其他逻辑刻出子机管理器系统也并非不可能,例如https://www.bilibili.com/opus/994486096720035847,图中的航母就可以移动中回收子机和显示子机装弹进度。也可以突破仅能Aircraft类作为子机和子机不可手动操作的限制,如https://www.bilibili.com/opus/993682443903959046。甚至还能让子机根据目标数量自动分配https://www.bilibili.com/opus/1001916368673570822


该功能无法用于加载物,Phobos已修复
如果由建筑类作为母舰,那么即便在断电状态下子机逻辑也仍然工作,Phobos已允许控制,详见说明书


===Storage===
原版下子机返航的朝向并不会检查是否与母舰一致,Phobos已修复


填数值。这个代码指定该单位能够储存的矿石数量。只能用采矿车和矿石精炼厂,RA2下失去了建筑储矿效果所以矿石精炼厂上的已经失去意义,Ares已复原,详见说明书
目前作为子机的Aircraft母舰被毁时无视其Crashable=no坠毁


===Strength===
SpawnsNumber =


值。这个代码指定该单位的最大生命值点数,Phobos允许独立定义单位生成时的初始血量,详见说明书
子机


如果把这个值设为负值会导致一些令人疑惑的效果,并且不同引擎可能修改相关逻辑引发不同的效果
SpawnRegenRate =


===StupidHunt===
子机重生帧数


填yes或no。当AI没有剩余建筑时(非快速游戏)这个单位会径直冲到玩家家里而不像其他单位一样被分配Hunt任务,这样的单位通常没有武器也没法执行Hunt所以用这个语句来让它们也加入填线的队伍
SpawnReloadRate =


===SuperGapRadiusInCells===
子机装弹帧数


填数值。这个代码指定“黑幕产生器”类建筑部署产生的黑幕半径。要和GapGenerator=yes和ExtraPower=配合使用
SpecialThreatvalue =


===SuperWeapon===
填0-1的数值。用于原版工程师和MCV等无威胁单位正常进入威胁计算,防止这些实际上并不简单的单位被主动寻敌无视掉


填超级武器名。这个代码指定该建筑产生后所激活的超级武器
Speed =


同时还带有强制建筑只能手动寻敌、触发超武阶段动画等编码效果,如果不想要这些效果请使用下句
填数值。这个代码指物体运动速度。每个非建筑物体都一定设置个项。最小值为0,最大值为100,程序内再*256/100换算


*如果是加载物提供的超级武器那么将会读取超武的AuxBuilding设置,Ares修复
步兵类Walk与机甲Mech两种运动模式实际Speed不得过14,否则会卡在原地无法运动。考虑到升捡箱子等因素,写速度时要大于10,Phobos解除


===SuperWeapon2===
原版下只能整数,Phobos允许使用小数,但是Phobos新增了一个效果是[TechnoType] -> Speed=0会被视为静止(就像部署态武装直升机那样),所以低于.39062498509883880616会无法获得移动光标


填超级武器名。这个代码指定该建筑产生后所激活第二个超级武器上一局那一堆编码限制
注意:任何运动模式在极低速度下都可能出现一些不太正常表现具体效果与单位的类别也所不同


原版下一个建筑只能使用上面两个语句绑两个超武,加载物也无法超额,想要一个建筑挂更多请用Ares新功能,详见说明书
SpeedType =


===SuppressionThreshold===
填下表中的对应项。这个代码指定该单位的速度类型


填数值。乌贼和恐怖机器人等单位用。如果被寄生单位受到大于此数值伤害则在"伤害*2"的帧时间,若被寄生单位被摧毁,寄生者一并死亡
决定单位在不同地形上能否运动及运动速度改变多少见2025教程大包附赠《9.覆盖物词典.ini》开头[Water]部分


===SlowdownDistance===
应该和Locomotor=以及MovementZone=适当配合使用


飞机单位在目标附近减速的距离,256为一格,适当增大有助于高Speed低ROT战机返仓(不然容易一直绕圈)
<nowiki>---------------------------------------------------------------------------------</nowiki>


特殊值0可以让战机永远无法落地(毕竟距离目的地0Lepton才开始减那就没法降到0了)
Amphibious 两栖度类型


是这个方法会打断AI行为,因为AI会倾向于视为移动任务始终没有成功完成
在旧版本词典中有一个“Underground 潜地速度类型”,实际上这二十多年前最早的一批教程中长期遗留下来的错误,程序中该句并不存在Underground这个可用值


非五连发战机返仓和接近目标都会使用SlowdownDistance,五连发战机轰炸目标不看只在返航时看
FloatBeach 滨海速度类型


===SecretLab===
Float 船舶速度类型,使用这个SpeedType的建筑可以无视Buildable依靠SpeedType控制建造地块类型,见WaterBound词条


是否为秘密科技实验室
Winged 飞机速度类型


===SecretBuilding===
Hover 悬浮速度类型


占领秘密科技实验室后可生产的建筑
SpeedType=Hover的Jumpjet载具(例如夜鹰直升机)被超时空到水中时并不会沉没,甚至还能操作下达指令让它飞起来正常工作,这个问题在Ares中已被修复


===SecretInfantry===
Wheel 轮式载具速度类型


占领秘密科技实验室后可生产的步兵
Track 半履带车速度类型


===SecretUnit===
Foot 步兵步行速度类型


占领秘密科技实验室后可生产的载具
SpeedType=Amphibious/Hover会让一些vxl载具影子绘制在body之上


和全局一样没有Aircraft,并且建筑体自身的这个还只能单个对象而不是列表,不过Ares已经换了一套新的,直接把WW这套又老又残的扬了拉倒
<nowiki>---------------------------------------------------------------------------------</nowiki>


===SecretHouses===
MovementZone =


未完成功能无效代码,Ares已完成并扩展,详见Ares说明书
表示单位使用何种寻路方式填下表中的对应项。(标有试图字样需要单位本身满足条件)


===SlaveRegenRate===
对于处于OpenTopped载具中的乘客只有在其可运动的MovementZone上才可以正常对外开火,Ares下用InitialPayload做多武器载具需要注意,可以用下面那句来限制不能踢出(不过Ares也提供了用于VehicleType与Aircraft的的禁止手动装载乘客NoManualEnter与禁止手动卸载乘客NoManualUnload直接用Ares提供的新语句就足够了,详见Ares说明书


奴隶重生帧数
<nowiki>---------------------------------------------------------------------------------</nowiki>


===SlavesNumber===
Amphibious 两栖,可以同时被船厂和维修厂维修


奴隶数目
AmphibiousCrusher 两栖,并试图碾压步兵


===SlaveReloadRate===
AmphibiousDestroyer 两栖,并试图摧毁障碍物(树木、沙袋、铁丝网)两栖步兵卡树的原因之一


奴隶“倒矿”使用的时间即奴隶回到奴隶矿场后到下一次出来时的间隔
Crusher 陆地并试图碾压步兵


===Slaved===
CrusherAll 陆地,并试图碾压一切包括围墙,根据Crusher决定穿墙而过还是强行碾掉不能碾的墙(真正决定是否为高级碾压的语句)


这个步兵是否为奴隶矿工奴隶矿场被摧毁时会得到解放,搭配HarvestRate控制收集矿石的速度
Destroyer 陆地并试图摧毁障碍物和碾压沙袋


原版下被超时空弹头攻击可能引发崩溃,Phobos已修复
Fly 寻路无限制,会导致矿车无法手动返回矿场,PhobosBuild48已修复;会导致载具无法进入建筑


===Stage1===
Infantry 陆地,一般步兵


===Stage2===
InfantryDestroyer 陆地,步兵,试图摧毁障碍物


===Stage3===
Normal 陆地,并试图摧毁地形障碍和碾压步兵


===Stage4===
Subterannean 钻地车用,移动距离远时试图钻地,不钻地时与Crusher类似。作为矿车且被水域或悬崖包围时无法正确找到矿场,PhobosBuild49已修复


===Stage5===
Water 只在水中寻路


===Stage6===
WaterBeach 可在水中和海滩寻路


盖特武器[X]阶保持到计数器达到多少后转到下一阶,这里的[X]有效范围受制于WeaponStages的值
<nowiki>---------------------------------------------------------------------------------</nowiki>


最后一阶由于不存在下一阶所以会保留当前阶段,想要跳到第一阶往往使用一个FireOnce武器搭配RateDown=0来实现,但会丢失原目标需要重新索敌,Ares引擎允许语句控制最后一阶跳转第一阶,详见Ares说明书
上表有效值中的Subterannean实际为Westwood的错误拼写,Ares中的新增标签例如[AudioVisual] -> SubterraneanSpeakDelay=等则使用的是正确的英文单词"Subterranean"


===SprayAttack===
MovementRestrictedTo =


是否为喷洒单位
该【载具】只能在某类地形上运动。


抛射为Arcing
如果你想要从Factory创建一个不能移动的单位并且正常开出来,那么你要用Ares的Convert逻辑让它开出来以后再变成你要的限制了运动区域的单位


用于指定此单位Primary随机喷洒在单位周围,而不是使用武器的正常规则向目标射击
<nowiki>---------------------------------------------------------------------------------</nowiki>


结果是武器在来自该单元的8个标准方向中的任何一个方向上的随机单元中发射
Clear


而不是在所选目标本身处发射
Road


在目标在Range内时不会射击
Rough


在目标和自己距离为1或2时向目标方向以距离+1的射程随机发射武器
Rock


在原版引擎INI技术向MOD《VS_INI》中用于处理原版航母飞机在特定角度攻击船厂时不投弹一直盘旋的bug
Tiberium


Water


Railroad


==T==
Tunnel


===TypeImmune===
Beach


填yes或no,该单位是否不受己方相同单位的伤害,如尤里复制人,对于无所属方的粒子自然就无效了,不过对粒子武器的穿透伤害还是有效的,毕竟那是来自武器的
Weeds


===TogglePower===
Ice


该建筑是否能手动停电,TS残留无效,Ares已复原相关逻辑,详见Ares说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的
Wall


注意:仅在Powered=yes且Selectable=yes时有效,否则强制不能被断电
<nowiki>---------------------------------------------------------------------------------</nowiki>


Power为正的建筑(例如电厂)并不会导致不能被断电,断电时会表现为不生产电力
Spyable =


===ToTile===
填yes或no。这个代码指定建筑是否能够被间谍渗透,被间谍渗透的建筑会根据建筑类型触发相应的事件,如渗透发电厂类建筑会导致停电等,然而效果判定语句同时也是建筑功能语句,无法分离控制,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节


建筑用,建造地形,填地形名 如Water01,Green01,Clear01注意如果想让此物在水面建造的话需要LaserFencePost=yes
SpySat =


实际上并不会严格根据Foundation来填充根据Foundation决定的最大长宽也就是原版的3x3REFINERY当标准3x3算
填yes或no该建筑否提供全图视野(间谍卫星)该效果不受电力影响想要附赠雷达图还需要搭配[BuildingType] -> Radar=yes使用


Ares的CustomFoundation逻辑直接遵照Foundation.[X|Y]直接填充矩形,而并不去看有没有挖掉格子
该功能无法用于加载物,Phobos已修复


同时还会因为Tile自身的尺寸而影响实际范围,例如Water01实际上是一个2x2的tem
Storage =


典型应是TS中硬化路面在家里建造防止敌方钻地载具直奔基地中心
填数值。这个代码指定该单位能够储存的矿石数量。只能在采矿车和矿石精炼厂,RA2下失去了建筑储矿效果所以矿石精炼厂上已经失去意义,Ares已复原详见说明书


此外该逻辑改变地形并不会刷新寻路,因为寻路区域是地图载入时就决定完的,不过你依然可以用其他限制移动区域的方法加以配合来实现单位由于ToTile而正常改变自身运动区域的效果
Strength =


===TiltCrashJumpjet===
填数值。这个代码指定该单位的最大生命值点数,Phobos允许独立定义单位生成时的初始血量,详见说明书


决定Jumpjet运动模式单位坠毁方式填写yes坠毁时会倾斜(飞碟)否则平稳坠毁(基洛夫)
如果把这个值设为负值会导致一些令人疑惑效果并且不同引擎可能修改相关逻辑引发不同的效果


===TargetCoordOffset===
StupidHunt =


建筑被攻击瞄准坐标点,同时是船厂出口位置
填yes或no。当AI没有剩余建筑时(非快速游戏)这个单位会径直冲到玩家家里而不像其他单位一样分配Hunt任务,这样单位通常没有武器也没法执行Hunt所以用这个语句来让它们加入填线的队伍


不影响AAAG判定,也就是说哪怕你第三个值定义了个4096高度,地面单位也照射不误
SuperGapRadiusInCells =


对于Arcing虽然其弹道仍旧命中地面建筑中心,但爆点会移动到TargetCoordOffset
填数值。这个代码指定“黑幕产生器”类建筑部署产生的黑幕半径。要和GapGenerator=yes和ExtraPower=配合使用


但是对于ROT类如果命中前建筑就已经被摧毁了,那么会重新将目标更新为被毁建筑空地上原应该攻击的位置而不是照常飞到TargetCoordOffset
SuperWeapon =


这也不影响器Range,哪怕它影响TargetLaser和瞄准线的绘制,但不影响实际距离判
填超级器名。个代码指该建筑产生后所激活的超级武器


并且对于Vertical的特殊工作机,单位依然会开到建筑头上丢炸弹而是去TargetCoordOffset
同时还带有强制建筑只能手动寻敌、触发超武阶段动画等编码效果,如果想要这些效果请使用下句


若抛射体拥有Inaccurate=true
<nowiki>*</nowiki> 如果是加载物提供的超级武器那么将不会读取超武的AuxBuilding设置,Ares已修复


对于Arcing和Inviso类爆点正常计算过IsLaser和TargetLaser瞄准线等绘制效果始终遵循TargetCoordOffset
这句与下句在加载物上使用时添加到主体建筑上,不会覆盖主体建筑原有的超武


若抛射体拥有FlakScatter=true
SuperWeapon2 =


对于Inviso类开启不精准效果将会依照建筑实际中心计算而不是TargetCoordOffset
填超级武器名。这个代码指定该建筑产生后所激活的第二个超级武器,没有上一局那一堆编码限制


===TargetLaser===
原版下一个建筑只能使用上面两个语句绑两个超武,加载物也无法超额,想要一个建筑挂更多请用Ares新功能,详见说明书


攻击时是否有瞄准激光(无实际意义)与Attack的那条线一样,使用palette.pal色盘08号色,Move使用palette.pal色盘03号色
SuppressionThreshold =


===TechLevel===
填数值。乌贼和恐怖机器人等单位用。如果被寄生单位受到大于此数值的伤害,则在"伤害*2"的帧时间内,若被寄生的单位被摧毁,寄生者一并死亡


该值确定物体在建造栏中的顺序,越小的越在前,同样的按照注册顺序调整<=-2时相当于没有TechLevel限制
SlowdownDistance =


建筑TechLevel=-1时人类玩家可建造,AI可以建造建筑对于小队中的单位则是AI也无法建造
飞机单位在目标附近减速的距离,256为一格,适增大有助于高Speed低ROT战机返仓(然容易一直绕圈)默认500


TechLevel处于0到<code>[MultiplayerDialogSettings] -> TechLevel=</code>或地图触发更改后的区间中则正常生产
特殊值0可以让战机永远无法落地毕竟距离目地0Lepton才开始减速那就没法降到0了


TechLevel><code>[MultiplayerDialogSettings] -> TechLevel=</code>(或地图触发更改后的值)时无法从箱子中开出
但是这个方法会打断AI行为因为AI会倾向于视为移动任务始终没有成功完成


秘密科技实验室等特殊方式给予生产权限受此限制
非五连发战机返仓和接近目标都会使用SlowdownDistance,五连发战机轰炸目标看只在返航时看


RA2下可驻军建筑放下后会立即转为中立所属,YR下TechLevel在正常生产区间的会保留所属并且不会在建筑损坏到红血时执行驻军撤出行为(苏军战斗碉堡)
SecretLab =


是否为秘密科技实验室


SecretInfantry=


AI建造前提:
占领这个秘密科技实验室后可生产的步兵,若不存在则注册为步兵,若留空则使用下句


建筑:
SecretUnit=


无视:【TechLevel=-1】,PrerequisiteOverride,RequiresStolenAlliedTech,RequiresStolenSovietTech,RequiresStolenThirdTech,SpyEffect.StolenTechIndex(Ares)
占领这个秘密科技实验室后可生产的载具,若不存在则注册为载具,若留空则使用下句


有效:TechLevel,Prerequisite,Owner,AIBasePlanningSide,RequiredHouses,ForbiddenHouses
SecretBuilding=


;如果建筑A的Prerequisite为建筑B且Owner/AIBasePlanningSide均正常,但是建筑B因为RequiredHouses/ForbiddenHouses无法建造,AI会认为建筑A造,但是实际上无法造建筑A影响其他符合条件的建筑建造
占领这个秘密科技实验室后生产的存在则注册为建筑,若留空则全局规则


位:
和全局一样没有Aircraft,并且建筑体自身的这个还只能个对象而不是列表,不过Ares已经换了一套新的,直接把WW这套又老又残的扬了拉倒


无视:Prerequisite,PrerequisiteOverride,Owner
SecretHouses =


:TechLevel,RequiredHouses,ForbiddenHouses,RequiresStolenAlliedTech,RequiresStolenSovietTech,RequiresStolenThirdTech,SpyEffect.StolenTechIndex(Ares)
未完成功能,无代码,Ares已完成并扩展,详见Ares说明书


;如果[TaskForces]里有无法建造的单位,则会跳过该项继续建造之后的单位。除非通过重组凑齐无法建造的单位,否则无法执行脚本
SlaveRegenRate =


===Teleporter===
奴隶重生帧数


超时空行动用语句,单位被超时空传送不会死亡
SlavesNumber =


同时也用于非Dock回建筑对接时使用Drive替换原本的Locomotor
奴隶数目


例如原版超时空矿车借由这句使其“行驶”(Drive)前往矿区,而不是全程超时空移动
SlaveReloadRate =


===ThreatAvoidanceCoefficient===
奴隶“倒矿”使用的时间,即奴隶回到奴隶矿场后到下一次出来时的间隔


躲避高危险地区的几率,实际上由于寻路方式的优先级过高这逻辑的效果几乎表现不出来
Slaved =


===ThreatPosed===
这个步兵是否为奴隶矿工,奴隶矿场被摧毁时会得到解放,搭配HarvestRate控制收集矿石的速度


威胁值,电脑优先攻击高威胁的但是即便拥有威胁值如果没有武器AI也不会攻击,所以想要让单位主动攻击建筑除了威胁值外还需要添加虚拟武器。由于加载物不实际存在于地图上,AI并不直接攻击加载物,所以不要给加载物加这个
原版下被超时空弹头攻击引发崩溃,Phobos已修复


===TiberiumProof===
Stage1 =


该对象是否免疫泰矿伤害,TS残留无效,Ares已复原并,详见说明书
Stage2 =


===TiberiumHeal===
Stage3 =


在对象在矿石中是否能加血,TS残留无效,Ares已复原,详见说明书
Stage4 =


===ToProtect===
Stage5 =


写yes的单位受到攻击时,AI会出动闲置部队去保护。原版海军都有这句,但海军加这个意义不大
Stage6 =


===TooBigToFitUnderBridge===
盖特武器[X]阶保持到计数器达到多少后转到下一阶,这里的[X]有效范围受制于WeaponStages的值


是否无法桥底停
最后一阶由于不存下一阶所以会保当前阶段,想要跳到第一阶往往使用一个FireOnce的武器搭配RateDown=0来实现,但是会丢失原目标需要重新索敌,Ares引擎允许语句控制最后一阶跳转第一阶,详见Ares说明书


===Trainable===
SprayAttack =


为no时不可升级
是否为喷洒单位


非建筑单位默认yes,建筑默认no,原版下来自子机和空袭机的击杀经验全给子机,现代拓展引擎可设置分配方式或强制同步等级,详见说明书
抛射需为Arcing


驻军建筑内驻军步兵即便自身Trainable=no也强制获得经验!(Ares已修复)
用于指定此单位Primary随机喷洒在单位周围,而不是使用武器正常规则向目标射击


===Turret===
结果是武器在来自该单元的8个标准方向中的任何一个方向上的随机单元中发射


单位有无炮塔,当单位体上同时拥有OmniFire时会受其影响导致没有炮塔此句无效
而不是在所选目标身处发射


Turret=yes的Jumpjet运动模式且使用Shp素材的载具只有处于滞空状态炮塔才显示阴影,且绘制在单位上而非正下方的地面
在目标在Range内不会射击


Turret=yes幻影坦克伪装炮塔有问题且伪装图像色盘会强制改变为一坨奇怪的东西
在目标和自己距离为1或2时向目标方向以距离+1射程随机发射武器


对于一个Image=none或者图像不存的单位虽然程序本会将它绘制为一个空的shp但如果添加了Turret那么程序仍然会尝试去调用一个不存在的vxl进而导致崩溃
在原版引擎INI技术向MOD《VS_INI》中于处理原版航母飞机在特定角度攻击船厂时不投弹直盘旋的bug


以上三条Ares已修复
-T-


Turret=yes的Jumpjet运动模式载具闲置时炮塔总是朝向正东方向,Phobos已修复
TypeImmune =


与驻军逻辑配合拥有Turret建筑会保留撤出时的UnloadMission导致下次再塞进去步兵会被立即Unload踢出来
填yes或no,该单位是否不受己方相同单位的伤害,如尤里复制人,对于无所属方粒子自然就无效了,过对粒子武器的穿透伤害还是有效的毕竟那是来自武器


除此以外拥有Turret的驻军建筑踹出驻军单位以后图像无法正常刷新,需要移动一下屏幕,就像TerrainType被碾压那样
TogglePower =


===TurretAnim===
该建筑是否能手动停电,TS残留无效,Ares已复原相关逻辑,详见Ares说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的


炮塔图像,当TurretAnimIsVoxel=yes时可以使用Voxel类型的素材
注意:仅在Powered=yes且Selectable=yes时有效,否则强制不能被断电


===TurretAnimDamaged===
Power为正的建筑(例如电厂)并不会导致不能被断电,断电时会表现为不生产电力


建筑残血时的炮塔图像
TickTank =


===TurretAnimGarrisoned===
载具通过DeploysInto部署成该建筑前是否转向正东方


建筑驻军时的炮塔图像,疑似无效
部署转向规则见[BuildingType] -> Artillary=一条下方


===TurretAnimIsVoxel===
可部署成该建筑的载具被AI投入战斗中时会更积极地尝试部署


炮塔图像是否为Voxel类型的素材
ToTile =


===TurretAnimX===
建筑用,建造地形,填地形名如Water01,Green01,Clear01注意如果想让此物在水面建造的话需要LaserFencePost=yes


炮塔中心点X坐标横向正值向右
实际上并不会严格根据Foundation来填充而是根据Foundation决定的最大长宽也就是原版的3x3REFINERY当标准3x3算


===TurretAnimY===
Ares的CustomFoundation逻辑直接遵照Foundation.[X|Y]直接填充矩形,而并不去看有没有挖掉格子


炮塔中心点Y坐标纵向,正值向下
同时还会因为Tile自身的尺寸而影响实际范围例如Water01实际上是一个2x2的tem


===TurretAnimZAdjust===
典型应用是TS中的硬化路面,在家里建造防止敌方钻地载具直奔基地中心


炮塔中心点Z坐标遮挡层级
此外该逻辑改变地形并不会刷新寻路因为寻路区域是地图载入时就决定完的,不过你依然可以用其他限移动区域的方法加以配合来实现单位由于ToTile而正常改变自身运动区域的效果


===TurretAnimYSort===
TiltCrashJumpjet =


建筑shp炮塔遮挡优先级调整
决定Jumpjet运动模式单位的坠毁方式,填写yes坠毁时会倾斜(飞碟)否则平稳坠毁(基洛夫)


===TurretCount===
TargetCoordOffset =


炮塔种类数(IFV 盖特 光棱坦克)
建筑被攻击时所被瞄准的坐标点,同时也是船厂出口位置


如果位Tur文件总量[小于]该值会导致无论Body还是Tur都显示
不影响AAAG判定,也就是说哪怕你第三个值定义了个4096高度,地面位也照射


TurretCount=0直接导致Weapon[X]系统不被使用
对于Arcing类虽然其弹道仍旧命中地面建筑中心,但爆点移动到TargetCoordOffset


===TurretRecoil===
但是对于ROT类如果命中前建筑就已经被摧毁了,那么会重新将目标更新为被毁建筑空地上原应该攻击的位置而不是照常飞到TargetCoordOffset


开炮时炮塔与炮管是否后退原版巨炮就是炮管退的典例
这也不影响武器Range哪怕它影响TargetLaser和瞄准线的绘,但这不影响实际距离判定


===TurretTravel===
并且对于Vertical的特殊工作机制,单位依然会开到建筑头上丢炸弹而不是去TargetCoordOffset


该建筑炮塔可偏移的像素值,默认 2
若抛射体拥有Inaccurate=true


===TurretCompressFrames===
对于Arcing和Inviso类爆点会正常计算,只不过IsLaser和TargetLaser瞄准线等绘制效果始终遵循TargetCoordOffset


该建筑炮塔恢复所需要的帧数,默认 1
若抛射体拥有FlakScatter=true


===TurretHoldFrames===
对于Inviso类开启不精准效果将会依照建筑实际中心计算而不是TargetCoordOffset


该建筑炮塔保持在受后坐力位置显示的帧数,默认 1
TargetLaser =


===TurretRecoverFrames===
攻击时是否有瞄准激光(无实际意义)与Attack的那条线一样,使用palette.pal色盘08号色,Move使用palette.pal色盘03号色


该建筑炮塔恢复所需的帧数,默认 1
TechLevel =


===TurretRotateSound===
该值确定物体在建造栏中的顺序,越小的越在前,同样的按照注册顺序调整<=-2时相当于没有TechLevel限制


炮塔旋转声音
当建筑TechLevel=-1时人类玩家不可建造,AI可以建造建筑,对于小队中单位则是AI也无法建造


载具用时候炮塔是只看相对地面是否旋转
TechLevel处于0到[MultiplayerDialogSettings] -> TechLevel=(或地图触发更改后值)区间中则正常生产


也就是炮塔跟着车体转的时候也会播放
TechLevel>[MultiplayerDialogSettings] -> TechLevel=(或地图触发更改后值),无法从箱子中开出


===TurretSpins===
秘密科技实验室等特殊方式给予生产权限不受此限制


该载具的炮塔是否永久旋,例如飞碟,很神奇是这个逻辑最早是TS遗下来并且一直有效的
RA2下可驻军建筑放下后会立即为中立所属,YR下TechLevel在正常生产区间会保所属并且不会在建筑损坏到红血时执行驻军撤出行为(苏军战斗碉堡)


该单位在炮塔允许时(指向正确的方向或拥有OmniFire=yes)才能攻击其他单位,否则会卡住,并且卡住后炮塔也会停止旋转(于是也无法继续旋转到达到允许开火的朝向)
AI建造前提:


===Thief===
建筑:


是否为小偷,RA1残留,在RA2已经被Agent=yes的间谍逻辑替代了。不过仍有残余效果
无视:【TechLevel=-1】,PrerequisiteOverride,RequiresStolenAlliedTech,RequiresStolenSovietTech,RequiresStolenThirdTech,SpyEffect.StolenTechIndex(Ares)


RA2下和Infiltrate=yes连用可以让步兵走进矿场,但是不会任何果,YR对此又补了一刀
有效:TechLevel,Prerequisite,Owner,AIBasePlanningSide,RequiredHouses,ForbiddenHouses


在RA2/YR这句与VehicleThief=yes连用可以开启偷车贼效果,但是Thief=yes恰恰又会影响AI执行目标
<nowiki>;</nowiki>如建筑A的Prerequisite为建筑B且Owner/AIBasePlanningSide均正常,但是建筑B因为RequiredHouses/ForbiddenHouses无法建造,AI认为建筑A可造,但是实际上无法建造建筑A,且不响其他符合条件的建筑建造


如果想要使用偷车贼逻辑,请直接使用Ares完整复原并拓展的专用逻辑VehicleThief=yes,详见Ares说明书
单位:


===TiltsWhenCrushes===
无视:Prerequisite,PrerequisiteOverride,Owner


当Crusher时碾压Wall=yes的覆盖物是否掀起,碾压步兵固定不倾斜,OmniCrusher压强制掀起,Phobos已允许定义
有效:TechLevel,RequiredHouses,ForbiddenHouses,RequiresStolenAlliedTech,RequiresStolenSovietTech,RequiresStolenThirdTech,SpyEffect.StolenTechIndex(Ares)


<nowiki>;</nowiki>如果[TaskForces]里有无法建造的单位,则会跳过该项继续建造之后的单位。除非通过重组凑齐无法建造的单位,否则无法执行脚本


此外,TechLevel=-1的建筑会被视为民用建筑,建筑本体第 3 帧为进驻图像,第 4 帧为废墟,红血时释放驻军并使用第 2 帧常规残损图像


==U==
若非民用建筑且可驻军,例如原版苏军碉堡,黄血时会使用第 2 帧作为非驻军状态下的残损图像,使用第 4 帧作为驻军状态下的残损图像,不会因为伤残而释放驻军,由于第 4 帧也用于废墟所以最好通过[BuildingType] -> LeaveRubble=no禁用废墟并用Ares的废墟建筑逻辑模拟


===UndeployDelay===
Teleporter =


释放型武器造成的停顿(无法移、攻击)时间(限步兵)
超时空行用语句,步兵加上这句被超时空传送不会死亡


决定步兵部署模式:此语句设定正值为尤里式部署
同时用于非Dock回建筑对接时使用Drive替换原本的Locomotor,但对于使用Hover运动模式的单位在静止时仍会上下浮动


无此代码即默认值为-1为美国大兵式部署(需手解除部署 部署开火需art序列)
例如原版超时空矿车借由这句使其“行驶”(Drive)前往矿区而不是全程超时空移


===UndeploysInto===
ThreatAvoidanceCoefficient =


填载具名称。个代码指定建筑反部署后变成载具
躲避高危险地区的几率,实际上由于寻路方式的优先级过高逻辑效果几乎表现不出来


被心控的建筑反部署后会断掉心控链接彻底改变所属,YR1.001为此禁用了被心控建筑的该逻辑,Phobos已允许正常交接并解除了禁用效果
ThreatPosed =


实际上是TechnoType通用标签,值的类型是TechnoType,由于拥有跨类别T选同类对象的效果,曾也用原版引擎下的类Ares中GroupAs功的效果,原版下可能造成一些问题,Ares已进行修复同时提供新的GroupAs作为另一种可选的实现方式
威胁值电脑优先攻击高威胁的但是即便拥有威胁如果没有武器AI不会攻击所以想要让单位主动攻击建筑除了威胁值外还需要添加虚拟武器。由于加载物不实际存在地图上,AI并不直接攻击加载物所以不要给加载物加这个


由于DeploysInto和UndeploysInto的单向跨类T选拥有层次效果,可结合GroupAs做出注入“第一次T选MTNK选中所有MTNK,第二次T选选中所有MTNK、HTNK、LTNK”的效果
TiberiumProof =


由于原标签自身作用,建筑应当确保不会执行行为的情况下才适合这样使用否则仍会正常执行标准操作即反部署成载具
该步兵是否免疫泰矿伤害,TS残留无效,Ares已复并扩展详见说明书


此外这样的转变很多效果无法继承,例如铁幕,Phobos已允许继承其中一部分
TiberiumHeal =


特别注意:
在对象在矿石中是否能加血,TS残留无效,Ares已复原,详见说明书


个语句会导致建筑出售时只逆向播放23帧,Phobos允许定义
在TS里玩意甚至不检查AircraftType是否真的着落


Foundation=1x1建筑如果拥有UndeploysInto设定在很多判定中会被视为“载具”,例如可以框选,被维修车维修等,建筑能否框选Ares已给予专门语句允许设定,是否视为载具Phobos已给予专门语句允许设定,此外原本 Artillary、ICBMLauncher、TickTank、SensorArray 四句会让 AI 执行攻击脚本时将其视为载具,但 Phobos 在实现本功能时去除了它们的这一效果。
ToProtect =


Unsellable=no并且ConstructionYard=no的建筑如果拥有UndeploysInto无法正常
写yes单位受到攻击时,AI会动闲置部队去保护。原版海军都有这句,但海军加这个意义不大


由于RA2下不再拥有是否按住Alt区分工厂建筑移动(UndeploysInto)与设置集结点的效果,现在总是点击后立即进入反部署并且依然绘制集结线,Phobos下禁用了集结线
TooBigToFitUnderBridge =


===Underwater===
该载具是否无法在桥底停留


是否为水下物体,用于NavalTargeting判定
Trainable =


移动会播放全局Wake=指定的波纹,强制死亡时不会有沉船效果(都已经在水下了)
为no时不可升级


===Unnatural===
非建筑单位默认yes,建筑默认no,原版下来自子机和空袭机的击杀经验全给子机,现代拓展引擎可设置分配方式或强制同步等级,详见说明书


是否为非生命体单位
驻军建筑内的驻军步兵即便自身Trainable=no也强制获得经验!(Ares已修复)


用于Natural与NavalTargeting、LandTargeting的各种判定
Turret =


===UnloadingClass===
单位有无炮塔


Unloading状态引用图像,是指矿车倒矿、武装直升机部署时所处于状态
Turret=yes的Jumpjet运动模式且使用Shp素材载具只有处于滞空状态时炮塔才显示阴影,且绘制在单位上而非正下方的地面


如果原单位Turret=yes那么UnloadingClass会尝试使用自己的炮塔或者个不存在空炮塔图像
Turret=yes的幻影坦克伪装炮塔有问题且伪装图像色盘会强制改变为坨奇怪东西


如果原单位Turret=no么UnloadingClass正常使自己的炮塔,哪怕单位实际上直接使用Body转向目标而Turret单纯同步Body的方向
对于一个Image=none或者图像不存在的单位虽然程序原本会将它绘制为一个空的shp但如果添加了Turret么程序仍然尝试去调一个不存在的vxl进而导致崩溃


===UnitAbsorb===
以上三条Ares已修复


载具单位否能进该生化反应炉入发电
Turret=yes的Jumpjet运动模式载具闲置时炮塔总朝向正东方向,Phobos已修复


===UnitEnterSound===
与驻军逻辑配合的并不好,拥有Turret的建筑会保留撤出时的UnloadMission导致下次再塞进去步兵会被立即Unload踢出来


载具进入该建筑的声音
除此以外拥有Turret的驻军建筑踹出驻军单位以后图像无法正常刷新,需要移动一下屏幕,就像TerrainType被碾压那样


===UnitExitSound===
注意:对于使用Voxel炮塔的建筑,无论使用默认命名规则调用还是使用[BuildingType] -> TurretAnim=指定,都会无视[TechnoType] -> Turret=的值绘制,该句在使用Voxel炮塔的建筑上的效果实际上是确保建筑仅在炮塔方向对正后才能开火


载具退出该建筑的声音
TurretAnim =


===UnitReload===
炮塔图像,当TurretAnimIsVoxel=yes时可以使用Voxel类型的素材


该建筑能否补充弹药,原版用于空指部
TurretAnimDamaged =


===UnitRepair===
建筑残血时的炮塔图像


该建筑能否修车,同时也可出售,Ares允许分离设置能否出售,详见说明书
TurretAnimGarrisoned =


如果同拥有WeaponsFactory则维修期间将对被维修伤害物理伤害转移到自己并禁用对被维修单位的特殊伤害类型,哪怕是是超时空抹除和超时空传送,甚至Organic载具可以抗铁幕虽然并不能得到
建筑驻军时的炮塔图像疑似无


===UnitsCostBonus===
TurretAnimIsVoxel =


载具建造价格为原来多少倍
炮塔图像是否为Voxel类型的素材


===UnitsGainSelfHeal===
TurretAnimX =


给单位增加每桢几点的回血算法类比InfantryGainSelfHeal
炮塔中心点X坐标横向,正值向右


===Unsellable===
TurretAnimY =


无法被出售,仅影响玩家使用出售光手动出售也就是AI和触发强制Selling等可以无视这条进行出售仅可通过Buildup留空等方式去更上层禁用。Ares已拓展至非建筑类,用于维修厂等出售方式
炮塔中心点Y坐标,纵向正值向


===Upgrades===
TurretAnimZAdjust =


这个建筑能够被加载物加载的次数见PowersUpBuilding一句下的详细注解
炮塔中心点Z坐标控制遮挡层级


===UndeploySound===
TurretAnimYSort =


反部署时的声音,用于武装直升机类单位
建筑shp炮塔遮挡优先级调整


===UseOwnName===
TurretCount =


YR新增
炮塔种类数(IFV、盖特、光棱坦克)最大18,Ares已扩展至127


步兵
如果单位Tur文件总量[小]该值会导致无论Body还是Tur都不显示


是否让Gunner载具的名称显示为{(<code>[InfantryPassenger] -> UIName=</code>) (<code>[TransportVehicle] -> UIName=</code>)}的形式
TurretCount<1会直接导致Weapon[X]系统不被使用而是使用(Elite)Primary=/(Elite)Secondary=系统


在YR中使用该语句有一些不一致之处
TurretRecoil =


IFVMode[2]
开炮时炮塔与炮管是否后退,原版巨炮就是炮管制退的典例


武器:机关枪A|Tur[1]
TurretTravel =


使用者E1、E2、SPY名为”Machine Gun IFV“
该建筑炮塔可偏移的像素值默认 2


IFVMode[3]
TurretCompressFrames =


武器:高射|Tur[1]
该建筑塔恢复所需要的帧数,默认 1


使用者FLAKT,但因为缺少UseOwnName显示为“Machine Gun IFV”
TurretHoldFrames =


IFVMode[4]
该建筑炮塔保持在受后坐力位置显示的帧数,默认 1


武器:机枪B|Tur[1]
TurretRecoverFrames =


使用者GHOST、TANY、BORIS因为存在该语句被称为“<Passenger> IFV”
该建筑炮塔恢复所需的帧数默认 1


使用者CCOMAND、PTROOP,但因为缺少UseOwnName被称为“Machine Gun IFV”
TurretRotateSound =


鬼知道WW写了一手啥玩意……
炮塔旋转的声音


载具用的时候炮塔是只看相对地面是否旋转的


也就是炮塔跟着车体转的时候也会播放


修复示例
TurretSpins =


[FLAKT]
该载具的炮塔是否永久旋转,例如飞碟,很神奇的是这个逻辑最早是TS遗留下来并且一直有效的
UseOwnName=true
[CCOMAND]
UseOwnName=true
[PTROOP]
UseOwnName=true


当然你可以把BORIS他们三个这个标签禁用
该单位在炮塔允许时(指向正确的方向或拥有OmniFire=yes)才能攻击其他单位,否则会卡住,并且卡住后炮塔也会停止旋转(于是无法继续旋转到达到允许开火朝向)


Thief =


该步兵是否为小偷,RA1残留,在RA2已经被Agent=yes的间谍逻辑替代了。不过仍有残余效果


为什么磁爆步兵明明没有UseOwnName=yes但是正常显示为“磁爆步兵 多功能步兵车”呢?这就要见HasTurretTooltips一条下的另套更上层的规则了
RA2下和Infiltrate=yes连用可以让步兵走进矿场,但是不会有任何效果,YR对此又补了


==V==
在RA2/YR这句与VehicleThief=yes连用可以开启偷车贼效果,但是Thief=yes恰恰又会影响AI执行目标


===VeteranAbilities===
如果想要使用偷车贼逻辑,请直接使用Ares完整复原并拓展的专用逻辑VehicleThief=yes,详见Ares说明书


老兵升级加的能力,具体可用的值类型见EliteAbilities
TiltsWhenCrushes =


===VHPScan===
当Crusher时碾压Wall=yes的覆盖物是否掀起,碾压步兵固定不倾斜,OmniCrusher压强制掀起,Phobos已允许定义


用于爱国者,视目标可能受的伤害决定目标选择。一般填Strong不会出现多个爱国者只拦截许多导弹中的一个的情况
-U-


None无效
UndeployDelay =


Normal攻击预测将要死亡的目标
释放型武器造成的停顿(无法移动、攻击)时间(限步兵)


Strong攻击预测血量较多的目标
也决定步兵部署模式:此语句设定正值为尤里式部署


VHPScan是给每个单位一个“预计血量”(VHP,我们设实际血量为RHP
无此代码即默认值为-1,为美国大兵式部署(需手动解除部署,部署开火需art序列


每当有一个武器射向目标时,无论引爆与否VHP先预计一下被炸后的血量
UndeploysInto =


同时保证VHP>=RHP-30,然每4帧增加1次直到VHP==RHP
填载具名称。这个代码指定建筑反部署变成的载具


目标单位得到修复则把VHP立即写为RHP
被心控的建筑反部署后会断掉心控链接彻底改变所属,YR1.001为此禁用了被心控建筑的该逻辑,Phobos已允许正常交接并解除了禁用效


实际上是TechnoType通用标签,值的类型也是TechnoType,由于拥有跨类别T选同类对象的效果,曾也用于原版引擎下的类Ares中GroupAs功能的效果,原版下可能造成一些问题,Ares已进行修复,并允许禁用这句的跨类T选效果,同时提供了新的GroupAs作为可选的替代方案


由于DeploysInto和UndeploysInto的单向跨类T选拥有层次效果,可结合GroupAs做出注入“第一次T选MTNK选中所有MTNK,第二次T选选中所有MTNK、HTNK、LTNK”的效果


VHPScan=None/Normal/Strong
由于原标签自身作用,建筑应当确保不会执行原行为的情况下才适合这样使用,否则仍会正常执行标准操作即反部署成载具


None为不开启逻辑
此外这样的转变很多效果无法继承,例如铁幕,Phobos已允许继承其中一部分


Normal为
特别注意:


优先VHP<Strength/2的目标,尤其VHP<0者
这个语句会导致建筑出售时只逆向播放23帧,Phobos已允许定义


也就尽量摧毁更多目标
Foundation=1x1建筑如果拥有UndeploysInto设定在很多判定中会被视为“载具”,例如可以框选,被维修车维修等,建筑能否框选Ares已给予专门语句允许设定,否视为载具Phobos已给予专门语句允许设定,此外原本Artillary、ICBMLauncher、TickTank、SensorArray四句会让AI执行攻击脚本时将其视为载具,但Phobos在实现本功能时去除了它们这一效果。


Strong为
Unsellable=no并且ConstructionYard=no的的建筑如果拥有UndeploysInto无法正常出售


忽略VHP<0者,也就尽可能让杀伤有效,均摊伤害
由于RA2下不再拥有否按住Alt区分工厂建筑移动(UndeploysInto)与设置集结点的效现在总是点击后立即进入反部署并且依然绘制集结线,Phobos下禁用了集结线


Underwater =


是否为水下物体,用于NavalTargeting判定


===VoxelBarrelOffsetToPitchPivotPoint===
同时移动不会播放全局Wake=指定的波纹,强制死亡时不会有沉船效果(都已经在水下了)


建筑VXL炮管垂直方向旋转(X轴,与地面平面的夹角)的基点
Unnatural =


===VoxelBarrelOffsetToRotatePivotPoint===
是否为非生命体单位


建筑VXL炮管水平方向旋转(Y轴,垂直与地面平面)的基点
用于Natural与NavalTargeting、LandTargeting各种判定


===VoxelBarrelOffsetToBarrelEnd===
UnloadingClass =


建筑VXL炮管终点也就实际射出炮弹播放开火动画位置
Unloading状态引用图像,是指矿车倒矿、武装直升机部署时所处于状态


===VoxelBarrelOffsetToBuildingPivotPoint===
如果原单位Turret=yes那么UnloadingClass会尝试使用自己的炮塔或者一个不存在的空炮塔图像


建筑VXL管相对建筑0,0格子绝对坐标
如果原单位Turret=no那么UnloadingClass会正常使用自己的塔,哪怕单位实际上直接使用Body转向目标而Turret单纯同步Body方向


其中
UnitAbsorb =


第4句在TurretAnimX、TurretAnimY决定的TurretAnim坐标之后叠加计算,使用XYZ坐标
载具单位是否能进该生化反应炉入发电,如果与[BuildingType] -> DockUnload=yes共用将导致载具对接时无法正确处理行为


前3句均第4句与TurretAnimX和TurretAnimY指定的中心坐标的基础上绘制,使用FLH坐标
建筑有[BuildingType] -> Cloning=yes或[BuildingType] -> Armory=yes或[BuildingType] -> Hospital=yes时使用特殊规则


不过炮塔朝向依然是根据TurretAnimX和TurretAnimY决定的中心来计算相对方向的
Phobos已更改规则,详见Phobos说明书


===VoxelBarrelFile===
UnitEnterSound =


炮管图像,需要BarrelAnimIsVoxel一句来开启。仅用于SHP炮塔使用VXL炮管,无法用于VXL炮塔独立调用其他VXL炮管,VXL炮塔会自动匹配与其命名规则相符炮管
载具进入该建筑声音


===VoxelBarrelScale===
UnitExitSound =


筑VXL炮管缩放倍数,仅限 FS,RA2中无效
载具退出该声音


UnitReload =


该建筑能否补充弹药,原版用于空指部


===VoiceAttack===
UnitRepair =


接受攻击指令的声音
该建筑能否修车,同时也可出售,Ares允许分离设置能否出售,详见说明书


===VoiceCrashing===
如果同时拥有WeaponsFactory则维修期间将对被维修伤害的物理伤害转移到自己并禁用对被维修单位的特殊伤害类型,哪怕是是超时空抹除和超时空传送,甚至Organic=yes的单位可以抗铁幕,虽然并不能得到效果


声音
如果一个BalloonHover=yes的单位使用抛射体Vertical=yes的武器攻一个这样建筑那么即便建筑在武器Range范围外单位也不会尝试接近目标


===VoiceDeploy===
UnitsCostBonus =


部署的声音
载具建造价格为原来多少倍


===VoiceUndeploy===
UnitsGainSelfHeal =


反部署时声音
给单位增加每桢几点回血,算法类比InfantryGainSelfHeal


===VoiceEnter===
Unsellable =


入<code>[TechnoType] -> Dock=</code>的建筑时的声音(非战机)
无法被出售,仅影响玩家使用出售光标手动出售,也就是AI和触发强制Selling等可以无视这条行出售,仅可通过[BuildingTypeArt] -> Buildup=留空等方式去更上层禁用。Ares下已拓展至非建筑类,用于维修厂等出售方式


在步兵身上使用需要Assaulter等语句中的至少一种(不然都没法Enter又何谈Enter的Voice)
Upgrades =


===VoiceFeedback===
这个建筑能够被加载物加载的次数,见PowersUpBuilding一句下的详细注解


害怕时播放声音
注意:一个未升级可升级建筑在加载(upgrade)了加载物后将无法通过经验值系统升级


===VoiceHarvest===
UndeploySound =


采收矿物的声音
反部署时的声音,用于武装直升机类单位


===VoiceMove===
UseOwnName =


接受移动指令的声音包括Aircraft执行吊运,Phobos 下可以为吊运单独指定一个将载具拾取音效
YR新增该步兵登乘多功能步兵车时是否使载具名称显示为{([InfantryPassenger] -> UIName=) ([TransportVehicle] -> UIName=)}形式


===VoiceSelect===
在原版YR中使用该语句有一些不一致之处


选中的声音
IFVMode[2]


===VoiceSelectDeactivated===
武器3:机关枪A|Tur[1]


失去控制时候的声音 见遥控坦克
使用者E1、E2、SPY,名为“机关枪 多功能步兵车”


===VoiceSelectEnslaved===
IFVMode[3]


奴隶类被解放的声音
武器4:高射炮|Tur[1]


===VoiceSpecialAttack===
使用者FLAKT,但因为缺少UseOwnName显示为“机关枪 多功能步兵车”


接受特殊攻击指令(例如坐下后攻击)的声音
IFVMode[4]


C4=yes
武器5:机枪B|Tur[1]


Harvester=yes
使用者GHOST、TANY、BORIS,因为存在该语句被称为“<Passenger> IFV”


Ivan=yes
使用者CCOMAND、PTROOP,但因为缺少UseOwnName被称为“机关枪 多功能步兵车”


Deployer=yes
你可以给煤球兵、超时空突击队、心灵突击队加上这句来修复


Parasite=yes
当然你也可以把BORIS他们三个的这个标签禁用


CanDisguise=yes
为什么磁爆步兵明明没有[InfantryType] -> UseOwnName=yes但是正常显示为“磁爆步兵 多功能步兵车”呢?这就要见[TechnoType] -> HasTurretTooltips=一条下的另一套更上层的规则了


选中医疗兵并点击下达区域防御命令
-V-


仅在满足以上任一条件时启动
VeteranAbilities =


===VoiceSinking===
老兵升级加的能力,具体可用的值类型见EliteAbilities


沉没喂鱼时的声音
VHPScan =


===VehicleThief===
用于爱国者,视目标可能受的伤害决定目标选择。


是否偷车贼
None


这句的效果是该步兵可以在敌方载具上出现“进入”光标
不开启逻辑,即无效果


在原版这句加上Thief=yes可以在Ra2/Yr做偷车贼
Normal为


会让AI寻敌智障,RA2下可以用寄生心控几乎完美复刻,YR也给搞残了,Ares已复原相关逻辑详见说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的
优先VHP<Strength/2目标尤其VHP<0者


===VoicePrimaryWeaponAttack===
即攻击预测将要死亡的目标以尽量摧毁更多的目标


主武器射击的声音
Strong为


===VoicePrimaryEliteWeaponAttack===
忽略VHP<0者,也就是尽可能的让杀伤有效,均摊伤害


精英主武器的声音
VHPScan是给每个单位一个“预计血量”(VHP),我们设实际血量为RHP


===VoiceSecondaryWeaponAttack===
每当有一个武器射向目标时,无论引爆与否VHP先预计一下被炸后的血量


副武攻击声音
同时保证VHP>=RHP-30,然后每4帧增加1次直到VHP==RHP


===VoiceSecondaryEliteWeaponAttack===
如果目标单位得到修复则把VHP立即写为RHP


精英副武器的声音
VoxelBarrelOffsetToPitchPivotPoint =


===VoiceIFVRepair===
建筑VXL炮管垂直方向旋转(X轴,与地面平面的夹角)的基点


产生负数伤害的声音
VoxelBarrelOffsetToRotatePivotPoint =


===VoiceComment===
建筑VXL炮管水平方向旋转(Y轴,垂直与地面的平面)的基点


平时闲聊音效
VoxelBarrelOffsetToBarrelEnd =


===VoiceFalling===
建筑VXL炮管的终点,也就是实际射出炮弹播放开火动画的位置


指定空中单位从天空落下时要发出的声音
VoxelBarrelOffsetToBuildingPivotPoint =


===VoiceCapture===
建筑VXL炮管相对建筑0,0格子的绝对坐标


占领音效需要有Engineer=yes
其中


===VoiceHarvest===
第4句会在TurretAnimX、TurretAnimY决定的TurretAnim坐标之后叠加计算,使用XYZ坐标


收集矿石时发出声音
前3句均在第4句与TurretAnimX和TurretAnimY指定中心坐标的基础上绘制,使用FLH坐标


仅应用于设置了<code>[TechnoType] -> ResourceGatherer=yes</code>或<code>[VehicleType] -> Harvester=yes</code>的对
不过炮塔朝向依然是根据TurretAnimX和TurretAnimY决定中心来计算相方向的


===VoiceDie===
VoxelBarrelFile =


被摧毁时发出声音
炮管图像,需要BarrelAnimIsVoxel一句来开启。仅用于SHP炮塔使用VXL炮管,无法用于VXL炮塔独立调用其他VXL炮管,VXL炮塔会自动匹配与其命名规则相符炮管


VoxelBarrelScale =


建筑VXL炮管的缩放倍数,仅限FS,RA2中无效


==W==
VoiceAttack =


===Warpable===
接受攻击指令的声音,如果单位为[FV]且造成负值杀伤那么使用[AudioVisual] -> VoiceIFVRepair=指定的音效


填no,则免疫超空抹消攻击,但是不影响超时空传送超武
非[FV]的情况YR下在使用对应武器会被下面四句覆盖


甚至这个标签单纯控制效果,让物体不被抹除,但是不影响目标选择和实际开火,也就是只要对方乐意依然可以射个没完,无论主动攻击还是手动攻击
VoicePrimaryWeaponAttack =


===WalkRate===
YR新增,主武器射击的声音


填数值。单位行走动画播放速率,素材中每帧实际播放多少帧。可用于shp载具和vxl载具
VoicePrimaryEliteWeaponAttack =


===Wall===
YR新增,精英主武器的声音


是否为围墙,建造时会根据<code>[TechnoType] -> GuardRange=</code>指定的距离与同类型链接,建筑实际放下后会立即变成其在art中通过<code>[BuildingImage] -> ToOverlay=</code>所指定的覆盖物
VoiceSecondaryWeaponAttack =


此外AI尝试放置时会让单元格的单位执行分散指令以让出空位与全局<code>[General] -> MaximumBuildingPlacementFailures=</code>合用保持1次放置失败后仍会再次尝试(而此时恰好单位已经让出空位)
YR新增副武攻击声音


然而这个逻辑实现的比较质朴,程序并不判定围墙链接的方向,也就是说存在单位向围墙延伸方向移动的情况
VoiceSecondaryEliteWeaponAttack =


原版引擎下苏盟围墙可以在破损的墙上直接修建墙来修复墙体但并不支持新增围墙(包括尤里围墙),在Ares中已经解除了这一限制
YR精英副武器声音


于是可能表现为:
VoiceCrashing =


AI尝试放下墙 -> 单位向旁边挪了一格,但是移动到了围墙链接所需另一格子 -> AI放下了墙,但是由于没有完全围住建筑,再次放下另一格墙 -> 返回第一步
被击落声音


也就是走一步放一格再走一步再放一格直到最后一格分散时找空地只能找到不阻碍围墙链接的格子为止,然而此时围墙也已经用不着自动连接了
VoiceDeploy =


===WantsExtraSpace===
部署的声音,通过快捷键或底边栏按钮部署不会触发,PhobosBuild47已修复


建筑是否需要额外的空间,影响AI建筑间隔,为yes时AI建造该建筑会把全局<code>[AI] -> AIBaseSpacing=</code>值+1计算,可以更好的放堵车,但也会降低AI基地建设效率
VoiceUndeploy =


===WaterBound===
反部署时的声音


是否为水上建筑,实际确定该BuildingType是否只能构造时放置在其中Float的SpeedType百分比值高于0%地形图块上
VoiceEnter =
 
进入[TechnoType] -> Dock=的建筑时的声音(非战机)
 
步兵身上使用需要Assaulter等语句中的至少一种(不然都没法Enter又何谈Enter的Voice)
 
VoiceFeedback =
 
害怕放的声音
 
VoiceHarvest =
 
采收矿物的声音
 
VoiceMove =
 
接受移动指令的声音,包括Aircraft执行吊运,Phobos下可以为吊运单独指定一个将载具拾取的音效
 
VoiceSelect =
 
选中的声音


原版是水,你也可以改成公路等等,但仍要求是空地,矿石那种实际是一个覆盖物占据了格子的依旧造不了,形象点说用这个往矿上拍建筑相当于尝试往敌人的围墙上拍个自家兵营
VoiceSelectDeactivated =


相当于给建筑写了SpeedType=Float,同这个效果会无视Buildable原版下在限制建造区域方面和Naval分离制有部分功能重叠,Phobos把Naval干掉后只吃这句
失去控制候的声音见遥坦克


优先级高于SpeedType,也就是建筑拥有SpeedType=Float与WaterBound中至少一句的三种情况等效,但如果同时拥有SpeedType≠Float与WaterBound则WaterBound覆盖SpeedType回到Float效果
VoiceSelectEnslaved =


原版下不被DeployToFire考虑,因此无法完成DeployToFire成水上建筑任务,Phobos已修复
奴隶类被解放声音


===WeaponCount===
VoiceSpecialAttack =


武器种类数(IFV 盖光棱坦克)配合Weapon1 Weapon2等使用光棱充能炮塔实际上只使用Weapon1,哪怕你放开了WeaponCount
接受殊攻击指令仅在满足C4=yes、Harvester=yes、Ivan=yes、Deployer=yes、Parasite=yes、CanDisguise=yes、选中医疗兵并点击下达区域防御命令中任一条件时启动


===WeaponStages===
VoiceSinking =


盖特武器有几阶,Stage1 Stage2 等则分别代表盖特计数器多少以内为此阶
沉没喂鱼时的声音


如果不满足WeaponCount=WeaponStages*2那么可以得到一个精致的0070DF8A
VehicleThief =


如果处于SimpleDeployer或使用DeployFire释放武器则不会升档,武直状态虽然用Weapon2但是Report却会去单独升档读Weapon246……当然你也可以用DeployFireWeapon一句指定一下
该步兵是否为偷车贼


===WeaponX===
这句的效果是该步兵可以在敌方载具上出现“进入”光标


由上述多武器逻辑启用,启用多少只看WeaponX,也就是盖特的WeaponStages没有用上的武器也可以通过Ares的NoAmmoWeapon等用起来,例如https://www.bilibili.com/opus/789437335972348039
在原版这句加上Thief=yes可以在Ra2/Yr做偷车贼


===Weight===
会让AI寻敌智障,RA2下可以用寄生心控几乎完美的复刻,YR也给搞残了,Ares已复原相关逻辑,详见说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的


重量,决定应对<code>[WarheadType] -> Rocker=yes</code>的弹头时被掀翻的难易度,同时对于Naval=yes且Underwater=no、Organic=no的水上单位若该值大于全局<code>[General] -> ShipSinkingWeight=</code>的值则在水上被摧毁会表现为沉没而不是直接被摧毁(原版海蝎与航母),沉没的声音用SinkingSound指定,沉没的形态根据Locomotor决定是直接下沉(Mech)还是整个船体倾斜后再下沉(Drive和Ship)
VoiceComment =


===WorkingSound===
步兵平时闲聊音效


工作声音
VoiceFalling =


===Weeder===
指定空中单位从天空落下时要发出的声音


在TiberiumSun中
VoiceCapture =


这是NOD化学飞弹所使用的的逻辑
占领音效,对于进入建筑需要有[InfantryType] -> Engineer=yes/Agent=yes/Occupier=yes/Assaulter=yes,但是不能有[BuildingType] -> C4=yes语句


即Weeder矿收集了足够的泰伯利亚废矿倒入Weeder储藏舱中
这不包括进入[BuildingType] -> Grinding=yes/Hospital=yes/Armory=yes的建筑,另外其实[InfantryType] -> VehicleThief=yes进入载具偷也可以用


储藏舱满时才可使化学飞弹超武
如果未设置或值无效则会沿[TechnoType] -> VoiceEnter=的设置


相关的还有<code>[SuperWeaponType] -> AuxBuilding=</code>和<code>[SuperWeaponType] -> ManualControl=</code>两个逻辑
VoiceHarvest =


个人倒是觉得其实就是一种变相矿车(Harvester)逻辑,而且同样不能用于步兵233
收集矿石时发出声音


一个Weeder=yes的建筑可以储存矿石
仅应用于设置了[TechnoType] -> ResourceGatherer=yes或[VehicleType] -> Harvester=yes的对象


要用Storage=控制储存数量
VoiceDie =


一个Weeder=yes单位
被摧毁时发出声音


可以收集矿石
-W-
 
Warpable =
 
填no,则免疫超时空抹消攻击
 
甚至这个标签单纯控制效果,让物体不被抹除,但是不影响目标选择和实际开火,也就是只要对方乐意依然可以射个没完,无论主动攻击还是手动攻击
 
WalkRate =
 
填数值。单位行走动画播放速率,素材中每帧实际播放多少帧。可用于shp载具和vxl载具,默认1,只要移动就每经过一游戏帧切换一次序列帧,不可为0,若要禁止播放需要写一个极大值。对于直升机起降相关的见Ares说明书中[TechnoType] -> AirRate=一条
 
Wall =
 
是否为围墙,建造时会根据[TechnoType] -> GuardRange=指定的距离与同类型链接,建筑实际放下后会立即变成其在art中通过[BuildingTypeArt] -> ToOverlay=所指定的覆盖物
 
此外AI尝试放置时会让单元格的单位执行分散指令以让出空位,与全局[General] -> MaximumBuildingPlacementFailures=合用保持1次放置失败后仍会再次尝试(而此时恰好单位已经让出空位)
 
然而这个逻辑实现的比较质朴,程序并不判定围墙链接的方向,也就是说存在单位向围墙延伸方向移动的情况
 
原版引擎下苏盟围墙可以在破损的墙上直接修建新墙来修复墙体,但并不支持新增的围墙(包括尤里围墙),在Ares中已经解除了这一限制
 
于是可能表现为:
 
AI尝试放下墙 -> 单位向旁边挪了一格,但是移动到了围墙链接所需的另一格子 -> AI放下了墙,但是由于没有完全围住建筑,再次放下另一格墙 -> 返回第一步
 
也就是走一步放一格再走一步再放一格直到最后一格分散时找空地只能找到不阻碍围墙链接的格子为止,然而此时围墙也已经用不着自动连接了
 
WantsExtraSpace =
 
建筑是否需要额外的空间,影响AI建筑间隔,为yes时AI建造该建筑会按全局[AI] -> AIBaseSpacing=值+1来计算,可以更好的防止堵车,但也会降低AI基地建设效率
 
WaterBound =
 
是否为水上建筑,实际确定该BuildingType是否只能在构造时放置在其中Float的SpeedType百分比值高于0%的地形图块上
 
原版是水,你也可以改成公路等等,但仍要求是空地,矿石那种实际是一个覆盖物占据了格子的依旧造不了,形象点说用这个往矿上拍建筑相当于尝试往敌人的围墙上拍个自家兵营
 
相当于给建筑写了SpeedType=Float,同时这个效果会无视Buildable,原版下在限制建造区域方面和Naval分离控制有部分功能重叠,Phobos把Naval干掉后只吃这句
 
优先级高于SpeedType,也就是建筑拥有SpeedType=Float与WaterBound中至少一句的三种情况等效,但如果同时拥有SpeedType≠Float与WaterBound则WaterBound覆盖SpeedType回到Float效果
 
原版下不被DeployToFire考虑,因此无法完成DeployToFire成水上建筑的任务,Phobos已修复
 
WeaponCount =
 
武器种类数,开启Weapon[X]系统必要语句,由[TechnoType] -> IsChargeTurret=yes开启的光棱充能炮塔实际上只使用(Elite)Weapon1=,无论[TechnoType] -> WeaponCount=是多少
 
WeaponStages =
 
盖特武器有几阶,Stage1、Stage2等则分别代表盖特计数器多少以内为此阶
 
为了使用[TechnoType] -> WeaponX=系统还需要[TechnoType] -> TurretCount=1或更高,否则0070DF8A
 
如果不满足WeaponCount>=WeaponStages*2那么依然可以得到一个精致的0070DF8A
 
需要注意的是盖特系统计时并不看武器是否真开火,而是看单位状态,例如单位转身时或由于 WeaponXTurretLocked=yes 这种由于 X 号武器无法朝向目标而不会实际射击的情况也会正常计时,不再受制于方向后仍会按当前阶数进行开火。
 
如果载具 IsSimpleDeployer=yes 则部署时始终使用 Weapon2 但是 Report 却会去单独升档读 Weapon246……
 
无法通过 LandTargeting=2 使得单位对地使用偶数系列,PhobosBuild34已修复
 
不要超过6个,否则会发生一些不好的事
 
Weapon1 =
 
Weapon2 =
 
Weapon3 =
 
Weapon4 =
 
Weapon5 =
 
Weapon6 =
 
Weapon7 =
 
Weapon8 =
 
Weapon9 =
 
Weapon10 =
 
Weapon11 =
 
Weapon12 =
 
Weapon13 =
 
Weapon14 =
 
Weapon15 =
 
Weapon16 =
 
Weapon17 =
 
Weapon18 =
 
WeaponX =
 
由上述多武器逻辑启用,原版最多1-18共18个,更多武器需要Ares
 
虽然内部索引的确是0-17,但是标签名里就是从1开始,所以在设置[TechnoType] -> IFVMode=这种0始数值时要记得自行计算一下。例如IFVMode5对应(Elite)Weapon6和Ares的WeaponTurretIndex6设置
 
启用多少是由[TechnoType] -> WeaponCount=决定的,也就是盖特的[TechnoType] -> WeaponStages=这种只是盖特系统内调取多少,即便是没有被用上的武器也可以通过Ares的[TechnoType] -> NoAmmoWeapon=等功能用起来,例如https://www.bilibili.com/opus/789437335972348039
 
Weight =
 
重量,决定应对[Warhead] -> Rocker=yes的弹头时被掀翻的难易度,同时对于Naval=yes且Underwater=no、Organic=no的水上单位若该值大于全局[General] -> ShipSinkingWeight=的值则在水上被摧毁会表现为沉没而不是直接被摧毁(原版海蝎与航母),沉没的声音用SinkingSound指定,沉没的形态根据Locomotor决定是直接下沉(Mech)还是整个船体倾斜后再下沉(Drive和Ship)
 
WorkingSound =
 
工作声音
 
Weeder =
 
该载具/建筑是否为废矿回收者
 
在TiberiumSun中
 
这是NOD化学飞弹所使用的的逻辑
 
即Weeder矿车收集了足够的泰伯利亚废矿倒入Weeder储藏舱中
 
储藏舱满时才可使用化学飞弹超武
 
相关的还有[SuperWeaponType] -> AuxBuilding=和[SuperWeaponType] -> ManualControl=两个逻辑
 
个人倒是觉得其实就是一种变相的矿车(Harvester)逻辑,而且同样不能用于步兵233
 
一个Weeder=yes的建筑可以储存矿石
 
要用Storage=控制储存数量
 
一个Weeder=yes的单位
 
可以收集矿石


不过它还需要Storage=来控制每一个格子代表的矿石数量才能收集
不过它还需要Storage=来控制每一个格子代表的矿石数量才能收集


在RedAlert2中
在RedAlert2中
 
 
泰伯利亚废矿随着泰伯利亚藤蔓逻辑一起被Westwood砍了
泰伯利亚废矿随着泰伯利亚藤蔓逻辑一起被Westwood砍了
 
 
这个单位会到自己的Dock=<Building>旁
这个单位会到自己的Dock=<Building>旁
 
 
这个建筑和矿场一样(废话)要有DockUnload=yes
这个建筑和矿场一样(废话)要有DockUnload=yes
 
 
然后卸下它所装载的任何东西,如果有载员可以放出载员(子机没试)
然后卸下它所装载的任何东西,如果有载员可以放出载员(子机没试)
 
 
如果是载员的话则会被卸载到这个建筑旁边,用来做自动运输车似乎不错
如果是载员的话则会被卸载到这个建筑旁边,用来做自动运输车似乎不错
 
 
有很多类似Refinery的特性,例如会使建筑强制无法将单位生产出来
有很多类似Refinery的特性,例如会使建筑强制无法将单位生产出来
 
 
 
Phobos已经复原了泰伯利亚藤蔓相关的硬编码逻辑,详见说明书
 
 
Phobos已经复原了泰伯利亚藤蔓相关的硬编码逻辑,详见说明书
WeaponsFactory =
 
 
 
该工厂生产的单位是否从建筑内开出来
 
 
===WeaponsFactory===
而不是直接生成于建筑外
 
 
该工厂生产的载具是否从车场内开出来
用于船港会出现许多错误
 
同时会阻断矿车单位倒矿
 
阻碍进入医院的单位离开


如果否的话虽然仍有集结点但是不集结
如果否的话虽然仍有集结点但是不集结


而不是直接生成于建筑外
-X-
 
用于船港会出现许多错误
 
同时会阻断矿车单位倒矿
 
阻碍医院等建筑单位离开
 
 
 
==X==


没有收录以X开头的语句
没有收录以X开头的语句


-Y-


YuriBarracks =


==Y==
该建筑是否为尤里方的兵营,步兵从相对建筑中心位于[2,1]的格子离开建筑,也影响AI。所有南北向长于东西向的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题


===YuriBarracks===
-Z-


填yes或no,是否为尤里方的兵营,步兵从相对建筑中心位于[2,1]的格子离开建筑,也影响AI。所有南北向长于东西向的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题
ZFudgeTunnel =
 
 
 
==Z==
 
===ZFudgeTunnel===


指定载具位于隧道口时的ZAdjust
指定载具位于隧道口时的ZAdjust


===ZFudgeColumn===
ZFudgeColumn =


指定载具位于高架桥头后面的ZAdjust
指定载具位于高架桥头后面的ZAdjust


===ZFudgeCliff===
ZFudgeCliff =


指定载具位于悬崖后面的ZAdjust
指定载具位于悬崖后面的ZAdjust


===ZFudgeBridge===
ZFudgeBridge =


指定载具位于高架桥梁桥体下的ZAdjust
指定载具位于高架桥梁桥体下的ZAdjust


全都是绘制遮挡层级相关的东西,正值向后负值向前,例如ZFudgeBridge=2000会导致载具在桥梁下面时ZAdjust向后2000,直接被地板盖住而显示不出图像
全都是绘制遮挡层级相关的东西,正值向后负值向前,例如ZFudgeBridge=2000会导致载具在桥梁下面时ZAdjust向后2000,直接被地板盖住而显示不出图像
第4,078行: 第4,448行:


这些实际上是用于单位处理与这些特殊Tile之间Z关系的标签,Z并不用于VehicleType之间的遮挡处理,对于Z的概念详见ART词典ZAdjust条目下方注解
这些实际上是用于单位处理与这些特殊Tile之间Z关系的标签,Z并不用于VehicleType之间的遮挡处理,对于Z的概念详见ART词典ZAdjust条目下方注解
[[Category:词典]]
[[Category:词典]]

2025年11月18日 (二) 00:48的版本

前言,单位属性代码一大堆,绝对不要试图在本文中摘取代码从空白开始写单位,请复制原版已有的单位进行修改

-A-

Accelerates =

可以设置为"yes"或者"no"来决定这个单位移动式是否慢慢加速至[TechnoType] -> Speed=定义的速度

与高级碾压([TechnoType] -> MovementZone=CrusherAll)共用有时候会莫名奇慢无比

AccelerationFactor =

填数值。这个代码要配合[TechnoType] -> Accelerates=yes使用,指定单位运动中加速的百分比,用小数表示,如设置为“.1”

ActivateSound =

单位被激活的音效,默认全局值

Adjacent =

填数值。这个代码指定建筑距离另一个[BuildingType] -> BaseNormal=yes的建筑在多少个单元格距离内可以放置,默认3。

Agent =

该步兵单位是否为间谍单位,用于渗透[BuildingType] -> Spyable=yes的建筑获得不同效果

AIBasePlanningSide =

写阵营序号(0=GDI,1=Nod,2=ThirdSide,Ares新阵营依次往后排),标明第几个阵营会建造该建筑(写-1时所有阵营都可造)

AIBuildThis =

填yes或no。这个代码指定建筑是否可以被AI所建造,但是只会在<=1个时造1次(通过克隆生产同时拔起多个),Ares已允许定义数量,详见说明书

如果建造场这句写no那么Ares下AI最多出一个电厂,原版则会崩溃

AirportBound =

该战机是否为机场战机,即需要由带有[BuildingType] -> Helipad=yes的建筑物提供机位,如果没有机位,这个战机将会坠毁。这个战机应当在[General] -> PadAircraft=后面声明,否则会出现建造不受机位限制的问题

由于WW在RA2删了没机位时战机从地图外飞来的效果,现在不在[General] -> PadAircraft=声明的战机把机位满后你却不拉出去的话图标虽然依然不会灰掉,但是点下去会卡在一半的位置并且无法取消

如果没有武器还会有一些特殊的运动表现

AirRangeBonus =

单位瞄准空中目标时的额外射程,不影响攻击时仍会尝试将目标套进[Weapon] -> Range=的范围

但追击目标时用上此句可以防止追一步停一步,搭配[TechnoType] -> OpportunityFire=yes食用效果奇佳

AllowedToStartInMultiplayer =

填yes或no。这个代码指定单位是否可以在游戏开始时伴随基地车出现(如苏军开始时的动员兵、犀牛坦克)。根据单位的[TechnoType] -> Owner=进行分配,会自动寻找距离预定位置最近且符合[TechnoType] -> MovementZone=设定值的区域,例如出生点周围全是陆地那么船会生成在最近的岸边

AlternateArcticArt =

填yes或no。这个代码指定步兵单位是否在雪地地图和陆地地图有两种不同的形态,如盟军的海豹部队。注意:如果填yes,该步兵单位就必须准备一个雪地型的步兵文件(SHP文件),并且命名规则为:该单位的温和地图形态+A.SHP,如海豹部队的温和地图形态文件名为SEAL.SHP,那么雪地地图形态文件名则为SEALA.SHP。Ares已扩展该逻辑到所有气候,但需要使用新的语句,详见Ares说明书

AmbientSound =

填Sound.ini中定义的声音名。这个代码指定该单位在地图上存在的声音。注意:这个声音会在该单位被摧毁前不停播放,声音太大可能会影响人类玩家进行游戏

Ammo =

填数值。这个代码指定该单位的弹药数量。战机不能自动装填弹药,需要在机场降落后进行装填。默认为负一,无限

注意一个常规单位武器每一发都会消耗弹药,例如默认状态下[Weapon] -> Burst=10的武器会消耗10弹药,在Ares下通过[Weapon] -> Ammo=2定义每一发的消耗2弹药则依次开火射出10发扣除20弹药

当用于建筑且拥有[BuildingType] -> Hospital=yes或[BuildingType] -> Armory=yes中的至少一句时将无法自动装填,转而用于限制其效果的生效次数

对于Aircraft类则是按开火行为计算,也就是因为乘客而将开火换为踹乘客、五连发抛射体一轮攻击射了5次武器等等均按1点Ammo来计算,对应的Ares的自定义武器消耗弹药量也对Aircraft无效

并且Aircraft存在多种一样(一坨又一坨)的弹药计算规则,例如如果一个战机的剩余弹药量高于总弹药量的一半并且有目标那么它无法正常装填弹药(AI:这个我熟)

在Aircraft踹出乘客后的下一次开火实际上无法完成但仍会消耗Ammo,因此每次踹乘客实际上会占用两发。例如一个4弹药3乘客的战机第一轮只能踹出前2个乘客,回机场补充一格弹药后才能踹第3个

如果武器拥有大于一的[Weapon] -> Burst=那么每一连发都会消耗一次弹药,并且存在一个Bug是对于正在尝试踹乘客的Aircraft在达到0时可能不会立即停止开火,这就导致可能跨越零值变负,然后变成无限弹药

原版下Infantry和Building的弹药逻辑基本是废的,Ares已修缮与完善并进行了拓展,详见说明书

Armor =

填下表中的相应项。这个代码指定该单位的装甲。注意:装甲和防御能力没有任何关系,单位的受伤程度是由攻击方的弹头对相应装甲的百分比决定

------------------------------------------------

|     值     |          义          |

|------------|----------------------|

|  None      | 无护甲,不是“不存在护甲”而是使用名为“none”的护甲参与计算,物体必然拥有护甲

|  Flak      | 防弹衣

|  Plate     | 板甲

|  Light     | 轻型装甲

|  Medium    | 中型装甲

|  Heavy     | 重型装甲

|  Wood      | 木质结构

|  Steel     | 钢铁结构

|  Concrete  | 混凝土结构

|  special_1 | 特殊装甲1,用于恐怖机器人

|  special_2 | 特殊装甲2,用于子机导弹

装甲和单位类型不存在硬性对应关系,可以随意指定,只要符合你的设计

------------------------------------------------

Artillary =

设置该句的建筑由一个载具通过[TechnoType] -> DeploysInto=部署转换而来的情况下载具部署前会转向正北方

四句里这一句会导致vxl炮塔和炮管在拔起时就绘制

此外Artillary为Westwood错误拼写,正确的英文单词应当是"Artillery"

部署转向:

Artillary为正北(↗),若没有该句则见下一条

TickTank或SensorArray或ICBMLauncher任意一句满足为正东(↘)

前面四条都没有则朝向正南(↙)

YR下这四条的朝向效果全部报废,请用YR新增的[BuildingType] -> DeployFacing=[0-7]来控制

Armory =

填yes或no。这个代码指定建筑是否可以升级精英以下的步兵单位,任何进入该建筑的步兵单位都会升级为精英

注意:如果想限制升级步兵的数量,可以加入[TechnoType] -> Ammo=来限制,每进入一个步兵消耗一次弹药,弹药清零无法再进入

特殊规则见[BuildingType] -> Grinding=语句下方

在Ares中允许使用新的Academy系列逻辑直接设定所有单位生产出来的等级

Assaulter =

该步兵是否为突击者,可以驱逐建筑中驻守的步兵单位而无须对该建筑造成任何损伤。这里的“驱逐”指将建筑中的所有驻守的步兵单位全部击杀

驱逐过程动画由主武代码的[Weapon] -> AssaultAnim=来设定,原版废设使用UCFLASH,也留有UCBLOOD和UCELEC

原版下无法设定某个建筑对于某个突击者步兵来说是否可以突击,Ares允许设定步兵与建筑各自突击等级进行比较,详见说明书

AttackCursorOnFriendlies =

该单位能否在友军上也和敌人一样默认显示攻击光标,例如原版疯狂伊文,只不过因为[InfantryType] -> Ivan=yes导致攻击光标又被换成了伊文炸弹光标

AttackFriendlies =

该单位能否将友军加入索敌目标,需要主动寻敌开启,即在[TechnoType] -> CanPassiveAquire=no时无效

原版下由于AI非维修单位在目标为一个友军时会立即清掉目标所以可能会进入获得目标丢失目标的循环而难以开火,Phobos已修复

AuxSound1 =

填Sound.ini中定义的声音名。这个代码指定飞机起飞时的声音,导弹类子机发射时也会使用

AuxSound2 =

填Sound.ini中定义的声音名。这个代码指定飞机降落时的声音,导弹类子机撞击时并不使用

AntiInfantryValue =

建筑反步兵权重

AntiArmorValue =

建筑反装甲权重

AntiAirValue =

建筑反空军权重

AI会检索敌军单位类型数量并按该权重选择多造哪个防御建筑

AirstrikeTeam =

普通鲍里斯召唤空袭的数量

特殊效果为这个语句只要非0那么会禁止[TechnoType] -> Secondary=开火时[InfantryTypeArt] -> SecondaryFire=后接入Guard帧而一直保持开火状态,哪怕并没有补全空袭逻辑的单位语句和使用空袭指示的武器

此外如果为有限弹药且[AircraftType] -> AirportBound=yes的战机将此值设为 1,那么如果处于攻击任务中按 S 停止或失去目标会大概率直接飞出地图并删除

若要成功召唤空袭需要与武器弹头上的[Warhead] -> Airstrike=yes配合,不过这个语句自身的值是否>=1也直接决定了能否启动空袭逻辑,若不满足则无论[TechnoType] -> EliteAirstrikeTeam=如何都无法启动空袭,若满足则即便[TechnoType] -> EliteAirstrikeTeam=不满足也会绘制激光线和染色效果只不过没有战机

AirstrikeTeamType =

普通鲍里斯召唤空袭的飞机

AirstrikeRechargeTime =

普通鲍里斯召唤空袭的间隔

AltImage =

该单位在攻击时使用的代替图像。仅适用SHP单位,TS残留废弃,在TS中被器官兽使用

AlphaImage =

该物品使用哪个Alpha光,Alpha类似Ares的AE,不过AlphaImage是改变亮度

AlphaImage正常只有1帧,Ares下也可以使用多帧对应多个面,但必须是8的倍数,并且可以跟随对象移动,不过实现相当暴力,每2帧擦除并重新生成一次,性能炸弹

AlphaImage并不是动画,对应的无需也无法在[Animations]中有效注册,直接写不带后缀的文件名就可以了,注意透明色为127号而非Animation用的的0号,向前变暗向后变亮

AlphaImage的shp需要和鼠标动画一样使用ShpBuilder的Compression 1 Only模式(汉化版应该直接写为了“用于鼠标动画”)保存,保存常规单位的shp时要记得换回去否则Bug

AlphaImage的亮色部分会影响线条绘制,这里的线条包括建筑选择框、原版IFV导弹的LineTrail尾迹线、EBolt的每一条线等

PhobosBuild47已进行性能优化,对于不需要移动的对象不再周期性重绘

AutoCrush =

TS开始该句出现在了矿车上,用于载具微定义自动碾压

AircraftCostBonus =

战机建造价格为原来多少倍

-B-

BurstDelayX =

载具武器有高于一的[Weapon] -> Burst=的情况下第X+1与X+2发之间间隔的帧数(这里是按从 1 开始的序列来描述)

实际上无法降到0,当然在玩家眼里除非卡的要死也足够表现得尽量像立即射出了。Phobos新增了让非战机类单位同时射出所有连发的武器语句,详见说明书

默认为3~5之间的随机值

BurstDelay0 =

第1发和第2发的间隔

BurstDelay1 =

第2发和第3发的间隔

BurstDelay2 =

第3发和第4发的间隔

BurstDelay3 =

第4发和第5发的间隔

注:如果只有X没有(X+1)则X+1继承X的值

原版下仅可用于VehicleType并且只能写在单位本体上。其他类型中Infantry的连发间隔会被FireUp、FireProne影响,Aircraft的则强制为0

Phobos改为了类似FS中写在武器上的形式,并可以直接使用新语句指定每两连发之间的间隔而不局限于Index0-3之间分别指定1-5发的4个间隔,详见说明书

BuildTimeMultiplier =

建造时间为正常的多少倍,越大越慢

BaseNormal =

是否延伸建筑范围,即[BuildingType] -> Adjacent=判定时是否可以将这个建筑视为扩展节点

仅用于玩家,Ares允许定义对AI而言的BaseNormal,原版下AI仅有建筑拥有[TechnoType] -> UndeploysInto=的同时拥有[BuildngTypeArt] -> Foundation=1x1或[TechnoType] -> ResourceGatherer=yes中的至少一个才不被视为扩展节点

Bunker =

指定该建筑是一个坦克碉堡。载具进入后会获得一系列加成。

当载具进入这个建筑时会播放[AudioVisual] -> BunkerWallsUpSound=指定的音效,离开时播放[AudioVisual] -> BunkerWallsDownSound=指定的音效。

当载具进入这个建筑后会使用[CombatDamage] -> BunkerDamageMultiplier=作为火力倍率,[CombatDamage] -> BunkerROFMultiplier=作为射速(因为实际上是对间隔除运算)倍率,[CombatDamage] -> BunkerWeaponRangeBonus=作为射程增量(注意射程不是乘法而是加法)

注:以上五条除射程增量外从PhobosBuild48开始均可在建筑上微观定义

为了让载具能够顺利进入这个建筑,它至少一条边需要大于 1 格长,也就是说[BuildingTypeArt] -> Foundation=1x1的建筑实际上会导致载具虽然可以发起进入指令和靠近,但实际上并不能流畅地进入碉堡且即便进入也会有其他问题。

此外还要确保载具可以行驶到所需要的位置,因此需要使用例如[BuildingType] -> NumberImpassableRows=等来使得建筑拥有可通行的部分。

如果这个建筑拥有武器且被进入时正在开火,那么它将停止开火但保留目标,等到载具离开建筑时再继续攻击原先的目标。

无论如何,坦克碉堡只能进入一个载具,并且这不检查[BuildingType] -> NumberOfDocks=,无论你将它设为0还是9以及其他。

如果载具进入成功建筑,那么它会停在最中间的位置,并且使本体面向正南(屏幕左下)方向,对于边长为偶数的建筑这会占据偏屏幕下方向的那个单元格同时实际位置向相反方向移动半个单元格,在载具退出建筑时再重新修正回正确的位置。

如果是一边长为奇数的建筑,那么由于这个位置修正将会导致单位离开建筑后的实际位置出现错误,即它所占据的单元格的中心并不是它这个实体的中心,这会导致一些需要判定单元格的功能工作异常,例如原版的Arcing类抛射体将会攻击错误的位置而导致这样的单位就像有了100%的闪避一样。

这不能与InfantryAbsorb等其他进入逻辑共同使用,首先这种情况下[BuildingType] -> InfantryAbsorb=yes会允许UnitAbsorb工作,且其默认值为no,使得载具不能进入。但哪怕再设置[BuildingType] -> UnitAbsorb=yes,也依然会导致载具只能尝试进入建筑但永远无法真正进入。如果这个建筑的确使用了乘客逻辑,那么它会优先执行,并在装不下更多乘客后改为上面的行为。

正常的坦克碉堡在进入时会顿一下,但如果这个建筑同时拥有[BuildingType] -> ConstructionYard=yes那么进入过程将会相当的丝滑,如果你有一个因为Foundation过大导致总是进入失败的建筑那么可以尝试一下与之合用

注意:

坦克碉堡不会影响内部单位除了射程外的受击判定,这就是为什么AI的辐射工兵也喜欢对着坦克碉堡中的坦克一通爆射

而这个判定WW是直接硬编码了个无法被射程低于384Leptons(1.5格)长度的单位攻击,怀疑就是专门给2x2碉堡应对近战单位(大概是YR里狂兽人)定制化编写的

Bunkerable =

填yes或no。该载具能否进入坦克碉堡,在这句之前优先判定载具是否满足下述至少一项:

即是否[处于被寄生状态|没有炮塔|使用了Hover类SpeedType],若满足则在更上层禁止入库

除此以外对于使用了Mech/Hover/Fly类Locomotor的单位虽然不会禁用进入光标但实际上只能移动到旁边无法进入,有时用于制作一些特殊的站点机制

* 如果不手动设定,那么Locomotor=Hover的载具其SpeedType默认为Hover

对于Locomotor=Ship的载具在进入坦克碉堡的瞬间会EIP:006A0220

对于可以进入坦克碉堡且非Drive的Locomotor也会表现的比较奇怪,例如不会移动到正确的坐标

BalloonHover =

填yes或no。这个代码指定使用Jumpjet运动模式的单位不能落地。会打断CloakStop

此句生效时[TechnoType] -> JumpjetHeight=必须高于战车工厂的[BuildingType] -> ExitCoord=的高度否则会卡住

同时该语句会限制单位可移动的单元格,例如点击建筑旁边的地面会自动避开建筑所在单元格,点击桥面时会将所有移动目标点均设在桥上而不考虑旁边的水面,PhobosBuild47允许全局设置这一规则

在RA2下只要有这句那么单位手动攻击时就总想着往对面头上飞,无论[TechnoType] -> Locomotor=如何

在YR开始额外检测当前所使用武器其抛射体上是否拥有[Projectile] -> Vertical=yes才使用这一行为

有这句的JumpJet单位即便没有[TechnoType] -> Explodes=yes也可以在坠落到地面时引爆[TechnoType] -> DeathWeapon=的武器,具体工作方式见[TechnoType] -> DeathWeapon=一句。

Bib =

填yes或no。让建筑最东(右下)侧一列单元格可以通行[载具](矿场、车场)

由于国际社区认为PVP中载具堵重工门禁止出车是一种作弊,因此Ares硬编码仅允许[友军]载具可通行

Bombable =

填yes或no。这个代码指定该单位是否能被一个[InfantryType] -> Ivan=yes的步兵攻击

BombSight =

填数值。这个代码指定该单位对定时炸弹的警戒范围,当被捆绑上定时炸弹的我方单位进入警戒范围该单位会进行拆除定时炸弹的工作,该单位弹头要有BombDisarm=yes这个设置否则同样不能拆除。注意:当该单位本身被捆绑上定时炸弹时不能进行自我拆除定时炸弹的工作

BridgeRepairHut =

填yes或no。这个代码指定建筑是否为桥梁维修小屋,这种建筑可以维修附近的毁损桥梁或提供其他单位(如谭雅)来炸毁桥梁

BuildCat =

填下表的相应项。这个代码指定建筑的所属类型,用来给游戏分类和AI识别

注意:原版引擎下一个没有BuildCat的建筑建造后取消会IE,只能拍下来,但建造进度效果也会依旧保留到下一个正常建筑建造,并且同步播放一次,Ares已修复

--------------------------------------------------

Combat 防御建筑,该建筑会出现在防御栏中

Infrastructure 既没卵用,也没人用

Resource 资源建筑,给玩家提供金钱

Power 电力建筑,给玩家提供电力供给

Tech 科技建筑,用来作为其他单位的建造条件

--------------------------------------------------

BuildLimit =

填数值。这个代码指定单位的建造数量限制。负数为到达绝对值后删除图标,不能建造

对平民建筑(特指Insignificant=yes的)使用无法正常生效。此外AI生产也并不遵循这项,Ares已允许设定AI是否可以越过BuildLimit生产,详见说明书

BuildupSound =

填Sound.ini中定义的声音名。这个代码指定拔起播放建造动画时播放的声音

BerserkFriendly =

是否不会被狂暴单位攻击,指被YR里精神突击车那种混乱弹头影响的单位,而非TS中Cyborg的发狂

BarrelAnimIsVoxel =

炮管图像是否为VXL,用于开启[BuildingType] -> VoxelBarrelFile=调用炮管图像

这会强制炮塔图像为SHP,但是在原版中这必须与[BuildingType] -> TurretAnimIsVoxel=yes共同使用

于是这就造成一种荒诞的情况:由于两个语句的共同作用[BuildingType] -> TurretAnim=无法使用任何图像文件,游戏只会绘制一个由[BuildingType] -> VoxelBarrelFile=定义的炮管

从Ares2.0开始这一问题得到解决,该语句得以允许在[BuildingType] -> TurretAnimIsVoxel=no的情况下使用,也就是可以正常使用一个SHP炮塔与一个VXL炮管了

注:如果[Buildingtype] -> TurretAnim=的图像与建筑主体符合默认命名规则(XXX,XXXTUR)那么[BuildingType] -> TurretAnimIsVoxel=yes下可以无视[BuildingType] -> BarrelAnimIsVoxel=no绘制VXL炮管

BarrelStartPitch =

炮管的初始俯仰角度,RA2下疑似废的彻底

以下4句用于原版巨炮炮管伸缩,需要TurretRecoil开启

BarrelTravel =

该建筑炮管可偏移的像素值,默认 2

BarrelCompressFrames =

该建筑炮塔恢复所需要的帧数,默认 1

BarrelHoldFrames =

该建筑炮管保持在受后坐力位置显示的帧数,默认 1

BarrelRecoverFrames =

该建筑炮管恢复所需的帧数,默认 1

BuildingsCostBonus =

普通建筑建造价格为原来多少倍

-C-

CloseRange =

填yes或no。指定该单位是否使用近战武器(狂兽人),帮助AI判定选择目标的范围

C4 =

该步兵是否可以安装C4炸弹

注意:当为yes时,不管是主副武是否可以对建筑物,对付建筑物的武器都会被C4代替,除非攻击目标有CanC4=no的设定

如果存在这句,那么单位无论是否可以进入建筑,都会选择炸掉它...

哪怕建筑存在CanC4=no,也会选择使用武器摧毁它,也就是会冲掉其他进入行为

如果光标为Sabotage,那么如果武器Versus=1%就会强行切换到另一个武器

此外还会导致该步兵在被建筑攻击时强制不会主动反击

若C4=no且Loco非Walk的Infantry在水上停下时会直接死亡并留下空气墙

如果是军医类型的步兵使用负伤害治疗武器那么允许原本的禁止光标变得Ctrl下可以强制Attack

CanBeach =

该载具(应为海军)能否在沙滩上(水陆交界的海岸地形)移动,同时还要有MovementRestrictedTo=Water这一项设定。但实际效果不怎么样,还不如改成两栖的,寻路智障

CanBeOccupied =

填yes或no。这个代码指定建筑单位是否可以被进驻

红色警戒2不同于尤里复仇,占领后的武器要在该建筑上设定

盟军占领后使用Primary=的武器,苏军占领后使用Secondary=的武器

这个建筑拔起结束后就会改变所属为中立

并且如果你真的有给这个建筑写[BuildingTypeArt] -> Buildup=的话会被中立直接卖掉

RA2下一种创建经验包的方法就是与[BuildingTypeArt] -> Buildup=none及[BuildingType] -> MaxNumberOccupants=0禁用进驻连用

YR为苏军NABNKR额外判定了是否拥有TechLevel=-1再作所属转换

然而只要有这句哪怕TechLevel>=0不改变所属AI也会倾向于视为一个平民建筑

在Ares下已经允许一个建筑设定自己可以被哪些步兵驻军,详见Ares说明书

原版下已经拥有所属的平民建筑建筑(已驻军且TechLevel=-1)无法进入其他人的步兵

但同样有所属造出来而无驻军的苏军碉堡(TechLevel>=0)也是如此,Ares的巷战相关拓展允许无人的碉堡允许敌方步兵驻军并转移所属方,详见说明书

CanOccupyFire =

YR新增,该建筑被驻军后驻军单位能否向外开火,即便no掉也无法复原为RA2的驻军武器规则,驻军建筑只是变成无论是否有驻军单位都只有攻击指针但实际无法开火

CanC4 =

填yes或no。这个代码指定该单位是否能被有C4=yes的步兵炸毁。默认值是yes

这句为no的建筑将无论如何至少受到1的伤害,LaserFence无视该效果可以放心用

这也导致Damage*Versus<0的弹头在打到该建筑时强制变为+1点,Phobos已允许在建筑上禁用这一规则

这就是维修圈会把油桶和弹药箱修爆炸的根源所在……

在YR这个标签也影响能否被鲍里斯的空袭引导武器锁定(WW偷懒),Phobos已添加新语句以分离控制

原版下你也可以使用ResourceGatherer和ResourceDestination连用来禁止被空袭

CanDisguise =

填yes或no。这个代码指定该单位是否可以伪装而敌人无法发觉(狗除外),用在间谍和幻影坦克上

CanPassiveAquire =

填yes或no。这个代码指定该单位是否能够自动攻击目标。默认yes

此外Aquire为Westwood错误拼写,正确的英文单词应当是Acquire

Ares允许分离控制Guard状态与隐形状态下的PassiveAcquire设置

如果开启的话一些其他的索敌类效果也会可以生效,但可能略显智障

例如防空车总是被伞兵机之类的吸引走,维修车总是会去追伤残友军

CanApproachTarget =

填yes或no。该单位是否停留在某地时追向接近的敌方单位进行攻击,幻影坦克原版为no,以防止它们在警戒模式下朝目标移动,否则会因为伪装消失而被攻击

在可对空单位上设置CanApproachTarget=no是一种防止它们追逐空中单位的方法

如果no掉那么它们只会在被空军攻击时才会追着打

CanRecalcApproachTarget =

填yes或no。这个代码指定带有CanApproachTarget=yes代码的载具是否能重新计算敌方目标,默认yes

若为否则只要选定了一个目标就会一直追击

CanRetaliate =

填yes或no。这个代码指定该单位是否能在遭到敌方攻击时进行反击

对于隐形单位这可能导致它们在目标过远时会显形一次

除了CanRetaliate=no外下列情况的单位不会反击

1. 单位没武器能拿来反击

2. 拥有C4=yes的步兵

3. 奴隶矿场没爆时的奴隶矿工

4. 已达心控上限的心灵控制者

5. 人类玩家控制的、当前已有目标的单位

6. 被盟友所属攻击的单位

7. 人类玩家控制的、部署为Artillary=yes建筑的载具

8. 人类玩家拥有的、全局[General] -> PlayerReturnFire=no时、mission不为[Guard|Area Guard|Patrol]之一的单位

9. 电脑玩家拥有的、处于[TeamType] -> Suicide=yes的小队中的小队成员

10. 电脑玩家拥有的、当前已有目标的单位,且该目标在修建威胁评估节点后威胁值不发生变化

11. 所拥有的武器的弹头对目标对象的Versus<=0.01的单位(直接进行浮点运算)

Capturable =

填yes或no。这个代码指定建筑是否能被工程师占领

CaptureEvaEvent =

YR新增,指定这个建筑被工程师占领后播放的EVA

Carryall =

此战机是否可以吊运载具,一定是运动模式为Fly({4A582746-9839-11d1-B709-00A024DDAFD1})的战机。不要是直升机(就是重工造出的实际上是会飞的载具的那种)

同时强制落地踢出(放下)载员,并且把载员的图像绘制到自己身上(无论载具载员还是步兵载员),放下载员时把自己的ROT传给载员(被吊运的载具实际上是战机的载员)

并且载员被释放后会显得下沉了一部分,且光标悬浮在自己所在单元格会变成允许移动,停止移动时炮塔还会转向一定角度再自动回正,Ares已修复部分问题

被吊运载具的OpenTopped可以正常工作。此外该战机降落时可以播放一个动画,详见Locomotor词条下的注解

Category =

填下表中的相应项。这个代码指定单位的分类,用来给AI判断的(实际上然并卵)

--------------------------------------------------

AirLift 运输机,用来运输步兵的飞机

AirPower 战机,用在战机和直升机上,可以使用武器

Transport 运输车,用来运输各种单位的载具

Support 基地车,也可以用在其他可部署成为建筑物的载具上

LRFS 远射程载具,可以进行远程打击的载具

IFV 步兵载具,多功能步兵载具专用

AFV 载具,可以广泛运用于各种战斗用载具,如坦克

Recon Reconnaisance载具

VIP 重要的步兵单位,没什么用

Soldier 步兵,所有步兵单位都用这个分类

--------------------------------------------------

ChargedAnimTime =

填数字。这个代码指定建筑在[BuildingType] -> SuperWeapon=所填写的超级武器启动前多长时间播放启动动画,单位为分钟,动画由Art.ini中的[BuildingTypeArt] -> SuperAnimThree=来控制。该值应该小于相应超级武器的[SuperWeaponType] -> RechargeTime=值不然直接进待发射阶段

ChronoInSound =

填Sound.ini中定义的声音名。这个代码指定单位超时空运动开始的声效

ChronoOutSound =

填Sound.ini中定义的声音名。这个代码指定单位超时空运动结束的声效

Civilian =

该步兵是否是平民,受地图触发“平民疏散”效果影响

ClearAllWeapons =

是否将单位的所有开火用武器全部清空,包括(Elite)Primary/Secondary/Weapon1/Weapon2,但该逻辑不影响承载单位挂载武器的加载

IFV逻辑可以被载员给予武器,但是无法实际开火,也无法正常触发DeployToFire,只是有了攻击指针和红色瞄准线,哪怕是子机发射器类虚拟武器

示例:RA2S1中使用该逻辑清除了五角大楼和胜利纪念碑的武器

限制:无法清除YR下由驻军单位引入的驻军武器,另外PhobosBuild37以后只要显示攻击指针立即崩溃

ClickRepairable =

填yes或no。这个代码指定建筑是否可以使用游戏建造栏的“维修小扳手”工具来维修

注意:当该设置为no时,建筑不能被“维修小扳手”修复,但仍然能被工程师进入修复

如果不想这样,可以在建筑代码中加入Repairable=no。Ares已允许单独设置能否使用工程师进入维修,详见说明书

Cloakable =

填yes或no。这个代码指定该单位是否可以隐形。注意:如果要给高于地面的悬浮单位和空军单位隐形,不能直接使用这个代码

不过隐身状态会导致程序中一些判定指针无效,例如隐形的航母发射子机子机会认为母舰不存在而坠毁,来自导弹类子机的击杀也无法为母舰提供经验,Ares已解决子机认为隐形母舰丢失问题

只能在VeteranAbilities=或EliteAbilities=加入CLOAK这个升级效果,不过只能在升级后才能隐形,Ares已解除该限制,允许定义能否隐形的判定高度,并将其默认为悬浮单位所用HoverHeight=的值,详见说明书

此外Ares还分离了部署状态、断电状态的隐形效果,详见Ares说明书

注意:空中步兵绘制点状影子不检查单位是否处于隐形状态,该问题已在PhobosBuild49中修复

CloakingSpeed =

填1-10的数值。这个代码指定该单位的隐形速度(即出厂时的隐形速度和被发现后的再次隐形速度),要配合Cloakable=yes使用

实际上是每一个隐形阶段所需的时长,越小越快,总时长由本句与全局CloakingStages共同决定,Ares已允许单位微观定义CloakingStages

CloakGenerator =

填yes或no。这个代码指定该建筑是否可以将自身周围的已方单位全部隐形

注意:YR下只有高度0的单位才可以受到影响,也就是Locomotor为Hover这种不贴地的悬浮载具不受影响,Ares已允许定义高度判定值,并将默认值设为[General] -> HoverHeight=的值,因此Hover载具只要装上Ares就可以正常得到效果,如果希望还原原版的效果则使用Ares提供的语句手动设为0,详见说明书

CloakRadiusInCells =

填数字。这个代码指定建筑隐藏周围已方单位的隐藏半径,要和CloakGenerator=yes配合使用。由于WW的诡异算法,此处0会没有范围,但是false却恰恰相反

CloakStop =

隐形效果是否仅在静止时生效,原版实现方式有问题,移动并不会打断隐形,Ares已修复,详见说明书

会被[TechnoType] -> BalloonHover=yes或连用[TechnoType] -> DeployToLand=yes与[VehicleType] -> IsSimpleDeployer=yes实现的悬停打断

WW从TS里就专门设计了一条硬编码效果是用于AI的单位时只要一隐形就会立即散开(尝试移动)从而解除隐形

Cloning =

填yes或no。这个代码指定建筑是否为复制中心。克隆中心会把所有从兵营出厂的单位再免费赠与一个同样的,Ares添加了用于克隆载具的同类功能,详见说明书

原本在YR1.001下针对[BuildingType] -> Factory=AircraftType的建筑禁用集结点的效果会被该语句覆盖

RA2中可以进入步兵返还资金,YR中这个功能被拆分出去,需要使用[BuildingType] -> Grinding=yes启动回收

当复制中心启用回收后无论[BuildingType] -> InfantryAbsorb=为何值都会允许步兵类进入,就像RA2中那样

但若有[BuildingType] -> InfantryAbsorb=yes那么会遵守[BuildingType] -> UnitAbsorb=的设定,为no时选中载具类移动到该建筑上将会显示Select而不是NoEnter,就像RA2中那样

由于Absorb两句默认值均为no,所以相当于:若Cloning与Grinding合用则允许步兵类进入,若InfantryAbsorb为no或UnitAbsorb为yes则允许载具进入

ConcentricRadialIndicator =

填yes或no。这个代码指定建筑是否拥有“心灵感应装置”(苏军的)那样的雷达扫描效果,但该建筑必须要有HasRadialIndicator=yes的设定

ConsideredAircraft =

填yes或no。基洛夫空艇和火箭飞行兵这种实际上是载具的飞行单位使用,是否被视为常规空军单位,Aircraft默认yes

和Organic一样用于一些判定

一些旧教程称控制是否从天窗飞出,实际与这句无关,检查的是JumpJet与BalloonHover是否拥有至少一条

ConstructionYard =

填yes或no。这个代码是基地建筑专用的,变卖后不会变回载具,让AI判定该建筑为基地

设置为no则不受基地重新部署选项的影响,但会导致该阵营AI智障

此外只要AI手动建造或载具DeploysInto出了有这个标签的建筑即被视为建设了新基地的判定

然后AI就会把自己所有可操纵的单位全部集结过去,哪怕是一些非战斗单位,例如矿车。Phobos已对此行为允许【全局】层面关闭

Cost =

填数值。这个代码指定该单位的价格。每个可以建造的单位都应该设定其价格

同时也决定了初始单位的实际生成数量,如果明明设置的是10但开一把基础兵从基地车向八个方向生成了几百个那么就该检查一下是不是有哪个单位Cost写的过小或者写了个负数之类的了

原版下如果Cost=0那么初始单位不会生成,也就是说你可以利用这个特性在无需Ares修复的情况下实现0初始单位

Crashable =

填yes或no。这个代码指定此Jumpjet单位在空中被摧毁后,是否坠落到地面,否则凌空爆炸。不要给HoverLocomotor的单位使用否则被摧毁卡最后一滴血死不了

只要该值设为yes那么即便是从地面爆炸的也不会让乘员逃生

Ares已拓展至Aircraft,并允许Aircraft坠落的情况下是否旋转,Phobos已允许Jumpjet设定坠落的情况下是否旋转,详见说明书

目前Ares引擎下母舰被毁时子机无视[TechnoType] -> Crashable=no强制可以坠毁

CrashingSound =

填Sound.ini中定义的声音名。这个代码指定空军单位被摧毁坠落时爆炸的声效。要配合[TechnoType] -> Crashable=yes使用

CarriesCrate =

填yes或no。这个代码指定载具被摧毁后是否会在附近生成一个箱子,例如原版[TRUCKB]就是

注意:如果想要让建筑物拥有这个效果要换成[BuildingType] -> CrateBeneath=yes

对于[VehicleType] -> CarriesCrate=yes且[TechnoType] -> IsTrain=no的情况由地图[Basic] -> TruckCrate=决定是否掉落

对于[VehicleType] -> CarriesCrate=yes且[TechnoType] -> IsTrain=yes的情况由地图[Basic] -> TrainCrate=决定是否掉落

该逻辑需要当前游戏开启箱子掉落,对于单人任务地图而言需要rules(md).ini中有[MultiplayerDialogSettings] -> Crates=yes

CrateBeneath =

填yes或no。这个代码指定建筑被摧毁时是否在附近生成箱子。箱子的内容在没有专门设定下是随机的

CrateBeneathIsMoney =

填yes或no。这个代码指定建筑摧毁后生成的箱子的内容是“获得金钱”。要配合[BuildingType] -> CrateBeneath=yes使用

CrateGoodie =

填yes或no。这个代码指定载具单位能否从箱子中获得,获得该载具的机率要看使用这个代码的载具数量

CreateSound =

填Sound.ini中定义的声音名。这个代码指定该单位被建造时的声音

CreateUnitSound =

填Sound.ini中定义的声音名。这个代码指定单位生成时Factory建筑(包括克隆工厂)播放的声音。每种类型单位出厂时工厂都可以播放不同的声音:默认全局CreateInfantrySound=,CreateUnitSound=,CreateAircraftSound=分别对应步兵、载具单位(包括海军单位)、战机

Crewed =

填yes或no。当此单位或建筑被摧毁后,是否有步兵从里面逃出(逃出的可能性在rules的开头有控制)

也控制建筑类对象出售是否给予步兵

如果物体被自己的Suicide=yes武器摧毁,强制没有幸存者,Phobos已添加新语句解除,详见说明书

Crushable =

填yes或no。这个代码指定物体是否能够被载具单位碾压。

适用于包括但不限于步兵、载具、建筑、围墙、地形对象的一切ObjectType,但工作方式略有不同

对于建筑类,若非[BuildingTypeArt] -> Foundation=1x1则只是单纯穿过,就像Ares引入的[BuildingType] -> IsPassabe=yes那样

对于地形对象,碾压后屏幕不会立即刷新,只有移动视角后原地形对象的图像才会消失

Crusher =

填yes或no。这个代码指定载具单位是否能够碾压步兵和可碾压围墙,并且没有[TechnoType] -> Trainable=no的情况下通过碾压也可以正常升级

这也会影响载具类单位的默认SpeedType,详见[TechnoType] -> Locomotor=语句注解

CrushSound =

填Sound.ini中定义的声音名。这个代码指定步兵(或围墙类建筑)被碾压的声效。要和Crushable=yes配合使用

Cyborg =

该步兵是否为半机械人,允许受EMP效果影响但依然可以被铁幕秒杀

每次攻击该步兵至多打到红血,然后进入伤残状态转为匍匐图像

在该步兵不匍匐的情况下常规伤害无法将其击杀,可用Fearless禁用匍匐转换

损坏/破坏一个机器人会播放[General] -> InfantryExplode=的动画

如果[CombatDamage] -> BerzerkAllowed=yes则会发狂(仅限TiberiumSun)

部署和取消部署会导致取消机器人的爬行(伤残)状态,因此部署和半机械人无法很好的配合

进入再退出运输载具也会取消半机械人的爬行(伤残)状态

-D-

DamageSelf =

填写yes。允许该单位发射的武器伤害自身。由于开火不伤自身实际上是找格子里的第一个对象,所以空中单位始终可以伤害

原本是YR中为了处理核弹井砸自己不掉血而添加的,并且并不影响非常规杀伤的其他效果,例如AresAE始终是允许给自己加的

不过这个语句作为单位语句自然对此单位的所有武器都生效,如果你要单个武器进行设置详见Phobos添加的弹头自定义是否杀伤开火者效果

Doggie =

该步兵是否为泰伯利亚恶魔,TS残留无效,Ares已还原相关逻辑,详见说明书

DontScore =

填写yes。该单位不计入杀伤统计和单位经验

实际上是对[ObjectType] -> Insignificant=语句效果的分离

如果载具使用会导致程序始终认为载具依然存活,即所属方永不判负,进而导致游戏无法结束,Ares已修复

还会导致 9 号触发条件永远无法被视为满足

副作用是这样的对象无法满足先决条件

DoubleOwned =

用于秘密科技实验室系列逻辑,新增于YR但没有做完,Ares重做的秘密科技实验室系统中有同类逻辑并更加方便,详见说明书

Drainable =

填写yes。则该建筑可以被飞碟吸

DamageParticleSystems =

填粒子系统名称。这个代码指定所有单位黄血时产生的粒子系统

只能使用Smoke和Spark类的粒子系统

只有单位高于地平面才会有粒子系统

只在原本无同类粒子时生成粒子系统

Smoke:

必然创建

真治疗(即不包括正伤害负比率弹头)、维修和回血在回到绿血后移除粒子系统

Spark:

根据[General] -> ConditionYellowSparkingProbability=的值

以及[General] -> ConditionRedSparkingProbability=的值

决定创建几率,步兵需要拥有Cyborg=yes才能用Spark类粒子,Ares已允许使用新的语句分离控制,详见说明书

达到[ParticleSystemType] -> Lifetime=后删除

另有规则:当对象血量低于50%或[AudioVisual] -> ConditionRed=的比率时将创建Smoke粒子系统

与Spark不同,Smoke被硬编码为该阈值而不读取[AudioVisual] -> ConditionYellow=的设定

DamageReducesReadiness =

受伤掉弹药,这个代码指定单位受到伤害时是否会减少弹药

需要和ReadinessReductionMultiplier配合使用

当该单位没有Ammo=的设定时,这个代码无效

公式:rounds lost =damage inflicted (before warhead calculations) / Strength * ReadinessReductionMultiplier * Ammo

也就是填负数会补弹药,但是不检查单位Ammo值,也就是会超出Ammo继续装……

DamageSound =

填Sound.ini中定义的声音名。这个代码指定单位被攻击时被攻击方播放的损害声效

DamageSmokeOffset =

填X,Y,Z的数值。这个代码指定所有单位、建筑单位临近毁坏时冒烟的位置。默认为0,0,0

在血量达到固定值50%与[AudioVisual] -> ConditionRed=时创建,使用smoke类粒子系统

DamSmkOffScrnRel =

填X,Y,Z的数值。这个代码指定所有单位、建筑单位临近破坏时冒烟的位置,不过这个位置冒的烟比DamageSmokeOffset=冒的烟更难观察到。默认为0,0,0

DeaccelerationFactor =

填数值。这个代码指定单位接近攻击目标时减慢的速度的百分比,降低百分比是以该单位的Speed=的数值来作标准的

DeadBodies =

填动画列表,步兵死亡后的尸骨动画,列表内随机选取,不继承所属方,默认全局值,与下句同时生效

DeathAnims =

填动画列表,列表序数与弹头InfDeath=的序号一一对应,与原版死亡方式的序号一一对应,你也可以凭借它在原版添加更多种死亡动画,最主要的是:它的列表是定义在死者单位上的,而非仅由杀伤来源控制

如果想要指定它来实现原版的效果需要填入dummy,<die1>,<die2>,S_BANG34,FLAMEGUY,ELECTRO,YURIDIE,NUKEDIE,VIRUSD,GENDEATH,BRUTDIE;,……后面可以继续加

其中dummy要自己弄个有效的空动画,否则会直接跳过。而Die1、Die2序列可以刷个同素材步兵再死一次来调用序列,原版0-10之后的同样使用与弹头InfDeath=值对应的规则

不过【只有15个】有效,也就是InfDeath=0-14的范围,InfDeath=15强制使用空效果,InfDeath>=16则始终播放第一项

在经过上述处理空出DeathAnims的可用空间后就可以借助这个实现在【单位上】自定义Die12345和WetDie12345678910X的效果,而不需要去复原原版未启用的Die3-Die5那套编码机制

使用规则见[Warhead] -> InfDeath=词条底端

通过这个语句创建的动画会使用死者的所属方,Ares允许动画上定义所属方的继承来源,详见Ares说明书

DeathWeapon =

死亡武器,当单位死亡且单位拥有[TechnoType] -> Explodes=yes或单位当前主武器(包括IFV的任何模式所对应的唯一武器)上拥有[Weapon] -> Suicide=yes时会被引爆

默认使用当前主武器([TechnoType] -> Primary=/IFV当前武器),主武器不存在使用[CombatDamage] -> DeathWeapon=的武器

对于导弹类对象,其命中仅会使用自己在全局或Ares自定义导弹参数中所设定的弹头和武器,而被摧毁时才除此之外同时使用这里设定的死亡武器

事实上死亡武器也可以在[TechnoType] -> Locomotor=Jumpjet/Fly的单位从天上坠毁到地面时【额外】触发一次,其中使用Jumpjet的情况还要有[TechnoType] -> BalloonHover=yes,此时相当于把落地那次播放[TechnoType] -> Explosion=动画的行为换成引爆一次死亡武器

两种情况都要求载具上明确拥有[TechnoType] -> Crashable=yes,也就是说通过[Warhead] -> IsLocomotor=yes的弹头牵引[TechnoType] -> Crashable=no的载具逃课是不可行的

当然由于JumpjetAircraft落地后会丝血保留始终不死所以并不会引爆

对于[TechnoType] -> Explodes=no但可以通过坠毁触发该武器的单位总是会在坠落到地面被摧毁时引爆一次死亡武器

对于[TechnoType] -> Explodes=yes且可以通过坠毁触发该武器的单位会在空中刚死就爆一次,概率性马上着陆时爆一次,如果落到大型建筑上还会多死几次而引入多次完整死亡爆炸,再在实际落地移除实体时额外引爆一次

在PhobosBuild12修复后[TechnoType] -> Explodes=yes只会空中死亡时爆一次,可坠毁额外触发该武器的单位落地时再爆一次

DeathWeaponDamageModifier =

填数值。这个代码指定该单位[TechnoType] -> DeathWeapon=的武器增加或减少威力的倍数

DebrisAnims =

填动画名。这个代码指定该单位被摧毁时弹出的shp碎片列表,碎片用逗号隔开,默认[General] -> MetallicDebris=的列表

需要配合MaxDebris=和MinDebris=两条语句

温馨提示:WestWood在原版rules(md).ini中的Max/MinDebris有许多处使用了小写debris导致语句无效

DebrisTypes =

填动画名。这个代码指定该单位被摧毁时弹出的vxl碎片列表,碎片用逗号隔开

这个碎片一定要是在[VoxelAnims]里定义了的。那些坦克爆炸后弹出炮管和脑袋飞天的效果就靠的这个

还需要在全局

[General] -> ExplosiveVoxelDebris=<List of VoxelAnims>

[General] -> TireVoxelDebris=<VoxelAnimType>

[General] -> ScrapVoxelDebris=<VoxelAnimType>

后面写上来声明这是vxl残损爆出的碎片

DebrisMaximums =

填数值。这个代码指定该单位被摧毁时弹出的vxl碎片的最大数量,和上条对应,分别用逗号隔开,超出上条数量的元素会被忽略

在RA2/YR中该逻辑已被破坏,实际上并不能准确限制数量。Phobos在列表元素大于1的情况下可以正常予以限制

DefaultToGuardArea =

该单位是否会自动进入区域警戒(Area Guard)状态,一旦有敌方进入警戒范围,该单位会自动追上前去迎敌

当区域警戒的目标为建筑(相当于单元格)的情况下程序会从[2*GuardRange与4096Leptons(16格)]这两个值中取更小的那个再*1.1来获取单位的警戒范围

当区域警戒的目标是可移动的对象(保护己方单位)那么会使用GuardRange获取警戒范围,根据全局GuardModeStray来决定离开多远后返回

对于矿车(Harvester=yes)类载具其Area Guard状态的实际效果其实是会把这个矿车送去采矿

Deployer =

该步兵能否部署。部署的样子由Art.ini中该步兵的Sequence控制

DeployFire =

该单位部署后是否能够开火

注意:它会覆盖整个武器选用优先级,例如YR中的GGI拥有一个可以对空的副武器,但非部署状态下哪怕你让他去攻击一个空中目标他也会用主武尝试发起攻击行为,然后由于主武无法对空而没有任何行为。该效果自YR加入,RA2没有

举个例子:让YR中的尤里复制人可以使用副武器攻击狗

首先[(Y)(A)DOG] -> ImmuneToPsionics=yes得换成[Controller] -> Versus=0%来使用正常的武器选用逻辑

然后禁用部署开火逻辑例如改为[YURI] -> DeployFire=no绕过步兵部署开火所强制的一套武器选用规则限制

最后再去掉武器上必须部署的语句例如改为[PsiWave] -> AreaFire=no来允许步兵正常使用这个武器

DeployFireWeapon =

填0-1的数值。这个代码指定步兵部署后所使用的武器。填“0”为使用主武器,填“1”为使用副武器。默认值为“1”

Phobos允许使用-1来让部署态的单位也能使用两种武器

DeployedCrushable =

该步兵在部署状态下能否被常规碾压碾死,默认yes,原版重装大兵上设置为no以免疫常规碾压

该语句仅在[ObjectType] -> Crushable=yes时工作,也就是你不能反过来让重装大兵只有部署时可以被碾压而站着时不能

DeployToLand =

填写yes。让悬停在空中的直升机播放螺旋桨动画

和[VehicleType] -> IsSimpleDeployer=yes连用可让Jumpjet单位悬停不落地(与[TechnoType] -> BalloonHover=yes类似,包括会打断[TechnoType] -> CloakStop=的效果)

不同的是[TechnoType] -> BalloonHover=yes可以悬停在建筑上

当然这也可以正常与[TechnoType] -> BalloonHover=yes一句合用

一个附加效果是反部署时会尝试起飞,表现在地面载具上则是会移动一下

当该句为no且[VehicleType] -> IsSimpleDeployer=yes时即便拥有[TechnoType] -> BalloonHover=yes也会尝试降落而无法保持悬停,PhobosBuild48已修复

DeployingAnim =

部署时播放的动画,原版用于武装直升机这种[VehicleType] -> IsSimpleDeployer=yes的单位在部署与反部署时播放一个过程动画,动画播放时IsLocomotor类弹头仍可尝试锁定但会失败然后放弃目标

在原版中拥有[VehicleType] -> IsSimpleDeployer=yes的地面载具无论是否有部署动画都可以任意部署,飞行载具在空中降落时则总是会转向[General] -> DeployDir=的方向

该动画不支持使用[Animation] -> Normalized=yes和[Animation] -> Reverse=yes功能,并且影子不会计算当前高度以绘制到正下方的地面上,PhobosBuild48已修复

从Ares2.0开始地面载具拥有部署动画的话第一次部署指令会先转向[General] -> DeployDir=的方向然后才能部署,飞行载具无部署动画则降落时保持原有的方向

从PhobosBuild48开始无论是否拥有部署动画都会转向,你可以使用[TechnoType] -> DeployDir=-1来禁用

DeployToFire =

该载具是否会攻击动作触发部署。可与DeploysInto=或IsSimpleDeployer=配合使用

它会执行攻击行为时转为部署,但是影响主动寻敌

YR下DeploysInto的建筑不会继承原载具的目标,Phobos已硬编码继承

如果该单位执行DeployToFire时恰好脚下有矿或其他情况妨碍部署,它还会自动移动到附近的空旷区域

DeployTime =

填时间。这个代码指定该单位部署的延迟时间。单位为帧

DeploysInto =

填建筑名称。这个代码指定载具部署后变成的建筑

被心控的载具部署后会断掉心控链接彻底改变所属,YR1.001为尤里X白嫖建造场问题禁用了被心控单位部署为 [BuildingType] -> ConstructionYard=yes 建筑的该逻辑,Phobos 已允许正常交接心控链接并允许定义是否解除禁用效果

实际上是TechnoType通用标签,值的类型也是TechnoType,由于拥有跨类别T选同类对象的效果,曾也用于原版引擎下的类Ares中GroupAs功能的效果,原版下可能造成一些问题,Ares已进行修复,并允许禁用这句的跨类T选效果,同时提供了新的GroupAs作为可选的替代方案

由于DeploysInto和UndeploysInto的单向跨类T选拥有层次效果,可结合GroupAs做出注入“第一次T选MTNK选中所有MTNK,第二次T选选中所有MTNK、HTNK、LTNK”的效果

由于原标签自身作用,载具应当确保不会执行原行为的情况下才适合这样使用,否则仍会正常执行标准操作即部署成建筑

此外这样的转变很多效果无法继承,例如铁幕,Phobos已允许继承其中一部分

DeploySound =

填Sound.ini中定义的声音名。这个代码指定载具DeploysInto成为建筑时或进入SimpleDeployer时的音效

DetectDisguise =

填yes或no。这个代码指定该单位是否能发现伪装的敌人并展开攻击(是用主武攻击)

DetectDisguiseRange =

填数值。这个代码指定该单位发现伪装的敌人的距离。要和DetectDisguise=yes配合使用

特指发现CanDisguise=yes的单位

DestroyAnim =

填动画名。这个代码指定建筑被摧毁时播放的动画列表,但是所属色映射错误,且可能导致RE,Ares已修复

如果动画数量为8个且可以追溯到击杀者那么会根据击杀者与建筑的相对位置进行选择,否则随机选择

DestroyParticleSystems =

填粒子系统名。这个代码指定该单位被摧毁时播放的粒子动画

DestroySmokeOffset =

填X,Y,Z的数值。这个代码指定该单位被摧毁时播放粒子动画的位置

DieSound =

填Sound.ini中定义的声音名。这个代码指定该单位被摧毁时的声音

Disableable =

填yes或no。这个代码指定该单位是否被遭遇战模式的选项所影响,与TS的残留逻辑有关,当选择'No Bases'多人游戏选项时,MCV实际上被禁用

DisguiseWhenStill =

填yes或no。这个代码指定伪装单位在不移动时会把自身伪装起来,如幻影坦克,需要与[TechnoType] -> CanDisguise=yes合用

注意:使用Shape资源文件的单位使用该句会对可以见到其本体图像的所属方在伪装时表现为图像消失再还原,需要在art(md).ini中添加一句[VehicleType] -> StandingFrames=0来解决

DistributedFire =

填yes或no。这个代码指定该单位(神盾)在自动攻击状况下攻击一次后更换目标。只有一个敌人的话也会停顿一下再开火

Dock =

填建筑名称。这个代码指定单位可以进入的平台,如矿车能进入矿场,战机能回到机场

在原版下Dock对战机的作用仅限制生产,战机仍然能够自动停靠到Dock不允许的建筑并且占用相应机位影响其他战机生产,Ares禁止了这种情况

Ares下Dock=<none>的Aircraft不会在像那个名叫共和国之辉的古董mod那样近乎无限弹药还在取消指令后回机场补弹

但是由于YR对战机行为的更改,这样的战机取消命令后虽然到不会像原版空天母舰的子机那样飞出去并IE,但是会尝试停到地图边界

注意:在PadAircraft中声明为机场战机的战机类对象必须拥有非空的Dock否则0045ED61

DockUnload =

填yes或no。这个代码指定单位进入这个建筑后是否进行“卸货”即执行Unload命令。原版仅用在矿场上,一些应用见Weeder一句

对于矿场的矿车倒矿,矿车会在返回矿场前记录当时的格子坐标,因此倒矿后也是前往那个格子再开始寻矿,而不是倒矿时立即重新开始寻找最近的矿区

DeployFacing =

表示载具通过DeploysInto部署成这个建筑前朝向哪个方向,0-7对应从北到西北的八个标准方向

DetectionDistance =

该步兵需要靠近拥有PsychicDetectionRadius的建筑这么多的距离才会被觉察,YR引入但实际废弃

DefensesCostBonus =

防御建筑建造价格为原来多少倍

-E-

EligibleForDelayKill =

填yes或no。这个代码指定建筑是否为油桶一类的单位。血条为0后隔一段时间才爆炸

EligibileForAllyBuilding =

填yes或no。这个代码指定玩家能否在这个建筑上与其他玩家结盟

此代码会强制BaseNormal,只在“于盟友建造场旁建设”选项激活时生效

EliteAbilities =

填下表中的相应项。这个代码指定单位升级精英时拥有的能力

所有升级过程获取的能力只能获得一次加成,也就是VeteranAbilities写过的再写一遍没用

对应的,老兵时通过VeteranAbilities获得的能力也不会当单位升级到精英时丢失

--------------------------------------------------

便于复制:

FASTER,STRONGER,SCATTER,FIREPOWER,ROF,SIGHT,CLOAK,SELF_HEAL,EXPLODES,RADAR_INVISIBLE,SENSORS,FEARLESS,GUARD_AREA,CRUSHER,C4

FASTER

单位移动速度加快(Speed*[General] -> VeteranSpeed=)

STRONGER

单位的生命值增加(Strength*[General] -> VeteranArmor=)

SCATTER

单位受到伤害时会自动散开以躲避下一轮炮火,当被一个AircraftType发起攻击时也会提前散开,对于步兵在被其他单位尝试碾压时和在一个飞向它的[Weapon] -> Speed=小于[CombatDamage] -> Incoming=的ROT类抛射体发射时也会散开避免(但是方向随机,所以对碾压而言有时候躲了个寂寞)。当单位的所属方为人类玩家且[CombatDamage] -> PlayerScatter=yes时、当单位所属方的IQ高于[IQ] -> Scatter=时天然拥有该效果。此外当单位处于精英等级时硬编码开启该效果。

FIREPOWER

单位攻击力加强(武器的Damage*[General] -> VeteranCombat=)

ROF

单位射速增快(武器ROF*[General] -> VeteranROF=)

SIGHT

单位的视力加大(Sight*[General] -> VeteranSight=)

CLOAK

单位可以隐形(Cloakable=yes)

GUARD_AREA

单位可以自动进入区域警戒(DefaultToGuardArea=yes)

CRUSHER

单位可以碾压(Crusher=yes)

SELF_HEAL

单位可以自动治愈(SelfHealing=yes)

EXPLODES

单位可以爆炸(Explodes=yes)

RADAR_INVISIBLE

单位可以不被雷达检测到(RadarInvisble=yes)

SENSORS

单位可以检测隐形单位(Sensors=yes)

FEARLESS

单位被杀伤时不会匍匐(Fearless=yes)

C4

单位拥有C4炸弹,TS残留,在RA2/YR中仅更改单位攻击建筑时的光标而不实际赋予绑炸弹的能力(C4=yes)

TIBERIUM_PROOF

单位可以免疫矿,TS残留无效(TiberiumProof=yes)

VEIN_PROOF

免疫泰伯利亚藤蔓,TS残留无效(ImmuneToVeins=yes)

TIBERIUM_HEAL

单位可以在泰矿上被治愈,TS残留无效(TiberiumHeal=yes)

原版缺少升级后免疫辐射、免疫超时空传送、免疫毒气、免疫精神攻击、免疫心灵控制的效果,Ares已补充并拓展,还给了单位升级后变成另一个单位的功能可以更方便的支持其他可设定的效果

--------------------------------------------------

EliteAirstrikeTeam =

精英鲍里斯召唤空袭的数量

EliteAirstrikeTeamType =

精英鲍里斯召唤空袭的飞机

EliteAirstrikeRechargeTime =

精英鲍里斯召唤空袭的间隔

ElitePrimary =

填武器名。这个代码指定单位精英时使用的主武

EliteSecondary =

填武器名。这个代码指定单位精英时使用的副武

EliteOccupyWeapon =

填武器名。这个代码指定步兵精英时使用的驻军武器

EliteWeaponX =

填武器名。这里的X指的是武器序号。这个代码指定精英级别多武器单位使用的武器

EliteStage1 =

EliteStage2 =

EliteStage3 =

EliteStage4 =

EliteStage5 =

EliteStage6 =

盖特武器[X]阶保持到计数器达到多少后转到下一阶,这里的[X]有效范围受制于WeaponStages的值

最后一阶由于不存在下一阶所以会保留当前阶段,想要跳到第一阶往往使用一个FireOnce的武器搭配RateDown=0来实现,但是会丢失原目标需要重新索敌,Ares引擎允许语句控制最后一阶跳转第一阶,详见Ares说明书

EmptyReload =

填时间。这个代码指定单位弹药完全用完后重装弹药的所耗时,覆盖Reload

原版下每次只能装1枚弹药,Ares允许定义

EMPulseCannon =

填yes或no。这个代码指定建筑可否用EMP武器。EMP武器是从TS遗留下来的。原版引擎无效,残留[硬编码]:EMPulseCannon=yes时该建筑不会主动发射它的Primary

Engineer =

该步兵是否为工程师。强制单位不会主动攻击和寻敌,并且无法在目标对象上显示攻击光标

当然手动攻击地面依然是可行的,在不使用[TechnoType] -> PreventAttackMove=yes禁用的情况下移动攻击也仍可生效

EnterBioReactorSound =

复制中心回收的声音,实际只读全局,PhobosBuild47已修复

EnterGrinderSound =

部队回收厂回收的声音,实际只读全局,PhobosBuild47已修复

EnterTransportSound =

填Sound.ini中定义的声音名。这个代码指定的是单位进入运兵单位时的声音

EnterWaterSound =

进入水域时的声音,仅步兵可用

ExitCoord =

格式X,Y,Z。这个代码指定的是战车工厂或兵营制造出的单位初始创建的位置,例如https://www.bilibili.com/opus/637024588733087767

事实上兵营的出厂位置由[GDIBarracks|NODBarracks|YuriBarracks]那三条控制

战车工厂需要WeaponsFactory=yes才会尊重这句的设定,对于地面载具由于还有一个开出去的行为所以会瞬移到厂内通道

Explodes =

该单位死亡时是否会爆炸,主要效果是引爆死亡武器,具体规则见[TechnoType] -> DeathWeapon=一句

同时爆炸必然同时杀死所有载员、建筑在拔起与出售时也会正常引爆(Phobos允许更改这一行为结果)

Explosion =

爆炸时播放的动画会从该序列中随机选取,建筑则是每个格子都会单独随机一个来播放

对于[TechnoType] -> BalloonHover=no的Jumpjet载具会死亡时播放一次落地时再播放一次,对于[TechnoType] -> BalloonHover=yes的Jumpjet载具则是将落地那次替换为引爆[TechnoType] -> DeathWeapon=的武器

在原版中由于地图上仍然存在的实体在死亡过程中还能因为其他所属方败北之类的方式死亡,这种情况还可能在中途额外多播放一次

当用于[TechnoType] -> Explodes=yes的载具且被摧毁时弹药未打空则强制使用列表中最后一条,这也包括不使用弹药逻辑([TechnoType] -> Ammo=-1,无限弹药)的情况

一种特殊情况下因为特殊设定启用了DeathWeapon而导致了Explosion被隐藏,这种情况下只是不绘制而TrailerAnim还是SpawnsParticle均正常执行,虽然一般也不会有人遇到这种情况

ExtraPower =

填数值。这个代码指定建筑特殊状态更改的额外电力

原版的使用实例是裂缝产生器与尤里电厂,且这两个逻辑可以共同使用,但工作方式略有不同

1.决定了部署行为(需要裂缝产生器相关逻辑)所改变电力值,可以使用一个负值进行设定,也就是部署后增加耗电量

2.设定了每有一个单位单位进入这个建筑所提供的额外电力

对于裂缝部署行为的ExtraPower,当电力低于-ExtraPower的情况下无法部署,已部署的会落回非部署状态

也就是如果使用了一个+50的ExtraPower那么基地欠电超过50点(当前电力<-50)的时候会禁用部署

同样也可以用-2147483647完全禁用一个建筑的部署(要求当前电力富余值达到2147483647)

对于生物科技发电的ExtraPower如果使用了一个负值那么进入单位不会对电力值造成影响

注:ExtraPower不会改变电力条的总长,只会改变绿色部分相对于现有电力条长度的占比

注:对于不使用GapGenerator的生物科技发电其部署释放单位效果不会受当前电力值限制

Enslaves =

奴隶矿场的奴隶类型,填步兵,当建筑被摧毁时奴隶会被释放

-F-

Factory =

填下表中的对应项。这个代码指定工厂类建筑的生产类型

------------------------------------------------

InfantryType 步兵工厂,一般用在兵营

UnitType 战车工厂,一般用在重工

BuildingType 建筑工厂,一般用在基地

AircraftType 战机工厂,一般用在机场

注意:哪怕一个建筑纯粹用于生产Aircraft而Helipad=false不作为停机坪,那么它也仍然要有NumberOfDocks设置来避免生产卡住

此外原版下任何一个Factory类建筑都会被计入同类的多工厂加成中,也就是你可以在Ares中靠某个建筑存在时Deliver一大堆Factory=UnitType的假建筑来制作生产加速效果,Phobos已允许设定特定建筑被多工厂加成排除在外

------------------------------------------------

注意:

1、VesselType已经不再使用

2、船厂为Factory=UnitType+Naval=yes

并且对于Teleport的VehicleType会直接将其传送到集结点而不是需要先Drive到集结点后才开始使用Teleport

3、 CloningType可以使用但没有什么效果

4、如果AI已经没有了任何Factory类建筑,并且一段时间内没有被攻击,那么它就会开始卖家冲锋(然后被快速游戏毙了)

只有[BuildingTypeArt] -> Buildup=层面上禁止出售才能保留一些建筑,不让玩家直接爽到。Phobos已允许【全局】层面控制是否出售和是否冲锋以及执行这个操作的延时

Fake =

填yes或no。RA1残留无效,Ares已复原,详见说明书

Fearless =

该步兵是否不知道害怕。实际上这个语句的真正效果是让单位保持特定状态

例如[InfantryType] -> Cyborg=yes的步兵需要这句来让自己在匍匐状态(断腿)状态下不会自动站起来

对于[InfantryType] -> Fraidycat=yes的步兵若有这句则永远不会解除惊慌失措乱跑的效果

如果[InfantryType] -> Locomotor=Jumpjet,那么该语句会导致[Warhead] -> ProneDamage=参与杀伤计算

注:原版[BORIS]下并没有此句,其不会趴倒是依靠在artmd.ini中为步兵图像设置[InfantryTypeArt] -> Crawls=no实现的

Fighter =

仅用于战机类单位,控制是否在开火前跳过额外检查,例如TS中的战机需要与目标保持武器[Weapon] -> Range=设定的距离来悬停然后朝向目标进行开火,在RA2中添加[AircraftType] -> Fighter=yes即可跳过这一步骤使得只要满足射程等基础设定即可开火

对于[TechnoType] -> Locomotor=Rocket的战机(即导弹类)介于其特殊的运动方式几乎无法保持在上述条件点所以如果你希望让导弹类开火那么添加[AircraftType] -> Fighter=yes几乎是必要的,尤其在[TechnoType] -> MissileSpawn=no而导致五连发有时都无法稳定触发的情况下

不过这句实际上也是导致战机抛双弹(甚至三弹)、开火有个随机前摇、开火时扭一下身子的元凶

FlyBy =

该战机是否会飞越目标,可以避免开火前扭一下身子

此外还有一个附加效果是让战机可以保持当前朝向降落而不是要转向全局或建筑的方向

FlyBack =

看程序里会在设为yes时一些禁用相对复杂的寻路与移动行为,原版中仅用于导弹子机

FireAngle =

单位炮管的倾斜度。256分圆,64为90°垂直于地面,默认10所以如果使用了炮管并希望无角度请记得手动调为0值

在特定方向上存在视觉上突然变成FireAngle=0的问题,然而这个功能到RA2以后本就是纯粹的视觉效果,所以直接当这逻辑半残好了

FirestormWall =

填yes或no。这个代码是从TS遗留下来的,残留效果让建筑可通行单位,Ares已复原整套逻辑,并将可否通行的效果分离出了单独的语句,详见说明书

FlightLevel =

填数值。这个代码指定空军单位的飞行高度,同时要有Locomotor=Fly的设定。默认全局值

如果低于207那么会被影响空地判定,此外低于207高度的机场战机只有打空弹药后才会坠毁

并不会因为没有机位而坠毁,同时也无法正常探开黑幕,且弹药没打完就摧毁目标那么YR下会飞向地图边界

若设为-1则为默认值,若设为0则无法响应指令且在狩猎者上强制表现[General] -> HunterSeekerDetonateProximity=0时的效果(无法成功触发)

可以为负数,在地下,但开火踹乘客乘客会带着降落伞闪现到地面,并且直线飞到地图边界或高度变化时才转弯,停下时会达到0并不再接受指令

竖直方向提升的最大速度与当前高度与该值的差有关,对于[TechnoType] -> IsDropship=yes的单位最大每帧16,否则无乘客最大每帧20有乘客最大每帧10

ForbiddenHouses =

填国家名。这个代码指定该单位不能被指定的国家所建造,即使指定的国家所有条件都满足了

Fraidycat =

该步兵在受到打击后是否会做出逃跑动作。逃跑的动作由Art.ini中步兵的Sequence中的Panic=指定

FreeUnit =

填载具名称。这个代码指定建筑建造后是否附带1个单位,原版用于矿厂

所赠予单位的生成地点硬编码按SpeedType=Wheel来寻找可用单元格

赠送单位的造价不能高于建筑,否则覆盖建筑造价

此外,如果多个工业工厂叠加造成建筑或载具至少任意一个的价格过低会导致FreeUnit不工作

这个语句附带将对象注册进VehicleTypes中的效果

也就是填写BEAG或APOC,APOC相当于向[VehicleTypes]中注册了名为[BEAG]和[APOC,APOC]的两个载具

并导致地图编辑器等使用注册Index序号的地方错号

出于对部分新手创造力水平的敬佩特注解上述示例

Phobos早期版本的CreateUnit也是如此,后来的版本去掉了这个效果并且生成的类型不再仅限载具类

FactoryPlant =

这个建筑是否是工业工厂,开启下面的这5个语句,Ares允许在单位上再单独定义一个倍率与此处相乘以微观控制

[BuildingType] -> InfantryCostBonus=<float>

[BuildingType] -> UnitsCostBonus=<float>

[BuildingType] -> AircraftCostBonus=<float>

[BuildingType] -> BuildingsCostBonus=<float>

[BuildingType] -> DefensesCostBonus=<float>

这五句用于设定工业工厂建筑导致的特定类型单位价格倍率,例如原版工业工厂第二项为0.75故载具生产成本*75%

-G-

GapGenerator =

填yes或no。这个代码指定建筑是否为“黑幕产生器”

GapRadiusInCells =

填数值。这个代码指定“黑幕产生器”建筑产生的黑幕半径。要和GapGenerator=yes配合使用

Gate =

填yes或no。这个代码指定建筑是否为“门”型建筑,已方单位进入已方的“门”型建筑时,“门”型建筑就会打开。另外敌方间谍伪装进入时,已方“门”型建筑也会打开

GateCloseDelay =

填时间。这个代码指定“门”型建筑关闭的所花时间。要和Gate=yes配合使用

GDIBarracks =

填yes或no。这个代码指定该建筑是否为盟军兵营,步兵从相对建筑中心位于[1,2]的格子离开建筑,用来给AI判断的。所有南北向短于东西向的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题

GuardRange =

填数值。这个代码指定该单位的警戒距离,用于围墙则代表围墙的连接距离,TS激光墙逻辑与Ares战壕逻辑的连接距离也是同理

默认的警戒距离使用当前主要武器的Range,如果指定则主副武器都使用此值而不是根据各自的Range分离计算范围,对于使用Range=-2武器的单位如果想要让它这个无限射程武器正常主动索敌那么是非常有必要的,拥有Organic=yes和Underwater=yes以及SelfHealing=yes的单位忽略该项直接使用GuardRange,例如原版巨型乌贼

如果你手动指定了GuardRange来控制警戒范围,并且GuardRange大于武器的Range,那么你应当与DefaultToGuardArea=yes搭配使用,以便单位进入区域警戒(Area Guard)然后前去迎击。否则单位会保持锁定状态但不靠近目标,由于射程够不到目标而无法开火,只能干愣着,可参考去掉DefaultToGuardArea的巨型乌贼

当然你仍可手动选中单位然后手动指定目标,用手动下令检查目标OutOfRange相关的判定来让单位接近目标并正常开火,但那也早已不是GuardRange相关逻辑的范畴了

此外原版并没有EliteGuardRange,当然你可以使用Ares的升级变形逻辑完全变为另一个单位来解决,详见Ares说明书

如果使用默认规则那么会考虑原武器实际能否射向目标,例如原武器有[Projectile] -> SubjectToWalls=yes那么默认寻敌不会越过墙类覆盖物,但是如果使用GuardRange设定相同的范围则会移动以绕过覆盖物来发起攻击

Gunner =

填yes或no。这个代码指定载具是否可以依据不同情况转换炮台。在红色警戒2中只能用在多功能步兵载具上

如果没有TurretCount则依然不会开启IFV逻辑,因为Weapon[X]系统的开启需要TurretCount>=1所以踢载员时依然是一脚全踢完

Ares修复了该BUG,现在即使不启用IFV逻辑也会保留第一个载员,但载员大于1时的格点会使用IFV的PassengerPips显示模式(把第一个放到前面)

也就是IFV位x1+载员位xN无拓展引擎的情况下仅注册名为[FV]的IFV可以显示炮塔

如果某辆IFV的武器数无法支持到IFVMode=那么程序会直接让IFV没有任何可以使用的武器

IsChargeTurret的优先级高于IFV逻辑,与其合用可像IFV一样两次踢人而不启用IFV逻辑

NormalTurretIndex =

NormalTurretWeapon =

RepairTurretIndex =

RepairTurretWeapon =

MachineGunTurretIndex =

MachineGunTurretWeapon =

FlakTurretIndex =

FlakTurretWeapon =

PistolTurretIndex =

PistolTurretWeapon =

SniperTurretIndex =

SniperTurretWeapon =

ShockTurretIndex =

ShockTurretWeapon =

ExplodeTurretIndex =

ExplodeTurretWeapon =

BrainBlastTurretIndex =

BrainBlastTurretWeapon =

RadCannonTurretIndex =

RadCannonTurretWeapon =

ChronoTurretIndex =

ChronoTurretWeapon =

TerroristExplodeTurretIndex =

TerroristExplodeTurretWeapon =

CowTurretIndex =

CowTurretWeapon =

InitiateTurretIndex =

InitiateTurretWeapon =

VirusTurretIndex =

VirusTurretWeapon =

YuriPrimeTurretIndex =

YuriPrimeTurretWeapon =

GuardianTurretIndex =

GuardianTurretWeapon =

多功能步兵车IFV专用,炮塔编号及武器编号

两句连用指定几号武器对应几号炮塔,其他XXXTurretIndex和XXXTurretWeapon同理

XXX名字代码为程序内定,原版不可新增

Ares已扩展全套逻辑,详见说明书

Grinding =

该建筑是否为部队回收厂

如果想要通过[BuildingType] -> InfantryAbsorb=和[BuildingType] -> UnitAbsorb=设no来禁止特定类型

则需要与[BuildingType] -> Cloning=yes或[BuildingType] -> Armory=yes或[BuildingType] -> Hospital=yes共用

更好的方式是见Phobos拓展的新语句

-H-

HalfDamageSmokeLocation =

填X,Y,Z的数值。这个代码指定载具冒黄烟的开始位置

HalfDamageSmokeLocation1 =

填X,Y,Z的数值。这个代码指定建筑冒黄烟的开始位置

HalfDamageSmokeLocation2 =

填X,Y,Z的数值。这个代码指定建筑冒第二个黄烟的开始位置

Harvester =

填yes或no。这个代码指定载具是否为矿车。用于[TechnoType] -> Locomotor=Teleport的载具可取消其超时空移动的硬直时间

也就是直接用于没有[TechnoType] -> Teleporter=yes但[TechnoType] -> Locomotor=Teleport的载具类单位会使其无CD超时空移动

HasRadialIndicator =

填yes或no。这个代码指定建筑是否拥有攻击范围圆弧(如机枪碉堡的那种圆弧),Ares已允许所有科技类型使用,并允许使用专门的语句指定半径,详见说明书

圆弧的半径由CloakRadiusInCells=或GapRadiusInCells=或SuperGapRadiusInCells=指定

或者也可以设定成PsychicDetectionRadius=,这是另一种雷达扫描效果(苏军的“心灵感应装置”那种圆弧效果)

仅限于BuildingType的Primary,所以盖特机炮的圆环范围不取决于WeaponX

当武器Range=-2时该操作无效

原版下这个效果只能友军可见,Phobos已允许【全局】设定

HasTurretTooltips =

填yes或no。这个代码指定运兵单位运兵时是否显示武器名称,“<多功能步兵>载具”,而且运兵量必须为1。Ares已扩展全套逻辑,详见说明书

针对该句,IFV的名称显示规则如下:

如果不存在任何步兵(Infantry)Passenger,那么载具仅显示为UIName=指定的内容

如果为VehiclePassenger,不属于InfantryPassenger规则如上

如果为InfantryPassenger,UseOwnName=yes,显示为<Passenger> <UIName>

如果为InfantryPassenger,UseOwnName=no:

若使用Tur[1],显示为{(CSFLabel        Tip:MachineGun) ([TransportVehicle] -> UIName=)}

若使用Tur[2],显示为{(CSFLabel        Tip:Repair    ) ([TransportVehicle] -> UIName=)}

若使用Tur[3],显示为{([InfantryPassenger] -> UIName=) ([TransportVehicle] -> UIName=)}

若使用Tur[X],显示为{(CSFLabel        Tip:Rocket    ) ([TransportVehicle] -> UIName=)}

在RA2中不存在[InfantryType] -> UseOwnName=yes但若主武弹头存在[Warhead] -> Bullets=yes则强制同Tur[1]规则

HasSpotlight =

填yes或no。这个代码是从TS遗留下来的,在红色警戒2和YR除了给你个005F5155以外没什么作用。Ares已复原该逻辑,详见说明书

HasStupidGuardMode =

填yes或no。这个代码指定建筑是否能够自动攻击敌方目标。填yes时不能自动攻击

实际上决定建筑使用哪一套威胁值计算方式,详见全局DumbMyEffectivenessCoefficient部分

Helipad =

填yes或no。这个代码指定建筑是否为机场建筑。入侵者一类的需要机场的空军单位就从这里制造。注意:需要停在机场的战机应该在PadAircraft=的列表中声明

Hospital =

填yes或no。这个代码指定建筑是否为医院。进入医院的受伤步兵全部都会在短时间内痊愈。

其实是从医院出来了一个一模一样的同等级步兵,出院时复制中心也会复制出另外一个一样的新兵。在尤里复仇中这个问题得到了解决

不要与兵营连用,弱智AI会倾向于这个兵是刷出来的新的单位而不是自己原本生产的单位于是一直造

注意:如果想限制升级步兵的数量,可以加入[TechnoType] -> Ammo=来限制,每进入一个步兵消耗一次弹药,弹药清零无法再进入

特殊规则见[BuildingType] -> Grinding=语句下方

YR中使用另一种医院,拥有任意[BuildingType] -> InfantryGainSelfHeal=1或更高的建筑时每隔[General] -> SelfHealInfantryFrames=帧为全场己方单位恢复[BuildingType] -> InfantryGainSelfHeal= * [General] -> SelfHealInfantryAmount=点血量直至达到[TechnoType] -> Strength=的值

HoverAttack =

填yes或no。这个代码原用于指定Jumpjet单位是否需要起飞以攻击目标,单位会在发起攻击时尝试起飞。但你也可以给地面单位使用,实际表现为打一枪移动一下(因为依然没能飞起来)

HoverPad =

填yes或no。这个代码是从TS遗留下来的

如果全局中的SeparateAircraft=no则所有带HoverPad=yes的建筑会自动生成PadAircraft=的第一个单位

HunterSeeker =

填yes或no。这个代码是从TS遗留下来的,在红色警戒2中还有部分作用

该单位可以跟踪选定的目标,但是永久禁用实际开火和移动,Ares已复原,详见说明书

HarvestRate =

采集速率,YR中用于奴隶矿工

-I-

IsGattling =

填yes或者no,该单位是否使用盖特武器系统,步兵无效

盖特逻辑即使Versus=0或LandTargeting=1导致当前武器无法发射也会继续升档

同样,它对地也不会根据LandTargeting=2换用偶数武器,你依然会看到最高阶奇数武器对地猛轰

注意:盖特逻辑单纯依照对地奇数武器对空偶数武器来处理,无法在奇数武器攻击不了时使用偶数武器,Phobos已硬编码改为允许

升档使用计数器实现,即处于开火状态每帧+RateUp,没有目标每帧-RateDown

通过这样的机制控制计数器的增减,当计数器超过Stage[X]指定的阈值后切换为[X+1]阶段

也就是说

WeaponStages=3

Stage1=100

Stage2=200

Stage3=300

代表计数器累加到100/200/300时进入第2阶段/第3阶段/保持3阶(因为没有4阶段可供3阶段升阶)阶段

不是第一阶经过100帧后到第二阶,第二阶经过200帧后到第三阶

这也是旧时代实现一个单位多种武器的一种方法,成品参考https://www.bilibili.com/opus/955527925895004169

原理释义如下:

[VehicleType]

IsGattling=yes

Weapon1=FakeWeapon

Weapon3=Comet

Weapon5=120mm

Weapon7=M60

Weapon9=120mmx

WeaponCount=10

WeaponStages=5

Stage1=1

Stage2=1

Stage3=1

Stage4=1

Stage5=1

RateUp=1

RateDown=0

[CometWH]

Verses=0,0,0,0,0,0,1,1,1,0,0

[AP]

Verses=0,0,0,1,1,1,0,0,0,0,0

[SA]

Verses=1,1,1,0,0,0,0,0,0,0,0

[ApocAP]

Verses=0,0,0,0,0,0,0,0,0,1,1

那么由于一开火计数器立即达到1而所有阶段全开

由于Versus为0所以高阶武器攻击某个目标时会向下切回低阶武器

那么从弹头比率上区分类型靠盖特系统计数器武器选用规则来切换

上面的FakeWeapon是一个抹掉所有特殊效果Verses全100%的假武器,用于初始锁定目标和升阶

因为盖特的第一阶武器必然会先待命发射一次,哪怕StageX=0或RateDown<0初始累加计数器,那么也会先射一发一阶武器再跳到计数器所决定阶段的武器

ICBMLauncher =

同时也决定载具通过DeploysInto部署成该建筑前是否转向正东方

部署转向规则见[BuildingType] -> Artillary=一条下方

InfantryAbsorb =

该建筑是否允许步兵进入,同时开启特殊的建筑工作动画效果,即根据是否有步兵进入分别使用ActiveAnim1和2,不过3和4以及IdleAnim并不受影响

在建筑有[BuildingType] -> Cloning=yes或[BuildingType] -> Armory=yes或[BuildingType] -> Hospital=yes时使用特殊规则

Phobos已更改规则,详见Phobos说明书

IdleRate =

填数值。单位空闲动画播放速率,素材中每帧实际播放多少帧。可用于shp载具vxl载具,默认0,静止时不播放。对于直升机起降相关的见Ares说明书中[TechnoType] -> AirRate=一条

IFVMode =

填多功能步兵载具的相关炮台数值。这个代码指定步兵进入多功能步兵载具后多功能步兵载具的状态

IgnoresFirestorm =

填yes或no。该单位是否无视火风暴墙,TS残留无效,Ares已复原,详见说明书

Image =

填Art.ini的图象定义名。这个代码指定该单位的图象

不设定时即和Art.ini中的名称相同。注意:Art.ini中的单位名称应该和单位对应的素材(SHP、VXL/HVA)名称相同,否则会无法显示单位的图象只会显示图标

重要问题:原版很多数据直接读取同名ART段落而非Image指定的ART段落,例如[A]Image=B则Foundation会先找ART中[A]的Foundation而不是[B]的

ImpactLandSound =

填Sound.ini中定义的声音名。这个代码指定单位被摧毁落地时的声效,如果有Crashable=no会半空爆炸

ImpactWaterSound =

AircraftType撞到水上的音效,已在全局定义默认值

Immune =

填yes或no。这个代码指定单位是否会受到损害

当为yes时单位为无敌状态,任何损伤都没有用。一般用于桥梁维修小屋一类的重要建筑

仅限物理伤害,心控/时空等特殊武器需要单独调用免疫条目

并且在指令上仅影响玩家手动锁定,所以主动寻敌或者卡光标Bug依然可以攻击只是不掉血

ImmuneToPsionics =

填yes或no。这个代码指定单位是否免疫精神武器。注意:建筑默认yes其他单位默认no

ImmuneToPsionicWeapons =

填yes或no。这个代码指定单位是否免疫尤里气波类精神攻击武器,默认同上一句

YR下免疫神经车毒气的与否也跟随ImmuneToPsionics的设置,在Ares中可以独立控制

ImmuneToRadiation =

填yes或no。这个代码指定单位是否会受到辐射类弹头的影响

然而蛋疼的是这个标签只影响杀伤和手动索敌,所以你在原版就能见到AI家和你家的DESO激情对射,或者你的DESO靠近AI家附近开始对AI家的矿车射个不停

ImmuneToVeins =

填yes或no。这个代码指定步兵单位是否会受到泰矿废矿伤害,TS残留无效,Phobos已复原,详见说明书

Infiltrate =

该步兵能否“渗透”建筑物,然而没有任何其他效果

像C4=yes、Engineer=yes、Agent=yes、Assaulter=yes等可以独立于该语句使用,自带进入效果

不过各种针对建筑的进入和特殊攻击行为最终执行的只会有一种

大致优先级排序为[ occupier > assaulter > engineer > C4 > Ivan > agent > thief ]

InitialAmmo =

填数字。这个代码指定该单位出厂时的初始弹药数。当不设定时,初始弹药数为Ammo=的数值

由于非建筑和战机类单位创建时就会尝试补充一次弹药,所以 0 值也会初始 1 弹药,而特殊值-1为默认值即全满,因此需要使用-2来让单位初始 0 弹药

Insignificant =

填yes或no。这个代码指定该单位是否为“无关紧要的单位”一般用于平民中立单位

即在破坏时EVA不会播发EVA_UnitLost的讯息,ai也不会主动攻击它

会使建造限制(BuildLimit)、机位限制、超武、触发事件等很多逻辑失效

在YR中被心控的单位会被AI视为有效目标

* 对于可以正常播放EVA_UnitLost的单位Ares已经允许微观定义具体的EVA条目或关闭EVA播报而无需此类语句支持

注意:该句有时会导致手动建造的建筑在通过工程师占领或伤残等方式刷新状态前不显示图像

Invisible =

填yes或no。这个代码指定该单位是否无形,仅对非所属方有效,不过非所属方依然可以看到其生成的其他动画。建筑上不佳,直接用下句建筑专用的即可

InvisibleInGame =

填yes或no。这个代码指定建筑是否不能被游戏者发现和选中、攻击等,只能看见它的动画等特效。一般用于灯光建筑

可以攻击,但免疫物理伤害,不过例如海豚波的穿透伤害和粒子伤害等可以正常生效

不应该用于玩家可拥有的建筑,否则会导致重连错误(RE)

IsBaseDefense =

填yes或no。这个代码指定建筑是否为防御建筑,AI会根据选项来自动建造防御工事来防御自己,对于水上防御塔需要添加Naval=yes来让AI认识

IsChargeTurret =

该单位是否使用充能炮塔逻辑,就像原版光棱坦克这种使用Voxel炮塔的单位,攻击一次后将TurretCount所指定量的炮塔逐个播放,来表现一种下次开火前逐步充能的效果

同时这个逻辑虽然启用WeaponX系统但实际上只会使用Weapon1和EliteWeapon1,曾经也常被用于证明单武器效果,不过从PhobosBuild48开始允许使用新的多武器逻辑来在这句启用的情况下使用其他武器,详见说明书

这个逻辑下最好武器ROF>=TurretCount因为逆序播放几号炮塔是根据ROF/BurstDelayX余量结合TurretCount计算的

以原版SREF举例,炮塔素材有sreftur+sreftur[1|2|3]共4个对应TurretCount=4参数设定

如果ROF=4,那么常态使用tur,开火后变为tur3,下帧变为tur2,再下帧变为tur1,然后满

如果ROF=3,那么常态使用tur,开火后因为ROF从一开始只剩3,于是直接跳过tur3使用tur2

Phobos已允许独立每个武器和Burst独立于ROF/BurstDelayX设定控制炮塔充能动画切换的这一参数,详见说明书

IsCanine =

RA1残留无效,已被[TechnoType] -> DetectDisguise=yes取代

IsDropship =

是否为DropShip,实际上这个东西只在TS的战役里出现过,这句与吊运逻辑一样可以让FlyLocomotor的单位降落时播放一个动画,详见Locomotor词条注解

相较于吊运逻辑,这个语句不仅限Aircraft使用,并且可以禁用FlyLocomotor自带的硬编码上下浮动浮动效果,但也会引入其他硬编码效果

当这样的单位使用FlyLocomotor时升降速率最大为16,且接近地面时为6,坠毁时最大48

IsSelectableCombatant =

填yes或no。这个代码指定该单位是否能被玩家按N和M选中,也影响P选和框选,不过由于原程序发送事件的缓冲区限制因此一个指令同一帧内只能对最多128个对象下达

IsSimpleDeployer =

该载具能否部署以使用另一个武器和图像,但实际上仍然是同一个单位,例如原版武装直升机

武器使用Secondary与EliteSecondary或Weapon2与EliteWeapon2指定的副武器,盖特逻辑无法升档,光棱充能炮塔逻辑会失去武器,哪怕WeaponCount=2解开数量限制也无法手动控制其攻击,只能通过主动寻敌来开火,并且依然使用Weapon1所指定的武器

图像使用UnloadingClass=指定从哪个单位获取,例如UnloadingClass=MTNK,又由于原版MTNK使用Image=GTNK实际使用的是GTNK作为图像,因此Deployer状态下会变为GTNK

由于该标签仅对Vehicle有效,所以需要与这个标签合用的Ares的Convert.Deploy等功能也随之在实际应用范围上仅限Vehicle

事实上处于SimpleDeployer状态的VehicleType比常态BuildingType在超远程Arcing抛射体精度上问题上还要更高一些

这不会检查单位是否真正可以执行部署,因此哪怕在不能部署的情况下也可能显示为常规的允许部署光标,Phobos已允许设置

对于[TechnoType] -> Locomotor=Jumpjet/Hover且拥有[TechnoType] -> DeployToLand=yes的单位不能在水域和沙滩上部署,Phobos已允许设置

IsTilter =

该载具在斜坡上是否会倾斜,然而这个标签是废的。实际只要Locomotor=Drive(包括没钻地时的Tunnel)都会倾斜,于是原版超时空矿车静止时总是不倾斜,Phobos已修复

IsJuggernaut =

这是个FS语句,RA2/YR中就没这个语句,所以当然也不会有效果,但是因为总有人从一些老材料里抄来所以特列于此

IsTrain =

该单位是否为火车。可以碾压矿场之类可以踩上去的建筑,并且导致该载具每次转身最大转135°而不是180°(火车本来也不该在轨道上直接掉头)这也导致HoverLocomotor的火车每次转弯都会导致车距变大

如果是从工厂开出来的可能造出来就把工厂压毁了而直接在仓内暴毙开不出来

实际上一个附带效果导致它寻路时绕过建筑的路线会比较呆导致哪怕是不能开上去的也会擦边碾爆……毕竟这玩意本来就是设计于通过[VehicleType] -> MovementRestrictedTo=限制只在特定的地形上跑的

这里的碾压是实际上是硬编码每次碾压使用[CombatDamage] -> C4Warhead=指定的弹头对目标造成10000点伤害同时对自己造成20点伤害,此处的杀伤值不受该弹头[Warhead] -> Verses=与[CombatDamage] -> MaxDamage=设置影响

多个火车之间不会互相考虑,也就是扎堆移动可能互碾,碾过载具有硬编码间隔以至于可能碾漏(也可能由于移速过慢而对同一个血量够厚的对象碾多次)但碾步兵可以稳定创死,如果没有[TechnoType] -> MovementZone=CrusherAll那么可能会穿过围墙而不造成任何效果,对于地形对象则虽然能碾但只会对自己造成杀伤而目标完好无损(不是单纯视觉残留)

火车逻辑碾压一切,毕竟本来就不是所谓碾压等级,而是高度客制化的检查轨道上有没有东西如果有就一头创死。但是如果火车逻辑额外拥有碾压语句,那么再碾死目标时碾压逻辑优先执行诸如碾压触发死亡武器设定之类的效果

另外如果地图设置[Basic] -> TrainCrate=yes那么火车单位被摧毁后会留下一个工具箱

Ivan =

该步兵是否为疯狂伊文类型,涉及免疫效果无法攻击[ObjectType] -> Bombable=no的对象

此外还会强制步兵使用IvanBomb替代Attack作为攻击光标,而绑不绑纯看单位是不是步兵类以及弹头能不能绑,Ares已允许非步兵单位

InfantryGainSelfHeal =

科技医院效果,回血血量的倍率,每隔SelfHealInfantryFrames时间,步兵恢复该值*[General] -> SelfHealInfantryAmount=数量的血量,此外Organic=yes的载具也被算入

IsPlug =

该建筑是否是插件塔,用于全局IonCannonValue判定

据说在TS中该语句会判定建筑注册名是否为[GAPLUG]然后强制启用一些诸如硬改Foundation的硬编码效果,RA2中倒是似乎砍完了

IsTemple =

该建筑是否被视为神殿,用于全局IonCannonValue判定

IsThreatRatingNode =

该建筑是否为威胁评级节点,使单位智能AI更好的评定威胁级,使用default threat来取代dumb threat

然而似乎没什么卵用,强制开启

InfantryCostBonus =

步兵建造价格为原来多少倍

-J-

JumpJetTurn =

拥有[TechnoType] -> Locomotor=Jumpjet的飞行步兵能否使用正确的朝向绘制开火位置,并在移动和转向时禁止开火

JumpJet =

填yes或no。这个代码指定单位是否为Jumpjet式飞行,一般与Locomotor=Jumpjet合用,仅用于一些判定,实际运动模式由Locomotor决定

会导致单位不会自动采矿

以下语句在[TechnoType] -> Locomotor=Jumpjet且单位处于空中时使用

(也就是远距离飞行近距里步行的飞行兵仅在飞行时使用JumpjetSpeed在地上用Walk时正常使用Speed)

注:原版INI中WW大小写非常不规范,除上面两句外其余的Jumpjet系列语句第二个j均为小写

也就是原版很多单位下的JumpJetAccel和JumpJetTurnRate是无效的,实际取了全局默认值

但是你如果改回正确的标签让它生效了,你会发现WW那些无效标签填的值简直是瞎写,并且会导致并不正常的效果

JumpjetAccel =

填数值。这个代码指定飞行单位在移动中加速的比率,一般填整数

减速度为JumpjetAccel*1.5

如果写的很高会导致单位还没有抵达目的地就被减速而无法完成移动指令,例如尝试降落但永远无法降到地面而是卡在比平飞高度低一些的位置,并且会导致单位会重叠在同一个格子中,而且攻击非面向方向的目标可能会指令无效。但是以外的解决了原版的JumpjetLocomotor载具Turret=yes则炮塔始终朝向正东的问题,当然现在不需要用这种歪法了

JumpjetClimb =

填数值。这个代码指定飞行单位在越过山崖等高地及建筑时的攀升和下降速度,同时也是基础坠落速度

JumpjetCrash =

填数值。坠毁时会使用JumpjetClimb+JumpjetCrash来获得一个正方向向下的速度

如果该值没有JumpjetClimb大的话单位在建筑上坠毁时会由于落地减速而永远无法死亡

原版下JumpjetLocomotor的单位坠毁时总会转着圈掉下来,Phobos已允许定义(毕竟像《世界轴承》中RITC阵营的NMSL号空天母舰那样的大型飞行载具转着圈坠地给人的感觉实在有些太蠢了)

JumpjetDeviation =

填数值。这个代码指定飞行单位浮动的幅度

JumpjetHeight =

填数值。这个代码指定飞行单位的飞行高度,通常设置为800

即便写了低于208的值游戏也仍会确保该平飞高度高于空地判定界限,不过只要你不用[TechnoType] -> JumpjetNoWobbles=yes禁用上下浮动那么它仍可越界低于该界限而被视为地面对象进行攻击

JumpjetNoWobbles =

填yes或no。这个代码指定是否禁止飞行单位浮动。填yes时为禁止该单位浮动

JumpjetWobbles =

填数值。这个代码指定飞行单位的浮动频率,不能为0,不需要浮动请用上句

JumpjetSpeed =

填数值。这个代码指定飞行单位的平飞速度,即在没有地形影响时飞行单位的运行速度

JumpjetTurnRate =

填数值。这个代码指定飞行单位掉转方向的速率,当JumpjetSpeed/JumpjetTurnRate足够大时即可让Jumpjet像Fly那样盘旋,例如https://www.bilibili.com/opus/764036774809829440

原版写的过小可能反而瞬间转向,Ares下会崩溃

-K-

KenosisBlessedIt =

让这段代码获得Kenosis的保佑(那么先去下个KratosPP

-L-

Landable =

该战机是否能够在地上、母舰甲板或是具有[BuildingType] -> Helipad=yes的建筑上着陆,与[TechnoType] -> Spawned=yes有一些令人疑惑的联动

默认为no,所以你必须手动把它设定为yes才能让[TechnoType] -> Locomotor=Fly的单位着陆

对于不回机场(AirportBound=no&Dock=none)且Landable与Selectable任意为no的战机在目标丢失后会离开地图,例如原版伞兵飞机

LargeVisceroid =

该载具是否为大型器官兽,具有一直乱跑和一系列硬编码动作。TS残留,相关逻辑不完整,Ares已复原,详见说明书

LeadershipRating =

用于AI小队中的队长判定,选择该值最高的单位作为队长进行寻路和目标判定,该值默认为5

LeaveRubble =

填写yes或no。表示建筑死亡后会不会留下残骸废墟地表(油井,医院等),实际使用RUBBLE_OVERLAY这个覆盖物在原Foundation占用的格子上占地,需要建筑素材自身的特定帧作为图像,可自行提取原版平民建筑了解

LeaveBioReactorSound =

脱离复制中心回收的声音,实际只读全局,PhobosBuild47已修复

LeaveGrinderSound =

脱离部队回收厂回收的声音

LeaveTransportSound =

填Sound.ini中定义的声音名。这个代码指定运兵单位中的单位释放时的声音

LegalTarget =

填yes或no。这个代码指定该单位能否被直接攻击(即在不按下Ctrl键强制攻击的情况下)。典型的应用是平民的医院不能被直接攻击。注意:当按住Ctrl强制攻击时,即使你设定了LegalTarget=yes,该单位都会遭到攻击

LeaveWaterSound =

离开水域时的声音,仅步兵可用

LeptonMindControlOffset =

这个单位被心控时心灵控制线的结束点向上偏移多少,起始点是心控方FLH

YR新增,算法非常智障,竟然是用Lepton而不是Pixel而且也不是等比扩大,默认70在大多载具炮塔的位置

Locomotor =

运动模式。与单位类型无对应关系,只是通常用法

注:

以下SpeedType默认值均默认用于Vehicle或Aircraft

步兵(Infantry)无论什么Locomotor都默认Foot

{4A582741-9839-11d1-B709-00A024DDAFD1} 地面载具载具

简称Drive

SpeedType默认Wheel,若Crusher=true则默认Track

如果步兵使用且设置了一个极低的速度那么在第一次接近目标单元格时会直接停下并永远完成不了移动动作也无法用新指令覆盖这一动作

{4A582742-9839-11d1-B709-00A024DDAFD1} 悬浮载具(遥控坦克、气垫船)

简称Hover

SpeedType默认Hover

Drive与Hover在不考虑加速度和SpeedType等因素下速度比大致为14:17

被瘫痪(YR遥控坦克断电、TS的EMP和离子风暴等)会落到地面静止或坠海喂鱼

使用该Locomotor的运输单位如果SpeedType不是Hover,那么释放乘客时虽然可以D键部署正常释放,但手动释放会显示为不能部署的光标也点不下去,除非你用IsSimpleDeployer等语句让它为别的行为显示可以部署的光标,不过那就又要引入其他语句的特性了~

使用该Locomotor的单位如果速度过高那么非直线移动时的轨迹会比较飘逸,并且原版Arcing类抛射体对这类目标的落点计算会很难精确处理

{4A582743-9839-11d1-B709-00A024DDAFD1} 钻地载具

简称Tunnel

SpeedType默认与Drive相同

并不存在Underground这个SpeedType!那是DeeZire教程中遗留下来的错误!

仅当目标地块未设置[TileSet] -> AllowBurrowing=no时才可以钻取

距离目的地的距离高于 11 个单元格则会选择钻地

潜地下潜速度由[TechnoType] -> Speed= * [General] -> TunnelSpeed=定义

潜地钻地动画与音效由全局[AudioVisual] -> Dig=与[AudioVisual] -> DigSound=定义,但是由于[AudioVisual] -> DigSound=还被WW在RA2开发过程中拿去做核弹警报音效(他们为了赶Demo版直接使用了由于RA2中并不使用而被他们认为毫无意义的这个INI标签作为接口)因此不便使用,Ares对钻地动画与音效以及超武生效音效全部微观定义,并且允许分离钻入和钻出时的不同效果,详见说明书

地下水平移动速度硬编码7.5,地下水平移动深度硬编码-256

Phobos已允许微观定义地下移动的水平速度和高度(TunnelSpeed:为什么会变成这样呢?第一次有了……)

常规移动速度由单位Speed定义

原版下无法正常翻转与倾斜,Phobos已修复

步兵和战机类只要使用这一运动模式就会全程钻地,并且无视[TileSet] -> AllowBurrowing=no的限制,甚至可以从海底钻出来。PhobosBuild44扩展后步兵一钻地就会崩溃

{4A582744-9839-11d1-B709-00A024DDAFD1} 地面步兵

简称Walk

SpeedType默认与Drive相同(步兵情况见上文)

允许由Sequence的相关项控制在水里的移动图像

空投时步兵的阴影使用infshdw.shp,降落伞使用全局[General] -> Parachute=的动画,原版为parach.shp

空降仓超武的步兵在空中时,使用pod.shp,但是原版Ra2空降仓相关逻辑砍了

使用该Locomotor的步兵如果速度过低那么在向SW/NE方向移动时会总是中间想要向正S/N方向走两步再转回去

在每格上会停留 1 帧,不计环境因素下最终计算下来 Walk 和 Mech 的 7 接近 Drive 的 4。

{4A582745-9839-11d1-B709-00A024DDAFD1} 空降仓投送

简称DropPod

用于空降仓,TS残留。直接给单位用上会稳定炸裂祭天7C812FD3/7587845D

可以通过磁电弹头使用,但会留下空气墙,光标悬浮在单位上于原位置显示血条,Bug很多

载具可以用碾压和超时空碾爆,战机会崩并且极易内存损坏导致EIP只能抛出00000000或一个极大数而不是实际的崩溃地址

{4A582746-9839-11d1-B709-00A024DDAFD1} 机场飞机飞行运动模式

简称Fly

SpeedType默认Winged,然而寻路的时候实际按MovementZone=Normal和SpeedType=Track来找空地

于是因为原版[Water] -> Track=0%禁止SpeedType=Track的单位移动上去,原版战机直接点击移动到水上是无法正常执行的

也可以用于载具,但会造成一些问题,例如影子直接画在本体上

根据在Art中的Trailer可以拥有一个尾烟,然而这个尾烟哪怕降落在机场也不会停……

对于Aircraft使用该Locomotor可以使用Carryall=yes来吊运载具

* 原版雌鹿直升机是Vehicle并且Locomotor也不是这个所以Carryall无效

拥有Carryall=yes的Aircraft落地会播放名为[CARYLAND]的动画

拥有IsDropship=yes的Techno落地会播放名为[DROPLAND]的动画

最好不要用于Infantry,极易随机IE

爬升时

如果有[TechnoType] -> IsDropship=yes则最大16

否则有载员的最大10无载员的最大20

降落时

如果有[TechnoType] -> IsDropship=yes则最大16,特殊情况最大6

对于[TechnoType] -> IsDropship=no的单位,最小20最大50

坠毁时的速率变化为新的下降速率为前下降速率/20(IsDropship的额外+10)

如果有[TechnoType] -> IsDropship=yes则最大48,然后逐渐减速接近10

对于[TechnoType] -> IsDropship=no的单位,最小20最大50

当处于空中时被瘫痪(EMP/离子风暴)会直接祭天

根据Fighter的值决定是轰炸还是悬浮定点开火,Fighter=no且非五连发抛射体时为悬浮定点开火,此时遵照全局[General] -> CurleyShuffle=控制是否打一发换个位置

{4A582747-9839-11d1-B709-00A024DDAFD1} 超时空运动

简称Teleport

SpeedType默认与Drive相同

所以想要超时空移动到水上需要修改SpeedType

如果工厂具有Naval=yes,那么这个单位会生成后直接传送,而不需要慢慢开出来

原版下无法正常翻转与倾斜,Phobos已修复

{55D141B8-DB94-11d1-AC98-006008055BB5} 机甲步行

简称Mech

SpeedType默认与Drive一样

使用该Locomotor的单位如果速度较低那么会走几步改变一次朝向(WW似乎打算以此表现一种“振动”的效果https://www.bilibili.com/opus/746197069772881955),在非 Phobos 环境下还有速度限制,很多时候还不如用VXL地面载具通用的Drive

部分旧词典从DeeZire教程翻译来说这样的单位可以使用Powered,然而这个效果仅生效于TS,RA2下并不存在,但是从YR开始可以使用遥控坦克的PoweredUnit实现类似的效果

同时如果在水上下沉时会表现为竖直下沉而不是翻船

{92612C46-F71F-11d1-AC9F-006008055BB5} Jumpjet飞行

简称Jumpjet

SpeedType默认Hover

该运动模式在JumpJet和BalloonHover至少一句为yes的情况下初始生成后就会立即尝试移动升空而无需等待玩家手动发出的移动指令

这一特性也可以与Teleporter=yes结合使用来做出DriveLocomotor的单位生成后先移动一下的效果

(例如使用Ares的Deliver超武搭配一个空降仓落地动画来假拟轨道投送单位那么可以用这个特性来做内部载具类单位着陆后立即开出空降区域的效果)

矿车类单位使用该Loco会导致从重工开出来后不自动前去采矿,此外即便已有正在对接的矿车也仍可手动让另一矿车进行对接导致单位交叠然后崩溃,PhobosBuild48已修复

对于Infantry在判定某个格子能否移动上去时硬编码视为SpeedType=Hover的情况来处理,也因此Locomotor使用Jumpjet类的Infantry无法停留在建筑和悬崖上

原版部分Jumpjet单位的标签中第二个J的大小写可能是错误的(实际上只有JumpJet与JumpJetTurn两句的第二个J为大写)导致它们实际上读取的是全局[JumpjetControls]中设定的默认值

如果想要保留原版的效果直接把那几句删了或者改小写后抄上默认值即可,如果直接用原版错误标签后面WW赋的值反而会被非常不合适的数值坑到

* 2025版词典中 -J- 部分的Jumpjet*/JumpJet*类标签均为大小写正确的有效标签,可供对照

这个运动模式的单位起飞时总是突然转向正东方向,Phobos已修复

Aircraft也可以使用这个Locomotor但是如果Ammo清空则无视Crashable=no强制坠落到地面然后不死,如果弹药无限或通过其他方式避免打空则可靠Crashable=no禁用被攻击导致坠毁从而正常使用

Infantry使用该Locomotor且拥有JumpJet=yes、没有HoverAttack=yes时可以像TS中的Jumpjet步兵那样近距里(3格及以内)步行远距离飞行,若要复刻最好也不要有BalloonHover=yes以避免成为“无脚鸟”

{2BEA74E1-7CCA-11d3-BE14-00104B62A16C}舰船

简称Ship

SpeedType默认Float

{B7B49766-E576-11d3-9BD9-00104B972FE8}导弹

简称Rocket

SpeedType默认Winged

例如V3导弹,无畏导弹,雷鸣导弹。原版参数设置在[General]且无法新增,新增需要Ares

其他:

游戏硬编码单位注册名为[DESO]时强制根据脚下地面辐射残留量决定能否部署释放武器。Ares允许定义一个单位是否使用这样的效果

游戏硬编码单位注册名为[COW]时会到处乱走,无论什么Locomotor,哪怕是Teleport。Ares允许定义一个单位是否使用这样的效果

LightVisibility =

建筑对地面染色(效果类似辐射)的范围,单位为Leptons,256为一格

这个效果在读档后将无法由于建筑被摧毁消除,Phobos已修复

LightIntensity =

建筑对地面染色的强度

LightRedTint =

建筑对地面染色的红色量

LightGreenTint =

建筑对地面染色的绿色量

LightBlueTint =

建筑对地面染色的蓝色量

LaserFencePost =

该建筑是否为激光墙节点,公版引擎下墙体只能为第一个拥有下句的建筑,节点可无限

拥有此句的建筑可以在拥有下句的建筑上建造,就像加载物那样,但是会直接移除原建筑

像围墙那样根据GuardRange决定延伸距离

若不存在LaserFence建筑那么Post之间不会显示连接的格子

注:如果你单纯只是想让建筑像墙那样一造早一排大可使用Ares提供的战壕逻辑,详见2025教程包附赠的Ares说明书

LaserFence =

该建筑是否为激光墙墙体,与上句共用于同一建筑会导致崩溃

YR1.001因为WW的疏忽导致激光墙墙体建筑将始终处于不工作状态,Ares已修复

强制拥有Immune=yes的效果,但是为了防海豹还是需要添加CanC4=no的

拥有这句的建筑在摆下前会清空矿石覆盖物,哪怕实际上最后没生成成功

对应的生成时它同一单元格的实体会被摧毁,步兵强制使用电死的效果

同样,根据Post链接时哪怕中间的格子被前两句所说的物体占据也不影响建造

而手动建造时更是可以直接在存在单位的单元格上建造

你可以利用这个性质配合现代拓展引擎当中的单位BaseNormal实现类似向单位上放置加载物升级的效果

你也可以利用这个性质控制某个建筑的初始摆放设置,只不过为了摆下后正常受伤要再走一步转化

帧使用规则为(此处以ShpBuilder中的序号举例,从1开始)

1-东西方向的普通墙体

2-西端与节点相连的墙体

3-东端与节点相连的墙体

4-东西方向两个节点中间唯一一节墙体(东西方向与两个节点相连)

——

5-南北方向的普通墙体

6-南端与节点相连的墙体

7-北端与节点相连的墙体

8-南北方向两个节点中间唯一一节墙体(南北方向与两个节点相连)

————

9-16用于断电与罢工状态

————————

17-32影子帧

LightningRod =

是否为避雷针,TS残留无效,Ares已还原相关逻辑,详见说明书

-M-

MoveToShroud =

是否可以命令该单位进入黑幕里,AircraftType默认no其他默认yes

MobileFire =

该单位在移动时能否开火,若为no哪怕单位有OpportunityFire=yes也没用。默认yes

此外若为no则移动时还会暂停补充弹药,但会保留原弹药补充冷却计时器的进度

另有附加效果若主动停止移动则强写当前开火冷却,副武有IsSonic/UseSparkParticles/UseFireParticles/IsRailgun中任意一句(后三句则还要有正确定义粒子系统)则取副武[Weapon] -> ROF=的值除以4,否则 1 帧后立即可以开火

MaxNumberOccupants =

平民建筑能进驻多少人

MissileSpawn =

填写yes表示此子机单位为导弹类子机(V3、无畏),母舰发射后立即进入SpawnRegenRate

第一次开火后立即消失,而非命中撞击使用导弹参数定义的爆炸或被拦截摧毁爆出DeathWeapon

是否为导弹类子机并不限定Locomotor,FlyLocomotor的Aircraft同样可以使用,而RocketLocomotor的Aircraft同样可以删除该语句或设no来允许跟踪(每次武器开火时刷新目标位置)

没有此语句的子机生成位置只遵循FL而H无效,Ares已修复

建筑航母生成Locomotor=Rocket的子机将会导致IE,Ares已修复

拥有这个语句的子机无法追踪目标单位也不同步母舰命令,Kratos已允许,且Kratos下的导弹即便拥有这个语句(例如原版V3无畏雷鸣导弹)其武器的目标也会是目标单位而不再是地面

ManualReload =

是否可以进入一个UnitReload=yes的建筑进行装弹,与自动补充单位相叠加

建筑需要可以对接和进入也就是得是维修厂和坦克碉堡以及矿场那类的建筑

然而维修厂修残血单位后送出建筑和矿场倒矿行为都会导致无法补充弹药

战机不受该句影响

这样的单位弹药装满后会被内部额外装填一次,也就是Ares下满Ammo(Techno)时实际上开火时弹药改变量会按Ammo(Techno)+ReloadAmount-Ammo(Weapon)来算,视觉上就是第一发会消耗Ammo(W)-ReloadAmount的Ammo(T)

对应的如果Ammo(W)<=ReloadAmount就会出现满弹药下一直不消耗Ammo(T)的问题,除非有ROF(W)<<Reload(T)

MoveSound =

移动时发出什么声音,盖特武器Report使用类似的系统

MindClearedSound =

精神控制车控制的单位脱离控制的声音,YR新增

MindControlRingOffset =

这个单位被心控时心灵控制的标记动画向上偏移多少

YR新增,算法非常智障,竟然是用Lepton而不是Pixel而且也不是等比扩大,默认140在大多步兵脑袋的位置

MaxDebris =

对象被毁爆出碎片的最大量

MinDebris =

对象被毁爆出碎片的最小量

-N-

Natural =

填yes表示不能攻击带有Unnatural=yes的单位

典型运用:狗和狂兽人

Name =

填任何内容。这个代码指定该单位的注释内容,在游戏中没有实际作用。地图编辑器等其他外部工具可能会读,也可能使用自己的新读取方式,但那就和游戏自身无关了

Naval =

填yes或no。这个代码指定该单位是否为海军单位。所有海军单位都应该有Naval=yes的设置,有这个设置的单位会被船坞类建筑生产

在Factory=UnitType的建筑上使用指定这个建筑为船厂,否则为战场工厂,同时禁用ExitCoord

也就是同样有Factory=UnitType,有Naval的生产建筑生产有Naval的载具,没有Naval的生产建筑生产没有Naval的载具

对于建筑,Naval=yes会强制该建筑放置在Water地块上,而不像WaterBound那样可以相对自由的设定,Naval=yes的该效果无视WaterBound的设置(在Phobos前)而对于AI建造水上防御塔行为判定而言书写Naval是完全有必要的

巨型乌贼式寄生相关见Organic一条的注解

原版下重工和船厂会共用AI的同一条生产线,Phobos下可以分离生产

NavalTargeting =

默认0

填下表中的对应项。这个代码指定单位对海攻击规则

攻击对象位于LandType=Water或Beach的格子上时才启用

----------------------------------------------------------------

0=水下单位隐身(视为没有上浮)时无法攻击

1=对水下单位始终使用副武攻击(原版驱逐舰)

2=对水下单位使用主武攻击,其他单位无法攻击(原版反潜机)

3=对有生单位或非生物体使用副武攻击,其他单位使用主武(乌贼对雷鸣)

4=对悬浮单位或有生单位使用主武攻击,其他单位使用副武(海豹手撸乌贼却不用C4)

* 由于逻辑仅在目标位于水和沙滩上时运作,一辆SpeedType非Hover的载具在正常陆地上仍会被使用主武攻击,直到它移动到水面和沙滩上才会根据NavalTargeting=4的效果换用副武

5=对一切对象使用主武器攻击,主武无法攻击则切副武

6=对一切水上物体都无法攻击,包括水面(原版狗和恐怖机器人)

7=对一切对象使用主武器攻击,主武无法攻击则切副武

(通过解析程序运作方式得出结论:除012346外的数值都一样,也就是-1/5/7/8都是相同的效果,因此5和7也是完全相同的,Westwood在原版INI中对7的注释纯属扯淡)

水下单位指Underwater=yes

有生单位指Organic=yes

非生物体指Unnatural=yes

悬浮单位指SpeedType=Hover

注:所有步兵默认Organic=yes

----------------------------------------------------------------

LandTargeting =

默认0

填下表中的对应项。这个代码指定单位对地攻击规则。较NavalTargeting更优先

----------------------------------------------------------------

0 可以攻击陆地

1 不能攻击陆地

2 用副武器攻击陆地,并且强制不主动攻击

虽然LandTargeting=2和盖特逻辑都是YR新增的,但是WW完全没有考虑二者的配合

所以盖特依然会正常升档

-----------------------

NeedsEngineer =

填yes或no。这个代码指定建筑是否占领后才生效,如油井占领后播放动画。对应的通过更改所属等方法直接获得的建筑将无法正常工作

原版下被超时空弹头冻结过的建筑会回到未被占领的工作状态也就是NeedsEngineer重新需要一个工程师来激活一次,Ares已修复

拥有这个语句的建筑被其他所属方占领时会为原所属方播放EVA_TechBuildingLost音效,Ares已允许建筑微观定义,并且还允许占领与失去播放CSF信息文本而不仅仅是EVA警报

NoAutoFire =

填yes或no。这个代码指定该单位能否自动攻击目标,会覆盖CanPassiveAquire,不过不影响还击

NODBarracks =

填yes或no。这个代码指定该建筑(兵营类)是否为苏联方兵营,步兵从相对建筑中心位于[2,2]的格子离开建筑,给AI判断用的。所有面积为【N*N】(正方形)的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题

Nominal =

填yes或no。TS残留无效

NoShadow =

填yes或no。这个代码指定该单位是否没有阴影。当为yes时,单位没有阴影

NoSpawnAlt =

该Voxel载具在发射任意子机后是否转为使用空仓图像,例如原版V3导弹车、无畏级战舰和驱逐舰、海岸巡防艇在发射子机后会转为无导弹/反潜机的图像

空仓图像实际上是使用另一个Voxel文件来显示,例如:V3导弹车常态使用V3.VXL和V3.HVA,导弹射出后使用V3WO.VXL和V3WO.HVA,如果没有-WO的Voxel文件那么空仓时图像会消失

NoSpawnAlt与炮塔vxl使用同一存储空间,因此不能同时使用,Ares3.0版本已解决

无子机单位使用此代码会让玩家在看过来时得到一个精致的006B7D51,Ares3.0更改了逻辑运作方式不再崩溃但由于无子机又没-WO会导致图像消失,如果有-WO那么继续崩溃——然而本来就不该给无子机的单位用这个

原先这样的单位在空仓时会继续使用满仓时的影子,PhobosBuild39开始可以正确更新

NotHuman =

该步兵是否非人类,通常用于各种动物,这种单位的死亡效果不受[Warhead] -> InfDeath=的值影响而始终播放单位自身的Die1序列

NotWorkingSound =

填Sound.ini中定义的声音名。这个代码指定建筑停止工作时的声音

NukeSilo =

填yes或no。这个代码指定建筑是否为核弹井。当为yes时,才可以成功发射“核弹攻击”的超级武器。没有这句却带MultiMissile或(TS的)ChemMissile类超武则无法释放,Ares引入了其他释放方法,详见说明书

如果用于[TechnoType] -> Turret=yes的建筑,那么只要从该建筑发射了一个[SuperWeaponType] -> Type=MultiMissile的超武就会导致建筑的Mission一直保持在Missile状态以至于无法再次开火,可以用1帧EMP弹头进行刷新

NumberImpassableRows =

填数值。须配合Bunker=yes或UnitRepair=yes使用,这个代码指定建筑左侧多少列单元格不能通行载具(剩余列可通行载具)

NumberOfDocks =

填数值。这个代码指定可停载单位建筑的最大可停载量,如机场可以停载4架战机,矿厂能够停载1辆矿车

然而矿场是硬编码的一辆矿车Dock一个矿场Unload倒矿然后润掉换下一辆的,改了也没用

NumberOfWaitingPoints =

遗留自RA2开发版本的废弃语句,用于设定有多少个矿车等待位置,搭配ART中WaitingOffsetX使用,正式版中强制1辆倒矿1辆等待,等待坐标使用ART中的QueueingCell设定

NaturalParticleSystem =

该建筑拔起时生成的粒子系统

原版Bug:解除隐形时也会生成一次

NaturalParticleLocation =

粒子系统出现的位置,使用XYZ坐标系

NonVehicle =

该载具是否不被视为载具,TS残留,用于载具免疫被偷车贼逻辑影响,VehicleThief在其上会获得一个禁止进入光标,Ares下可以禁止成为被吊运的对象

无法被负伤害+正比例的武器所维修

不影响正伤害负比例和维修厂

-O-

OpenTopped =

填yes或no。内部乘客是否可以向外开火(战斗要塞)

如果IFV有OpenTopped=yes,一个载员的武器为常规武器,但IFV武器为超时空武器,那么IFV释放后由于步兵出来仍会攻击目标但由于武器不再是超时空武器非Ares环境下将导致IE

OpenTransportWeapon =

指定该单位作为战斗要塞乘客时使用哪个武器,0代表主武器,1代表副武器,默认-1,和平时一样遵照武器选用规则不被强制使用特定武器

该语句强制力较高,例如使用OpenTransportWeapon=1强制BORIS使用副武器攻击同时拥有ResourceGatherer=yes和ResourceDestination=yes的对象

那么哪怕BORIS实际上无法对这类目标开火,它也会依然使用副武器,哪怕实际上不会产生任何效果,也不会和非载员一样切换回主武器来进行攻击

Occupier =

该步兵能否进驻可驻军建筑

在RA2中步兵进驻建筑后根据所属方阵营选择使用建筑自身的主武或副武

在YR中步兵进驻建筑后使用步兵自身[InfantryType] -> (Elite)OccupyWeapon=定义的驻军武器

OccupyPip =

用于指定步兵作为驻军时的格点,可用值和效果见Pip=条目

该功能新增于YR,在RA2中硬编码使用pips.shp的特定帧,盟军12苏军11其他10

(此处以第一帧为1算)Ares允许直接指定Pip使用pips.shp中的某一帧,详见说明书

OccupyWeapon =

YR新增,步兵驻军武器

OmniCrusher =

填yes,可以碾压载具和围墙(战斗要塞)

仅Crusher=yes时工作,用于[代表]一种“更高级别”的碾压,但也不过是设定如此

此外这个语句会让载具更倾向于将目标碾毙而总是想要移动过去,哪怕速度慢的要死,Ares已允许单位上设定是否禁止这一效果,详见说明书

OmniCrushResistant =

该单位是否无法被战斗要塞碾压

注意:这与Crusher碾压Crushable并不冲突,彼此独立运作,因此实际上并不存在所谓的“碾压等级”设定

例如:Crusher=yes & OmniCrusher=yes 的载具可以正常碾死 Crushable=yes & OmniCrushResistant=yes 的载具

OpportunityFire =

该单位能否移动开火,指定此单位是否可以在执行其他操作(例如移动、采矿)时开火,原版天启没有这句所以很呆

优先级低于MobileFire一句的限制和步兵的移动状态检测

例如Jumpjet步兵在建筑上方由于JumpjetLocomotor决定的一些硬编码移动判定而无法开火(见Locomotor条目)

例如Walk步兵在移动时必须播放移动序列,而步兵序列与步兵许多动作关联,因而也常常无法移动时开火

优先级也低于Ctrl+Shift的移动中索敌效果,例如YR天启虽然没有写OpportunityFire=yes但可以通过Ctrl+Shift越过这个逻辑的规则在移动中检索到其他目标并发起攻击

不过Ctrl+Shift的优先级也低于上面Jumpjet和Walk步兵的硬限制,二者受制于移动状态直接无法发起攻击动作,更不会实际执行攻击行为

OrePurifier =

填yes或no。这个代码指定建筑是否为矿石精炼器。原版盟军矿石精炼器的逻辑

当矿车倒矿时实际所得的资金为矿车所载矿的价值 * (1 + (玩家所拥有的 OrePurifier=yes 的建筑数量 * [General] -> PurifierBonus=的数值))

对于遭遇战下的 AI 玩家,这里的 OrePurifier=yes 建筑数量还会根据其设定的难度额外加上全局[General] -> AIVirtualPurifiers=中对应的数量

例如原版冷酷 AI 在有一个矿石精炼器的情况下超时空矿车满载下一车矿的价值是 500 * (1 + (1 + 4) * 0.25) = 1125,在 Phobos 下如果开启了[AudioVisual] -> DisplayIncome=yes可以很方便的观察到

Organic =

填yes或no。是否为活体单位,同时防止乌贼寄生(会改用副武拍打),被超时空和铁幕使用[CombatDamage] -> C4Warhead=的弹头秒杀,被寄生秒杀。步兵默认yes

步兵如果另有Teleporter=yes则仍可被超时空,只要满足Organic=no或Teleporter=yes其一即可

若载具使用则该载具会和步兵一样受医院加血效果影响,并且不能像正常载具一样受到科技商店的维修效果

无法被磁电坦克的运动模式弹头攻击,直接禁用IsLocomotor=yes的弹头瞄准该对象

如果该单位还有Naval=yes并且使用寄生类([Warhead] -> Parasite=yes)武器则硬编码为巨型乌贼类寄生行为,具体表现例如寄生一个步兵不会秒杀而是每40帧对目标造成一次武器Damage指定的杀伤,并强制从[CombatDamage] -> SplashList=的列表中抽取一个以作为攻击时的效果动画,使用名为[SQDG]的Animation对象作为开火缠绕效果和缠住摇晃效果,帧序号与行为硬编码对应,帧序列使用规则见https://gitee.com/PB_LAB/YR_MIX_Cataloging_Project/blob/master/ra2.mix/conquer.mix/sqdg.shp.md。此外会使得[Warhead] -> Culling=一句能够生效,并禁止攻击陆地对象(覆盖LandTargeting与NavalTargeting),若被这个步兵拖上岸那么它会被立即弹出到相邻的水域(为什么会有被拖上岸的情况见《6.武器系统代码词典2024.ini》中[Warhead] -> Paralyzes=一条的注解)

如果该单位处于水中那么一个拥有NavalTargeting=3的单位会使用副武器对其开火

如果该单位还有Underwater=yes和SelfHealing=yes那么它会直接去使用GuardRange而不是考虑主副武器中射程更长的那个武器的射程来寻敌,同样用于原版巨型乌贼

步兵被寄生弹头秒杀另有其他判定,并非单纯设为Organic=no即可免于一死

强制死亡时不会有沉船效果

Ares下可以禁止成为被吊运的对象

Ares3.0中[Warhead] -> Culling=yes不再要求巨型乌贼类寄生行为并得到了更多拓展,详见Ares说明书

YR1.000中巨型乌贼式寄生还会判定目标是否Naval=yes,也因此YR1.000中巨型乌贼寄生遥控坦克会使用它色盘错误的武器开火动画而不是硬编码的SQDG

Owner =

生产建筑必须拥有至少一个与被生产对象相同的Owner才可以正常生产

本条目独立于Prerequisite系统,不会被PrerequisiteOverride高优先级覆盖

新阵营单位生产不了之类的Bug往往可能是错在这里

新阵营基础建筑的Owner如果设置错误会导致AI无法识别甚至直接崩溃

在Ares中由于解除了单位生产够快时多个工厂同时生产单位的限制(原版仅搜索相同注册名对象,Ares下拓展到所有同类型工厂)所以可能出现原本Owner限制无法生产某单位的工厂由于排序规则被分配用于生产这个单位,需要使用Ares的狗窝逻辑手动限制,详见说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的

Overpowerable =

填yes或no。这个代码指定建筑是否为充能建筑,该建筑进入过载模式后会转为副武攻击,典型的运用是苏军的磁暴线圈

固定 2 个武器的弹头上有[Warhead] -> ElectricAssault=yes的单位充能可以在没电时保持运作

固定 1 个武器的弹头上有[Warhead] -> ElectricAssault=yes的单位充能可以在运作时进入过载

该规则在Phobos下已允许自定义

-P-

PixelSelectionBracketDelta =

血条的高度,负值向上,仅用于非建筑类,建筑根据art中的Height计算

医院自愈与科技商店维修给予的标志并不遵循这个的设定,Phobos已修复

PowersUnit =

控制中心用,同时如果这个单位不是载具会注册一个载具,也就是这必然是个载具

只要有一个拥有PowersUnit=的建筑物PoweredUnit=yes的单位就可以保持活动

但如果是已瘫痪的单位重新唤醒,则必须是有PowersUnit=这个单位的建筑才行

原版每个建筑只能控制一个单位,Ares对此进行了扩展,详见Ares说明书

PoweredUnit =

遥控坦克用,如果没有PowersUnit=自己的建筑处于工作状态则瘫痪

PackupSound =

填Sound.ini中定义的声音名。这个代码指定建筑收回为载具时播放的声音,不设定时就为基地车收回的那种声音

Parasiteable =

填yes或no。这个代码指定该单位是否能被寄生,这里的寄生是指被像恐怖机器人一类的单位所寄生,默认yes

Passengers =

填数值。这个代码指定单位的乘客格子数量。如果要容纳占多格的单位,可以修改SizeLimit=这个代码。想要显示乘客格子需要手动添加PipScale=Passengers

注意Aircraft类单位开火会甩出乘客为伞兵,直到没有乘客了才能正常发射武器,但即便没有发射武器而是转为踹出乘客也会按执行攻击任务扣除弹药

可用武器上的Burst指定一次踹出多个乘客,也可以用MovementRestrictedTo配合Ares的InitialPayload让乘客实际上无法被踹出把开火交给乘客

如果乘客是通过Ares的初始载员逻辑塞的那么踢完乘客也仍然无法正常开火

拥有乘客的Aircraft起飞时竖直方向最大速度会减半、并且有专门的运输行为使得只要这种战机闲置就总是会尝试回到机场或(没有机场则找个)友军单位附近降落,且有时会阻碍战机降落到机场,当然你可以用SlowdownDistance来一定程度上避免这种行为

在TS中Vehicle无法作为Passenger,这在RA2开始允许,原版下也仅有Infantry类可以手动进入Aircraft而Vehicle会卡在Enter中始终进不去并且选中立即失去选中效果,Kratos解除了这一限制

Passive =

该载具是否【禁止】自主移动,可以尝试发起移动动作但无法实际执行移动行为,在火车车厢上使用以使其老老实实跟着车头跑

PermaDisguise =

填yes或no。这个代码指定伪装单位是否可以在移动中不会破坏自己的伪装。典型的运用是间谍,间谍在移动中不会轻易被敌人识破

如果载具使用这句那么他会使用Allied/Soviet/ThirdDisguise=的步兵图像而非DefaultMirageDisguises并且由于shp载具和shp步兵的序列书写方式不同在移动时他会像一个没写序列的shp载具那样从一直播放(旋转)

PhysicalSize =

指定步兵的Z-fudge值,所有步兵都应该设为1,具体功能未知

Pip =

填对应颜色名。这个代码指定步兵进入运兵单位后下面小格显示的颜色,在红色警戒2中有green、yellow、white、red和blue

尤里的复仇中额外添加persongreen、personyellow、personwhite、personred、personblue、personpurple几个颜色可供选择。默认为green

步兵作为驻军时使用[InfantryType] -> OccupyPip=标签指定,一般使用尤里的复仇中新增的6种,但也不妨碍你用点别的

由于基于TS引擎开发RA2的过程中WW引入了一些代码错误,从RA2开始地图内置单位时必须重新指定这个标签,否则会显示成错误的效果,Ares已修复

Pip与OccupyPip可用值在pips.shp与pips2.shp中的序号规则如下(从00开始):

empty 00 00 pips.shp为建筑菱形方块,pip2.shp为4x4空心小方块

* 仅限TS,RA2YR中不支持Pip=empty工作

green 01 01 pips.shp为建筑菱形方块,pip2.shp为4x4小方块

yellow 02 02 pips.shp为建筑菱形方块,pip2.shp为4x4小方块

white 03 03 pips.shp为建筑菱形方块,pip2.shp为4x4小方块

red 04 04 pips.shp为建筑菱形方块,pip2.shp为4x4小方块

blue 05 05 pips.shp为建筑菱形方块,pip2.shp为4x4小方块

persongreen 07 07 pips.shp与pips2.shp均为人形标志

personyellow 08 08 pips.shp与pips2.shp均为人形标志

personwhite 09 09 pips.shp与pips2.shp均为人形标志

personred 10 10 pips.shp与pips2.shp均为人形标志

personblue 11 11 pips.shp与pips2.shp均为人形标志

personpurple 12 12 pips.shp与pips2.shp均为人形标志

此外,Ares允许直接指定Pip使用pips2.shp中的某一帧,详见说明书

PipScale =

填下表中的对应项。这个代码指定单位下方小格显示的类型。注意:小格数量在特殊状况下PipWrap=指定

---------------------------------------------------------------------------------------------------------

Passengers 乘客,小格数量由Passengers=这个代码的数值指定

Ammo 弹药,这里不是小格表示而是竖线方式表示,小格数量由Ammo=这个代码的数值指定

Power 电力,实际上从TS开始就没用,大概是WW开发阶段设计如此但最后选择了工具条

Tiberium 矿石,只能用在矿石精炼厂和采矿车上,小格数量由Storage=这个代码的数值的 逻辑 指定

Mindcontrol 心控目标数量,用于心灵控制单位,小格数量表示已经控制了多少格

注:子机格子并不受PipScale控制,想要禁止显示请使用Phobos,详见说明书

---------------------------------------------------------------------------------------------------------

PipWrap =

填数值。这个代码指定单位下方显示的小格的数量限制,不同阶段会用不同颜色表示,如弹药,不同阶段由不同颜色表示弹药的数量。要和PipScale=Ammo连用

PitchAngle =

填数值。指定此单位在飞行时向前倾斜的量。默认为20.0度

仅为图像效果,但实际飞行动作的仰角还是取决于Speed和FlightLevel

PitchSpeed =

填数值。指定此单位向前(PitchAngle)与向侧边(RollAngle)倾斜所需的速度百分比下限。默认为0.25

用于Locomotor为Fly或Jumpjet的单位,令其仅在(当前Speed/[TechnoType] -> Speed)大于PitchSpeed的比率时才会倾斜

PlaceAnywhere =

填数值。这个代码指定建筑的建造是否不会受到场地的影响,如凹凸等。当为yes时,建筑可以在任何场地建造。然而仍然受到Adjacent的限制

Points =

遭遇战积分统计数据,无实际意义,尤其并【不】影响经验计算,经验计算看的是Cost

Power =

填数值。这个代码指定建筑单位生产的电力。当为正数时,则为供电

Powered =

填yes或no。这个代码指定建筑单位是否会受到停电后影响,如不能使用武器、建筑动画不能播放等。

如果想设定建筑受到停电影响后可以继续播放动画,可以设定Art.ini中的ActiveAnimPowered=no,反之则设定为yes

如果Power>0又Powered=yes,建筑动画没有ActiveAnim[N]Powered还是会傻掉,需要手动设置

PowersUpBuilding =

指定该加载物可以加载到其上的主体建筑

拥有这个语句说明这个建筑是个加载物,也就是附属建筑

它只能放在主体建筑上面,不能放在空地或其他地方的建筑,同时原版下这样的建筑存在算法错误导致无法正常作为先决条件,Ares已予以修复

需要配合Upgrades与下句,可以参考TS中的组合塔

注意:如果加载物有武器,那么加载后将会表现为主副武器同时开火,但是副武器往往只能使用Arcing类

由于建筑使用主武射程,若主体建筑没有主武器而加载物也不赋予主武器,那么主体建筑原有的副武器还是通过加载获得副武器都是无法开火的

此外,第一个有武器的加载物其主武会覆盖主体建筑的参数

1.主体 Primary=none & Secondary=none

-1.如果PowersUp[1]给予Secondary,则如上文所述,并且PowersUp[2]摆大烂

-2.如果PowersUp[1]给予Primary,则可以开火,并且还能通过PowersUp[2]再加个Secondary

-3.也可PowersUp[1]一次性给予Primary与Secondary

其他组合暂不全列于此,可先自行测试,不排除拓展引擎下药修改结果

也就是如果先后加两个带武器的加载物分别给予主武器和副武器,那么需要先加装给予主武器的加载物,否则也无法刷新Range以进行开火,然而建筑原本拥有副武器由加载物提供主武器那么是可以开火的

PowersUpToLevel =

用于加载物建筑,指定这个加载物建筑的编号

可用1/2/3分别对应主体建筑Art中PowerUp1/PowerUp2/PowerUp3关联的动画

只能到3,因为程序内只做了3种,实际是TS遗留来的逻辑,只不过依然能用(勉强)

然而~~~很可惜的是在Phobos修复前这个对应关系并不是那么的一致。AlexB:真该把WW的程序员装进大炮里发射到太阳上

如果此值为1/2/3则同时也代表建筑已经从3种中选择了1种而无视主体建筑的Upgrades禁止其他加载物继续加载

特殊值-1代表自动适应,也就是使用排队模式,这种情况下对同一建筑加载的上限遵循主体建筑的Upgrades

而-1时对于上面PowerUp1/PowerUp2/PowerUp3则会在前三次每加载一次启用与次数相同的编号对象

对于玩过TS的玩家来说就很好讲了,用-1就是GDI发电厂,用1/2/3就是GDI插件塔

不过GDI插件塔使用不同炮塔的效果还有一些内部硬编码支持

可以前往RA2DIY论坛https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=14548进行了解

Prerequisite =

填建筑名。这个代码指定该单位制造时所必须的建筑,当已方没有这些建筑时该单位不能建造

也可以填写先决条件组组名,在全局PrerequisitePower=前后部分,只要拥有组中任意对象即视为满足其中一个条件

例如Prerequisite=RADAR,NATECH就是拥有PrerequisiteRadar=列表中任意建筑+NATECH即可生产,以下是原版的先决条件组组名表:

------------------------------------------------------------------------------------------

RADAR 雷达类建筑,这种类型的新建筑应该同时在PrerequisiteRadar=中注册

BARRACKS 兵营类建筑,这种类型的新建筑应该同时在PrerequisiteBarracks=中注册

TECH 科技类建筑,这种类型的新建筑应该同时在PrerequisiteTech=中注册

PROC 矿厂类建筑,这种类型的新建筑应该同时在PrerequisiteProc=中注册

YR中PrerequisiteProcAlternate=的载具也会被考虑在内

POWER 发电厂类建筑,这种类型的新建筑应该同时在PrerequisitePower=中注册

FACTORY 战车工厂建筑,这种类型的新建筑应该同时在PrerequisiteFactory=中注册

原版引擎无法新增先决条件组,需要使用Ares

也无法添加更多PrerequisiteProcAlternate那样使用载具作为先决条件的效果,需要Ares

也无法使用战机和步兵作为先决条件,需要Ares

也无法正常使用加载物作为先决条件,需要Ares

------------------------------------------------------------------------------------------

PrerequisiteOverride =

填建筑名。这个代码指定该单位可以在Prerequisite=之外另外指定必须建筑,相当于第二个Prerequisite=的作用

但列表中的单位是或的关系,也就是只要当列表中的单位满足任何一个时,强制允许建造,无视其他条件

优先级过高,存在许多无视其他限制的Bug,慎用

PreventAttackMove =

填yes或no。决定此单位是否支持移动警戒(ctrl+shift)

对于有Primary的单位默认为yes

PreventAutoDeploy =

遗留自RA2开发版本的废弃语句,这个代码指定该单位是否能够自动部署

Primary =

填武器名。这个代码指定该单位的主武,也就是所谓的主要武器、第一武器

对于AI而言如果基地正在受攻击(无论杀伤的来源是哪个所属)都会将拥有武器的建筑优先建造

ProduceCashAmount =

填数值。这个代码指定建筑在每隔固定时间就会给拥有者多少资金。典型的运用是科技钻油井。这里的时间由ProduceCashDelay=这个代码的数值指定

ProduceCashDelay =

多长时间给予玩家ProduceCashAmount量的金钱,超时空弹头打断油井效果相关的描述见NeedsEngineer一句下方

ProduceCashStartup =

填数值。这个代码指定当该建筑被占领时占领方获得的资金。典型的运用是科技钻油井

如果一次扣完现有资金,那么现有资金会正常的从0开始,而不是从负数开始

ProtectWithWall =

填yes或no。这个代码指定建筑在AI使用时是否会被围墙围住,该围墙由当前选择的国家的所属阵营来决定,也可以通过设定AIBasePlanningSide=来指定

PsychicDetectionRadius =

填数值。这个代码指定探测敌人动作的半径范围。典型的运用是苏军的“心灵感应装置”

Pushy =

配合DirectRocker=使用

确定该单位是否能够在“推”另一个对象后再次移动和发射

用于武器有一个已设置DirectRocker=yes弹头的单位

PlayerReturnFire =

玩家控制该单位时单位是否会主动的还击

例如AI一个单位攻击了玩家控制的一个单位,并且该单位PlayerReturnFire=no,那么即使它有CanRetaliate=yes也不会发起还击

PoweredSpecial =

该建筑被镭射幽浮或间谍断电而进入LowPower状态时是否播放LowPower动画,相关语句可见ART中+PoweredSpecial相关

-Q-

没有收录以Q开头的语句

-R-

RateUp =

攻击状态时盖特计数器每帧增加多少

RateDown =

非攻击状态时盖特计数器每帧减少多少

如果填负数则在无目标时仍旧累加计数器

如果填0实际上并不能保持档位而是瞬间清零

RadialFireSegments =

用于扇形开火,抛体射出方向水平转动的次数,从0到180度(神盾导弹发射时呈扫射状),配合抛射体中的CourseLockDuration效果更佳

每次转动的角度无法自定义,只会使用180°/RadialFireSegments

可以用弹药逻辑中途切无弹药武器简单模拟

如果写1的话会只能向正右侧开火(炮斗术!)

Radar =

填yes或no。这个代码指定建筑是否拥有雷达功能

对于一个没电的建筑,如果使用Ares3.0电池超武的过载逻辑,哪怕依然没电,这个建筑的雷达也会正常工作

RadarInvisible =

填yes或no。这个代码指定该单位是否会被敌方雷达检测到,效果是敌人无法在小地图看见该单位

在Invisible、InvisibleInGame等逻辑中也都自带相同效果

注意:这是让原本会显示的对象不显示,如果是原本就不显示的对象开启显示需要用下句

RadarVisible =

填yes或no。这个代码指定该单位能否在非己方雷达上显示,原版用于让[ObjectType] -> Insignificant=yes的科技建筑也正常显示在玩家的雷达上

RadialColor =

无效语句,雷达上实际使用该建筑所属方的颜色,或者是遭遇战设置时的颜色

Refinery =

填yes或no。这个代码指定建筑是否为矿石精炼厂。给AI判断用的,比如AI会指定部队围着矿石精炼厂打。如果是Factory(包括Cloning)那么会强制无法将单位生产出来

RefinerySmokeOffsetOne =

填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第一个位置

RefinerySmokeOffsetTwo =

填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第二个位置

RefinerySmokeOffsetThree =

填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第三个位置

RefinerySmokeOffsetTwo =

填X,Y,Z的值。这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的位置,这是第四个位置

RefinerySmokeParticleSystem =

填粒子系统名称,这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的类型,只能填一个

RefinerySmokeFrames =

填正整数类型值,这个代码指定矿石精炼厂在接受采矿车的矿石后冒烟的时间,单位为帧

ReadinessReductionMultiplier =

填数值。这个代码指定该单位的损害乘法器。要和DamageReducesReadiness=yes连用

RejoinTeamIfLimboed =

填yes或no。用于武器拥有LimboLaunch=yes的单位,这个代码指定处于一个team中的该单位limbo消灭目标后unlimbo时是否归队。通常用于寄生单位

ReselectIfLimboed =

填yes或no。用于武器拥有LimboLaunch=yes的单位,这个代码指定该寄生单位寄生前若处于被选中状态并且没有其他动作那么它从目标身上Unlimbo返回时是否仍是被选中状态,如果为no那么狗和恐怖机器人每寄生击杀一个目标你都要重新手动选中它一次

Reload =

填数值。这个代码指定该单位装填弹药的所需帧数。如果为0那么会立即装回

当弹药空仓时转为使用EmptyReload的值

原版下每次只能装1枚弹药,Ares允许定义

载员无法在载具内装弹,Phobos已修复

ReloadIncrement =

填数值。指定装弹速度根据PipWrap的修正值,默认0

公式:真reload帧数=Reload + ( ReloadIncrement * ( 当前弹药数 / PipWrap )^2 )

Repairable =

填yes或no。这个代码指定建筑是否能够被工程师所修复。当为no时工程师不能进入修复。实际上应该是用来限制扳手维修的,Ares下已允许分离控制

RequiredHouses =

填国家名。这个代码指定该单位只能被指定的国家所建造。对于其他国家,即使满足了Prerequisite=和TechLevel=,只要不是指定的这个国家,就不能建造

RequiresStolenAlliedTech =

填yes或no。这个代码指定该单位是否在已方间谍渗透[AI] -> BuildTech=第一项即原版盟军作战实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节

RequiresStolenSovietTech =

填yes或no。这个代码指定该单位是否在已方间谍渗透[AI] -> BuildTech=第二项即原版苏军作战实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节

RequiresStolenThirdTech =

填yes或no。这个代码指定该单位是否在已方间谍渗透[AI] -> BuildTech=第三项即原版尤里作战实验室后才能建造,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节

RevealToAll =

填yes或no。这个代码指定对象是否会生成雷达事件,例如雷达标记,并向敌方揭开该建筑Sight区域内的地图

RollAngle =

填数值。这个代码指定此单位转弯时的侧向倾斜角度。默认为30.0度

此外该单位需要满足PitchSpeed的条件,同时PitchAngle需要大于0

同时会导致VXL单位占用的画布过大而崩溃,与巨型VXL素材上斜坡和沉没同理

ROT =

填数值。这个代码指定该单位转弯的比率,数值越大转弯越快。默认值为0

对于AircraftType而言0值为不能旋转,会按初始方向直线飞出,对于载具类别0值为瞬间旋转,步兵始终瞬间掉头

同时对于[TechnoType] -> Turret=yes的单位其炮塔旋转速度也使用此值,Ares允许分离设定

注意:单位炮塔与本体同时旋转时旋转速度不会叠加,也就是说在炮塔与车体转速想相同(原版)的情况下同时向同方向旋转时炮塔与车体的夹角是固定的

关于算法:ROT为每帧转过的角度,但使用256分圆,也就是64相当于一帧转90度,128为一帧即可掉头,非机场战机且运动方式恰当的单位在为0时会瞬间转向

原版中[AircraftType] -> Carryall=yes的战机吊起过的载具被放下后会继续使用战机的ROT,Ares已修复

ResourceGatherer =

原版用于三方矿车和尤里矿场,用于AI处理矿石采集和存储任务,如果建筑用了会影响AI出矿场的数量计算

也用于AI的建筑扩展节点判定,详见BaseNormal一节

此外可以用于屏蔽载具DeploysInto成建筑失败时的EVA_CannotDeployHere语音

ResourceDestination =

原版用于三方矿场和尤里矿车,用于AI处理矿石采集和存储任务

以上两句用于让AI学会处理不同的矿石处理和储存方式

但是连用还有禁止BORIS空袭指示器武器攻击该建筑的效果,不过并不禁止被C4摧毁

可以屏蔽建筑UndeploysInto成载具时的EVA_NewRallyPointEstablished语音

-S-

SAM =

填yes或no。TS残留代码,这个代码指定建筑是否为SAM导弹

目标必须为在[General] -> PadAircraft=列表中的Aircraft,否则根本不会锁定,也就是火箭飞行兵和夜鹰直升机那些实际上是Infantry与Vehicle的对象不会成为目标

此外目标Aircraft必须Dock为空,并且只有SAM获取目标时这个Aircraft就是在空中悬停的状态那么SAM才能正常发射武器,一旦Aircraft之后移动了一下,那么SAM就会哑火

只有一些特定的转弯情况偶尔会突然射两发,然后继续哑火,并且这种情况下SAM炮塔仍然会去重新同步到目标方向,但再次同步的间隔并不是武器的ROF,也并不是固定值

甚至前面说的突然射两发的情况可以并不面向目标开火,哪怕并不存在[Weapon] -> OmniFire=yes

此外SAM还强制只能对空攻击,也就是不能对落到地面的目标开火

也就是SAM的目标只能是拥有AirportBound=yes与Dock=none且起飞过的Aircraft

只有一些原版引擎下需要特殊判定效果的地方会用到,现代引擎下已经没有必要死磕这个逻辑

Secondary =

填武器名。这个代码指定该单位的副武,也就是所谓的次要武器、第二武器。当主武不能攻击某目标时,游戏会自动转为副武攻击,当副武不能攻击时,游戏才会判断该单位不能攻击

建筑主副武器始终使用其主武器的Range作为射程,如果不存在主武器那么副武器相当于没射程也用不了

Selectable =

填yes或no。这个代码指定该单位能否被玩家选中。典型的运用是V3导弹,与Spawned有一些令人疑惑的联动

对于不回机场(AirportBound=no & Dock=none)且Landable与Selectable任意为no的战机在目标丢失后会离开地图,例如原版伞兵飞机

对应的:这些不应用于原版黄蜂类型的子机战机,否则完成(非中断)任务的子机不会返回母舰而是飞出地图后从游戏中移除,进而导致母舰传递指令时崩溃

SelfHealing =

填yes或no。这个代码指定该单位是否能够自动恢复生命点。间隔由全局[General] -> RepairRate=指定,Ares已允许微观定义,详见说明书

然而建筑如果依靠自愈回到了未损伤状态其图像也不会正常的转换,Phobos已修复

原版下无法设定单位是否脱战才能开始自愈,Ares已允许设定,并添加了多项拓展,详见说明书

SensorArray =

填yes或no。该【建筑】能否探测隐形和地下单位,范围由SensorsSight指定,建筑被断电、摧毁、移交所属、超时空冻结等均不会刷新(停止)效果,YR已废弃,Ares已修复

同时也决定载具通过DeploysInto部署成该建筑前是否转向正东方

部署转向规则见[BuildingType] -> Artillary=一条下方

Sensors =

填yes或no。这个代码指定此物体是否能够在周围3x3范围内探测隐形,并解除,但是对友军建筑也有效,并且一些情况下单位被摧毁会遗留反隐效果,Phobos已修复

SensorsSight =

填数值。这个代码指定此物体检测其它隐形单位的半径范围,但是并不解除,非建筑类填上就能用,建筑需要SensorArray=yes启用

该逻辑从TS就有死亡遗留反隐区等各种问题,RA2中对于Naval=yes且始终在地表的单位进行了特殊处理解决了部分Bug,然而依旧存在大量问题,Phobos已修复部分

ShowOccupantPips =

填yes或no。这个代码指定当建筑被步兵驻守后是否显示底下的小格

Sight =

填数值。这个代码指定该单位的视力范围。数值越高,该单位在探路时拨开的黑雾越大。单探开视野功能而言原版最大值10,想要更大需要Ares

SinkingSound =

填Sound.ini中定义的声音名。这个代码指定海军单位被摧毁后下沉的声音。该海军单位的Weight要大于3。如果想设定让海军单位下沉的Weight的阈值可以修改全局[General] -> ShipSinkingWeight=的数值

Size =

填数值。这个代码指定该单位的大小。默认为1。仅载具的乘客格子正常绘制多格,尤里电厂和驻军建筑始终为1格大小

SizeLimit =

填数值。这个代码指定运兵单位最大支持的单个乘客占格数,Ares允许对于运输载具设定任何单位在这个单位内也只占1格,但仍然遵循本语句设定检查是否允许进入

SmallVisceroid =

该载具是否为小型器官兽,具有一直乱跑和一系列硬编码动作。TS残留,相关逻辑不完整,Ares已复原,详见说明书

在RA2YR仍然保留着小器官兽会尝试靠近一个同类来合成大器官兽的行为,但是由于合成相关的逻辑没了,所以只会每个同类接近一次然后继续跑

Soylent =

填数值。这个代码指定该单位被出售后所得的资金。对于步兵单位,只有通过进入RA2苏军的“复制中心”YR尤里的部队回收厂(或同类型建筑)才能卖掉

默认0即不启用该逻辑,并非默认Cost/2。如果[TechnoType] -> Soylent=0

实际算法为:[TechnoType] -> Cost=<int>*[Country] -> Cost(Infantry|Units|Aircraft|Buildings|Defenses)Mult=<float>*[BuildingType] -> (Infantry|Units|Aircraft|Buildings|Defenses)CostBonus=<float>

若所属方为人类玩家,在此基础上再*[General] -> RefundPercent=<float>,原版为50%(0.5)。

Spawned =

填yes或no。这个代码指定是否为子机类单位。用来和一般单位作区分的,可以禁用Unit Lost警报。在战机上与Landable、Selectable有一些小绕的编码工作方式,参见https://t.bilibili.com/884748819012517897

Spawns =

填战机名。这个代码指定子机发射器发射的子机类型。子机发射器单位的武器需要有Spawner=yes来声明使用的是一个单纯用于发射子机的虚拟武器

原版下对于空中单位放出的子机需要母舰落回地面才可以返回,否则子机只会落到地上或飞出地图(然后崩溃),Ares已允许空中单位正常使用和回收子机,且无需额外设定

不过这依旧需要满足子机与母舰XY坐标一致的条件才能回收,所以也无法移动中回收,Phobos已拓展该逻辑,允许设定一个回收子机的最大范围,详见说明书

当然在现代拓展引擎下使用其他逻辑刻出子机管理器系统也并非不可能,例如https://www.bilibili.com/opus/994486096720035847,图中的航母就可以移动中回收子机和显示子机装弹进度。也可以突破仅能Aircraft类作为子机和子机不可手动操作的限制,如https://www.bilibili.com/opus/993682443903959046。甚至还能让子机根据目标数量自动分配https://www.bilibili.com/opus/1001916368673570822

如果由建筑类作为母舰,那么即便在断电状态下子机逻辑也仍然工作,Phobos已允许控制,详见说明书

原版下子机返航的朝向并不会检查是否与母舰一致,Phobos已修复

目前作为子机的Aircraft在母舰被毁时无视其Crashable=no坠毁

SpawnsNumber =

子机数目

SpawnRegenRate =

子机重生帧数

SpawnReloadRate =

子机装弹帧数

SpecialThreatvalue =

填0-1的数值。用于原版工程师和MCV等无威胁单位正常进入威胁计算,防止这些实际上并不简单的单位被主动寻敌无视掉

Speed =

填数值。这个代码指物体运动速度。每个非建筑物体都一定要设置这个项。最小值为0,最大值为100,程序内再*256/100换算

步兵类Walk与机甲Mech两种运动模式的实际Speed不得超过14,否则会卡在原地无法运动。考虑到升级捡箱子等因素,写速度时不要大于10,Phobos已解除

原版下只能整数,Phobos允许使用小数,但是Phobos新增了一个效果是[TechnoType] -> Speed=0会被视为静止(就像部署态武装直升机那样),所以低于.39062498509883880616会无法获得移动光标

注意:任何运动模式在极低速度下都可能出现一些不太正常的表现,具体效果与单位的类别也有所不同

SpeedType =

填下表中的对应项。这个代码指定该单位的速度类型

决定单位在不同的地形上能否运动及运动速度改变多少,见2025教程大包内附赠的《9.覆盖物词典.ini》开头[Water]部分

应该和Locomotor=以及MovementZone=适当配合使用

---------------------------------------------------------------------------------

Amphibious 两栖速度类型

在旧版本词典中有一个“Underground 潜地速度类型”,实际上这是二十多年前最早的一批教程中长期遗留下来的错误,程序中该句并不存在Underground这个可用值

FloatBeach 滨海速度类型

Float 船舶速度类型,使用这个SpeedType的建筑可以无视Buildable依靠SpeedType控制建造地块类型,见WaterBound词条

Winged 飞机速度类型

Hover 悬浮速度类型

SpeedType=Hover的Jumpjet载具(例如夜鹰直升机)被超时空到水中时并不会沉没,甚至还能操作下达指令让它飞起来正常工作,这个问题在Ares中已被修复

Wheel 轮式载具速度类型

Track 半履带车速度类型

Foot 步兵步行速度类型

SpeedType=Amphibious/Hover会让一些vxl载具影子绘制在body之上

---------------------------------------------------------------------------------

MovementZone =

表示单位使用何种寻路方式,填下表中的对应项。(标有试图字样需要单位本身满足条件)

对于处于OpenTopped载具中的乘客只有在其可运动的MovementZone上才可以正常对外开火,Ares下用InitialPayload做多武器载具需要注意,可以用下面那句来限制不能踢出(不过Ares也提供了用于VehicleType与Aircraft的的禁止手动装载乘客NoManualEnter与禁止手动卸载乘客NoManualUnload直接用Ares提供的新语句就足够了,详见Ares说明书

---------------------------------------------------------------------------------

Amphibious 两栖,可以同时被船厂和维修厂维修

AmphibiousCrusher 两栖,并试图碾压步兵

AmphibiousDestroyer 两栖,并试图摧毁障碍物(树木、沙袋、铁丝网)两栖步兵卡树的原因之一

Crusher 陆地,并试图碾压步兵

CrusherAll 陆地,并试图碾压一切包括围墙,根据Crusher决定穿墙而过还是强行碾掉不能碾的墙(真正决定是否为高级碾压的语句)

Destroyer 陆地,并试图摧毁障碍物和碾压沙袋

Fly 寻路无限制,会导致矿车无法手动返回矿场,PhobosBuild48已修复;会导致载具无法进入建筑

Infantry 陆地,一般步兵

InfantryDestroyer 陆地,步兵,试图摧毁障碍物

Normal 陆地,并试图摧毁地形障碍和碾压步兵

Subterannean 钻地车用,移动距离远时试图钻地,不钻地时与Crusher类似。作为矿车且被水域或悬崖包围时无法正确找到矿场,PhobosBuild49已修复

Water 只在水中寻路

WaterBeach 可在水中和海滩寻路

---------------------------------------------------------------------------------

上表有效值中的Subterannean实际为Westwood的错误拼写,Ares中的新增标签例如[AudioVisual] -> SubterraneanSpeakDelay=等则使用的是正确的英文单词"Subterranean"

MovementRestrictedTo =

该【载具】只能在某类地形上运动。

如果你想要从Factory创建一个不能移动的单位并且正常开出来,那么你需要用Ares的Convert逻辑让它开出来以后再变成你要的限制了运动区域的单位

---------------------------------------------------------------------------------

Clear

Road

Rough

Rock

Tiberium

Water

Railroad

Tunnel

Beach

Weeds

Ice

Wall

---------------------------------------------------------------------------------

Spyable =

填yes或no。这个代码指定建筑是否能够被间谍渗透,被间谍渗透的建筑会根据建筑类型触发相应的事件,如渗透发电厂类建筑会导致停电等,然而效果判定语句同时也是建筑功能语句,无法分离控制,Ares重做了一套新的渗透功能系统,详见间谍渗透功能强化一节

SpySat =

填yes或no,该建筑是否提供全图视野(间谍卫星)该效果不受电力影响,想要附赠雷达图还需要搭配[BuildingType] -> Radar=yes使用

该功能无法用于加载物,Phobos已修复

Storage =

填数值。这个代码指定该单位能够储存的矿石数量。只能用在采矿车和矿石精炼厂,RA2下失去了建筑储矿效果所以矿石精炼厂上的已经失去意义,Ares已复原,详见说明书

Strength =

填数值。这个代码指定该单位的最大生命值点数,Phobos允许独立定义单位生成时的初始血量,详见说明书

如果把这个值设为负值会导致一些令人疑惑的效果,并且不同引擎可能修改相关逻辑引发不同的效果

StupidHunt =

填yes或no。当AI没有剩余建筑时(非快速游戏)这个单位会径直冲到玩家家里而不像其他单位一样被分配Hunt任务,这样的单位通常没有武器也没法执行Hunt所以用这个语句来让它们也加入填线的队伍

SuperGapRadiusInCells =

填数值。这个代码指定“黑幕产生器”类建筑部署产生的黑幕半径。要和GapGenerator=yes和ExtraPower=配合使用

SuperWeapon =

填超级武器名。这个代码指定该建筑产生后所激活的超级武器

同时还带有强制建筑只能手动寻敌、触发超武阶段动画等编码效果,如果不想要这些效果请使用下句

* 如果是加载物提供的超级武器那么将不会读取超武的AuxBuilding设置,Ares已修复

这句与下句在加载物上使用时会添加到主体建筑上,不会覆盖主体建筑原有的超武

SuperWeapon2 =

填超级武器名。这个代码指定该建筑产生后所激活的第二个超级武器,没有上一局那一堆编码限制

原版下一个建筑只能使用上面两个语句绑两个超武,加载物也无法超额,想要一个建筑挂更多请用Ares新功能,详见说明书

SuppressionThreshold =

填数值。乌贼和恐怖机器人等单位用。如果被寄生单位受到大于此数值的伤害,则在"伤害*2"的帧时间内,若被寄生的单位被摧毁,寄生者一并死亡

SlowdownDistance =

飞机单位在目标附近减速的距离,256为一格,适当增大有助于高Speed低ROT战机返仓(不然容易一直绕圈),默认500

特殊值0可以让战机永远无法落地(毕竟距离目的地0Lepton才开始减速那就没法降到0了)

但是这个方法会打断AI行为,因为AI会倾向于视为移动任务始终没有成功完成

非五连发战机返仓和接近目标都会使用SlowdownDistance,五连发战机轰炸目标不看只在返航时看

SecretLab =

是否为秘密科技实验室

SecretInfantry=

占领这个秘密科技实验室后可生产的步兵,若不存在则注册为步兵,若留空则使用下句

SecretUnit=

占领这个秘密科技实验室后可生产的载具,若不存在则注册为载具,若留空则使用下句

SecretBuilding=

占领这个秘密科技实验室后可生产的建筑,若不存在则注册为建筑,若留空则全局规则

和全局一样没有Aircraft,并且建筑体自身的这个还只能单个对象而不是列表,不过Ares已经换了一套新的,直接把WW这套又老又残的扬了拉倒

SecretHouses =

未完成功能,无效代码,Ares已完成并扩展,详见Ares说明书

SlaveRegenRate =

奴隶重生帧数

SlavesNumber =

奴隶数目

SlaveReloadRate =

奴隶“倒矿”使用的时间,即奴隶回到奴隶矿场后到下一次出来时的间隔

Slaved =

这个步兵是否为奴隶矿工,奴隶矿场被摧毁时会得到解放,搭配HarvestRate控制收集矿石的速度

原版下被超时空弹头攻击可能引发崩溃,Phobos已修复

Stage1 =

Stage2 =

Stage3 =

Stage4 =

Stage5 =

Stage6 =

盖特武器[X]阶保持到计数器达到多少后转到下一阶,这里的[X]有效范围受制于WeaponStages的值

最后一阶由于不存在下一阶所以会保留当前阶段,想要跳到第一阶往往使用一个FireOnce的武器搭配RateDown=0来实现,但是会丢失原目标需要重新索敌,Ares引擎允许语句控制最后一阶跳转第一阶,详见Ares说明书

SprayAttack =

是否为喷洒单位

抛射需为Arcing

用于指定此单位Primary随机喷洒在单位周围,而不是使用武器的正常规则向目标射击

结果是武器在来自该单元的8个标准方向中的任何一个方向上的随机单元中发射

而不是在所选目标本身处发射

在目标在Range内时不会射击

在目标和自己距离为1或2时向目标方向以距离+1的射程随机发射武器

在原版引擎INI技术向MOD《VS_INI》中用于处理原版航母飞机在特定角度攻击船厂时不投弹一直盘旋的bug

-T-

TypeImmune =

填yes或no,该单位是否不受己方相同单位的伤害,如尤里复制人,对于无所属方的粒子自然就无效了,不过对粒子武器的穿透伤害还是有效的,毕竟那是来自武器的

TogglePower =

该建筑是否能手动停电,TS残留无效,Ares已复原相关逻辑,详见Ares说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的

注意:仅在Powered=yes且Selectable=yes时有效,否则强制不能被断电

Power为正的建筑(例如电厂)并不会导致不能被断电,断电时会表现为不生产电力

TickTank =

载具通过DeploysInto部署成该建筑前是否转向正东方

部署转向规则见[BuildingType] -> Artillary=一条下方

可部署成该建筑的载具被AI投入战斗中时会更积极地尝试部署

ToTile =

建筑用,建造地形,填地形名如Water01,Green01,Clear01注意如果想让此物在水面建造的话需要LaserFencePost=yes

实际上并不会严格根据Foundation来填充,而是根据Foundation决定的最大长宽,也就是原版的3x3REFINERY当标准3x3算

Ares的CustomFoundation逻辑直接遵照Foundation.[X|Y]直接填充矩形,而并不去看有没有挖掉格子

同时还会因为Tile自身的尺寸而影响实际范围,例如Water01实际上是一个2x2的tem

典型应用是TS中的硬化路面,在家里建造防止敌方钻地载具直奔基地中心

此外该逻辑改变地形并不会刷新寻路,因为寻路区域是地图载入时就决定完的,不过你依然可以用其他限制移动区域的方法加以配合来实现单位由于ToTile而正常改变自身运动区域的效果

TiltCrashJumpjet =

决定Jumpjet运动模式单位的坠毁方式,填写yes坠毁时会倾斜(飞碟)否则平稳坠毁(基洛夫)

TargetCoordOffset =

建筑被攻击时所被瞄准的坐标点,同时也是船厂出口位置

不影响AAAG判定,也就是说哪怕你第三个值定义了个4096高度,地面单位也照射不误

对于Arcing类虽然其弹道仍旧命中地面建筑中心,但爆点会移动到TargetCoordOffset

但是对于ROT类如果命中前建筑就已经被摧毁了,那么会重新将目标更新为被毁建筑空地上原应该攻击的位置而不是照常飞到TargetCoordOffset

这也不影响武器Range,哪怕它影响TargetLaser和瞄准线的绘制,但这不影响实际距离判定

并且对于Vertical的特殊工作机制,单位依然会开到建筑头上丢炸弹而不是去TargetCoordOffset

若抛射体拥有Inaccurate=true

对于Arcing和Inviso类爆点会正常计算,只不过IsLaser和TargetLaser瞄准线等绘制效果始终遵循TargetCoordOffset

若抛射体拥有FlakScatter=true

对于Inviso类开启不精准效果将会依照建筑实际中心计算而不是TargetCoordOffset

TargetLaser =

攻击时是否有瞄准激光(无实际意义)与Attack的那条线一样,使用palette.pal色盘08号色,Move使用palette.pal色盘03号色

TechLevel =

该值确定物体在建造栏中的顺序,越小的越在前,同样的按照注册顺序调整<=-2时相当于没有TechLevel限制

当建筑TechLevel=-1时人类玩家不可建造,AI可以建造建筑,对于小队中的单位则是AI也无法建造

TechLevel处于0到[MultiplayerDialogSettings] -> TechLevel=(或地图触发更改后的值)的区间中则正常生产

TechLevel>[MultiplayerDialogSettings] -> TechLevel=(或地图触发更改后的值)时,无法从箱子中开出

秘密科技实验室等特殊方式给予生产权限不受此限制

RA2下可驻军建筑放下后会立即转为中立所属,YR下TechLevel在正常生产区间的会保留所属并且不会在建筑损坏到红血时执行驻军撤出行为(苏军战斗碉堡)

AI建造前提:

建筑:

无视:【TechLevel=-1】,PrerequisiteOverride,RequiresStolenAlliedTech,RequiresStolenSovietTech,RequiresStolenThirdTech,SpyEffect.StolenTechIndex(Ares)

有效:TechLevel,Prerequisite,Owner,AIBasePlanningSide,RequiredHouses,ForbiddenHouses

;如果建筑A的Prerequisite为建筑B且Owner/AIBasePlanningSide均正常,但是建筑B因为RequiredHouses/ForbiddenHouses无法建造,AI会认为建筑A可造,但是实际上无法建造建筑A,且不影响其他符合条件的建筑建造

单位:

无视:Prerequisite,PrerequisiteOverride,Owner

有效:TechLevel,RequiredHouses,ForbiddenHouses,RequiresStolenAlliedTech,RequiresStolenSovietTech,RequiresStolenThirdTech,SpyEffect.StolenTechIndex(Ares)

;如果[TaskForces]里有无法建造的单位,则会跳过该项继续建造之后的单位。除非通过重组凑齐无法建造的单位,否则无法执行脚本

此外,TechLevel=-1的建筑会被视为民用建筑,建筑本体第 3 帧为进驻图像,第 4 帧为废墟,红血时释放驻军并使用第 2 帧常规残损图像

若非民用建筑且可驻军,例如原版苏军碉堡,黄血时会使用第 2 帧作为非驻军状态下的残损图像,使用第 4 帧作为驻军状态下的残损图像,不会因为伤残而释放驻军,由于第 4 帧也用于废墟所以最好通过[BuildingType] -> LeaveRubble=no禁用废墟并用Ares的废墟建筑逻辑模拟

Teleporter =

超时空行动用语句,步兵加上这句被超时空传送不会死亡

同时也用于非Dock回建筑对接时使用Drive替换原本的Locomotor,但对于使用Hover运动模式的单位在静止时仍会上下浮动

例如原版超时空矿车借由这句使其“行驶”(Drive)前往矿区,而不是全程超时空移动

ThreatAvoidanceCoefficient =

躲避高危险地区的几率,实际上由于寻路方式的优先级过高这逻辑的效果几乎表现不出来

ThreatPosed =

威胁值,电脑优先攻击高威胁的但是即便拥有威胁值如果没有武器AI也不会攻击,所以想要让单位主动攻击建筑除了威胁值外还需要添加虚拟武器。由于加载物不实际存在于地图上,AI并不能直接攻击加载物,所以不要给加载物加这个

TiberiumProof =

该步兵是否免疫泰矿伤害,TS残留无效,Ares已复原并扩展,详见说明书

TiberiumHeal =

在对象在矿石中是否能加血,TS残留无效,Ares已复原,详见说明书

在TS里这玩意甚至不检查AircraftType是否真的已着落

ToProtect =

写yes的单位受到攻击时,AI会出动闲置部队去保护。原版海军都有这句,但海军加这个意义不大

TooBigToFitUnderBridge =

该载具是否无法在桥底停留

Trainable =

为no时不可升级

非建筑单位默认yes,建筑默认no,原版下来自子机和空袭机的击杀经验全给子机,现代拓展引擎可设置分配方式或强制同步等级,详见说明书

驻军建筑内的驻军步兵即便自身Trainable=no也强制获得经验!(Ares已修复)

Turret =

单位有无炮塔

Turret=yes的Jumpjet运动模式且使用Shp素材的载具只有处于滞空状态时炮塔才显示阴影,且绘制在单位上而非正下方的地面

Turret=yes的幻影坦克伪装炮塔有问题且伪装图像色盘会强制改变为一坨奇怪的东西

对于一个Image=none或者图像不存在的单位虽然程序原本会将它绘制为一个空的shp但如果添加了Turret那么程序仍然会尝试去调用一个不存在的vxl进而导致崩溃

以上三条Ares已修复

Turret=yes的Jumpjet运动模式载具闲置时炮塔总是朝向正东方向,Phobos已修复

与驻军逻辑配合的并不好,拥有Turret的建筑会保留撤出时的UnloadMission导致下次再塞进去步兵会被立即Unload踢出来

除此以外拥有Turret的驻军建筑踹出驻军单位以后图像无法正常刷新,需要移动一下屏幕,就像TerrainType被碾压那样

注意:对于使用Voxel炮塔的建筑,无论使用默认命名规则调用还是使用[BuildingType] -> TurretAnim=指定,都会无视[TechnoType] -> Turret=的值绘制,该句在使用Voxel炮塔的建筑上的效果实际上是确保建筑仅在炮塔方向对正后才能开火

TurretAnim =

炮塔图像,当TurretAnimIsVoxel=yes时可以使用Voxel类型的素材

TurretAnimDamaged =

建筑残血时的炮塔图像

TurretAnimGarrisoned =

建筑驻军时的炮塔图像,疑似无效

TurretAnimIsVoxel =

炮塔图像是否为Voxel类型的素材

TurretAnimX =

炮塔中心点X坐标,横向,正值向右

TurretAnimY =

炮塔中心点Y坐标,纵向,正值向下

TurretAnimZAdjust =

炮塔中心点Z坐标,控制遮挡层级

TurretAnimYSort =

建筑shp炮塔遮挡优先级调整

TurretCount =

炮塔种类数(IFV、盖特、光棱坦克)最大18,Ares已扩展至127

如果单位Tur文件总量[小于]该值会导致无论Body还是Tur都不显示

TurretCount<1会直接导致Weapon[X]系统不被使用而是使用(Elite)Primary=/(Elite)Secondary=系统

TurretRecoil =

开炮时炮塔与炮管是否后退,原版巨炮就是炮管制退的典例

TurretTravel =

该建筑炮塔可偏移的像素值,默认 2

TurretCompressFrames =

该建筑炮塔恢复所需要的帧数,默认 1

TurretHoldFrames =

该建筑炮塔保持在受后坐力位置显示的帧数,默认 1

TurretRecoverFrames =

该建筑炮塔恢复所需的帧数,默认 1

TurretRotateSound =

炮塔旋转的声音

载具用的时候炮塔是只看相对地面是否旋转的

也就是炮塔跟着车体转的时候也会播放

TurretSpins =

该载具的炮塔是否永久旋转,例如飞碟,很神奇的是这个逻辑最早是TS遗留下来并且一直有效的

该单位在炮塔允许时(指向正确的方向或拥有OmniFire=yes)才能攻击其他单位,否则会卡住,并且卡住后炮塔也会停止旋转(于是也无法继续旋转到达到允许开火的朝向)

Thief =

该步兵是否为小偷,RA1残留,在RA2已经被Agent=yes的间谍逻辑替代了。不过仍有残余效果

RA2下和Infiltrate=yes连用可以让步兵走进矿场,但是不会有任何效果,YR对此又补了一刀

在RA2/YR这句与VehicleThief=yes连用可以开启偷车贼效果,但是Thief=yes恰恰又会影响AI执行目标

如果想要使用偷车贼逻辑,请直接使用Ares完整复原并拓展的专用逻辑VehicleThief=yes,详见Ares说明书

TiltsWhenCrushes =

当Crusher时碾压Wall=yes的覆盖物是否掀起,碾压步兵固定不倾斜,OmniCrusher压强制掀起,Phobos已允许定义

-U-

UndeployDelay =

释放型武器造成的停顿(无法移动、攻击)时间(限步兵)

也决定步兵部署模式:此语句设定正值为尤里式部署

无此代码即默认值为-1,为美国大兵式部署(需手动解除部署,部署开火需art序列)

UndeploysInto =

填载具名称。这个代码指定建筑反部署后变成的载具

被心控的建筑反部署后会断掉心控链接彻底改变所属,YR1.001为此禁用了被心控建筑的该逻辑,Phobos已允许正常交接并解除了禁用效果

实际上是TechnoType通用标签,值的类型也是TechnoType,由于拥有跨类别T选同类对象的效果,曾也用于原版引擎下的类Ares中GroupAs功能的效果,原版下可能造成一些问题,Ares已进行修复,并允许禁用这句的跨类T选效果,同时提供了新的GroupAs作为可选的替代方案

由于DeploysInto和UndeploysInto的单向跨类T选拥有层次效果,可结合GroupAs做出注入“第一次T选MTNK选中所有MTNK,第二次T选选中所有MTNK、HTNK、LTNK”的效果

由于原标签自身作用,建筑应当确保不会执行原行为的情况下才适合这样使用,否则仍会正常执行标准操作即反部署成载具

此外这样的转变很多效果无法继承,例如铁幕,Phobos已允许继承其中一部分

特别注意:

这个语句会导致建筑出售时只逆向播放23帧,Phobos已允许定义

Foundation=1x1建筑如果拥有UndeploysInto设定在很多判定中会被视为“载具”,例如可以框选,被维修车维修等,建筑能否框选Ares已给予专门语句允许设定,是否视为载具Phobos已给予专门语句允许设定,此外原本Artillary、ICBMLauncher、TickTank、SensorArray四句会让AI执行攻击脚本时将其视为载具,但Phobos在实现本功能时去除了它们的这一效果。

Unsellable=no并且ConstructionYard=no的的建筑如果拥有UndeploysInto无法正常出售

由于RA2下不再拥有是否按住Alt区分工厂建筑移动(UndeploysInto)与设置集结点的效果,现在总是点击后立即进入反部署并且依然绘制集结线,Phobos下禁用了集结线

Underwater =

是否为水下物体,用于NavalTargeting判定

同时移动不会播放全局Wake=指定的波纹,强制死亡时不会有沉船效果(都已经在水下了)

Unnatural =

是否为非生命体单位

用于Natural与NavalTargeting、LandTargeting的各种判定

UnloadingClass =

Unloading状态引用的图像,是指矿车倒矿、武装直升机部署时所处于的状态

如果原单位Turret=yes那么UnloadingClass会尝试使用自己的炮塔或者一个不存在的空炮塔图像

如果原单位Turret=no那么UnloadingClass会正常使用自己的炮塔,哪怕单位实际上直接使用Body转向目标而Turret单纯同步Body的方向

UnitAbsorb =

载具单位是否能进该生化反应炉入发电,如果与[BuildingType] -> DockUnload=yes共用将会导致载具对接时无法正确处理行为

在建筑有[BuildingType] -> Cloning=yes或[BuildingType] -> Armory=yes或[BuildingType] -> Hospital=yes时使用特殊规则

Phobos已更改规则,详见Phobos说明书

UnitEnterSound =

载具进入该建筑的声音

UnitExitSound =

载具退出该建筑的声音

UnitReload =

该建筑能否补充弹药,原版用于空指部

UnitRepair =

该建筑能否修车,同时也可出售,Ares允许分离设置能否出售,详见说明书

如果同时拥有WeaponsFactory则维修期间将对被维修伤害的物理伤害转移到自己并禁用对被维修单位的特殊伤害类型,哪怕是是超时空抹除和超时空传送,甚至Organic=yes的单位可以抗铁幕,虽然并不能得到效果

如果一个BalloonHover=yes的单位使用抛射体Vertical=yes的武器攻击一个这样的建筑那么即便建筑在武器Range范围外单位也不会尝试接近目标

UnitsCostBonus =

载具建造价格为原来多少倍

UnitsGainSelfHeal =

给单位增加每桢几点的回血,算法类比InfantryGainSelfHeal

Unsellable =

无法被出售,仅影响玩家使用出售光标手动出售,也就是AI和触发强制Selling等可以无视这条进行出售,仅可通过[BuildingTypeArt] -> Buildup=留空等方式去更上层禁用。Ares下已拓展至非建筑类,用于维修厂等出售方式

Upgrades =

这个建筑能够被加载物加载的次数,见PowersUpBuilding一句下的详细注解

注意:一个未升级的可升级建筑在加载(upgrade)了加载物后将无法通过经验值系统升级

UndeploySound =

反部署时的声音,用于武装直升机类单位

UseOwnName =

YR新增,该步兵登乘多功能步兵车时是否使载具名称显示为{([InfantryPassenger] -> UIName=) ([TransportVehicle] -> UIName=)}的形式

在原版YR中使用该语句有一些不一致之处

IFVMode[2]

武器3:机关枪A|Tur[1]

使用者E1、E2、SPY,名为“机关枪 多功能步兵车”

IFVMode[3]

武器4:高射炮|Tur[1]

使用者FLAKT,但因为缺少UseOwnName显示为“机关枪 多功能步兵车”

IFVMode[4]

武器5:机枪B|Tur[1]

使用者GHOST、TANY、BORIS,因为存在该语句被称为“<Passenger> IFV”

使用者CCOMAND、PTROOP,但因为缺少UseOwnName被称为“机关枪 多功能步兵车”

你可以给煤球兵、超时空突击队、心灵突击队加上这句来修复

当然你也可以把BORIS他们三个的这个标签禁用

为什么磁爆步兵明明没有[InfantryType] -> UseOwnName=yes但是正常显示为“磁爆步兵 多功能步兵车”呢?这就要见[TechnoType] -> HasTurretTooltips=一条下的另一套更上层的规则了

-V-

VeteranAbilities =

老兵升级加的能力,具体可用的值类型见EliteAbilities

VHPScan =

用于爱国者,视目标可能受的伤害决定目标选择。

None为

不开启逻辑,即无效果

Normal为

优先VHP<Strength/2的目标,尤其VHP<0者

即攻击预测将要死亡的目标以尽量摧毁更多的目标

Strong为

忽略VHP<0者,也就是尽可能的让杀伤有效,均摊伤害

VHPScan是给每个单位一个“预计血量”(VHP),我们设实际血量为RHP

每当有一个武器射向目标时,无论引爆与否VHP先预计一下被炸后的血量

同时保证VHP>=RHP-30,然后每4帧增加1次直到VHP==RHP

如果目标单位得到修复则把VHP立即写为RHP

VoxelBarrelOffsetToPitchPivotPoint =

建筑VXL炮管垂直方向旋转(X轴,与地面平面的夹角)的基点

VoxelBarrelOffsetToRotatePivotPoint =

建筑VXL炮管水平方向旋转(Y轴,垂直与地面的平面)的基点

VoxelBarrelOffsetToBarrelEnd =

建筑VXL炮管的终点,也就是实际射出炮弹播放开火动画的位置

VoxelBarrelOffsetToBuildingPivotPoint =

建筑VXL炮管相对建筑0,0格子的绝对坐标

其中

第4句会在TurretAnimX、TurretAnimY决定的TurretAnim坐标之后叠加计算,使用XYZ坐标

前3句均在第4句与TurretAnimX和TurretAnimY指定的中心坐标的基础上绘制,使用FLH坐标

不过炮塔朝向依然是根据TurretAnimX和TurretAnimY决定的中心来计算相对方向的

VoxelBarrelFile =

炮管图像,需要BarrelAnimIsVoxel一句来开启。仅用于SHP炮塔使用VXL炮管,无法用于VXL炮塔独立调用其他VXL炮管,VXL炮塔会自动匹配与其命名规则相符的炮管

VoxelBarrelScale =

建筑VXL炮管的缩放倍数,仅限FS,RA2中无效

VoiceAttack =

接受攻击指令的声音,如果单位为[FV]且造成负值杀伤那么使用[AudioVisual] -> VoiceIFVRepair=指定的音效

非[FV]的情况YR下在使用对应武器时会被下面四句覆盖

VoicePrimaryWeaponAttack =

YR新增,主武器射击的声音

VoicePrimaryEliteWeaponAttack =

YR新增,精英主武器的声音

VoiceSecondaryWeaponAttack =

YR新增,副武攻击声音

VoiceSecondaryEliteWeaponAttack =

YR新增,精英副武器的声音

VoiceCrashing =

被击落的声音

VoiceDeploy =

部署的声音,通过快捷键或底边栏按钮部署不会触发,PhobosBuild47已修复

VoiceUndeploy =

反部署时的声音

VoiceEnter =

进入[TechnoType] -> Dock=的建筑时的声音(非战机)

在步兵身上使用需要Assaulter等语句中的至少一种(不然都没法Enter又何谈Enter的Voice)

VoiceFeedback =

害怕时播放的声音

VoiceHarvest =

采收矿物的声音

VoiceMove =

接受移动指令的声音,包括Aircraft执行吊运,Phobos下可以为吊运单独指定一个将载具拾取的音效

VoiceSelect =

选中的声音

VoiceSelectDeactivated =

失去控制时候的声音,见遥控坦克

VoiceSelectEnslaved =

奴隶类被解放的声音

VoiceSpecialAttack =

接受特殊攻击指令,仅在满足C4=yes、Harvester=yes、Ivan=yes、Deployer=yes、Parasite=yes、CanDisguise=yes、选中医疗兵并点击下达区域防御命令中任一条件时启动

VoiceSinking =

沉没喂鱼时的声音

VehicleThief =

该步兵是否为偷车贼

这句的效果是该步兵可以在敌方载具上出现“进入”光标

在原版这句加上Thief=yes可以在Ra2/Yr做偷车贼

会让AI寻敌智障,RA2下可以用寄生心控几乎完美的复刻,YR也给搞残了,Ares已复原相关逻辑,详见说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的

VoiceComment =

步兵平时闲聊音效

VoiceFalling =

指定空中单位从天空落下时要发出的声音

VoiceCapture =

占领音效,对于进入建筑需要有[InfantryType] -> Engineer=yes/Agent=yes/Occupier=yes/Assaulter=yes,但是不能有[BuildingType] -> C4=yes语句

这不包括进入[BuildingType] -> Grinding=yes/Hospital=yes/Armory=yes的建筑,另外其实[InfantryType] -> VehicleThief=yes进入载具偷车也可以用

如果未设置或值无效则会沿用[TechnoType] -> VoiceEnter=的设置

VoiceHarvest =

收集矿石时发出的声音

仅应用于设置了[TechnoType] -> ResourceGatherer=yes或[VehicleType] -> Harvester=yes的对象

VoiceDie =

被摧毁时发出的声音

-W-

Warpable =

填no,则免疫超时空抹消攻击

甚至这个标签单纯控制效果,让物体不被抹除,但是不影响目标选择和实际开火,也就是只要对方乐意依然可以射个没完,无论主动攻击还是手动攻击

WalkRate =

填数值。单位行走动画播放速率,素材中每帧实际播放多少帧。可用于shp载具和vxl载具,默认1,只要移动就每经过一游戏帧切换一次序列帧,不可为0,若要禁止播放需要写一个极大值。对于直升机起降相关的见Ares说明书中[TechnoType] -> AirRate=一条

Wall =

是否为围墙,建造时会根据[TechnoType] -> GuardRange=指定的距离与同类型链接,建筑实际放下后会立即变成其在art中通过[BuildingTypeArt] -> ToOverlay=所指定的覆盖物

此外AI尝试放置时会让单元格的单位执行分散指令以让出空位,与全局[General] -> MaximumBuildingPlacementFailures=合用保持1次放置失败后仍会再次尝试(而此时恰好单位已经让出空位)

然而这个逻辑实现的比较质朴,程序并不判定围墙链接的方向,也就是说存在单位向围墙延伸方向移动的情况

原版引擎下苏盟围墙可以在破损的墙上直接修建新墙来修复墙体,但并不支持新增的围墙(包括尤里围墙),在Ares中已经解除了这一限制

于是可能表现为:

AI尝试放下墙 -> 单位向旁边挪了一格,但是移动到了围墙链接所需的另一格子 -> AI放下了墙,但是由于没有完全围住建筑,再次放下另一格墙 -> 返回第一步

也就是走一步放一格再走一步再放一格直到最后一格分散时找空地只能找到不阻碍围墙链接的格子为止,然而此时围墙也已经用不着自动连接了

WantsExtraSpace =

建筑是否需要额外的空间,影响AI建筑间隔,为yes时AI建造该建筑会按全局[AI] -> AIBaseSpacing=值+1来计算,可以更好的防止堵车,但也会降低AI基地建设效率

WaterBound =

是否为水上建筑,实际确定该BuildingType是否只能在构造时放置在其中Float的SpeedType百分比值高于0%的地形图块上

原版是水,你也可以改成公路等等,但仍要求是空地,矿石那种实际是一个覆盖物占据了格子的依旧造不了,形象点说用这个往矿上拍建筑相当于尝试往敌人的围墙上拍个自家兵营

相当于给建筑写了SpeedType=Float,同时这个效果会无视Buildable,原版下在限制建造区域方面和Naval分离控制有部分功能重叠,Phobos把Naval干掉后只吃这句

优先级高于SpeedType,也就是建筑拥有SpeedType=Float与WaterBound中至少一句的三种情况等效,但如果同时拥有SpeedType≠Float与WaterBound则WaterBound覆盖SpeedType回到Float效果

原版下不被DeployToFire考虑,因此无法完成DeployToFire成水上建筑的任务,Phobos已修复

WeaponCount =

武器种类数,开启Weapon[X]系统必要语句,由[TechnoType] -> IsChargeTurret=yes开启的光棱充能炮塔实际上只使用(Elite)Weapon1=,无论[TechnoType] -> WeaponCount=是多少

WeaponStages =

盖特武器有几阶,Stage1、Stage2等则分别代表盖特计数器多少以内为此阶

为了使用[TechnoType] -> WeaponX=系统还需要[TechnoType] -> TurretCount=1或更高,否则0070DF8A

如果不满足WeaponCount>=WeaponStages*2那么依然可以得到一个精致的0070DF8A

需要注意的是盖特系统计时并不看武器是否真开火,而是看单位状态,例如单位转身时或由于 WeaponXTurretLocked=yes 这种由于 X 号武器无法朝向目标而不会实际射击的情况也会正常计时,不再受制于方向后仍会按当前阶数进行开火。

如果载具 IsSimpleDeployer=yes 则部署时始终使用 Weapon2 但是 Report 却会去单独升档读 Weapon246……

无法通过 LandTargeting=2 使得单位对地使用偶数系列,PhobosBuild34已修复

不要超过6个,否则会发生一些不好的事

Weapon1 =

Weapon2 =

Weapon3 =

Weapon4 =

Weapon5 =

Weapon6 =

Weapon7 =

Weapon8 =

Weapon9 =

Weapon10 =

Weapon11 =

Weapon12 =

Weapon13 =

Weapon14 =

Weapon15 =

Weapon16 =

Weapon17 =

Weapon18 =

WeaponX =

由上述多武器逻辑启用,原版最多1-18共18个,更多武器需要Ares

虽然内部索引的确是0-17,但是标签名里就是从1开始,所以在设置[TechnoType] -> IFVMode=这种0始数值时要记得自行计算一下。例如IFVMode5对应(Elite)Weapon6和Ares的WeaponTurretIndex6设置

启用多少是由[TechnoType] -> WeaponCount=决定的,也就是盖特的[TechnoType] -> WeaponStages=这种只是盖特系统内调取多少,即便是没有被用上的武器也可以通过Ares的[TechnoType] -> NoAmmoWeapon=等功能用起来,例如https://www.bilibili.com/opus/789437335972348039

Weight =

重量,决定应对[Warhead] -> Rocker=yes的弹头时被掀翻的难易度,同时对于Naval=yes且Underwater=no、Organic=no的水上单位若该值大于全局[General] -> ShipSinkingWeight=的值则在水上被摧毁会表现为沉没而不是直接被摧毁(原版海蝎与航母),沉没的声音用SinkingSound指定,沉没的形态根据Locomotor决定是直接下沉(Mech)还是整个船体倾斜后再下沉(Drive和Ship)

WorkingSound =

工作声音

Weeder =

该载具/建筑是否为废矿回收者

在TiberiumSun中

这是NOD化学飞弹所使用的的逻辑

即Weeder矿车收集了足够的泰伯利亚废矿倒入Weeder储藏舱中

储藏舱满时才可使用化学飞弹超武

相关的还有[SuperWeaponType] -> AuxBuilding=和[SuperWeaponType] -> ManualControl=两个逻辑

个人倒是觉得其实就是一种变相的矿车(Harvester)逻辑,而且同样不能用于步兵233

一个Weeder=yes的建筑可以储存矿石

要用Storage=控制储存数量

一个Weeder=yes的单位

可以收集矿石

不过它还需要Storage=来控制每一个格子代表的矿石数量才能收集

在RedAlert2中

泰伯利亚废矿随着泰伯利亚藤蔓逻辑一起被Westwood砍了

这个单位会到自己的Dock=<Building>旁

这个建筑和矿场一样(废话)要有DockUnload=yes

然后卸下它所装载的任何东西,如果有载员可以放出载员(子机没试)

如果是载员的话则会被卸载到这个建筑旁边,用来做自动运输车似乎不错

有很多类似Refinery的特性,例如会使建筑强制无法将单位生产出来

Phobos已经复原了泰伯利亚藤蔓相关的硬编码逻辑,详见说明书

WeaponsFactory =

该工厂生产的单位是否从建筑内开出来

而不是直接生成于建筑外

用于船港会出现许多错误

同时会阻断矿车单位倒矿

阻碍进入医院的单位离开

如果否的话虽然仍有集结点但是不集结

-X-

没有收录以X开头的语句

-Y-

YuriBarracks =

该建筑是否为尤里方的兵营,步兵从相对建筑中心位于[2,1]的格子离开建筑,也影响AI。所有南北向长于东西向的兵营都应该使用,否则会导致生产一个飞行步兵后无法继续生产其他步兵等问题

-Z-

ZFudgeTunnel =

指定载具位于隧道口时的ZAdjust

ZFudgeColumn =

指定载具位于高架桥头后面的ZAdjust

ZFudgeCliff =

指定载具位于悬崖后面的ZAdjust

ZFudgeBridge =

指定载具位于高架桥梁桥体下的ZAdjust

全都是绘制遮挡层级相关的东西,正值向后负值向前,例如ZFudgeBridge=2000会导致载具在桥梁下面时ZAdjust向后2000,直接被地板盖住而显示不出图像

以上四句不影响伪装逻辑的图像

这些实际上是用于单位处理与这些特殊Tile之间Z关系的标签,Z并不用于VehicleType之间的遮挡处理,对于Z的概念详见ART词典ZAdjust条目下方注解