和所有年輕人一樣,我是平時所注目顯然不可能僅僅是政治,但是我熱愛的其他竟然或多或少的是政治的延續。
好像是去年,Command & Conquer(c&c)zero hour 的年度最佳mod冷戰危機終于出 爐。當時我自己在折騰一個地圖。也做了大半年,所以非常非常理解這個term做mod從2004年一路跳票跳到去年的內因所在。中國那種把共軍的單位隨隨便便改強一下然后放進幾個國外模型的mod才能一年出好幾個。寶貝是終于等來了,但是那時我卻沒發現這一盛事,竟然沒有第一時間試玩看看。04年那個demo已經給人太多的驚艷,按理說我應該和等xbox360一樣最終演變為通宵去排隊才是,可是事情滿不是這么一回事,就如同一個你經常意淫的女人終于等她自己人老珠黃才來屈就你一樣,游戲絕對是好游戲——但是它贏不了時間。如果04年就出,哪怕把那個時候的幾個模型隨便加上幾個有ai的地圖發出來,也能遠遠比現在得到更多的關注。官網http://www.cold-war-crisis.de,我們德國人所作……
四年了,顯卡的突飛猛進不消說,其他的游戲從閃電戰到1942一類的,走真實路線的東西雖然總體上是在沒落,但是畢竟多邊形在飛速的進步。在用最好的顯卡反而會卡的落后引擎上,在人家滿世界都找不到哪里還有賣或者家里的安裝碟都不知道哪里去了的時候,再好又怎么樣?我macbook pro在9600M GT的卡上都有時會卡,從此看來,這絕對是引擎的問題,當然,比起現代戰爭之類的mod,還是好得多了。后來發現,轉到集成的9400 上反而不卡了,真是怪誕至極。(原版zh好像也是這樣……)
好了,本文是要說修改的事情,所謂修改,其實是改動ini而已,我自認為做3d圖形比這個mod的作者們是差太遠了。所不輸的唯有惡搞精神和探索精神而已吧。修改的方法是用finalbig軟體,把ini文件都導出來。這個作者根據的是系統對big文件讀取判定的規則,做了一個新式的升級辦法,他把第一個文件命名為_499_CWC.cwc,所謂mod執行運行程序,其實是個批處理,就是把這種東西后綴改成big然后復制進主程式里面運行。升級就是會下載些序號小一些的cwc(實則big文件)要修改的同時享受作者的最新成果,只好一個個的導出來,理論上,按作者的標號,可以把這個升級499次,但是現在序號才降到485,也就是要把_499_CWC.cwc到_485_CWC.cwc按順序導出到游戲主程式里面,這也是根據讀取的先后順序做的修改,不僅可以改ini,還可以改model文件。
而且請放心,不運行mod的情況下,玩的也還是原始游戲。好了,先上圖
兵士的武器和系統
圖一:新任務中赤匪被遠處的機槍手的子彈追著打,地上有一個已經死翹了,這幅圖上可以看到mod作者的良苦用心
- 人(Infantry)的頭頂上有單位屬性的標識,有anti air/tank;sp(狙擊手);機槍手;工兵;普通兵等等,打開其配屬的ini檔案可以發現,每個人的代碼分為(活人,死人,趴著)三種,非常的復雜,這個以后說
- 著彈效果:這是通過對彈藥的ini設定實現的,一個彈藥的殺傷作用部分和地面效果部分是半分開的,所以導致了對普通武器比如步槍和狙擊槍對空的antiair = yes的設置無效。因為彈藥實體被強制設定到地面。包括A10攻擊機和AH系列直升機的機炮都是如此。
- 不足,我不喜歡這個三級制的升級系統,這個系統在游戲中是內定的,但是其實可以做出更改,加入一個統計,使人名字上會出現殺敵數,這是每個mod包括原版我必做的修改。(其實還沒嘗試成功)
- 武器射程上設置的問題,這里面機槍的原始射程極短,非常不科學,被我調了,教學在以后。當然,不建議亂改成地圖武器
- 人死之后,幾秒內“尸體”上出現一個心跳標識,這時,巡值的軍醫可以救活他。
隱藏的地雷轟炸機
圖二,可變后掠翼的F111攻擊機的一個改型(M型)的布雷場景,要把這個隱藏的機型釋放出來,可以在ini文件CommandSet中修改
CommandSet CWCusAirFieldCommandSet這一行,比如改成我下面這樣子,就可以多生產一大堆別的啦。
CommandSet CWCusAirFieldCommandSet 1 = Command_ConstructCWCusA10 2 = Command_ConstructCWCusF4G 3 = Command_ConstructCWCusF111 4 = Command_ConstructCWCusEF111 5 = Command_ConstructCWCusF111_M 6 = Command_ConstructCWCusF111_B 7 = Command_ConstructCWCusF16 8 = Command_ConstructCWCusF15 9 = Command_ConstructCWCusF117 10 = Command_ConstructCWCruSu27 11 = Command_ConstructCWCruSu25 ;13 = Command_CWCusRally 14 = Command_CWCusSell END
讓美帝的機場生產su27和f117都有有一些不同的設置,以后再說,先當說這個玩意。M型是布雷型號,布雷能力非常恐怖,兩架到別人家里巡邏,幾輪下來就能搞得徹底變態像我上面所示,赤賊寸步難行,讓人拍手稱快。可看地圖上密密麻麻的虛色藍點,地雷的定義文件在ini中的
CWCusF111CBU89WeaponDummy
在管武器的weapon.ini上,可以發現,這又是一個空殼的定義,根本只是一個用“死亡”后產生東西來定義武器的做法,這是一種很常見的做法,什么多彈頭的核彈之流都是用這個做的。可以看見,有這么個定義ProjectileObject = CWCusF111CBU89StageOne,死亡的定義肯定在其中,這個參數被放置在飛機的ini里面,可以看見最終落實到殺傷效果的地雷(顯示的骷髏圖案的東西在武器中的定義是CWCusCBU89Mine)殺傷可以在那里調整。他的觸發方式是LAND_MINE,意思是踏上爆炸。可以用來自定武器。
另外可以發現,這里有一個這樣的定義
Behavior = LifetimeUpdate ModuleTag_06 MinLifetime = 240000 ; min lifetime in msec MaxLifetime = 360000 ; max lifetime in msec End
這是一組自動死亡的技能代碼,意思是在最少240s到最多360s會死亡。也就是自爆,如果想把這個設置成集束炸彈,把時間調一調就行了。有時間我會做一個所有技能的集合帖子,為期待將軍2的問世,我為修改的整理些資料絕對利人利己。
作者加入了這么多n重的效果,實在是太難能可貴……要是他把所有的包括機動什么的都附在單位后面就好了。
盤旋前進的導彈
圖三:以往的所有mod里面。沒有人去在導彈的運行方式上動太大心思。這個作者卻首創了這一可愛的新式方案,嘗試著竊取一下,加以說明。
在su25的ini文件里面,我看到了其武器的定義
Weapon = PRIMARY CWCru9K121_Vikhr_ATGM_Left Weapon = SECONDARY CWCru9K121_Vikhr_ATGM_Right
然后有個使用的判定
PreferredAgainst = PRIMARY INFANTRY AutoChooseSources = PRIMARY FROM_PLAYER FROM_SCRIPT FROM_AI
那么,在weapon.ini里它的一些定義如下
右:ProjectileDetonationFX = WeaponFX_CWCgenSmallGuidedMissileDetonation ProjectileObject = CWCruSu25VikhrMissileRight RadiusDamageAffects = ALLIES ENEMIES NEUTRALS NOT_SIMILAR
左:ProjectileDetonationFX = WeaponFX_CWCgenSmallGuidedMissileDetonation ProjectileObject = CWCruSu25VikhrMissileLeft RadiusDamageAffects = ALLIES ENEMIES NEUTRALS NOT_SIMILAR
由于作者偉大的習慣,Object 定義就在飛機的ini下面(CWCruSu25T.ini)。那么先看看這個導彈本身是什么東西,實現這種情形是兩枚一起發射,然后各自定義運動形態達到的。其自然程度看,不可能有別的,這絕對是通過ini修改的效果。修改就是要信自己信到盲目的境界才會有突破……
Locomotor = SET_NORMAL CWCruSu25VikhrMissileLocomotor 這個定義運動(左右一樣)
這是運行方式
Locomotor CWCruSu25VikhrMissileLocomotor Surfaces = AIR Speed = 300 ; in dist/sec ; MinSpeed = 120 ; in dist/sec. (THRUST items must have nonzero minspeeds!) Acceleration = 300 ; in dist/(sec^2) Braking = 0 ; in dist/(sec^2) TurnRate = 300 ; in degrees/sec MaxThrustAngle = 30 ; in degrees (NOT degrees/sec) AllowAirborneMotiveForce = Yes Appearance = THRUST ;PreferredHeight = 100 CloseEnoughDist3D = Yes ; This allows the missile to fly over the target and come back End
然而里面非常的簡單,只不過是普通的東西。說明了,問題應該不是出在這里,當然,這里也有可以調著玩的地方。我改了速度,讓這個炫目的效果更加持久。
看來這是尾氣的FX定義問題了。
在FXList.ini里,找到
FXList WeaponFX_CWCgenSmallMissileIgnition ParticleSystem Name = CWCgenSmallMissileBackblast OrientToObject = Yes End ParticleSystem Name = CWCgenSmallMissileBackblastClouds OrientToObject = Yes End End
由是進入ParticleSystem.ini,查找那兩項
哈,就在這里了這是由那個tga文件所指定的,看來并不能隨便套用別的導彈上,如果想修改尾氣的顏色,比如深綠的鄉民要改之為綠色……
ParticleSystem CWCgenSmallMissileBackblast
Priority = WEAPON_TRAIL
IsOneShot = No
Shader = ADDITIVE
Type = PARTICLE
ParticleName = EXLnzFlar2.tga
AngleZ = -1.00 1.00
AngularRateZ = -0.01 0.01
AngularDamping = 1.00 1.00
VelocityDamping = 0.80 0.90
Gravity = 0.00
Lifetime = 10.00 10.00
SystemLifetime = 2
Size = 10.00 10.00
StartSizeRate = 0.00 0.00
SizeRate = 5.00 5.00
SizeRateDamping = 1.00 1.00
Alpha1 = 0.00 0.00 0
Alpha2 = 0.00 0.00 0
Alpha3 = 0.00 0.00 0
Alpha4 = 0.00 0.00 0
Alpha5 = 0.00 0.00 0
Alpha6 = 0.00 0.00 0
Alpha7 = 0.00 0.00 0
Alpha8 = 0.00 0.00 0
Color1 = R:255 G:255 B:255 0
Color2 = R:0 G:0 B:0 10
Color3 = R:0 G:0 B:0 0
Color4 = R:0 G:0 B:0 0
Color5 = R:0 G:0 B:0 0
Color6 = R:0 G:0 B:0 0
Color7 = R:0 G:0 B:0 0
Color8 = R:0 G:0 B:0 0
ColorScale = 0.00 0.00
BurstDelay = 1.00 1.00
BurstCount = 2.00 2.00
InitialDelay = 0.00 0.00
DriftVelocity = X:0.01 Y:0.04 Z:0.10
VelocityType = ORTHO
VelOrthoX = 1.00 1.00
VelOrthoY = 0.00 0.00
VelOrthoZ = 0.00 0.00
VolumeType = LINE
VolLineStart = X:3.00 Y:0.00 Z:0.00
VolLineEnd = X:3.00 Y:0.00 Z:0.00
IsHollow = No
IsGroundAligned = No
IsEmitAboveGroundOnly = No
IsParticleUpTowardsEmitter = No
WindMotion = Unused
WindAngleChangeMin = 0.149924
WindAngleChangeMax = 0.449946
WindPingPongStartAngleMin = 0.000000
WindPingPongStartAngleMax = 0.785398
WindPingPongEndAngleMin = 5.497787
WindPingPongEndAngleMax = 6.283185
End ParticleSystem CWCgenSmallMissileBackblastClouds
Priority = DEATH_EXPLOSION
IsOneShot = No
Shader = ALPHA
Type = PARTICLE
ParticleName = excloud04.dds
AngleZ = 0.00 7.00
AngularRateZ = -0.01 0.01
AngularDamping = 1.00 1.00
VelocityDamping = 0.80 0.90
Gravity = 0.00
Lifetime = 30.00 30.00
SystemLifetime = 10
Size = 5.00 5.00
StartSizeRate = 0.00 0.00
SizeRate = 5.00 7.00
SizeRateDamping = 0.80 0.85
Alpha1 = 1.00 1.00 0
Alpha2 = 0.00 0.00 30
Alpha3 = 0.00 0.00 0
Alpha4 = 0.00 0.00 0
Alpha5 = 0.00 0.00 0
Alpha6 = 0.00 0.00 0
Alpha7 = 0.00 0.00 0
Alpha8 = 0.00 0.00 0
Color1 = R:192 G:192 B:192 0
Color2 = R:0 G:0 B:0 0
Color3 = R:0 G:0 B:0 0
Color4 = R:0 G:0 B:0 0
Color5 = R:0 G:0 B:0 0
Color6 = R:0 G:0 B:0 0
Color7 = R:0 G:0 B:0 0
Color8 = R:0 G:0 B:0 0
ColorScale = 0.00 0.00
BurstDelay = 99999.00 99999.00
BurstCount = 2.00 3.00
InitialDelay = 0.00 0.00
DriftVelocity = X:0.04 Y:0.08 Z:0.10
VelocityType = ORTHO
VelOrthoX = -1.00 -3.00
VelOrthoY = 0.00 0.00
VelOrthoZ = 0.00 0.00
VolumeType = POINT
IsHollow = No
IsGroundAligned = No
IsEmitAboveGroundOnly = No
IsParticleUpTowardsEmitter = No
WindMotion = Unused
WindAngleChangeMin = 0.149924
WindAngleChangeMax = 0.449946
WindPingPongStartAngleMin = 0.000000
WindPingPongStartAngleMax = 0.785398
WindPingPongEndAngleMin = 5.497787
WindPingPongEndAngleMax = 6.283185
請修改這里的Color項,我沒改,但是這個三原色調配應該都會,還可以改尾氣大小和存留時間
即 Lifetime = SystemLifetime = Size = 三項
此間做到了武器一和武器二同時發射,這其實是下面這個代碼的效果
PreferredAgainst = TERTIARY INFANTRY
AutoChooseSources = TERTIARY FROM_PLAYER FROM_SCRIPT FROM_AI
發現手頭現有的http代理不能用了,用live writer還得掛vpn,唉,暈死。再混幾天回德國去才能解脫,再次鄙視支共
第一輯完