跳至內容
主選單
主選單
移至側邊欄
隱藏
导航
首頁
所有类别
站点
所有页面
最近修改
隨機頁面
交流
论坛
Tools
RA2DIY
搜尋
搜尋
外觀
登入
個人工具
登入
RA2DIY-WIKI 当前处于维护模式:
页面上的内容随时可能发生更改且不会事先告知。
檢視6.武器系统代码词典的原始碼
頁面
討論
澳門繁體
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
頁面資訊
外觀
移至側邊欄
隱藏
←
6.武器系统代码词典
您沒有權限執行編輯此頁面,由於以下幾個原因:
您請求的操作只有這個群組的使用者能使用:
用戶
此頁面已設為保護,以防止編輯或其他操作。
您可以檢視並複製此頁面的原始碼。
前言,武器抛体弹头代码一堆,不建议在本文中摘取代码从零开始写,请复制原版已有的武器系统进行修改 [WeaponType] <nowiki>;</nowiki> ******* Weapon Statistics ******* 武器代码 Projectile = 【该武器使用何种抛射体】 Warhead = 【该武器使用何种弹头】 一个武器必须拥有一个Projectile和Warhead,因为它们是每个武器的基础属性,哪怕这个Projectile与Warhead并不存在或未注册程序也会自动创建并使用默认效果,但你必须指定这两个条目 也正是同样的原因Ares有时对武器名写错或武器不存在/未注册之类的弱智错误抛出有意义弹框时会告知XXX武器的Projectile名为YYY不存在或Warhead名为ZZZ不存在,这时实际是武器没能找到 Damage = 每发攻击的伤害,YR中弹头为心灵控制时决定控制上限,弹头为混乱时决定持续时间 对于IsLocomotor=yes的弹头将读取此值,如果目标物的Size > Damage则无法拉起,但仍然可以瞄准(和原版辐射工兵激情互射大半天但是挂不下来一点皮一样的蛋疼玩意) 目标受伤总是会被解除隐形,Phobos已允许弹头上设置是否解除 若Damage为0不会触发[TechnoType] -> CanRetaliate=yes的反击 但Damage为正数通过Versus越过零转为负值的武器则仍然会触发 Damage为负数的武器如果弹头上有AnimList会导致IE,Ares已修复 Damage为负数的医疗类武器只能同类型互相使用,即载具只能修载具军医只能修步兵,无法添加机械师类型的步兵用于维修载具,Ares已解除该限制 Damage为负数的武器无法正常使用弹头的Versus与PercentAtMax计算,并且无视CellSpread仅作用于目标周围8Leptons的对象,Phobos已允许设定 Damage为负数的武器强制清除目标身上的寄生单位,Phobos已允许定义是否清除 Damage为负数的医疗类武器作为主武,那么GI式部署后的副武器仍会使用主武器的寻敌方式 Damage为负数的医疗类武器在原版下硬编码寻敌范围为512Leptons(2格),Kratos已改为从武器Range获取,但原版值为1.8,若使用Kratos引擎则需手动改为2以保持原版行为 Damage为负数的医疗类武器如果使用者为载具那么拥有原版维修车的一套硬编码例如强制AG=no Burst = 一次开火会连发多少次,每两连发之间有 3 到 5 的随机延迟。偶数发的攻击会自动在武器开火坐标的-L处打出,默认 1 同时也指定有Passenger的Aircraft每次攻击行为踹乘客的数量,如果有1名乘客而Burst=2那么可以踹出1名乘客的同时射出1发武器 对于子机发射器(Spawner=yes)类虚拟武器使用Burst=2可以在发射导弹子机时根据FLH和F-LH来计算生成位置 对于步兵、IsAnimDelayedFire=yes的建筑、(FS中)有开火前置动作的SHP载具每一发Burst都要单独播放一遍开火动作,Phobos已允许步兵解除该限制 原版Burst>2的单位可以卡射速Bug,这个问题在Ares3.0版本已经得到修复 ROF = 每两个攻击动作的间隔,以帧为单位,实际上是开火后(最后一发Burst后)把单位禁言这么长时间 并且这段时间内不会调整朝向,因此也可以用于实现TurretKeepFacing那样的效果https://www.bilibili.com/opus/739436241482678313 原版下ROF实际上存在一个[0-2]帧的随机延迟,Phobos可进行设定 Range = 射程,以格为单位 根据单位是否在空中决定圆柱形计算还是球形计算 特殊值-2代表无限射程,但由于单位索敌范围也自该语句读取,因此使用-2时需要手动在单位上指定GuardRange一句来设定索敌范围,否则不会主动攻击 注意战机类能否真正射出不会按这个特殊值使用,因此Range=-2会导致战机不执行任何动作,不过仍然可以正常传递目标,可用于特殊跳板 目标为建筑时: 对于Arcing=true的抛射体,需要计算到目标中心,也就是说如果遇到一个面积巨大的不可通行建筑,那么地面单位可能永远无法达到Range来进行开火 对于其他类型抛射体,只需要计算到目标边界,但即便如此单位如果需要移动靠近目标来达到Range的话也会在达到Range后继续向前多走一格 MinimumRange = 最小射程,单位距离目标低于此距离将会跑开 注意你不能用射程圈的方式让单位选择武器,在两个武器都能攻击的情况下单位永远会用主武器。即使主武器的最小射程由副武器填充,单位也只会跑开到主武器能攻击的地方攻击 当Range=-2时会MinimumRange的效果会被强行无视掉 一些需要禁止武器实际开火的地方也可以简单的用一个比武器Range更大的MinimumRange来实现,也可通过替换为这个武器让一个单位临时将Attack指令转Move指令 Anim = 开火动画,如果写8个那么会对应八个开火方向 从正北(↗)开始顺时针旋转,见原版哨戒炮Vulcan,Ares已拓展至16向和32向,根据列表中的动画数量自动分配 对于寄生类武器强制八向,如果不写满八个方向那么除非方向正确那么不会播放 OccupantAnim = 步兵驻扎在建筑内使用该武器开火的动画,不支持列表 OpenToppedAnim = 单位在战斗要塞内使用该武器开火的动画,不支持列表 Report = 开火声音。注意盖特系统会将多级武器的音效叠加播放,如果有需要请于开火动画art处设置音效 Speed = 抛射体速度,只对导弹类有效。[Projectile] -> Arcing=yes的抛射体根据全局[AudioVisual] -> Gravity=设定的重力计算,不使用该句 RadLevel = 辐射量,须配合弹头范围和弹头衰减。原版不得小于全局衰减量(100) AreaFire = 是否强制攻击自身所在单元格,如尤里波(空中单位使用此武器会攻击自己在地面上的竖直投影),步兵无法直接使用AreaFire=yes的武器,只能通过部署释放 AreaFire与[DESO]效果的一些表现可以参见https://t.bilibili.com/811527585196408853 OmniFire = 攻击目标是否无需转向,Locmotor=Jumpjet的单位由于无法自主转向故应设置以确保能正常开火,Phobos与Kratos均已独立解决该问题 FireOnce = 是否攻击一次立刻停止攻击,如尤里波。用于机场飞机类的武器会导致崩溃(Ares已修复) 用于步兵时会强制清除后续序列,Phobos可禁用此效果 Bright = 是否在弹头爆炸处会产生闪光效果,可在弹头代码处调节颜色。覆盖弹头Bright设置 在Phobos修复前若非Ares为超武设定[SuperWeaponType] -> Nuke.SiloLaunch=false的情况下核弹超武的[NukeCarrier]与[NukePayload]两个武器都无视Bright设定 Lobber = 如果抛射体为炮弹类(Arcing)将使用超高抛物线,也不一定高多少,实际上游戏计算Arcing的开火角度时会根据开火点和目标点距离结合全局重力模拟弹道计算出两个解,如果Lobber=yes则选择较大的那个,否则选较小的那个。由于原版WW没有考虑高差问题,加入Lobber可以一定程度上让高差导致的落点漂移小一些,但并不能根治,请使用现代拓展引擎 TurboBoost = 攻击飞行物时导弹速度获得加成,全局代码控制加成数值,但是实际没用 AmbientDamage = 穿透型武器造成的穿透伤害,如海豚声波和轨道炮,使用这些逻辑的时候自动开启,命中处将同时结算正常伤害和穿透伤害 无法为0,若设0会强写成1,但是可以负数,也可以靠Damage*Versus<1向下取整来变为0 由于穿透伤害是武器的参数因此自然是存在开火者和拥有所属的,所以可以正常使用AffectsAllies=no来避免波及友军 穿透伤害的弹头使用武器的弹头,并且由于对整条路径造成伤害故也会连带目标对象,Phobos允许进行设定,详见说明书 IsSonic = 是否为海豚波,会从0到目标点增大路径上的伤害范围,并禁用武器自身伤害效果 也就是哪怕声波视觉效果已经滑过的格子也会持续受到伤害,直到声波消失(命中) 这代表声波的目标点越远(从开火到消失的时间越长)、距离声波开火位置越近,所受到的总伤害越大 副作用是武器强制为Damage=0的效果并不播放弹头动画,Ares已允许设定,并允许定义声波颜色 音波武器始终使用Primary的AmbientDamage和Warhead 音波武器有效射程为8.5,若Range大于此值则目标在8.5格外将会保持瞄准但射不出 音波武器无视弹头上的Wall=,强制yes (以上3条Ares均已修复,详见说明书。如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的) Spawner = 是否为子机发射器,将触发航母子机或子机导弹发射,若单位自身没有相关的子机设置语句会引发崩溃 该类型武器将不会实际发射,弹头特殊效果也不会创建 LimboLaunch = 是否在攻击时将自身消失(并非死亡),如恐怖机器人和狗开火后使用本体图像的抛射体但本体已经不存在于地图上 原版下搭配寄生逻辑([Warhead] -> Parasite=yes)使用,就算没有这句击杀目标时也会强制消失一次,而由于没有该句所以不会重新刷出,Phobos引入了一种新的Unlimbo方式,详见说明书 如果不刷回来那么实际上会依旧保留在内存中,例如航母子机使用这句哪怕刷不回来航母也不会重新开始Respawn 并且这样的单位越多积累下来游戏会越来越卡。如果用了寄生逻辑一定要写这句,否则各种诡异和FEIERE问题自行解决 DecloakToFire = 该武器是否在攻击时揭露自身隐形,如果填写no则开火不显形(如潜艇鱼雷),默认yes RevealOnFire = 该武器是否在攻击时揭露自身黑幕,如果填写no则在黑幕中开火时不会被发现,默认yes CellRangefinding = 计算是否满足射程时是否使用双方所在单元格中心之间的距离而不是两个实体之间的精确距离,原版中常用于近距离武器以确保它们可以有一个允许开火的容错距离 一个附加效果是高于地面但不高于空地判定阈值的单位还会忽略自身所处高度,因为这种算法下会将开火者坐标按单元格中心坐标来计入 FireInTransport = 该武器能否在战斗要塞类单位内开火,如恐怖机器人武器就不能,默认yes NeverUse = 该武器是否不被实际使用 实际上是单位会根据自己的副武器是否拥有[Weapon] -> NeverUse=yes来在两种不同的距离计算方式中进行选择 它的射程仍然会正常参与单位的警戒范围计算,并且该武器仍可通过[TechnoType] -> DeployFireWeapon=等逻辑指定用于开火,和常规武器一样使用 原版中用于狗等单位的副武器以确保它在移动中攻击时获得的目标不会丢失,只要目标没有跑出更长武器射程决定的范围那么单位会一直追下去而不是立即转为继续执行原移动行为 TerrainFire = 是否能直接攻击树木路灯等地形对象(显示Attack光标)而无需按下Ctrl强制攻击 SabotageCursor = 是否使用C4炸弹鼠标动画,仅在步兵使用下有效 MigAttackCursor = 是否使用鲍里斯召唤米格空袭的鼠标动画,仅攻击建筑时显示 DisguiseFakeBlinkTime = 发射该武器时会有这么多帧数对单位所有者显示非伪装外观(幻影坦克) DisguiseFireOnly = 该武器是否只能在自身伪装的状态下使用。(幻影坦克的废弃设定,但功能没废弃) InfiniteMindControl = 用于心灵控制武器,是否可以超过控制数上限但自身会受到持续伤害,即精神控制车 超过数量后生成[CombatDamage] -> DefaultSparkSystem=的粒子 一个Bug是原版中[Weapon] -> Damage=1的情况下该语句会无效,Phobos已修复 DrainWeapon = 是否为飞碟吸建筑武器,只对Drainable=yes的目标有效,只能静止在建筑正上方使用 如果目标为电厂则该所属方整个基地的电力全部停掉,Ares允许定义是否只取消单个电厂的发电效果及具体额度,详见说明书 该类型武器将不会实际发射,弹头特殊效果也不会创建 FireWhileMoving = 该武器是否可以在移动时开火,飞碟吸建筑武器里填写no保证飞碟静止。默认yes 一些老词典中说仅可用于[TechnoType] -> BalloonHover=true且[TechnoType] -> Locomotor=Jumpjet的单位,实际上并没有这一限制 Suicide = 使用该武器时立刻自毁,武器自身并不会真正使用,对应的开火动画等也都不会创建 单位未设置[TechnoType] -> Explodes=yes的情况下若单位Primary/IFV当前所使用武器上设置了[Weapon] -> Suicide=yes那么仍然会触发死亡武器 也就是说一个如果[TechnoType] -> Explodes=no的单位使用[Weapon] -> Suicide=yes的副武自杀而主武上没有这条那么仅是自毁而不会触发死亡武器 机场飞机类通过包括本句在内的方式发射武器把自己摧毁会导致游戏崩溃。Ares3.0已修复 DiskLaser = 是否使用飞碟激光逻辑,同时引入一整套设定: 使用强制瞬间命中的硬编码弹道(无法自由设置子武器等抛射体功能语句)、 开火前会播放[AudioVisual] -> DiskLaserChargeUp=设定的聚能音效、 武器仅有造成杀伤等基础效果,并且不显示弹头动画和开火动画,Ares已允许播放弹头动画和武器闪光,Phobos已允许自定义激光圆环半径 原版引擎下DiskLaser的武器对S键Stop指令的响应不太灵光 一个不算特性但真有人转不过来会问的效果是:如果武器拥有DiskLaser=yes,那么Parasite还是LimboLaunch=yes自然都是无效的 IsLaser = 是否使用激光效果,需要配合激光颜色及激光持续时间 建筑主武器的激光参数会覆盖副武器的,Phobos已修复 LaserDuration = 激光效果持续帧数,默认 10 IsHouseColor = 激光是否使用玩家颜色,yes时下面两句直接指定的激光颜色设定无效 LaserInnerColor = 激光中部颜色格式为[R,G,B] LaserOuterColor = 激光外部颜色格式为[R,G,B] LaserOuterSpread = 激光外部颜色格式为[R,G,B] 设定随机渐变的范围,颜色会以填写值正负为范围变动,例如你写个255,255,255可以得到五彩斑斓的白 IsElectricBolt = 是否使用磁暴闪电特效,颜色硬编码读取palette.pal其中2条使用0A另1条使用0F,Ares可微观定义三条电流颜色的RGB值,Phobos可关闭特定条数电流绘制,详见说明书 需要注意的是原版下建筑选择框和框选所使用的矩形条也同样使用0F设定的白色,由于palette被多处使用,推荐新手使用Ares直接定义RGB而不是乱动palette.pal色号 同时EBolt的绘制也具有一些稳定性问题,经常有人问OpenTopped的载具使用载具载员由于载员武器使用EBolt特效在OpenTopped载具被摧毁时程序莫名丢失指针而崩溃的问题 程序硬编码该特效绘制的弯折电弧线段为8条,持续时间17帧,Phobos允许对此进行定义 会在目标点生成[CombatDamage] -> DefaultSparkSystem=的粒子,Ares允许对此进行定义 当载具类型使用该类武器时EBolt特效起始点每帧都会随着单位移动与转动同步单位FLH的坐标,Phobos已允许在武器上设定是否跟随 此外,下句需要本句开启否则无效 IsAlternateColor = 磁暴闪电是否为过载态,颜色硬编码读取palette.pal其中2条使用05另1条使用0F,Ares可微观定义三条电流颜色的RGB值,Phobos可关闭特定条数电流绘制,详见说明书,如果你获得本文档的同时没有配套这一文件,说明你的文档并非从原正式发布渠道获取,而是已经被第三方未经许可拆分修改过的 IsRadBeam = 是否使用辐射波特效(辐射工兵主武器),颜色使用全局[Radiation] -> RadColor=定义,持续时间15帧,振幅为40.0,Ares已允许定义持续时间、振幅及颜色,详见说明书 如果弹头有[Warhead] -> Temporal=yes将使用全局[AudioVisual] -> ChronoBeamColor=定义,原版为蓝色(超时空军团兵) 武器FLH强制使用Primary的FLH,Ares已修复 IsRadEruption = 是否绘制扩散辐射线条,原定用于辐射工兵展开武器,若有[Weapon] -> IsRadBeam=yes则不绘制 这会在武器开火时从开火单位的中心向以[Warhead] -> CellSpread=值为边心距的正方形区域(在屏幕上为菱形)的4个端点与4个边的中点对应的地面位置绘制 颜色无论始终为全局[Radiation] -> RadColor=的颜色,持续时间在5~20帧间随机,振幅在100.0~500.0间随机,Ares已允许定义持续时间和振幅但无法自定义颜色 IsMagBeam = 是否使用磁电坦克磁力波特效,对载具时从单位处向目标载具逐渐绘制 只要抛射体判定依然可以追过去打就会在一次绘制成功后保持绘制,然后绘制过长导致崩溃 除非用围墙围上或者对方的位置让武器的拥有者没法追过去打才会放弃绘制 虽然波的绘制和武器抛射体限制的发射是分离的,但是穿透伤害却是跟波的 武器FLH强制使用Primary的FLH Ares已修复上述过长崩溃问题,并允许武器自定义波的颜色 IsLine = 是否绘制鲍里斯对建筑召唤空袭的光线,无效,实际由召唤空袭的弹头代码和鲍里斯自身召唤空袭的代码共同决定 Supress = 用于能自动攻击己方的武器,自动攻击时友方单位的威胁值减半,优先攻击敌方。奇怪的功能,原版并无单位使用 LH_Mouse发现如下规律 每个单位都有威胁值。当一个单位选择目标时 它将搜索附近的目标并选择具有最高威胁值的目标进行攻击 如果一个单位的武器具有Supress=yes 则引擎将扫描目标附近的友方单位,并且对于发现的每个单位,将该目标的威胁值减半 如果威胁值降低到1以下(在这种情况下,当转换为__int64时它将变为0) 则不会自动获取该目标 附:正常单位通常具有大约100,000的威胁值 DownReport = 盖特武器掉档时播放的声音,废弃功能,原版盖特并未使用 AssaultAnim = 指定Assaulter单位清理建筑内驻军使用的武器动画 Camera = 打开黑雾,原定侦查鸡用,RA1残留无效 Charges = 攻击前充能,TS残留废弃功能,已被ART中的[BuildingTypeArt] -> IsAnimDelayedFire=yes代替了 IsBigLaser = 是否为粗激光,废弃功能,Ares已实现,Phobos已扩展,详见说明书 DistributedWeaponFire = 是否攻击范围内的所有目标,废弃功能 IonSensitive = 离子风暴期间禁用此武器,TS残留,红警中无效 DrawBoltAsLaser = 是否绘制ElectricBolt直线闪电,废弃功能 AntiNaval = AntiOrganic = AntiUnderwater = 遗留自RA2开发版本的废弃语句,用于设定该武器能否对海/对生物/对水下目标,请使用[TechnoType] -> NavalTargeting=和[TechnoType] -> LandTargeting=来控制反潜对海行为 IsRailgun = 是否使用轨道炮粒子系统,同时开启AmbientDamage,但也导致其会因高差而被切断,Phobos已修复 虽然使用武器ROF控制武器射击间隔,但粒子武器如果上一次粒子因为MaxEC决定的生命周期没有结束则仍然不可开火,Ares已使用新逻辑解除了该限制,详见说明书 UseFireParticles = 是否使用喷火粒子系统,会使得武器伤害不可用,弹头动画不播放,弹头绑定的粒子不生成,但是弹头碎片反而是正常的 副作用是武器强制为Damage=0的效果并不播放弹头动画,Ares已允许设定 此外以上两种遇到地形高差时粒子效果会被切断,Phobos已修复 UseSparkParticles = 是否使用火花粒子系统 后两句对于使用部分运动模式的单位会使其能保持瞄准但只有部分刁钻角度才能真正开火,这在Hover和Jumpjet上较为明显,为避免原版三句的各种问题,推荐使用Ares新增的[WeaponTypes] -> IsDetachedRailgun=yes替代 AttachedParticleSystem = 指定粒子系统名,需要有前三句任意一句开启, 前三句并不影响粒子系统的表现方式,表现方式仍由粒子系统自身定义 请参阅粒子系统说明http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=12917在此不多讲解 [WarheadType] 名为[NUKE]的弹头强制30帧核爆闪光,引爆之前先播放一遍名为[NUKEBALL]的动画,Ares允许为所有常规武器弹头定义这两项行为及具体参数 <nowiki>;</nowiki> ******* Warhead Characteristics ******* 【弹头代码】 Verses = 伤害比率,见护甲系统说明,11个值用逗号隔开,顺序如下 None,Flak,Plate,Light,Medium,Heavy,Wood,Steel,Concrete,Special_1,Special_2 0% 不能强制攻击,不能还击,不能攻击 1% 不能还击,不主动攻击 2% 不主动攻击(由于WW的疏忽,这个无效) wood和medium同时也决定了单位能否主动攻击这两个原版所对应的大类的物体,属于WW内定规则,可以直接全面换用Ares的新护甲体系干翻它 并且Verses实际上是Westwood错误拼写,正确的单词应当为Versus 注意:武器是否主动攻击不影响使用哪个武器,只是使用这个武器变成需要手动指定目标了而已 也就是Versus=1%还是Ares的Versus.<armor>.PassiveAcquire=no不会影响武器选用规则 原版的C4和空袭等使用的是单独的选用逻辑,而非单纯Versus参数决定,详见相关逻辑 如果在地图中内置了弹头但没有重定义Verses将会重设为默认值100%,Ares已修复 注意:比率是在杀伤之后计算实际伤害值的,所以一个[Warhead] -> CellSpread=较大的弹头杀伤范围内使用了对这个弹头伤害比率为0%的护甲的单位即便没有造成伤害也依然会触发散布行为,也就是移动一下,这个需要使用Ares的[Warhead] -> PreventScatter=yes来避免,或者使用一个不造成散布的范围弹头为每个比率为正的单位赋予一个AE来实际杀伤等绕路的方式 Spread = WideDamage = 先代引擎与开发版本的语句,均已替换为下面这条 CellSpread = 伤害半径,以格为单位,原版最大不能超过11,0是只伤害直接攻击的目标 当爆点在空中时使用球形计算,平时使用圆形计算地面平面范围 对于占多个地面格子的建筑也会根据所占格子数决定伤害多次,导致原版V3打大建筑比打小建筑还快,Ares允许限制弹头伤害次数,详见说明书 PercentAtMax = 范围最边界受到的伤害比例,根据此比例运算出递增或者递减,1就是伤害值恒定 AnimList = 弹头动画,当爆点处于地下时会重新计算生成到地面 可以写一堆,武器伤害越高使用越靠后的动画(例如吃肌肉箱子)(伤害值每25前进列表动画一档) 第 N 个动画播放的 Damage 值域为 [25*(N-1),25*N-1],例如第一个动画的值域是[0,24],第二个动画的值域是[25,49] 其中 Damage=0 的情况原版下无法正常播放动画,Phobos已允许在弹头上设定是否允许,详见说明书 YR下拥有DiskLaser=yes的武器强制无法播放AnimList,Ares已允许解除这个硬编码限制,详见说明书 如果弹头带有EMEffect=yes将随机使用其中的动画,但有许多负效果,Phobos提供了一个专门用于控制弹头动画随机的新语句,详见说明书 如果是[CombatDamage] -> LightningWarhead=的弹头则强制为[AudioVisual] -> LightningConBoltExplosion=的动画,Ares已修复 EMEffect = 本用于瘫痪目标,TS残留,瘫痪功能现已无效,但可使弹头随机播放AnimList的动画,Ares已复原该功能但使用新的语句,详见说明书 同时存在有弹道抛射体提前爆炸等隐性问题,Phobos已新增AnimList.PickRandom作为替代 Conventional = 攻击水面时使用水花替换弹头动画,见全局[CombatDamage] -> SplashList=一句 注意:如果命中水上舰艇,那么会视为在陆地引爆而不会使用水花动画。Phobos已允许在弹头上定义这一行为,详见说明书 InfDeath = 士兵死亡图像 填序号 0直接消失 1死亡序列1 2死亡序列2 3爆炸死 4烧死 5电死 6尤里波爆炸 7核融化 8病毒死 9变身狂受人 10被狂受人打死 通过这个语句创建的动画会使用击杀者的所属方,Ares允许动画上定义所属方的继承来源,详见Ares说明书 当击杀没有[InfantryType] -> DeathAnim=设定的步兵(原版所有步兵皆是如此)时具体规则对应如下 0=<none> <nowiki>;</nowiki>[Hardcode]=<none> 1=[Sequence] -> Die1=<int>,<int>,<int> <nowiki>;</nowiki>步兵Die1序列,并非Animation类对象 2=[Sequence] -> Die2=<int>,<int>,<int> <nowiki>;</nowiki>步兵Die2序列,并非Animation类对象 3=[General] -> InfantryExplode=<animation> <nowiki>;</nowiki>OriginValue=S_BANG34 4=[General] -> FlamingInfantry=<animation> <nowiki>;</nowiki>OriginValue=FLAMEGUY 5=[Animations] -> 2=<animation>/Ares新增的[AudioVisual] -> InfantryElectrocuted=<animation> <nowiki>;</nowiki>OriginValue=ELECTRO 6=[General] -> InfantryHeadPop=<animation> <nowiki>;</nowiki>OriginValue=YURIDIE 7=[General] -> InfantryNuked=<animation> <nowiki>;</nowiki>OriginValue=NUKEDIE 8=[General] -> InfantryVirus=<animation> <nowiki>;</nowiki>OriginValue=VIRUSD 9=[General] -> InfantryMutate=<animation> <nowiki>;</nowiki>OriginValue=GENDEATH 10=[General] -> InfantryBrute=<animation> <nowiki>;</nowiki>OriginValue=BRUTDIE 原版下InfDeath8/9的动画都拥有开火者所属,但只有9会正常重映射所属色 InfDeath=8的情况下,如果对象拥有NotHuman=yes,则绕过动画直接生成动画定义的粒子 InfDeath=9的情况下,如果在水上击杀,由于WW原设狂兽人不能水上移动,所以转为播放水上死亡序列 InfDeath=9的情况下对空中目标会强制0伤害,Phobos已解除 InfDeath=11及以上的内容见[InfantryType] -> DeathAnims=词条 也可以使用Ares提供的语句[Warhead] -> InfDeathAnim=直接在弹头上指定动画名 原版语句[InfantryType] -> DeathAnims=与Ares提供的[Warhead] -> InfDeathAnim=并不冲突 最后使用如下规则: 弹头InfDeathAnim=仅在击杀无DeathAnims的Infantry时播放,并屏蔽原弹头上InfDeath=调用全局设定动画的效果 对于有DeathAnims=的Infantry转为使用弹头InfDeath=的数值,若没有设置InfDeath即为按使用了默认值0来执行 弹头InfDeath=0-14 对应到DeathAnims列表的对应动画,也就是InfDeath=0播放DeathAnims第1个,而InfDeath=14播放DeathAnims第15个 弹头InfDeath=15 无任何效果的击杀,就像不存在DeathAnims时弹头上InfDeath=0的效果那样 弹头InfDeath>=16 始终播放DeathAnims第一项 <nowiki>*</nowiki>如果InfDeath在DeathAnims=中没有对应项(包括InfDeath=15但DeathAnims=列表不足16个动画的情况)那么同InfDeath>=16处理 Wall = 可以伤墙 WallAbsoluteDestroyer = 秒杀墙 Wood = 可以伤树 当Overlay同时有Wall和Armor=wood时无视弹头上的Wall=no和Versus 如果此句为no那么任何Terrain均无法杀伤,与护甲无关 Radiation = 是否是辐射,决定免疫判定 Poison = 是否是毒,决定免疫判定 PsychicDamage = 是否为“精神攻击”,决定免疫判定,用于非心灵控制武器调用免疫 Tiberium = 能否摧毁矿石,特指对于拥有[OverlayType] -> ChainReaction=yes的矿石类覆盖物,很多时候还不如弹头动画带个[Animation] -> Crater=yes好用 Rocker = 是否产生气浪使坦克倾斜,和ROF,Damage有关,和实际伤害无关,弹头比例0照样产生气浪,范围强制7x7,但是不写一个非0的CellSpread那么Rocker会没用 ProneDamage = 对匍匐步兵的伤害比例,同时也是对部署步兵的伤害比例,Ares可分离定义,详见说明书 AffectsAllies = 是否影响友军,包括所有者,Ares允许分离控制是否影响盟友与所有者 Bright = 是否产生闪光,优先级低于武器里的,也就碎片之类越过武器调用弹头的地方会用 CombatLightSize = 无视Damage直接指定闪光大小相对最大值的百分比,否则按 [Weapon] -> Damage/256 获取该值 CLDisableRed = CLDisableGreen = CLDisableBlue = 是否在闪光中消除红、绿、蓝色,用于改变闪光颜色,全写yes闪光将消失。碎片等其他地方直接使用弹头造成的闪光效果不受这3条影响 Bullets = RA2里如果IFV的载员自身的武器使用这样的弹头,则IFV会使用Tip:MachineGun作为显示名称用的CSF条目,YR中连这个效果也没了,相当于没用 PenetratesBunker = 是否能直接伤害坦克碉堡内的坦克,实际上是更换了杀伤计算顺序 但是这也带来一个新的问题: 比如,一发核弹可以直接伤害碉堡内的坦克,但是碉堡内的坦克血量实在太厚了 于是计算的时候先算碉堡内的坦克所受的伤害导致如果坦克没死碉堡也不会炸……不会炸………… Sonic = 是否为音波弹头,可以驱逐出目标内的寄生物,如海豚逐出寄生在船上的乌贼 MindControl = 是否为心灵控制武器,控制数量由[Weapon] -> Damage=定义,注:不可通过升级为Elite武器改变控制数量。YR下与寄生弹头连用会在进入单位处与单位间绘制心灵控制线,Ares已修复 IvanBomb = 是否为伊文炸弹 不支持CellSpread批量挂,不支持空爆子武器挂,不支持非步兵挂 以上三条除了空爆子武器依然挂不了外Ares已全部支持 原版引擎下可使用溅射子武器挂,Ares早期版本拓展IvanBomb时破坏了这一逻辑,已于Ares0.5中重新支持 注意:如果溅射子武器母弹的弹头使用了IvanBomb那么会导致无法爆出子武器 如果没有这句而有AttackCursorOnFriendlies会导致Attack优先级高于Enter BombDisarm = 能否拆除伊文炸弹,工程师用,只能攻击身上拥有IvanBomb的目标,但是哪怕对方身上没有IvanBomb也不会换另一个武器! ElectricAssault = 是否可为磁暴线圈充电,原版仅步兵使用有实际充电效果 如果战斗要塞中的单位为建筑充能,那么直到战斗要塞离开超出充能武器的[Weapon] -> Range=的距离才会停止 该类型弹头会无视[Warhead] -> Versus=寻敌,所以如果不能充能也依旧会尝试充能,但是充不了,于是一直卡在攻击动作上,Phobos已修复 Temporal = 是否为超时空军团兵抹消效果,需要保持攻击状态才有效,抹消目标所需帧数=10*目标最大生命值/Damage,与弹头比率无关,Ares可弹头定义已损失生命值所占的权重 原版对高于地面的空中单位无效,哪怕只是一个[TechnoType] -> FlightLevel=1且[TechnoType] -> Locomotor=Fly的对象,只要它起飞后超时空弹头就无法对其生效,Ares已进行支持 用作死亡武器、光棱溅射武器、YR下用作驻扎武器、弹头范围非0、与[Warhead] -> Culling=yes共用、非GI部署模式且主武非同类武器时用作副武器……将无法正常运作甚至崩溃 会禁用[Warhead] -> Particle=的粒子系统生成 IsLocomotor = 是否为磁电坦克吸人逻辑:强制改变目标运动方式并强制命令目标向自身移动 Locomotor = 磁电逻辑使用的运动方式,注:除原版磁电弹头使用的方式外,大多数都不能正常使用 {92612C46-F71F-11d1-AC9F-006008055BB5}将目标拖到空中,落自己附近,如果目标上有jumpjet相关参数将被调用,否则使用默认值 空白 将目标超时空到自己附近,并报废 {4A582743-9839-11d1-B709-00A024DDAFD1}让目标无法移动 {4A582747-9839-11d1-B709-00A024DDAFD1}将目标超时空到自己附近,并报废 {4A582742-9839-11d1-B709-00A024DDAFD1}让目标无法移动,可上水 {4A582741-9839-11d1-B709-00A024DDAFD1}将目标拉到自己附近,并报废 {4A582745-9839-11d1-B709-00A024DDAFD1}崩溃 {4A582746-9839-11d1-B709-00A024DDAFD1}让目标无法移动 {2BEA74E1-7CCA-11d3-BE14-00104B62A16C}将目标拉到自己附近,并报废 {4A582744-9839-11d1-B709-00A024DDAFD1}将目标拉到自己附近,并报废 报废是指永远不能再做任何动作 Airstrike = 是否召唤空袭(鲍里斯),需和发射者身上召唤空袭的代码配合,同时会绘制红色激光指引线 非Ares下必须定义全局[General] -> SovParaDropInf=项否则攻击立即触发EIP#0041D88D 同时如果用于步兵的副武器那么在攻击建筑时被优先使用且仅可用于攻击建筑,Phobos已允许解锁类型限制 不能攻击同时拥有ResourceGatherer=yes和ResourceDestination=yes的目标,不能攻击CanC4=no的目标(WW偷的懒,Phobos已允许分离控制)会切回主武 如果这种情况下主武也不能攻击,或者判定不需要切回主武但副武实际上并不能攻击,那么会直接无法获得攻击光标 对于驻军和IFV武器这种实际上相当于全是主武的情况则没有武器选用上的这套规则 由于盖特武器只是同阶段奇偶数对应不同情况的规则并不走正常的主副武器选用,自然也无法算是“副武器”,同样不走上述规则 如果步兵处于OpenTransportWeapon=1的运输载具中那么哪怕目标同时拥有ResourceGatherer=yes和ResourceDestination=yes也会强制使用副武器,即便那并不会产生任何效果 Psychedelic = 是否混乱目标,持续时间由Damage和弹头百分比决定 Parasite = 是否为寄生武器,狗、恐怖机器人等使用,秒杀步兵,正常使用武器的ROF和Anim参数。YR下被寄生的载具无法执行DeploysInto 若为巨型乌贼式寄生则不秒杀步兵但开启另一种秒杀逻辑,见[Warhead] -> Culling=标签的注解 若为巨型乌贼式寄生则不使用武器的ROF和Anim参数,见[TechnoType] -> Organic=标签的注解 应配合[Weapon] -> LimboLaunch=yes使用,否则容易出现单位该死不死半生不死既生又死的诡异量子叠加态,并且附带被打爆容易崩溃、移动可能崩溃、明明存在但攻击找不到发射者等各种诡异灵异问题 弹头除了第一次命中外不会实际引爆,因此抛射体上的子武器还是弹头上的其他很多设置都会无效 若开火者没有[TechnoType] -> Naval=yes那么攻击水上目标击杀后无法重新刷回来,因此原版恐怖机器人和狗都有使用[TechnoType] -> NavalTargeting=6来禁止对水域和水中目标开火 Paralyzes = 寄生武器瘫痪目标时间,用于乌贼,在寄生解除时会自动移除,一般填写巨大的数值 仅对玩家手动指令或载具生效,也就是如果你攻击AI的步兵那么AI的步兵是完全不受影响的,事实上AI的载具也需要移动到下个格子才能被瘫痪 Culling = 斩杀,乌贼是否在红血或黄血时立刻杀死目标,这个逻辑原版下基本就是转为乌贼制作的 触发条件: 发射该弹头的单位无星或老兵,目标的血量小于或等于[AudioVisual] -> ConditionRed=的比率 发射该弹头的单位是精英,目标的血量小于或等于[AudioVisual] -> ConditionYellow=的比率 只有当弹头也设置了Parasite=yes并且单位同时设置了Naval=yes和Organic=yes时,才会实际触发秒杀。Ares3.0已扩展相关逻辑不再必须满足以上条件,详见说明书 若为巨型乌贼式寄生那么Culling=yes会导致无法击杀步兵,计算理应完成击杀的那次攻击后就弹出寄生者但不生效,同时被寄生的步兵也再也无法执行除了呆在那以外的任何其他行为(包括被攻击和死亡,用铁幕等方式编码杀都会留下最后一滴血),哪怕它依然可以被下达指令 MakesDisguise = 填yes或者no,是否为伪装效果使用的弹头,用于间谍和幻影坦克废弃设定 Particle = 此弹头作用时触发的粒子系统,比如你可以做个远程维修车,在维修目标处产生火花粒子 原版引擎下若所填粒子系统为Gas类则强制刷注册名为[GasCloudSys]的粒子系统. 解法是使用其他类型的粒子系统刷Gas粒子,例如Smoke粒子系统刷Gas粒子 原版引擎下动画弹头刷粒子系统强制注册名为[GasCloudSys]的粒子系统 属于弹头的基本属性,绝大多数使用弹头的地方都可以生成粒子 甚至是DiskLaser=yes的武器禁用了弹道和爆炸动画 (VS_INI中就使用该逻辑生成了一个粒子来替代AnimList作为命中的视觉效果) MaxDebris = MinDebris = 弹头最多最少产生的shp碎片数量,如狂兽人拆坦克,shp碎片的类型在全局中的[General] -> MetallicDebris=列表中选取 和DebrisTypes连用则决定生成指定VXL碎片的数量 最大值实际上使用MaxDebris-1而非MaxDebris,Phobos已修复 DebrisTypes = 指定弹头生成哪些VXL碎片,当不设定时生成[General] -> MetallicDebris=列表中的SHP碎片 注意:由弹头创建的 Voxel 碎片相比于由单位创建的那些在初始 Z 速度上会表现得更低,因此同一碎片在无弹性的情况下有可能因单位死亡而创建的可以正常飞起来而使用死亡武器绕了一步由弹头来创建的会立即触地消失 所生成的数量与下条对应 DebrisMaximums = 生成VXL碎片用,不影响数量,随便写个正数,否则崩溃,比上一条多出的元素会被忽略 以上四句YR开始允许定义在弹头上,此前只能写在单位体上 但由于YR中WW把这四句扩展到弹头上的时候竟然漏了[TechnoType] -> DebrisAnims=一句 因此对于shp碎片而言原版下只能生成全局[General] -> MetallicDebris=列表中的碎片 Phobos已允许使用[Warhead] -> DebrisAnims=指定,详见说明书 ShakeXlo = ShakeXhi = ShakeYlo = ShakeYhi = 分别代表弹头引起屏幕抖动的XY方向大小值,填写10-50效果较好 这里的lo就是Low,这里的hi就是High,相当于Min和Max,如果Max<Min则被Min覆盖 原版下强制全场都能感受到震撼,Phobos允许设置为仅镜头内引发的震动效果才表现 这个效果会遗留到原版退出地图后的主菜单页面,除非使用XNA CNCNet Client NukeMaker = 核弹升空武器弹头专用,其他情况无用,硬编码禁用本武器伤害并在目标位置本武器[Projectile] -> DetonationAltitude=所指定高度处落下注册名为[NukePayload]的武器 当一个武器的弹头使用该逻辑时会禁止生成其[Projectile] -> ShrapnelWeapon=中指定的溅射子武器 CellInset = 用于自动展开 距离多远触发自动展开 会被PreventAutoDeploy=yes禁用 在目标进入CellSpread再向内这个范围后执行部署 然而!这个标签没做完!它实际上是残废的!啧! DirectRocker = 是否直接掀翻载具不产生伤害 掀翻力比Rocker大,在全局中定义,见[AudioVisual] -> DirectRockingCoefficient=与[AudioVisual] -> FallBackCoefficient=两句注解 另外被此类武器击中的坦克 在攻击者死亡之前都不能活动 此外攻击者在发射此武器后也无法活动 除非单位里有[TechnoType] -> Pushy=yes 本来用于狂兽人的逻辑但是后来WW官方放弃了这个设定 可以掀翻Jumpjet的空中单位,但是不会有图像效果,顶多等一段时间然后它突然炸了。Phobos下也有了图像效果 CausesDelayKill = 是否延迟爆炸,只对[BuildingType] -> EligibleForDelayKill=yes的对象(原版油桶与弹药箱)生效 DelayKillFrames = 延时爆炸帧数,默认5 DelayKillAtMax = 延时爆炸时间随距离爆炸中心变化比率 该值×DelayKillFrames定义最后一次爆炸的时间 另外它会随着时间沿[Warhead] -> CellSpread进行爆炸(效果见VS_INI中https://www.bilibili.com/video/BV1J64y1T7pe) Sparky = TS残留森林火灾逻辑的一部分,RA2下仍有残留效果可在建筑被该弹头打到红血时播放全局[AudioVisual] -> OnFire=列表中的三个动画,若不存在或不够则崩溃 总有人乱动原版那堆Sparky或者从别的mod复制来Sparky=yes的弹头然后打建筑崩溃了又到处问EIP,看到这类人就好心给他们分享一下词典吧!无论新旧版本都有讲述 森林火灾逻辑下还需要拥有[Warhead] -> Wood=yes一句才能点燃树木,Ares已复原森林火灾相关逻辑,其他相关内容详见Ares说明书 Fire = 是否着火,TS残留,对于 TS 的冰逻辑,仅有Wall=yes的弹头只能击破已经裂开的冰,带上Fire=yes后则没有这一限制。 Deform = 改变地形,TS残留无效 DeformThreshhold = 超过此伤害才可以改变地形,TS残留无效 Veinhole = 是否为泰伯利亚废矿伤害,用于免疫规则对应[TechnoType] -> ImmuneToVeins=yes,TS残留无效,Phobos已复原详见说明书 [ProjectileType] <nowiki>;</nowiki> ******* Projectile Characteristics ******* 【抛射体代码】 Arcing = 填写yes或no,炮弹类的标志,弹道为抛物线(使用Arcing攻击建筑会导致计算距离时按照建筑中心点开始,攻击地基越大建筑射程越短)。若战机用会开启五连发模式 有Arcing=yes的抛射体不能跨桥攻击,在建筑斜方向(屏幕正上下左右方向)飞来会撞在建筑的角上而不是建筑中心 有Arcing=yes的抛射体可以像ROT=1那样当Aircraft使用时使用特殊的五连发规则 有Arcing=yes的抛射体无法攻击桥上的对象,无论SubjectToCliffs的值 由于WW代码的疏漏,原版Arcing在与目标有高度差的情况下落点会存在偏移,需要使用现代引擎(Kratos或Build37及以上的Phobos)来修复,详见[Lobber]一节 ROT = 导弹类的标志,填写数值,导弹转向的角速度,推荐1-100。大于等于1就是追踪导弹, 如果发射者为Aircraft类,1代表定点五连发攻击,大于1必须飞机上有Fighter=yes才能顺利发射,否则会一直调整位置直到目标与自身距离刚好为武器的Range,此外若主武为五连发则无论副武抛射体类型也会使用五连发,也就是可以利用主武五连发但不可瞄准来让副武无论类型执行五连发,或主武不五连发而让副武单发Arcing或ROT=1的抛射体。当然你也可以使用原版主副武均为粒子武器会强制只能射一发立即打断来掐断五连发效果。Ares3.0已允许直接使用FireOnce掐,原版会崩,Phobos已允许自定义连发数量 如果战机的武器抛射体有ROT=1和AA=yes,同时它起飞并选定了目标,那么它会悬停不做任何事情就那么傻愣着,导致五连发并不能对空中目标正常使用,Phobos已加入修复计划 ROT=0并不是任何抛射体类型,这只是没有类型的抛射体的默认行为,也就是一种类似Arcing的抛物线,但是算法存在问题,若目标过远则实际落点在大约到目标2/3的位置 当Aircraft处于五连发状态时射出最后一发后剩余的平飞时间通过([Weapon] -> Range= * 256 + 1024) / [AircraftType] -> Speed=公式计算出帧数值,这么多帧后才能发起第二轮扫射或返航 是否五连发仅取决于主武器的抛射体,也就是说只要主武符合条件就可以让非ROT=1或Arcing=yes的副武器同样使用五连发模式,哪怕副武器是Inviso类 至于如何让副武优先对地,无论是使用Versus限制还是直接使用LandTargeting等就随读者自行选择了 原版引擎下五连发只有第一发的Burst有效,Phobos已修复 值得一提的是五连发还有个强制目标单元格对象规避炮火轰炸的效果,甚至哪怕没达到[IQ] -> Scatter=等要求也就是原本没有规避能力的单位都会强制执行规避行为…… Level = 填写yes或no,鱼雷的标志,抛体保持在水面上运动,一般和ROT连用 直接检查当前所处格子类型无视高度,只要底下是陆地哪怕在飞也给你炸了 可以对空,但是有高差且高差大于水平距离会变成垂直的 Inviso = 填写yes或no,瞬间命中抛射体的标志 如机枪激光 硬编码AnimList播放的中心点实际上每次会有32Leptons 的偏移,因此如果动画的弹头没有写CellSpread的话直接挂伤害显然是没法作用到目标身上的 Vertical = 填写yes或no,垂直攻击的标志 如飞艇炸弹 YR开始[TechnoType] -> BalloonHover=yes需要与这句连用才会像原先在RA2那样让单位飞到目标头上投弹 该类型抛射体出膛后就会水平朝向目标而非朝向开火者当前方向 若抛射体图像使用Voxel类型的资源文件那么这个Voxel的下方向会作为发射后水平朝向目标的方向 除不检测地面格子类型外与Level拥有许多相似之处,例如水平距离更大会变成水平发射…… 平射和垂射的界限也会受到地形影响,例如爬坡时哪怕加速度为1也可能转为平射。可以通过调节抛射体Acceleration进行精控 当Aircraft类使用时由于抛射体会继承开火者的速度向量因此无法垂直落到地面 这也曾用于制作直线弹道,不过会飞跃目标点直到飞行路径上出现第一个非友军对象时引爆,如果开火者消失抛射体失去所属自然也可对友军,但对于建筑需要使用Ares的实体建筑逻辑才能引爆,详见Ares说明书 如果使用Shape图像,那么在有高差的情况下可以直接开启直线弹道,但如果无高差可能按上面的情况直接变平飞飞出地图 如果使用Voxel图像,那么在有高差的情况下始终垂直下落,如果无高差见上 无论Shape图像还是Voxel图像,Vertical直接与Ranged连用同样可开启直线弹道并且不会飞越目标点,详见Ranged词条下的链接 当然,基于Vertical的直线弹道无法使用Speed设定速度,只能使用Acceleration来控制 此类抛射体无视目标上的TargetCoordOffset 注意:上面的一些问题或特性已在PhobosBuild48中被修复/更改,所有 Vertical 抛射体都将初始向下,如果要开启原有特性请见 Phobos 官方文档迁移部分 DetonationAltitude = 抛射体高于此高度立刻爆炸,一般仅用于Vertical类,默认0,特殊用法见[Warhead] -> NukeMaker=一句的注解 Image = 抛射体图像,Inviso类立即命中基本无所谓。 对于ROT类抛射体使用Voxel图像还是Shape图像会影响弹道的一些行为,例如使用Voxel类图像那么开火初始方向会考虑目标所在位置的相对方向,所以空中单位发射Voxel图像的ROT抛射体时会自带一个初始向下的角度,而地面单位攻击比自己更低位置的目标可能开火即撞地引爆 对于Arcing类抛射体无论Voxel还是Shape图像都只是单纯的按照弹道类型所规定的抛物线弹道飞行 AA = 可否对空,原版引擎下Aircraft类强制无法对空中目标发起攻击指令,需要Ares <nowiki>*</nowiki>原版夜莺直升机和Aircraft的区分见全局[VehicleTypes]注册表旁的注释 空地判定阈值是目标是否高于208高度,低于208高度的空中目标仍视为地面目标处理 原版下有限使用副武器对空,如果副武器不能对空则使用主武,PhobosBuild34开始优先使用主武 AG = RA2/YR中决定可否攻击地板,不过依然会响应指令旋转过去; 若为no则对于建筑类单位选中后也没有攻击指针,也就是说无法手动下达攻击指令,PhobosBuild34已移除 在RA2中想要禁用一个非建筑类科技类型对地请使用[TechnoType] -> NavalTargeting=和[TechnoType] -> LandTargeting=,参考原版防空防御塔 若一个单位主副武(盖特一阶的两个武器)的抛射体都[Projectile] -> AG=no则这个单位无法主动寻找到目标进行攻击,因此依靠AG=no来禁用A地板最好加一个AG=yes的副武 此外,Phobos更改了该逻辑在建筑上的运作方式使得建筑即便[Projectile] -> AG=no也可以在选中后显示对地面物体的攻击光标,但仍然不会主动攻击地面目标 同样的如果要爱国者可以攻击已经在下落中的伞兵那么需要同时拥有AA和AG AN = AS = ASW = 遗留自RA2开发版本的废弃语句,用于设定抛射体对海反潜等,这三句在RA2/YR正式版本毫无卵用,请使用[TechnoType] -> NavalTargeting=和[TechnoType] -> LandTargeting=来控制反潜对海行为 Acceleration = 抛射体加速度,Acceleration=0会导致子武器还没落地就提前引爆在地面之类的迷惑效果,默认 3 负加速度的抛射体搭配[Weapon] -> Speed=为负数有一些有趣的效果,可以自行实践 SubjectToCliffs = 会撞山吗,然而即便yes也不是彻底移动到一个不被挡住的地方才开始开火 SubjectToElevation = 高处攻击有射程加成吗,见全局[ElevationModel]算法解析 SubjectToWalls = 是否不能穿墙,如果弹头有Wall=yes且主武AG=yes则不能穿的话先把墙打穿再打目标而不是直接开始绕行 原版引擎下若Inviso类抛射体弹头有Wall=yes则无视SubjectToWalls=yes,Ares已修复 以上三句默认否 Cluster = 爆炸数量,写正整数,会产生多个散乱爆炸,原版空爆弹中锁定为9,Ares已更改算法,详见Ares说明书 对于常规武器则控制爆几次,每一发会与原爆点存在位置1-2格偏移,Phobos已允许自定义偏移范围 Splits = FS遗留分裂逻辑,RA2中无效 在FS中强制子武器(如果是可以定义Speed的类型)Speed=19、Damage*10、Bright=no、AA=no,Ares已复原并拓展,详见说明书 Airburst = 是否使用空爆弹萝鸡,对于ROT类还会变成命中在目标正上方,同时弹道使用与[Projectile] -> VeryHigh=yes时相同的平飞高度,此外只要设定就会强制Cluster AirburstWeapon = 空爆子武器名,非Ares下必须使用上一句否则无效,非Ares每次空爆强制原爆点下面3x3区域的9个格子,Ares允许自定义范围 需要注意的是子武器实际是在距离地面大约4高度处而非地面引爆的,因此杀伤范围会使用球形计算而非圆形,也就是会杀伤空中单位,想要限制则见Ares说明书立体爆炸弹头一节 子武器必须有某个单位作为武器使用来进行挂载,否则创建时会崩溃,Ares引擎下可新增[WeaponTypes]注册列表来替代这一操作,详见说明书 ShrapnelWeapon = 光棱溅射子武器名,也称弹片武器,母弹爆点正下方地面单元格内(战机正下方,桥上单位正下方)存在非建筑科技类型或地形对象即可产生溅射,Phobos允许攻击空地与建筑同样产生溅射子武器 可作为目标的对象包括四大类科技类型(即建筑会被作为目标)以及地形对象,由于WW的判定问题从桥上坠落的单位和伞兵也会被记录进来 如果[Weapon] -> Range=内没有数量足够的有效目标,那么没有匹配到有效目标的子武器会在爆点周围5x5范围内随机选取单元格作为目标,此时不会特别避开有友军的单元格 不看Versus,只看是否存在实体对象,也不看目标是否拥有[ObjectType] -> Immune=yes设定 也就是说原版在两个相邻矿柱的其中一个上爆一发子武器与父武器自身的武器那么接下来这两个框柱会构成一个循环。Phobos已添加相关目标筛选拓展,详见说明书 溅射子武器的Range应<=11,否则Inviso类极易崩溃,其他类型也只是概率稍低,实际用于上面找目标时按与原版[Warhead] -> CellSpread=查找表相同的方式由近及远寻找 可以填自己,属于一种特殊玩法,但下面这个语句如果非1的话会导致子武器数目指数增长乃至崩溃 此外母弹弹头若有[Warhead] -> MindControl/IvanBomb/BombDisarm/ElectricAssult/Parasite/Temporal/IsLocomotor/Airstrike/MakesDisguise/NukeMaker之一为真将无法触发溅射 除此以外当目标为载具时如果拥有[Warhead] -> DirectRocker=yes同样会阻止子武器生成 ShrapnelCount = 光棱溅射子武器数目,特殊值0会根据子武器[Weapon] -> Range=范围(若Range>=1.0)内非友军所属的有效目标个数自动分配,默认0 如果是负数则实际数量为该数绝对值-开火者与爆点的距离,也就是越近数量越多,若命中时开火者已经死亡或消失则固定为3个 关于子武器的注: 按WW原本的实现方式子武器原本是不支持绘制EBolt和Laser、Beam、Wave这类特效以及粒子系统和创建辐射的,但大概是RA2开发阶段考虑磁能和光棱的子武器效果,于是在程序中为[Projectile] -> ShrapnelWeapon=专门支持了EBolt和Laser这两类特效。Phobos对此进行了拓展,Build45开始[Projectile] -> AirburstWeapon=的武器可以创建辐射,Build46开始[Projectile] -> AirburstWeapon=的武器允许使用EBolt(不支持Ares的自定义颜色,支持Phobos的关闭特定电流和电弧数量定义)、Laser(支持Ares[或者说是Phobos刻了一遍并拓展]的LaserThickness)、IsRadBeam(支持Ares的Beam.Color、Beam.Duration、Beam.Amplitude、Beam.IsHouseColor)以及使用[Weapon] -> AttachedParticleSystem=定义粒子系统 FirersPalette = 填写yes或no,该武器的抛射体使用发射者的色盘,并继承所属色,如恐怖机器人和狗 无论抛射体ART代码中的设置如何,都将以单位色盘绘制。这也使得抛射体可以有所属色 注意:基于Voxel的抛射体所属色总是重新映射到[Colors]第一个颜色,而不是正确的所属颜色,Phobos已修复 CourseLockDuration = 锁定延迟,即导弹类出膛后径直飞行经过这么多帧后才锁定目标 然而在向东南方向(↓)飞行时会向正东方向(↘)拐弯,想用这个做直线弹道还是算了 Dropping = 炮弹炸膛……用于Arcing和ROT类抛射体,同时会把FLH强行写回0,0,0,不想要这个效果就用Vertical类抛射体设置[Projectile] -> DetonationAltitude=0限定引爆高度或者ROT类在Ares复原了Ranged追击距离后设置[Weapon] -> ProjectileRange=0限定引爆距离来实现开火即炸 虽然会更改FLH但也只更改抛射体的开火点和爆点,而Laser等特殊效果仍会遵照FLH绘制,现代拓展引擎中正在接力修复 Inaccurate = 不直击 如煤球炮,通常仅用于Arcing类抛射体,且用于此类抛射体时无视下句,散布范围由全局[CombatDamage] -> BallisticScatter=控制,Ares已允许微观定义 此外会导致Arcing与Inviso类抛射体无视目标上的[BuildingType] -> TargetCoordOffset=设定 还会屏蔽Arcing类抛射体原先引爆后爆点瞬间转移到目标身上的效果 FlakScatter = 散射,如煤球炮,可用于任何类型抛射体,不影响弹道,只影响弹头实际爆点,子武器用会崩 若与[Projectile] -> Inviso=yes合用,则随着目标点与开火点间距离的扩大而使爆点偏移范围从0至2*全局[CombatDamage] -> BallisticScatter=的范围,Phobos已允许微观定义 关于散布坐标的算法,具体而言: 1. 首先从[0, 2 * BallisticScatter]中抽取一个值 2. 其次用目标点与开火点间距离除以[Weapon] -> Range=的值获取一个系数 3. 将两者相乘获得最大散布半径 4. 生成一个随机角度,X 偏移 = 散布半径 * sinθ,Y 偏移 = 散布半径 * cosθ 5. 根据上面算出的偏移值定位坐标引爆 Proximity = 是否到达目标所在单元格立刻爆炸,RA2下强制yes,但可用[Projectile] -> Arm=进一步限制 Ranged = 是否让该抛射体在移动超过一定的距离后原地爆炸,原版编码390格,Ares可使用[Weapon] -> ProjectileRange=微观定义,详见说明书 此外该语句可以令爆点跟随到目标单位当前的位置,除非目标单位具有一个非常大的Speed可以在下一帧就逃出CellSpread的范围否则必命中 若为no则爆点实际可能在偏移到原先正下方的地面,用于Vertical类抛射体有特殊效果https://t.bilibili.com/811175586848309287 出于缺失该句的情况存在各种莫名奇怪的蛋疼问题,建议各家正在开发的MOD直接把抛射体非特殊情况下必须添加Range=yes写入项目章程 Color = 抛射体所属色,写[Colors]里的配色方案名称 Scalable = 定义是否因地图上抛体数量过多而提高尾烟产生间隔以保持游戏流畅运行 Shadow = 抛射体是否有影子,默认yes High = 飞得高 无视围墙,TS残留废弃,毫无卵用,RA2里已经被[Projectile] -> SubjectToWalls=取代了 VeryHigh = 飞得超高,用于ROT会飞的和[Projectile] -> Airburst=yes时一样高(大致是平时的两倍)但是可能有一些视觉上怪异的东西 比如这玩意如果与[Projectile] -> SubjectToWall=yes合用那么被拦住的时候也是凌空爆炸,也就是飞的特别高的导弹因为正下方的地面有一格围墙于是半空中直接爆开了 Floater = 该抛射体的重力是否减半,用于Arcing抛射体会由于重力参数微观调整导致其最终计算出的速度减半 但是并不能通过[AudioVisual] -> Gravity=1给特定抛射体微观设定[Projectile] -> Floater=yes来使其微观重力达到零(也就是并不能用这个方法实现直线弹道) 此外TS与Ares中的[SuperWeaponType] -> Type=EMPulse类超武调起建筑开火时会无视建筑武器上的[Projectile] -> Floater=yes设定,Phobos已强制修复 IgnoresFirestorm = 该抛射体是否能穿透火风暴墙,原版无效,因为整个火风暴逻辑都是TS残留废弃,Ares已复原相关逻辑,详见说明书 Arm = 指定导弹引信启动延迟,默认0 即抛射体到达目标单位所在单元格多久后才会爆炸 若抛射体与目标单位所在坐标重合则依旧立即引爆 基于这一特性,设置一个较大的值可以会显著提高对除战机类目标外所有移动单位的追踪效率,因为不会刚到同一单元格就炸而是需要真正命中目标 Degenerates = 导弹是否在飞行过程中渐渐降低速度和伤害,最低降到5,需要与[Projectile] -> Ranged=yes连用,但会导致Ranged效果不工作而单纯用于开启本句 按工作代码其实也可由[Projectile] -> Dropping=yes与[Projectile] -> ROT>0来开启 Bouncy = 是否弹跳 无效,TS残留,红警2中无效 Elasticity = 弹跳能力,1-0,默认0.75,TS残留,红警2中无效 Parachuted = 可以让子武器上绘制[General] -> BombParachute=指定的降落伞,原版会和Voxel抛射体一样使用[Colors]列表第一个,Phobos已允许抛射体微观定义降落伞图像 注意有伞的[Projectile] -> Arcing=yes类抛射体由于伞对竖直方向速度的影响会在长程开火下飞出一个神奇的弧 最后修订日期20241106by九千天华 [[Category:词典]]
返回到「
6.武器系统代码词典
」。
搜尋
搜尋
檢視6.武器系统代码词典的原始碼
新增話題