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

6.武器系統代碼詞典

前言,武器拋體彈頭代碼一堆,不建議在本文中摘取代碼從零開始寫,請複製原版已有的武器系統進行修改

[WeaponType]

; ******* 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允許為所有常規武器彈頭定義這兩項行為及具體參數

; ******* 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>

;[Hardcode]=<none>

1=[Sequence] -> Die1=<int>,<int>,<int>

;步兵Die1序列,並非Animation類對象

2=[Sequence] -> Die2=<int>,<int>,<int>

;步兵Die2序列,並非Animation類對象

3=[General] -> InfantryExplode=<animation>

;OriginValue=S_BANG34

4=[General] -> FlamingInfantry=<animation>

;OriginValue=FLAMEGUY

5=[Animations] -> 2=<animation>/Ares新增的[AudioVisual] -> InfantryElectrocuted=<animation>

;OriginValue=ELECTRO

6=[General] -> InfantryHeadPop=<animation>

;OriginValue=YURIDIE

7=[General] -> InfantryNuked=<animation>

;OriginValue=NUKEDIE

8=[General] -> InfantryVirus=<animation>

;OriginValue=VIRUSD

9=[General] -> InfantryMutate=<animation>

;OriginValue=GENDEATH

10=[General] -> InfantryBrute=<animation>

;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第一項

*如果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]

; ******* 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

*原版夜鶯直升機和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九千天華