【教程】07紅色警戒2地圖編輯器FinalAlert2入門基礎(chǔ)教程 - 觸發(fā)篇1 - 觸發(fā)原理概論


在紅色警戒2地圖制作中,【觸發(fā)】這個(gè)詞肯定大部分人都不陌生,就算不知道【觸發(fā)】是什么,知道FA2的人大部分也聽說過這個(gè)詞。
那么,觸發(fā)到底是何方神圣呢?
【觸發(fā)】實(shí)際是紅色警戒2的一種游戲事件機(jī)制,通過一個(gè)關(guān)聯(lián)代碼組來設(shè)置一個(gè)地圖上的事件,用于推動戰(zhàn)役劇情發(fā)展,或者用于多人地圖中的觸發(fā)事件。
在紅色警戒2地圖編輯器中,擁有一個(gè)觸發(fā)編輯器,可以幫助我們進(jìn)行可視化的觸發(fā)代碼編輯。

首先我們要了解一下觸發(fā)編輯器的界面和基本工作原理,而這一章的主要內(nèi)容也是這些,當(dāng)然首先我們先從觸發(fā)編輯的各種操作界面入手
第一小節(jié) - 觸發(fā)相關(guān)編輯器及其界面
打開【觸發(fā)編輯器】,這就是編寫RA2地圖觸發(fā)的核心部分了

【新建觸發(fā)】用于新建一個(gè)新觸發(fā)
【刪除觸發(fā)】可以刪除掉不需要的觸發(fā),但是注意刪除觸發(fā)前注意檢查該觸發(fā)和地圖內(nèi)單位/建筑/單元標(biāo)記的關(guān)聯(lián),如果存在關(guān)聯(lián)的情況下隨意刪除觸發(fā)可能會導(dǎo)致地圖使用時(shí)出現(xiàn)游戲報(bào)錯(cuò)情況
【放置于地圖】可以將該觸發(fā)的單元標(biāo)記批量繪制在地圖上,如何使用會在進(jìn)階篇中結(jié)合案例教學(xué)。
【復(fù)制觸發(fā)】直接將目標(biāo)觸發(fā)復(fù)制克隆,所有內(nèi)容一樣,但是復(fù)制出來的觸發(fā)的事件類型默認(rèn)為“0(任意類型單次觸發(fā))”

【觸發(fā)選項(xiàng)】
【名稱】這個(gè)觸發(fā)的名字,在編寫觸發(fā)名稱時(shí),可以按照一定的規(guī)律,目前主流的地圖制作者對于觸發(fā)的命名格式,一般是[#類型]#名稱,方便自己和其他人辨識,當(dāng)然,觸發(fā)的名稱和格式你可以自由發(fā)揮,只要你自己認(rèn)識就足夠了其實(shí),但是有一點(diǎn)非常重要,請盡可能不要使用中文或其他非英文字母的文字拼寫觸發(fā)名稱,會大概率導(dǎo)致游戲內(nèi)報(bào)錯(cuò)!
而且,中文觸發(fā)名會概率導(dǎo)致再讀取時(shí)全部變成亂碼,修改地圖的難度大幅提高
例如:[Camera]First Camera to WP-14

上圖就屬于典型的不會做地圖還豬鼻子插蔥裝象的。
此外,觸發(fā)編輯器的名稱排序嚴(yán)格按照首位開始的數(shù)字/字母順序進(jìn)行排序,所以命名時(shí)可以根據(jù)這一特點(diǎn)進(jìn)行排版,便于查找觸發(fā)類型。
【所屬方】用于判斷該觸發(fā)是給哪個(gè)歸屬方使用,該選項(xiàng)僅在條件和結(jié)果中需要它的時(shí)候起效,平時(shí)無效,可無視。
【類型】觸發(fā)類型分四種,分別是0,1,2,3
0 -任意關(guān)聯(lián)物體滿足條件,單次觸發(fā)
1-全部關(guān)聯(lián)物體滿足條件,單次觸發(fā)
2 -任意關(guān)聯(lián)物體滿足條件,重復(fù)觸發(fā)
3 -全部關(guān)聯(lián)物體滿足條件,重復(fù)觸發(fā)
四種觸發(fā)類型,前半句決定了這個(gè)觸發(fā)的條件使用的對象范圍,0,2適用于被關(guān)聯(lián)對象的任何一個(gè)滿足觸發(fā)條件后完成觸發(fā)條件判定。1,3適用于所有被關(guān)聯(lián)對象滿足觸發(fā)條件后完成觸發(fā)判定行為。
而后半句決定了這個(gè)觸發(fā)的結(jié)果如何產(chǎn)生,單次觸發(fā)是一次性觸發(fā)結(jié)果,重復(fù)觸發(fā)將會使這個(gè)觸發(fā)在滿足條件的情況下不停的觸發(fā),直到被其他觸發(fā)執(zhí)行禁用或刪除。
【關(guān)聯(lián)觸發(fā)】用于觸發(fā)關(guān)聯(lián),在進(jìn)階篇會通過案例進(jìn)行詳細(xì)解釋,平時(shí)可以不用。
【禁止】勾選后可以禁用該觸發(fā)的條件,即凍結(jié)該觸發(fā)的所有信息,直到其他觸發(fā)激活它,被禁止的觸發(fā)可以凍結(jié)條件13中的延時(shí)。
【難度】勾選不同的難度(Easy,Normal,Hard)用于單人戰(zhàn)役中不同難度觸發(fā)不同的觸發(fā),默認(rèn)全部勾選(即所有難度都可以觸發(fā)),在未勾選的難度里該觸發(fā)無法被使用。

【條件】

【當(dāng)前條件(事件)】:條件類型可以擁有最多19條,理論上條件類型可以無限疊加,但是超過19條會概率導(dǎo)致FA2運(yùn)算錯(cuò)誤,造成程序秒退
【新建事件】新建一個(gè)條件
【刪除事件】刪除一個(gè)條件
【事件類型】:事件類型在原版FA2中包括超過60種條件可能,關(guān)于事件類型如何使用將會在進(jìn)階篇專題講述,以及通過案例講解如何運(yùn)用,當(dāng)然也可以通過自己的實(shí)驗(yàn)來測試實(shí)際效果。
在事件類型下面有一個(gè)文本框,文本框會提示該事件類型的詳細(xì)用途和觸發(fā)判定基準(zhǔn)。
【事件參數(shù)】:根據(jù)不同的事件類型會自動產(chǎn)生不同的事件參數(shù),選擇參數(shù)來調(diào)整你的事件具體數(shù)值
【參數(shù)值】:事件參數(shù)的具體數(shù)值,被設(shè)置了參數(shù)值的事件參數(shù)才是有效值

【結(jié)果】

【當(dāng)前行為(結(jié)果)】:行為類型可以擁有最多19條,理論上行為類型可以無限疊加,但是超過19條會概率導(dǎo)致FA2運(yùn)算錯(cuò)誤,造成程序秒退
【新建事件】新建一個(gè)行為
【刪除事件】刪除一個(gè)行為
【行為類型】:行為類型在原版FA2中包括超過140種結(jié)果可能,關(guān)于行為類型如何使用將會在進(jìn)階篇專題講述,以及通過案例講解如何運(yùn)用,當(dāng)然也可以通過自己的實(shí)驗(yàn)來測試實(shí)際效果。
在行為類型下面有一個(gè)文本框,文本框會提示該行為類型的詳細(xì)用途和觸發(fā)產(chǎn)生結(jié)果。
【行為參數(shù)】:根據(jù)不同的行為類型會自動產(chǎn)生不同的行為參數(shù),選擇參數(shù)來調(diào)整你的結(jié)果具體數(shù)值
【參數(shù)值】:行為參數(shù)的具體數(shù)值,被設(shè)置了參數(shù)值的行為參數(shù)才是有效值

【特遣部隊(duì)】

【特遣部隊(duì)】編輯器用于創(chuàng)建一個(gè)Team類型的單位基礎(chǔ),可以理解為特遣部隊(duì)是創(chuàng)建小隊(duì)觸發(fā)的一個(gè)清單,按照這個(gè)清單AI會為你尋找合適的單位去執(zhí)行你分配的任務(wù)。
特遣部隊(duì)欄的設(shè)置:
【名稱】該特遣部隊(duì)的名稱,特遣部隊(duì)的命名一樣是隨意,且特遣部隊(duì)排序由創(chuàng)建時(shí)間決定(因特遣部隊(duì)的排序由代碼號決定,例如這里的01000010),特遣部隊(duì)的命名一樣建議不要使用漢字或其他非英文字母文字命名。
【小組】用于判斷該特遣部隊(duì)使用哪個(gè)Team編號,默認(rèn)-1,即無編隊(duì)
【特遣部隊(duì)單位】顯示了該特遣部隊(duì)類型的所有單位類型及其數(shù)量
【單位數(shù)量】【單位類型】用于編寫特遣部隊(duì)內(nèi)容,其中單位類型由單位代碼決定,括號內(nèi)漢字為FA2自動生成的注釋,注釋會根據(jù)FA2的內(nèi)置ini和游戲Rules來決定內(nèi)容,不需要手動寫入

【動作腳本】

【動作腳本】編輯器用于創(chuàng)建一個(gè)Team類型的腳本序列,可以理解為它是小隊(duì)觸發(fā)的一個(gè)任務(wù)列表,AI會按照你的腳本序列嚴(yán)格執(zhí)行命令。
【名稱】該腳本的名稱,腳本的命名一樣是隨意,且腳本排序由創(chuàng)建時(shí)間決定(因腳本的排序由代碼號決定,例如這里的01000012),腳本的命名一樣建議不要使用漢字或其他非英文字母文字命名。
【行為】行為序列也就是腳本的核心,它代表了這個(gè)腳本包含哪些內(nèi)容,AI會根據(jù)你得行為順序執(zhí)行行為中的所有任務(wù)。
【行為類型】【參數(shù)值】【說明】行為類型用于編輯行為序列中單個(gè)行為的內(nèi)容,而參數(shù)值決定了該行為類型的執(zhí)行具體結(jié)果,說明文本框用于解釋該行為類型的如何使用和產(chǎn)生什么結(jié)果。

【作戰(zhàn)小隊(duì)】

作戰(zhàn)小隊(duì)編輯器是小隊(duì)觸發(fā)的核心組成,而作戰(zhàn)小隊(duì)的建立需要特遣部隊(duì)和腳本作為支持。
一個(gè)完整的作戰(zhàn)小隊(duì),需要完整的腳本和特遣部隊(duì),即使該小隊(duì)沒有任何動作。
【名稱】該作戰(zhàn)小隊(duì)的名稱,作戰(zhàn)小隊(duì)的命名一樣是隨意,且作戰(zhàn)小隊(duì)排序由創(chuàng)建時(shí)間決定(因作戰(zhàn)小隊(duì)的排序由代碼號決定,例如這里的01000013),作戰(zhàn)小隊(duì)的命名一樣建議不要使用漢字或其他非英文字母文字命名。
【經(jīng)驗(yàn)等級】該作戰(zhàn)小隊(duì)選用/使用的單位的經(jīng)驗(yàn)等級,分為3種,1級為無級別,2級為精英級(一星級),3級為老兵級(三星級)
【所屬方】該作戰(zhàn)小隊(duì)為哪個(gè)作戰(zhàn)歸屬方使用/選取
【優(yōu)先權(quán)】:默認(rèn)為5,用于AI判定
【最多】:默認(rèn)為5,用于AI判定
【科技等級】默認(rèn)為0,一般不需要更改
【心控結(jié)果】:舊版FA2沒有該項(xiàng)功能,新版FA2和定制版編輯器特有功能,用于判斷該小隊(duì)如果遭到心靈控制后使用哪種動作行為。
【分組】判斷該小隊(duì)選用的隊(duì)伍類型/生成時(shí)編入哪個(gè)隊(duì)伍
【路徑點(diǎn)】用于小隊(duì)觸發(fā)時(shí)生成的位置/選取小隊(duì)時(shí)的范圍中心
【動作腳本】調(diào)用已經(jīng)寫好的動作腳本
【特遣小隊(duì)】調(diào)用已經(jīng)寫好的特遣小隊(duì)
【標(biāo)記】用于關(guān)聯(lián)觸發(fā)的標(biāo)簽
【運(yùn)輸局起始路徑點(diǎn)】用于結(jié)合空降部隊(duì)使用的路徑點(diǎn),判斷空降小隊(duì)時(shí)運(yùn)輸機(jī)的生成位置,一般放置于地圖不可見區(qū)域
[需要裝彈]~[不攻擊中立陣營]:作戰(zhàn)小隊(duì)的詳細(xì)設(shè)置,在進(jìn)階篇小隊(duì)觸發(fā)章節(jié)會專門結(jié)合案例進(jìn)行介紹。

【局部變量】

局部變量編輯器可以編寫用于本張地圖內(nèi)的變量行為
局部變量理論上可以無限制編寫,局部變量本身不具有任何效果,局部變量的預(yù)設(shè)值可以設(shè)置為0或1,局部變量需要通過觸發(fā)來進(jìn)行調(diào)整和使用。

第二小節(jié) - 觸發(fā)基礎(chǔ)概論及理論基礎(chǔ)
很多人看到“基礎(chǔ)概論”和“理論基礎(chǔ)”之類的字眼就非常頭大然后避而遠(yuǎn)之,基礎(chǔ)概論作為比較硬核的理論知識,肯定不會“風(fēng)趣幽默”,但是作為基礎(chǔ),概論和基礎(chǔ)理論是學(xué)習(xí)觸發(fā)的重中之重,他可以帶領(lǐng)我們了解FA2的觸發(fā)體系的基礎(chǔ)原理和實(shí)際運(yùn)作邏輯。
紅色警戒2的觸發(fā)體系,基本由:條件 → 結(jié)果 作為基礎(chǔ)來構(gòu)成
即,設(shè)置“條件”類型,也就是我們俗稱的“因?yàn)椤?,然后達(dá)成了這個(gè)條件類型后,觸發(fā)“結(jié)果”類型,也就是我們俗稱的“所以”。因?yàn)?,所以,RA2的觸發(fā)體系可以簡單理解為這樣的一個(gè)因果關(guān)系。
在紅色警戒2的觸發(fā)體系內(nèi),條件和結(jié)果均可以是很多項(xiàng)。
比如,我們的條件可以是:
①:簡單難度(難度選項(xiàng))
②:已被禁止,需要被 X 觸發(fā)激活(禁止觸發(fā)選項(xiàng))
③:激活后延時(shí)45秒(條件-13-延時(shí)觸發(fā))
④:觸發(fā)需要 局部變量 [ChaleB is a pig] 的預(yù)設(shè)值為 0 (條件-37-局部變量被清除)
⑤:地圖上存在科技類型 [Kamimaze] (條件-60-科技類型存在)
這樣,這個(gè)觸發(fā)就需要多達(dá)五項(xiàng)條件才能夠激活,當(dāng)然,我們也可以刪掉所有的要求,只保留“簡單難度”,這樣,在簡單難度下它就會開局瞬間激活。
一樣的,我們的結(jié)果也可以寫很多,我們的結(jié)果可以是:
①:在 WP7 刷新一個(gè) 蘇軍基地車 (結(jié)果-7-援軍小隊(duì))
②:副官語音提示:我方援軍入場(結(jié)果-21-EVA語音提示)
③:雷達(dá)提示 在 WP7 (結(jié)果-55-雷達(dá)事件)
④:文本提示:我方基地車已抵達(dá)戰(zhàn)區(qū)(結(jié)果-11-文本事件)
這樣,我們就做出了一個(gè)基地車入場的觸發(fā)結(jié)果,是不是并沒有這么困難。
在紅色警戒2的觸發(fā)體系下,通過各種各樣的觸發(fā)條件和觸發(fā)結(jié)果的組合,可以制作各種各樣形形色色的觸發(fā),而且通過修改游戲平臺,還可以增加和減少觸發(fā)類型,不過修改游戲平臺屬于游戲編程范疇,難度過高因此在本教程系列中不予講述。
觸發(fā)的基本運(yùn)作原理,可以用以下圖片來直觀了解:

就是這樣一個(gè)看似很腦殘很簡單的因?yàn)樗?/strong>
因?yàn)閄XX,所以,就XXX了

而對于紅色警戒2的小隊(duì)類觸發(fā),則是在觸發(fā)的基礎(chǔ)上的一個(gè)附屬體系。

上圖則是小隊(duì)類觸發(fā)的一個(gè)基本框架邏輯
小隊(duì)類觸發(fā),主要指由作戰(zhàn)小隊(duì)為參數(shù)值的觸發(fā)結(jié)果的一個(gè)總稱
例如
結(jié)果4,建立小隊(duì)
結(jié)果7,援軍小隊(duì)
結(jié)果80,援軍[在路徑點(diǎn)]
結(jié)果107,超時(shí)空傳送援軍
等等等
這些只要結(jié)果參數(shù)是由一個(gè)作戰(zhàn)小隊(duì)來決定的觸發(fā)結(jié)果,統(tǒng)稱為小隊(duì)類觸發(fā)結(jié)果,也可以簡稱為小隊(duì)類觸發(fā)或者小隊(duì)觸發(fā)
小隊(duì)觸發(fā)的基本邏輯是,通過一個(gè)【特遣部隊(duì)】,也就是這個(gè)小隊(duì)的“名單”,然后和一個(gè)【動作腳本】,也就是這個(gè)小隊(duì)的“任務(wù)要求”,組合在一起成為【作戰(zhàn)小隊(duì)】,然后通過觸發(fā)結(jié)果中參數(shù)值的小隊(duì)類型選擇這個(gè)寫好的作戰(zhàn)小隊(duì),即可實(shí)現(xiàn)一個(gè)小隊(duì)觸發(fā)。

關(guān)于小隊(duì)觸發(fā),還有一個(gè)較為進(jìn)階和更為直觀的關(guān)系圖可以參考,是MK之前繪制的:

