10.污染物和Voxel碎片及雜項詞典
;因為語句過少,所以這些內容全部合在一個文件,順便把一些內容並不太多的小教程也一併合入
[SmudgeType]
Crater=<boolean>
;是否為彈坑
Burn=<boolean>
;是否為燒焦痕跡
Width=<int>
;該污染物在↙↗方向上的占格
Height=<int>
;該污染物在↖↘方向上的占格
;污染物不是動畫,無法使用動畫相關語句,不是覆蓋物,也無法使用CellAnim,這是很顯而易見的
[ObjectType]
;泛指所有遊戲內實體,包括但不限於四大類Techno與Overlay、Terrain.etc
;以下標籤均可在屬性詞典找到對應項,因此不作逐句翻譯,僅添加部分特殊情況的注釋
;部分語句雖然列在ObjectType下,但對於特定子類而言部分語句顯然是令人匪夷所思的,同樣的也並非所有標籤都能在所有子類上正常工作
;===============================Rules===============================|
Image=<Image>
AlphaImage=<filename, excluding the .shp extension>
;原版下由TechnoType所掛的AlphaImage只有切屏才會刷新位置(Ares0.1已修復)
;原版下由Animation所掛的AlphaImage存在無法正常移除等問題(Ares0.5已修復)
CrushSound=<sound>
AmbientSound=<sound>
Crushable=<boolean>
;[TerrainType] -> Crushable=yes會有一些視覺錯誤
;-1-
;載具不會傾斜
;-2-
;需要切換鏡頭才能刷新圖像
Bombable=<boolean>
NoSpawnAlt=<boolean>
AlternateArcticArt=<boolean>
RadarInvisible=<boolean>
;PhobosBuild28前實際上TerrainType並不能正常使用這個功能,b28後進行了支持並將默認值從true改為false
Selectable=<boolean>
LegalTarget=<boolean>
Armor=<Armor>
Strength=<int>
Immune=<boolean>
Insignificant=<boolean>
HasRadialIndicator=<boolean>
RadialColor=<[R],[G],[B]>
;沒蛋用,不少Terrain和Overlay的RadarColor數據直接都寫在.tem文件裡的
IgnoresFirestorm=<boolean>
;================================Art===============================|
UseLineTrail=<boolean>
LineTrailColor=<[R],[G],[B]>
LineTrailColorDecrement=<int>
;每幀的淡出量,遊戲處於低細節級別時該值會×2
;對應的,Particle屬於Object的子類,因此也可以在art中定義LineTrail,故所謂Particle無法在art中定義的言論是完全錯誤的,無非是作為Particle而沒有使用獨屬於Animation的功能罷了
Theater=<boolean>
NewTheater=<boolean>
Voxel=<boolean>
[VoxelAnimType]
;有許多與Shape碎片(Animation)相通的語句,包括StartSound與StopSound
;在此僅列出VoxelAnimType專有部分和VoxelAnimType與Animation不同的部分
Elasticity=<float>
;*對於Voxel碎片而言的確可以彈跳,並且會繼承原有方向,默認0.8
Spawns=<VoxelAnimType>
;該Voxel碎片撞擊後生成的子Voxel碎片類型
;似乎僅典型流星碎片可以正常生成子碎片,非流星和反向流星都不正常甚至還會導致007564BD
MinAngularVelocity=<float>
;Voxel碎片在天上旋轉的速率最小值
MaxAngularVelocity=<float>
;Voxel碎片在天上旋轉的速率最大值
;以上兩條寫太大可能會表現成只能在兩幀間切換
Duration=<int>
;Voxel碎片多少幀後消失,默認30,有隨機浮動
;這是一個對跳板玩家而言很有用的功能:
;因為與Shape碎片走完End、LoopCount、SHPFileFrame、Rate等決定的幀數後不同
;這句作用於Voxel碎片導致半空就爆炸的情況是可以正常生成ExpireAnim的!!!
;然而,與Shape流星碎片根據MinZVel決定起始生成位置未碰撞則不提前消失導致可以飛越原對象坐標的算法不同
;Voxel流星如果為正整數(有限)Duration則根據Duration與ZVel決定的速度區間決定從何處生成
;也就是說說Voxel流星總會抵達原對象坐標位置然後爆掉。當然,反向流星可能因為撞地板提前引爆
MaxZVel=<float>
;碎片豎直速度的最大值,正數為向上飛,默認15,該語句僅Voxel碎片擁有,Shape碎片僅有MinZVel
TrailerAnim=<animation>
;生成間隔固定為 2 幀,PhobosBuild48已允許自由定義
;*對於Voxel碎片而言原版下會有一個豎直方向向上的偏移值
;並且偏移量大致根據Voxel碎片自身與地面高度差乘算而非固定值
;因此也曾用於一些使用特殊計算公式下調整Animation生成位置的特殊效果
;純作為圖像的話則通常換用AttachedSystem刷粒子來表現軌跡路徑上的尾煙效果
;PhobosBuild48已修復
AttachedSystem=<ParticleSystemType>
;Voxel碎片的附加粒子系統,會在飛行軌跡上生成其設定的粒子
ShareSource=<TechnoType>
;從哪個單位的Voxel資源文件獲取圖像,需要下面三句至少一句否則仍用原規則
;如果是DTRUCK之類使用Image決定圖像的單位則從其Image的對象調用
;想做一個載具被摧毀後腦袋飛上天的話這個邏輯是非常便利的
;並不檢查目標單位的Turret
;也就是寫V3ROCKET用ShareTurretData去調用V3ROCKETTUR.VXL和V3ROCKETTUR.HVA也是可以的
;以下三句以本句設定=HTNK的情況舉例
ShareBodyData=<bool>
;是否從這個Voxel資源文件的Body部分獲取圖像,也就是使用htnk.vxl
ShareTurretData=<bool>
;是否從這個Voxel資源文件的Turret部分獲取圖像,也就是使用htnktur.vxl
ShareBarrelData=<bool>
;是否從這個Voxel資源文件的Barrel部分獲取圖像,也就是使用htnkbarl.vxl
;以上三句若不止一句為yes則只會生效一句,並且優先級Body(本體)>Turret(炮塔)>Barrel(炮管)
VoxelIndex=<int>
;使用目標Voxel資源文件的哪個Section
;例如ShareSource=SHAD下寫1的話就是爆出螺旋槳
;如果Image或ShareSource調用的Section不存在則005AFB8B
;若是Turret的某個Section不存在則00756B2D
Image=<filename, excluding the .vxl extension>
;與ShareSource不同,可以直接寫HTNKTUR這種形式
;但若對象不存在則007564BD
;而ShareSource則沒有那麼嚴格
;哪怕寫個ShareSource=TRUCKA用ShareTurretData去調那並不存在的Turret文件也不會崩
;再甚至哪怕寫個狗屁不通的ShareSource=DTRUCKTUR然後疊個ShareBarrelData去調dtruckturbarl.vxl/hva
;當然這只是不崩,真要調到還得註冊一個名叫DTRUCKTUR的單位且設置Voxel=yes和Turret=yes才行
[Tiberiums]
;礦石類型修改
只有4類礦石,礦石實際以TIB開頭的多個覆蓋物表現,這個部分用於控制不同類型礦石生長和價值相關的數據
0=Riparius -> 標準原版金礦
1=Cruentus -> 標準原版晶礦
2=Vinifera -> 原版金礦,實際上是第三類礦石,但是Westwood製作地圖的時候常常與第一類標準金礦混用,可以使用MapTools的"[Overlay] RA2 Fix Ore Types"一條全部轉換成第一類礦石
3=Aboreu -> 原版未使用,可以放心的作為新礦石類型且無需擔心原版地圖的兼容問題
;RA2已經沒有了那麼豐富的泰伯利亞系列邏輯,但另兩類礦石仍然可以用來做其他好玩的
;RA2下礦井類Terrain只會生成該表中第一個Tiberium類型所對應的Overlay,FS與Phobos允許自定義
[TiberiumType]
Name=<any str>
;無需多言
Image=[1|2|3|4]
;1對應OverlayType中的[TIB01]....[TIB20]
;2對應OverlayType中的[GEM01]....[GEM12]
;3對應OverlayType中的[TIB2_01]..[TIB2_20]
;4對應OverlayType中的[TIB3_01]..[TIB3_20]
Power=<int>
;RA2中無意義,TS中泰伯利亞上高度低於HoverHeight的單位會持續受到Power/10的傷害,Ares0.5已復原該邏輯,並且新語句允許使用負值傷害治療單位和禁用特定類型礦石產生傷害,詳見說明書,如果你獲得本文檔的同時沒有配套這一文件,說明你的文檔並非從原正式發布渠道獲取,而是已經被第三方未經許可拆分修改過的
Value=25
;每1單位礦石的單價
Growth=<int>
GrowthPercentage=<float>
Spread=<int>
SpreadPercentage=<float>
;礦石生長與擴散相關的邏輯
*註:與Terrain產生礦石不同,這個是礦石覆蓋物自身的生長而非藉由其他對象生成
;Growth是生長,即小礦石逐漸長成大礦石,每隔Growth幀有GrowthPercentage的概率生長一次
;Spread是擴散,即礦石擴散到其他單元格,每隔Spread幀有SpreadPercentage的概率擴散一次
;上面四個值都設為1會見到礦石瘋長
然後崩潰。
;因為WW這個邏輯處理的並不好,TS里尚且一般,隨後作為一個本就用不到但一直沒刪的邏輯跟著到YR里,穩定性再下一個台階
;長太快很容易中後期莫名崩潰,或者一直不崩等到退出遊戲或者重新開始任務的時候崩了
所以不建議設置太猛的數值
;如果真的需要長得特別快可以使用[OverlayType] -> CellAnim掛動畫用碎片刷覆蓋物的邏輯來模擬,而不是直接用這個
Color=<color scheme>
;當礦石類覆蓋物使用CellAnim時強制其使用unit色盤並將其所屬色映射為此處指定的配色方案
;不影響礦石的雷達圖顏色,由覆蓋物的.tem文件內部RadarColor數據決定,PhobosBuild28開始允許使用MinimapColor在此處定義
Debris=<List of animations>
;TS中的礦石被[Animation] -> TiberiumChainReaction=yes的動畫碰到會爆出這裡設置的碎片,同時這些碎片也有同一語句,於是會在一片礦區中產生連鎖反應,Ares0.5已復原該邏輯,詳見說明書
對戰模式【原版[巨富|海戰|自由交戰|.etc]】修改
;對於使用XNA CNCNet Client的MOD而言這部分倒是無所謂的
在mpmodesmd.ini中不同的[]中代表不同的多人遊戲(與單人戰役相對)類型
一般而言只需要在[Battle]中添加
例如我們向[Battle]下添加
9=GUI:TechLevelSpare, STT:ModeTechLevelSpare, TSpare.ini, techspare, true
9 -> 序號
GUI:TechLevelSpare -> 模式選擇和地圖下面標註的模式
STT:ModeTechLevelSpare -> 光標懸浮在這個模式上時底邊欄的文本
TSpare.ini -> 這個模式加載的模式ini
techspare -> 這個模式的識別符,需要地圖[Basic] GameMode=包含這個條目才能在這個模式使用這張地圖,例如直接填寫standard就可以直接啟用原版作戰模式的地圖
true -> 這個模式是否允許使用隨機地圖生成器
音效相關的內容,此處為sound(md).ini中,新增音效需要加入註冊表[SoundList]中
[SoundList]
+=NewSound
[NewSound]
Sounds=
;語音列表,對應文件名,若寫多個則要在每個語音之間留一個空格並在各項前面添加「$」前綴
Volume=
;音量大小的百分比,填0-100的整數
Priority=[Lowest|Low|Normal|High|Critical]
;優先級,最低|低|中|高|緊急
;Sound與EVA不同,EVA是[Low|Normal|Important|Critical]
;TS中的Priority=使用正整數值指定
;TS不存在eva(md).ini
FShift=
;頻率浮動範圍百分比,兩個值代表Min和Max,例如FShift=-10 10代表音效會使用比正常速度慢10%至比正常速度快10%的速度播放
VShift=
;音量浮動範圍百分比,例如Volume=45而VShift=10那麼浮動範圍為40%-50%
Limit=
;該音效在遊戲中最多同時存在多少個
Control=[all|loop|random|predelay|interrupt|decay|ambient]
;控制方式
;all 按順序播放Sounds列表中的每個
;loop 循環播放Sounds列表中的第一個;若與random合用則一般用於MoveSound或蓋特武器Report那種效果,此時不僅限第一個音效
;random 在Sounds列表中隨機選取一個播放
;predelay 搭配Delay=一句使用,見Delay=
;interrupt 此音效可以打斷其他正在播放的音效
;attack 擁有淡入音效
;decay 擁有淡出音效
;ambient 將聲音視為環境音,無視interrupt效果
Delay=
;僅用於Control=predelay,用於設定延遲時間,單位毫秒,兩個值即為Min和Max,若Min>Max則始終用Min,若負值則會讓音效只播放一次並且無延遲
Loop=
;僅用於Control=loop,用於定義循環次數
Attack=7
;僅用於Control=attack,用於指定前多少個音效用於淡入或循環開始
Decay=7
;僅用於Control=decay,用於指定後多少個音效用於淡出或循環結束
Type=[ambient|violent|movement|quiet|loud|global|screen|local|player|normal|gun_shy|noise_shy|unshroud|shroud]
;播放類型,然而有的可能只在特定條件下可用
;ambient
;violent
;movement
;quiet
;loud
;global 全圖所有玩家都可以聽到
;screen 只有玩家視角內可見播放源時可以聽到
;local 只能在播放源周圍Range指定的距離內聽到
;player 只有觸發這個聲音事件的玩家才能聽到
;normal 無效果,正常的一批,無需多言
;gun_shy 覆蓋其他效果,如果正在播放音量更大的音效那麼這個音效不會播放
;noise_shy 覆蓋其他效果,如果有正在播放其他音效那麼這個音效不會播放
;unshroud 只有不在黑幕下時可以聽到
;shroud 只有處於黑幕下時可以聽到
MinVolume=
;僅用於Type=global,用於定義遠距離衰減後的最小音量
Range=
;僅用於Type=local,用於指定可以聽到音效的範圍
Westwood原有音效文件的命名約定如下:
i-步兵,a-環境,v-載具,u-用戶界面,b-建築,g-通用,s-超武,後接對象註冊名的前(最多)三個字母
mo-移動,se-選擇,att-攻擊,fe-恐慌,pow-僅工程師斷電,di/die-寄了,sta-載具啟動,cra-戰機墜毀
注意文件應使用wav格式,採樣率為22050Hz,8位或16位單聲道,BGM可以使用立體聲
;by九千天華