【教程】09紅色警戒2地圖編輯器FinalAlert2進(jìn)階基礎(chǔ)教程 - 進(jìn)階基礎(chǔ) - 手改地圖

終于到了進(jìn)階階段的教程部分,在本階段內(nèi),除基礎(chǔ)部?jī)?nèi)容為全局講解,其他進(jìn)階內(nèi)容將完全采用案例式教學(xué),以便于學(xué)習(xí)者可以直觀的學(xué)習(xí)如何制作。
學(xué)習(xí)本階段前,請(qǐng)確保已經(jīng)基本掌握入門階段的大部分知識(shí),并且可以基本獨(dú)立使用地圖編輯器的基本功能。
在進(jìn)行進(jìn)階學(xué)習(xí)前,首先要通過(guò)基本部?jī)?nèi)容對(duì)一些基礎(chǔ)能力進(jìn)行概括,第一個(gè)需要提到的就是手改地圖的能力,手改地圖即不借助FA2編輯器直接使用編碼工具對(duì)地圖進(jìn)行編改。
首先要引入的是一個(gè)新軟件:

沒錯(cuò),就是Notepad++,可以簡(jiǎn)稱為n++

Notepad++是一個(gè)簡(jiǎn)潔直觀的文本編輯器,Notepad++ 不僅有語(yǔ)法高亮度顯示,也有語(yǔ)法折疊功能,并且支持宏以及擴(kuò)充基本功能的外掛模組。
反正一句話,Notepad++功能比?Windows?中的?Notepad(記事本)高到不知道哪里去了。
請(qǐng)你們不要再用Low到外婆家的記事本繼續(xù)寫代碼了好嗎?。。。?/p>
快換N++吧,這玩意免費(fèi)還有官漢版本。百度一下你就可以擁有。
本章節(jié)中相關(guān)信息全部使用N++進(jìn)行講解。

使用N++可以直接以文本模式打開地圖,我們以《天鵝絨·紀(jì):諸神的黃昏》中的戰(zhàn)役關(guān)卡Godsend 2為例:

打開后會(huì)是以下的狀態(tài),在使用文本模式修改Ra2地圖時(shí),要注意格式,首先是文本首段和尾段不可以進(jìn)行刪改,除此之外的字段可以在整個(gè)文本內(nèi)隨意增添修改。



除了嚴(yán)禁刪改的部分,其他文本的大部分內(nèi)容基本都可以修改
這里要引入關(guān)于FA2編碼格式的一些概念和名詞

【小節(jié)】
小節(jié)指地圖數(shù)據(jù)內(nèi)某一個(gè)成段的代碼,這可以是一個(gè)小隊(duì),也可以是一個(gè)數(shù)據(jù)類型(比如Basic),或者一個(gè)大分類(如路徑點(diǎn)序列小節(jié)),還可以是一個(gè)單位的數(shù)據(jù)(地圖內(nèi)置ini)
我們以Basic小節(jié)為例:

[Basic]小節(jié)
在這一小節(jié)內(nèi)是我們編寫的地圖的基本參數(shù),等同于FA2內(nèi)的Basic編輯器,但是不同的是,在這里我們可以編寫FA2內(nèi)不可視的一部分?jǐn)?shù)據(jù),比如圖中的:
Theme=(theme*? 這個(gè)字段代表在這張地圖一開始進(jìn)入時(shí)播放的第一個(gè)音樂(定義于thememd*.ini)
LoadingTheme=(theme*? 這個(gè)字段則代表在地圖載入過(guò)程中,玩家可以聽到的音樂(有些Mod似乎禁用了這一代碼在多人游戲的效果)
小節(jié)在FA2地圖的編碼格式,基本嚴(yán)格按照RA2的標(biāo)準(zhǔn)編碼格式,即:
[Name*]? -----------------小節(jié)名稱
FieldsA=yes ------------數(shù)據(jù)字段
FieldsB=null?------------數(shù)據(jù)字段
.......
每個(gè)小節(jié)之間有明確格式區(qū)分,要注意小節(jié)的排版和全角半角符號(hào)區(qū)分,F(xiàn)A2的編碼格式一律為英文標(biāo)點(diǎn),禁止使用中文標(biāo)點(diǎn)作為代碼數(shù)據(jù)
在FA2編碼格式下一樣可以通過(guò)英文符號(hào)“;”進(jìn)行代碼注釋,但是在FA2地圖的編碼格式下,注釋不會(huì)N++被換色高亮顯示,換色注釋只有在ini格式下才可以被顯示,因此建議不要在FA2內(nèi)進(jìn)行過(guò)多的注釋,避免符號(hào)切換錯(cuò)誤導(dǎo)致代碼錯(cuò)誤引發(fā)游戲問題。

【字段】
在每個(gè)小節(jié)下,每一條完整的代碼,也被稱為“字段”,一個(gè)字段應(yīng)該由完整的類型和賦值組成。
例如:
Range=12
Projectile=CannonAbrams
Verses=40%,40%,60%,75%,65%,50%,75%,80%,70%,70%,100%
Insignificant=yes
在“=”左側(cè)代表了該代碼的代碼類型,而“=”的右側(cè)則是關(guān)于該代碼的賦值,賦值決定該代碼的具體效果,或決定該代碼是否啟用,或決定該代碼引用的其他代碼字段類型。
在同一小節(jié)內(nèi),如出現(xiàn)重復(fù)的字段類型,將優(yōu)先讀取小節(jié)內(nèi)順序靠后的字段,在同一張地圖內(nèi)出現(xiàn)重復(fù)小節(jié)類型,一樣是優(yōu)先讀取順序靠后的小節(jié)內(nèi)的重復(fù)字段。
例:
?[A]
UIName=XLB
Strength=666
Strength=233
DeathWeapon=GameCrash
[A]
UIName=ChaleB
Strength=233
Strength=666
Primary=GameCrash
最終結(jié)果是
[A]
UIName=ChaleB
Strength=666
Primary=GameCrash?
(以上舉例由Uranusian提供)

手動(dòng)修改和繪制地圖一般僅用于:
1.添加地圖內(nèi)新單位和建筑/修改Rules里已有單位和建筑(比FA2內(nèi)置的INI編輯器要方便很多)
2.在FA2打開有問題的地圖秒報(bào)錯(cuò)的情況下進(jìn)行手動(dòng)回檔/手動(dòng)清除故障
3.批量化處理數(shù)據(jù)
4.沒有紅色警戒2游戲本體的情況下編寫地圖(用于網(wǎng)吧,學(xué)校等臨時(shí)場(chǎng)所,需要緊急改圖的情況下,可以直接通過(guò)代碼手動(dòng)寫圖,而不去尋找FA2和游戲本體)
比如畫地形和寫原始觸發(fā)這些東西,在FA2可以快捷完成的工作,就不要拿來(lái)手寫了。
Esther:你用代碼寫完一個(gè)村的時(shí)間,我都用FA2做完三個(gè)城了!

在基礎(chǔ)解釋里,只對(duì)手寫地圖進(jìn)行初步的介紹,而具體如何手寫地圖內(nèi)容,以及編寫地圖內(nèi)置ini,則會(huì)在后續(xù)內(nèi)容中結(jié)合具體案例進(jìn)行教學(xué)。