《閃電戰(Blitzkrieg)1》的下載及修改技術

前言:

鄙人也不過是曾經的秘籍一派,那時候,每當買個新游戲,就順便再會到書攤去轉轉,買本《電擊》之類的攻略書,本人對于攻略還是多自己探索的,就是對秘籍歷來情有獨鐘,非試不可。然而自從有人看上了鄙人不知道好在哪里的美工眼光,讓我參與制作某著名的紅警二反動mod之后,鄙人對于修改游戲的熱情立即被燃燒了起來,到了現在,被我改得面目全非的游戲已經數不清了。而修改這門學問,我也不過算是入門了而已。

修改rts游戲,路線其實是非常非常明確的,需要的軟體也不多,除了紅警專用的finalbig。突襲用的unsue, 還有做貼圖的軟體【就是能生成tga文件的比如adobe ps】。如果你有閑情,在弄個3dmax乃至更高級的模型制作工具,都無所謂。那種境界需要的是各方位的電腦知識,而鄙人自己也很不大了了。所以這里不說。

rts發展到紅警那個程度,就已經形成了現代化的構架,無非是引擎+模型+代碼。在修改這個階段動的是代碼部分。每個游戲的文件夾內,仔細看看,都會發現些特定后綴的家伙,一般來說,都是壓縮文件,打開方式除了我剛剛提到過的特定程式之外,大多數只不過需要一個.7z或者.rar的軟體就行了。

有的里面是音樂,要改動的話最為簡單,就是拿同名的去替換。視頻的也一樣不必說,需要說的只是文本的。

回到標題,以閃電戰這個游戲為例。

在date文件夾里面,有個名為date.pak的文件,這個后綴名雖然奇怪,但是用任何unzip的軟體都能解開,這里不能像將軍一樣利用優先級直接修改,所以我們先把它解到某處,改好了以后再弄回來。

里面的大多數文件和文件夾是一時用不到的,如果各個都要改,無異于使用這個引擎做自己的游戲,像zh的mod——cwc冷戰危機一類就屬于改得多的,那是十幾個人的工作,而我只不過想改得通關更順利罷了,情趣有高下,這是沒辦法的事情嘛

ok,英文只要不太濫,都能很清楚weapon和units這兩個文件夾的重要性。閃電戰這個游戲里面,武器系統和載具是分離的【包括人也算一種武器平臺,所以算是載具】比如mg_34這個武器,就有好多東西都用,甚至因為偷懶,連ussr的單位都有使用的,所以修改萬萬要慎重些,某些地圖你是只有兵的,玩意隨便個bt7的坦克都改得無敵,你就只能郁悶了。這點千萬得注意。

改核心單位

網上流傳最多的是改核心單位。即,在ScenariosChapters里面找一個什么任務的.lua文件去改動,主要改的是

-- Adding start units
    AddNewSlot ("Pz_Kpfw_MAUS");
    AddNewSlot ("Pz_Kpfw_VI_Tiger_II_Aus_ B");
    AddNewSlot ("Pz_Kpfw_VI_Tiger_Ausf_A_H");
    AddNewSlot ("Pz_Kpfw_VI_Tiger_Ausf_A_H");
    AddNewSlot ("Pz_Kpfw_MAUS");
    AddNewSlot ("Pz_Kpfw_VI_Tiger_II_Aus_ B");
   

    AddNewSlot ("17cmK18");
    AddNewSlot ("17cmK18");
    AddNewSlot ("17cmK18");
    AddNewSlot ("17cmK18");
    AddNewSlot ("17cmK18");
    AddNewSlot ("17cmK18");

這些,我這個改法也算比較不錯的,可以借鑒哈,當然,第一關其實改不改都可以,不如改

-- adding base upgrades
    AddBaseUpgrade( "5_cm_Pak38" );
    AddBaseUpgrade( "10_5mmLeFh18" );
    AddBaseUpgrade( "Pz_Kpfw_II_Ausf_F" );
    AddBaseUpgrade( "Sdkfz_222" );
    AddBaseUpgrade( "CoastBattery_Todt" );

這個是任務完成后得到的升級,如此這般豈不是,來得更加的爽,我加的那個東西是海岸炮,一炮下去清掉一大塊樹林,380的口徑果然不同凡響。當然,你大可以自己發揮,不過核心地位是每種6個,多了也沒用。單位的名稱在date/object.xml里面詳細記錄

改閃電戰推薦使用XMLSpy這個軟體。當然,價格是一年45歐元,可以買企業版,就更貴些,當然,做網頁更有其用,其實使用UE32或者adobe dw也可以,但是鄙人手賤出了名,所以……其實,用最土的office效果也很好,至少比用dw直觀

改士兵

先從人改起:

可愛的軍官,其路徑是

dataUnitsHumansGermanOfficer

當然,如果你對他的外形沒意見,就只打開1.xml即可

<RPG MaxHP="10000" RepairCost="1" Sight="110" SightPower="1" Speed="30" Passability="1" Priority="0" Camouflage="75" Weight="1" Price="1" UninstallRotate="0" UninstallTransport="0" Armor="0" CanAttackUp="1" CanAttackDown="1" WalkSpeed="15.6" CrawlSpeed="8.7">

這一行值得一講,rpg這個tag一直到單位全部代碼結束才完結,所以是最大的定義。接著maxhp【最大血量】repaircost【補血耗費】sight【視野】sightpower【視野能力,絕對眼界的穿透力,比如有樹木的時候,軍官這個1級別的就看得遠】speed【這個速度值決定默認行進狀態速度】passabilty【穿越能力】Priority【行進優先權】Camouflage【偽裝。偵查員就是是75】weight【重量,單位是很隨意,大約是10kg為單位】Price【被打的優先權】UninstallRotate【安裝時間。炮兵用】 UninstallTransport【卸載時間,炮兵用】 Armor【裝甲】 CanAttackUp【攻擊上方】 CanAttackDown【攻擊下方】 WalkSpeed【走路速度,不知道有沒有用,調大點再說】 CrawlSpeed【爬行速度】

   1: <item>

   2:                 <data>

   3:                     <item Length=

這個是按鈕標簽,通過和狙擊手比對,大約能知道各個是什么。我沒弄清楚,不敢賣弄

   1: <Guns>

   2:             <item Priority="1" Ammo="106" Direction="0" ReloadCost="1">

   3:                 <Weapon>waltherp38</Weapon>

   4:             </item>

   5:         </Guns>

這個很重要,對應的是使用武器,從這里可以發現,這小子用的武器是p38“乳鴿”。搜索一番,發現該死的蘇共老也有用的,所以不改這個武器了。

其中,priority【后面的0是主武器,1是副武器】 ammo【彈藥】 Direction【方向,通常是0】 reloadcost【補給需要,就是補它一發要用多少補給品】 weapon【定義的自然是使用武器本身了】

改車炮

坦克的主定義和人是一樣的,拿虎王做例子

<RPG MaxHP="1560" RepairCost="1" Sight="65" SightPower="1" Speed="13.14" Passability="0.48" Priority="1" Camouflage="0" Weight="68000" Price="1.01" UninstallRotate="0" UninstallTransport="0" RotateSpeed="39.3" TurnRadius="5" TowingForce="0" Crew="5" Passangers="0" BoundTileRadius="2" SmallAABBCoeff="0.5" TowPoint="-1" EntrancePoint="-1" FatalitySmokePoint="12" ShootDustPoint="-1" LeavesTracks="1" TrackOffset="0" TrackWidth="0.2" TrackStart="0.2" TrackEnd="0.2" TrackIntensity="0.7" TrackLifetime="10000" MaxHeight="500" DivingAngle="20" ClimbAngle="20" TiltAngle="30" TiltRatio="2">

視野一旦調大,這家伙是會亂跑的,所以調視野千萬慎重。

Crew【乘員數】 TowingForce【牽引力,好像沒辦法改得坦克可以拉炮】 BoundTileRadius【轉彎半徑】 SmallAABBCoeff【和車體厚度有關系的某個值,基本是0.5或者1】 TrackOffset【軌道偏移】 TrackWidth【履帶寬度】Track那些標簽都只和履帶痕跡有關 TrackLifetime【履帶痕跡殘留時間】 后面是大小定義

<Platforms>
<item VerticalRotateSpeed="11992" HorizontalRotationSpeed="11992" ModelPart="1" GunCarriageParts="-1" FirstGun="0" NumGuns="1">
<Constraint Min="-0.0506145" Max="0.0115192"/>
<ConstraintVertical Min="0" Max="0"/>
</item>
<item VerticalRotateSpeed="0" HorizontalRotationSpeed="8.78" ModelPart="2" GunCarriageParts="-1" FirstGun="1" NumGuns="2">
<Constraint Min="-6.28319" Max="6.28319"/>
<ConstraintVertical Min="0" Max="0"/>
</item>
</Platforms>

這玩意是炮塔的定義VerticalRotateSpeed【這個越大越慢,轉動速度,0為不能轉】 HorizontalRotationSpeed【水平轉動速度,越大越慢】 NumGuns【炮的數量,這個不能隨便亂調,必須和后面代碼對應】 Constraint【伸縮】

 

<item Priority="0" Ammo="72" Direction="65535" ReloadCost="409" ShootPoint="36" Recoil="1" RecoilLength="11.9997" RecoilTime="50" ModelPart="4" RecoilShakeTime="400" RecoilShakeAngle="0.0523599">

                <Weapon>88mm_kwk43_l71</Weapon>

            </item>

后面定義武器,如果你加了numgun這個項目,那么這里就需要多加一條如是這般的

其中Diretion【方向,這樣是向前,而32767就是向后】 reloadcost【補充彈一發消耗的補給】 ShootPoint【發射點,這個要結合模型】 Recoil【后座力】 RecoilLength【后座力使動范圍】 RecoilTime【后座力持續時間】 ModelPart【模型對應】 RecoilShakeTime【后座力影響時間】 RecoilShakeAngle【后座偏移角度】

<Armor

這個標簽后面是裝甲值,最高好像不限,有個最小最大,所謂被攻擊時候的判定標準

aabb那些都是和模型有關的裝甲設定

weapon設定

這也不算是很復雜的東西,首先,要提一點,視野……

consts.xml 中MaxFireRangeToShootByLine這一行對應的是最大的平射距離,如果這個值不調的話,改動武器射程是無效的,其數值必須取32的倍數,遠程武器比如炮不受它影響。這樣一來,按下alt+R會顯示載具武器系統中最遠射程的那個的范圍,大大的提高了修改的適用性,不然你會發現,武器的射程完全沒變

另外,這個文件中,還有另外一些重要的可以調整的東西,比如殘骸存在時間TimeToDisappear,原始為60000也就是60000ms為一分鐘,變態的我自然要改成十分鐘,這樣全場才壯觀,不過橋由此過不去,那不能怨我。

ok,拿所有武器中最變態的karl炮為修改對象

<RPG Dispersion="10" AimingTime="3" AmmoPerBurst="1" RangeMax="400" RangeMin="30" Ceiling="0" DeltaAngle="10" RevealRadius="400">

        <KeyName>600mm Karl</KeyName>

        <StatsType>Weapon</StatsType>

        <Shells>

            <item TrajectoryType="1" Piercing="170" PiercingRandom="73" DamagePower="1000" DamageRandom="200" Area="4" Area2="16" ProjectileSpeed="50" DetonationPower="5" FireRate="3.5" RelaxTime="17.24" DamageType="0" TraceProbability="0" TraceSpeedCoeff="0.2">

所有的重要數值都在這里了,這里面一項項詳解:Dispersion【精度】AimingTime【瞄準時間】 AmmoPerBurst【每發射耗彈】 RangeMax【最大射程】 RangeMin【最小射程】 Ceiling【射高。用于高射炮,最高的轟炸機是13000】 DeltaAngle【發射角,一般都是10】 RevealRadius【開炮的時候地圖上的揭示半徑,不確定】 TrajectoryType【彈道】 Piercing【穿甲能力】 PiercingRandom【隨機附加穿甲】 DamagePower【威力】 DamageRandom【隨機威力】 Area【主威力范圍】 Area2【次威力范圍】 ProjectileSpeed【炮彈速度】 DetonationPower【屏幕震蕩烈度】 FireRate【不知道這個的具體功用】 RelaxTime【發射間隔,s】 DamageType【傷害類型】 TraceProbability【制導能力,炮彈都是0】 TraceSpeedCoeff【跟蹤速度】

<EffectGunFire>shootkarl</EffectGunFire>

                <EffectTrajectory>shellkarl11</EffectTrajectory>

                <EffectHitDirect>expgroundkarl</EffectHitDirect>

                <EffectHitMiss>misshit1</EffectHitMiss>

                <EffectHitReflect>reflecthit1</EffectHitReflect>

                <EffectHitGround>expgroundkarl</EffectHitGround>

                <EffectHitWater>expwater6</EffectHitWater>

以上分別是,炮口火光;炮口煙霧;啞彈火光;擊中火光;命中地面火光;命中水火光

這些很想拿來改改,因為實在是看著比較不夠快意

應該不是很難的事

下載見下一篇

我正在上傳,bk1的幾個大mod

One thought on “《閃電戰(Blitzkrieg)1》的下載及修改技術

Comments are closed.

Proudly powered by WordPress | Theme: Journey Blog by Crimson Themes.