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

9.覆蓋物詞典

[OverlayType]

Land=[Clear|Road|Water|Rock|Wall|Tiberium|Beach|Rough|Ice|Railroad|Tunnel|Weeds]

;該覆蓋物會將所在單元格的地形判定更改為哪種

;例如水中箱子有Land=Water

;默認值由其他覆蓋物標籤確定

;

;經檢驗,Land類型會干擾其他邏輯對本OverlayType的識別

;地形類別代碼解釋(這不屬於覆蓋物!只是為了方便才列在這裏)

;[Water]

;這種SpeedType在該地形上的Speed倍率

;Foot=0%

;Track=0%

;Wheel=0%

;Hover=100%

;Float=100%

;FloatBeach=100%

;Amphibious=100%

;沒有Winged項,不接觸地面的戰機不管這個,與之存在些許相關的內容見[TechnoType] -> Locomotor=<CLSID>下的註釋部分

Foot類只簡單檢查是否>0決定能否移動

;Buildable=no

;能否在該地形類別上建造建築

; [BuildingType] -> WaterBound=yes/SpeedType=Float將會使該建築可以無視Buildable=no在Float>0%的地形上建造

;同樣使用這些>0%的SpeedType且可以在水上尋路的單位可以吃水上箱子

;

;ICE和Weeds可以在Ra2中用來做全新的地形類別

;Tunnel(隧道)和Railroad(鐵路)可以拿來直接用

;但是TS殘留的素材在Ra2色盤不對,最好直接換TX地形

;

;而Weeds雖然也可以支持採集,但RA2中已廢棄

;(   具體表現為礦車擁有Weeder=yes會導致無法正常採礦,除非Overlay的Land=Weeds...              )

;(   但即便如此,Weeder=yes本身就在RA2被WW砍得失去了採集能力,沒法真正採集起來,甚至不會主動尋礦)

;(   PhobosBuild39中已經復原了這個邏輯                                                     )

;

;故RA2下不應對Tiberium進行Land的定義,除非存在其它經濟調整手段

Strength=<int>

;該覆蓋物被殺傷的概率除數,默認1,用於 Min(1, Damage/Strength) 獲得一個覆蓋物被削掉一層的概率

;需要注意的是覆蓋物並非遊戲內獨立存在的對象,一切與覆蓋物的交互實際上是與覆蓋物所在的單元格交互

;也就是說對於覆蓋物而言Strength實際上用於計算被摧毀/削掉一層的概率而非經典意義上的「生命值」概念

;對應的,殺傷覆蓋物只看Damage和是否對該類型覆蓋物的殺傷語句,不檢查彈頭比率

;對於[OverlayType] -> Wall=yes的覆蓋物需要使用[Warhead] -> Wall=yes的彈頭,此時對於可對牆且一炮能削掉一層的武器來說牆類覆蓋物[OverlayType] -> DamageLevels=寫了幾層就需要幾炮

;    如果該【牆類】覆蓋物【同時還】有[OverlayType] -> Armor=wood設置,那麼[Warhead] -> Wood=yes的彈頭也可以按【同一規則】造成殺傷

;對於[OverlayType] -> Tiberium=yes的覆蓋物需要使用[Warhead] -> Tiberium=yes的彈頭,層數為 1 還是 2 取決於礦石成熟度

;對於兩句都有(後者自帶相當於[OverlayType] -> Armor=wood的效果)的覆蓋物,來襲彈頭若只有[Warhead] -> Tiberium=yes則同礦石規則計算,只要有[Warhead] -> Wall=yes或[Warhead] -> Wood=yes就按層數為[OverlayType] -> DamageLevels=值+1的牆規則計算

;當然如果來襲彈頭上有[Warhead] -> WallAbsoluteDestroyer=yes且[OverlayType] -> Wall=yes那麼會優先於上面的常規計算規則使用

Wall=<boolean>

;此覆蓋物是否啟用牆相關的邏輯:

;會被[Warhead] -> Wall=yes的彈頭傷害

;會被[Warhead] -> WallAbsoluteDestroyer=yes的彈頭秒殺

;如果是[OverlayType] -> Armor=wood或[OverlayType] -> Tiberium=yes的覆蓋物則會被[Warhead] -> Wood=yes的彈頭傷害

;同時禁用[OverlayType] -> CellAnim=創建動畫效果

;建造相關的交互見《2.單位屬性rules詞典2024.ini》中同名語句[TechnoType] -> Wall=下的註解,如果你獲得本文檔的同時沒有配套這一文件,說明你的文檔並非從原正式發布渠道獲取,而是已經被第三方未經許可拆分修改過的

;每個牆類覆蓋物受傷時會對周圍四格內的其他圍牆造成200點殺傷,這導致僅剩一格圍牆時更難被摧毀,PhobosBuild49中已允許使用[CombatDamage] -> AdjacentWallDamage=全局定義殺傷值

;原版下覆蓋物牆如果擁有所屬色則會映射為觀察視角來源的所屬色而非其所屬方的所屬色

;(Ares0.2已修復)

Tiberium=<boolean>

;是否被視為礦石類覆蓋物並啟用礦石生長邏輯

;副作用是與此同時賦予這種覆蓋物Armor=wood

;同時不再使用iso<tem>.pal而是[temperat.pal|snow.pal|urban.pal|desert.pal|lunar.pal|urbann.pal]

Crate=<boolean>

;是否可以在一個單位移動到它上方時消失

;消失同時另一個該覆蓋物出現在地圖上一個隨機的位置

;用於升級工具箱,按說RA2開始提供碰到它即打開箱子的功能應該由下句控制,然而實測和TS一樣都是本句直接包含了下句效果而下句單用無效

CrateTrigger=<boolean>

;此覆蓋物是否觸發升級工具箱邏輯

;另外:

;CarriesCrate

;CrateBeneath

;TrainCrate

;生成的箱子也遵循消失同時地圖上出現另一個的規則

;但是每次被摧毀生成的箱子都會導致地圖上箱子的總數量增加

;等到地圖上箱子的總數量>[CrateRules] -> CrateMaximum=<int>時

;被摧毀將不會生成箱子

;※碎片通過[Animation] -> TiberiumSpawnType=刷出來的箱子不受到該限制

;但是除礦石以外的OverlayType實際生成的東西會在註冊表裏偏移

Explodes=<boolean>

;有該條目的覆蓋物被殺傷時將觸發以下內容

;覆蓋物被殺傷,向該單元射擊的單位停止攻擊

;顯示[General] -> BarrelExplode=的動畫

;有85%的幾率生成[General] -> BarrelDebris=的VXL碎片

;有25%的幾率生成[General] -> BarrelParticle=的粒子

;對當前單元格使用[CombatDamage] -> C4Warhead=的彈頭

;和[CombatDamage] -> AmmoCrateDamage=指定的數值造成傷害

Overrides=<boolean>

;此覆蓋物是否可以在不刪除其他覆蓋物的情況下繪製在其他覆蓋物的上方

;例如可以在橋樑下放置礦石而兩者沒有影響

CellAnim=<animation>

;此覆蓋物所在單元格會繪製哪個動畫

;禁止使用刷兵動畫!

;動畫的實際生成位置位於相對單元格中心向東南方向(屏幕下方向)偏移45像素的地方

;如果擁有Tiberium=yes的覆蓋物那麼強制使用unit色盤並將所屬色部分使用該覆蓋物所屬礦石類型[TiberiumType] -> Color=指定的配色方案進行映射

;與此同時該覆蓋物的雷達顏色不再從其自身Shape文件中獲取而是從該動畫的Shape文件中獲取

;你可以用無素材動畫在art里寫上Damage來做單位在礦石里減血

;也可以用於刷炸礦碎片摧毀礦石刺激礦石延伸

;(測試表明似乎此方法的快速礦石延伸不會觸發EIP:007225F3)

;它在TS里用於顯示一種大型綠色晶狀礦石

;這種礦石實際上是一個動畫,殘留在ra2.mix里

;可以使用[OverlayType] -> CellAnim=BIGBLUE直接調用,但RA2下顏色存在問題

DamageLevels=<int>

;默認1,牆有幾個損傷等級

;用於牆體被傷害顯示不同幀的圖像

;每個損傷等級必須有一整套素材幀

;注意:該語句在art(md).ini中定義

RadarColor=[R,G,B]

;該覆蓋物在雷達上顯示什麼顏色,默認0,0,0

;不過沒蛋用,還是得去tem文件裏寫。對於礦石類在PhobosBuild28下可以利用MinimapColor新標籤來指定

NoUseTileLandType=<boolean>

;默認yes,是否使用下方地面單元格(Tile)決定的LandType

;若為no則不使用Tile來決定而是使用[OverlayType] -> Land=<LandType>來決定

;不影響Land=<LandType>關聯的覆蓋物類型判定,只影響單位尋路和移動速度倍率

;已知部分覆蓋物設no無效,例如礦石和箱子

IsVeinholeMonster=<boolean>

;該覆蓋物是否歸類為泰伯利亞藤蔓洞使它可以被單位瞄準並攻擊

;聲波武器無法傷害Veinhole

;使附着的Veinhole按[General] -> VeinholeGrowthRate=生長

;如果Veinhole被擊殺,則從藤蔓洞向【外】按照[General] -> VeinholeShrinkRate=枯萎

;一個顯而易見的工作方式是如果枯萎速度不如生長速度快的話那麼哪怕藤蔓洞被摧毀剩下的泰伯利亞藤蔓也可以自行生長和擴張

;這個覆蓋物會無視Image硬編碼使用下述動畫(0始)序列:

;0擺爛幀,靜止時保持使用這幀作為圖像

;0-6幀作為空閒幀,隨機一段時間播放一次

;在不與場上其他物體互動時僅有上述兩個狀態互相切換

;0-3幀為其他物體靠近藤蔓洞時的幀,在TS中是藤蔓洞張口等進食的動畫

;也就是建築擺在藤蔓洞旁或單位路過那麼藤蔓洞會使用0→3幀播放一個張開口的動畫,然後保持在第3幀(一直張開)

;當其他對象離開(建築出售或被摧毀)時會倒放序列從3→0然後回到前面不與其他物體交互的狀態

;7-10幀為被攻擊時的動畫,每次被攻擊後生成名為GasCloudM1的粒子,每次被攻擊重複2-3次

;11為藤蔓洞被持續攻擊並擊殺時的幀

;原SHP中的第12幀實際上沒有被使用

;註:此標籤並不會產生泰伯利亞藤蔓,那是[TerrainType] -> IsVeinhole=yes啟用的

IsVeins=<boolean>

;是否為泰伯利亞藤蔓

;泰伯利亞藤蔓的生長部分在RA2下已廢棄,PhobosBuild39已復原,詳見說明書

ChainReaction=<boolean>

;該覆蓋物被摧毀是否引發連鎖反應

;在Ra2及以上唯一的效果是:

;如果一個SpawnsTiberium=yes的地形對象被摧毀/該Tiberium=yes的覆蓋物被Tiberium=yes彈頭造成傷害/受到一個使用了波邏輯的武器的穿透傷害作用

;則對於生長階段大於1的礦石類覆蓋物將有生長階段*5%的概率觸發連鎖反應

;具體效果是所在單元格中礦石類覆蓋物的生長階段減半,減少的生長階段數*該類礦石的Power值來計算殺傷

;使用全局C4Warhead來獲取彈頭,爆炸動畫為根據傷害值從C4Warhead彈頭的AnimList中選取前六個動畫之一

;即生長階段越高,連鎖反應的殺傷力越強,使用的動畫越靠後

;爾後周圍八個單元格中任何生長階段大於1的礦石類覆蓋物有80%的概率在15-120幀的隨機延遲後產生名為INVISO的動畫

;於是連鎖反應就開始了(原版下INVISO擁有Damage=1且硬編碼使用C4Warhead=的彈頭)

;前文中的動畫選取公式如下:

;C4Warhead彈頭AnimList中的(0始)序號={[(該礦石類OverlayType的生長階段/2)*[TiberiumType] -> Power=的值]*4}/25

;最終結果向下取整,其中礦石生長階段/2的一步也要取整

;生長階段對應礦石素材資源文件中的幀,一共12個階段對應12幀不同階段的圖像

;Ares0.5已復原連鎖反應邏輯,詳見說明書,如果你獲得本文檔的同時沒有配套這一文件,說明你的文檔並非從原正式發布渠道獲取,而是已經被第三方未經許可拆分修改過的

DrawFlat=<boolean>

;指定此覆蓋物是否繪製為「附着於地面」

;(默認為「yes」,因為覆蓋物的定義一般就是覆蓋在地面上的)

;實際用於控制覆蓋物與單位的遮擋優先級

;通常用於「稍微有一些高度」的覆蓋物,例如柵欄和矮牆

;不過覆蓋物自身的性質決定單位位於其後也並不會播放[General] -> Behind=指定的動畫

;實際上就是對於該OverylayType的ZAdjust處理是否按視角向上方向為在地面向西北方向擴展而非空間上方向來計算

;如果為no就是和建築素材一樣按空間向上來計算

;此外會讓Z的基準值從-15改為0

;算法見ART詞典ZAdjust條目下方註解

IsARock=<boolean>

;該覆蓋物在地面單位尋路時是否會視為岩石等無法跨越的障礙物

;註:無論[TechnoType] -> MovementZone=賦值是什麼都都視為無法跨越的障礙物

;一個奇妙的作用是如果與[OverlayType] -> Wall=yes共用那麼使用了[Weapon] -> TerrainFire=yes的武器的單位可以直接瞄準圍牆,哪怕是己方的

;由於覆蓋物的性質,高貴的磁電吸起載具碾死步兵順便碾死格子上物體Bug也在此敗北(我的編碼在你之上)

IsRubble=<boolean>

;該覆蓋物是否被視為廢墟

;原版只有RUBBLE_OVERLAY這個覆蓋物使用它

;因為它被用於所有廢墟圖像的實際單元格佔位

;以允許單位移動上去而不允許在其之上放置建築

;這些廢墟圖像一般使用原建築Shape圖像的第4幀

;by九千天華