地圖製作範例
[地圖製作教學] 觸發器模組設計


III. 使用區域的觸發器

區域就是可用於觸發器的地圖區。舉例來說,你可以在單位進入或離開一個區域時執行一個觸發器,對目前處於一個區域內的所有單位下達命令,或在一個區域內的隨機選擇位置創建單位等等。在我們的地圖中,我們將製作一個當單位進入殖民地區域時為玩家1創建更多單位的觸發器,以及一個當單位進入雷獸周圍區域時會使雷獸鑽出的觸發器。

A. 放置區域
我們必須先將一個區域放到地圖上,才能在觸發器中使用該區域。
1. 開啟「地形模組」後,按[R]選擇「區域」圖層。
2. 從迷你地圖下方的按鈕列中,選取其中一個形狀 – 方形或圓形都可。
3. 調整檢視地形的角度使你可以看到農場區後,左鍵點擊並拖曳滑鼠以將一個區域放置在農場區的中央。
4. 如果你想要改變區域名稱的話,從左方區塊的區域列表中選取該區域後,按下「Enter」鍵來開啟「區域屬性」視窗。


5. 你可以雙擊迷你地圖下方的區域列表中的區域後,在彈出的視窗中輸入你想要的名字,即可為其重新命名。我們保留我們區域原來的名稱「Region 001」,這是預設的名稱。 B. 進入雷獸區域會造成雷獸鑽出地面 除非雷獸先鑽出地面,否則我們無法殺死雷獸並完成任務。使用新區域的話,我們可以使雷獸在英雄靠近時鑽出地面。切換回「觸發編輯器」視窗後,按[Ctrl+G]熱鍵來創建一個新資料夾並將其命名為「遊戲事件」。使用[Ctrl+T]熱鍵,在這個資料夾中創建一個新觸發器,並將其命名為「雷獸鑽出」。接下來選取這個觸發器,並加入以下的事件、條件和動作:

事件:
我們需要創建一個事件,以在我方單位進入創建了的區域時觸發。
1. 右鍵點擊觸發器區後,選擇「新增事件」。
2. 接著在彈出的視窗中,選擇「函數」區中的「單位進入/離開區域」。
3. 將「區域」值改為我們的新區域(截圖中的Region 001)。選擇區域時,「來源」預設應為「函數」;我們需要將其改為「值」,這樣才能選擇區域。我們也可以使用「選擇」按鈕,在「地形編輯器」中搜尋和選取要用於該觸發器的區域。

條件:
我們需要設立一個「條件」以確保進入區域的單位是玩家所擁有的,如此一來,才不會使其他像是異化蟲等單位不小心觸發鑽出技能,而毀了這個驚喜。
1. 右鍵點擊「觸發器」區後,選擇「新增條件」並選擇「比較」,接著再按「確定」。
2. 「數值1」應設為「單位的擁有者」。
3. 單位的子值應設為「觸發單位」。
4. 「數值2」應設為1(即指玩家1)。

動作:
我們將為這個觸發器創建兩個動作。首先,我們將命令雷獸鑽出地面。接著,我們將加入一個動作,以顯示整片農地區域。
1. 右鍵點擊「觸發器」區後,選擇「新增動作」。
2. 在彈出的視窗中,選擇「啟用/停用觸發器」並按「確定」。
3. 確保「觸發器」值設定為「目前的觸發器」,而且「狀態」設定為「停用」。這樣一來「鑽出觸發器」就只會執行一次。如果我們不關閉這個觸發器的話,這個觸發器就會不停地重複執行。

This will make it so that the Unburrow Trigger only runs once. If we don't turn this Trigger off, then we will continue to run the Trigger over and over.

4. 創建一個「下達命令」動作。
5. 將單位設為雷獸變數。
6. 將命令設為「無目標的指令」。
7. 將技能指令設為「雷獸-鑽出」。
8. 將佇列欄位保留為「取代存在的命令」。
9. 創建「顯示地區」動作。
10.將「地區」值設為我們在事件中使用的區域。
11.將「持續時間」設為0.
0。這樣可以確保「區域」永遠維持已發現的狀態;「戰爭迷霧」不會覆蓋「顯示」設定設為0.0秒的區域。

 

12.「玩家」和「檢查山崖」高度保留為預設值。
儲存地圖!進行測試!

現在是測試我們所製作的地圖的大好時機,同時也是儲存地圖[Ctrl+S]的最佳時機,以避免丟失我們所做的點點滴滴


1. 按下編輯器工具列最右方的「測試文件」按鈕,或按[Ctrl+F9]。


2. 載入地圖後,你的單位將會受到隊伍顏色為黃色的電腦玩家所發動的攻擊。這個我們晚點會再解決。現在,使用雷諾和他的兩名陸戰隊來消滅黃色電腦玩家,接著在殖民地的農地區找出雷獸和地下蠕蟲並將其殺死。雷獸將會鑽出,而你應該能殺死這兩個單位並觸發勝利畫面:

C. 進入殖民地區域會觸發有關殖民者調查農作物的影像訊息,以及生成援軍,如果不成功的話,回到之前的步驟並檢查你的觸發器;有可能是某個步驟被遺漏了,或是某個數值被設定錯了。仔細檢查全部的步驟,檢驗所有的觸發器,然後再重試一次!
當我們進入殖民地時,我們會看到一段有關殖民者說明他們所面臨問題的影像訊息。


創建一個覆蓋整個殖民區的新「區域」。
創建一個新的觸發器,以在你進入該區域時發送影像訊息。

事件:
1. 創建一個「單位進入/離開區域」的事件。
2. 將「區域」值從「整張地圖」改為你的新「區域」。

條件:
1. 創建新的「比較」條件。
2. 將「數值1」變更為「單位的擁有者」。
3. 將「單位」的子數值變更為「觸發單位」。
4. 將「運算子」保留為「==」。
5. 將「數值2」變更為「1」。

動作:
1. 創建一個「啟用/停用觸發器」動作,並確保「觸發器」設為「目前的觸發器」且「狀態」設為「停用」。
2. 創建一個「發送傳輸」動作。

 

3. 你可以修改用來發送影像訊息的發送者、播放的聲音檔案、使用的字幕等等。這些是我們可以設定的選項:
4. 接下來,新增「創造單位及預設面向」動作。
5. 將「計數」值設為5。
6. 將「類型」值設為陸戰隊。
7. 將「玩家」值設為1。
8. 「旗標」值設不變。
9. 我們想要陸戰隊單位生成於其中一個殖民地建築裡。為此,我們需要將「點」值設為「單位的位置」。

雙擊「點」值後,選擇「函數」選項按鈕。選取函數列表中的「單位位置」,然後按下「確定」。將「點」數值設為「單位的位置」這個動作會在「單位的位置」下創建一個新的子值。雙擊這個新的「單位」值,然後選擇「值」選項按鈕,以檢視地圖上可用的單位。選取其中一個殖民地建築後,按下「確定」。


當我們完成後,這個「動作」看起來如下:
10.創建「對單位群組下達命令」動作。
11.透過彈出視窗的「函數」來源,將「群組」值設為「最後被創造的單位」
12.將「命令」值設為「命令單位尋找目標」。
13.將「技能指令」值設為「移動」。
14.透過彈出視窗的「值」來源,將「單位」值設為吉姆‧雷諾(突擊隊),因為他是個地圖上的單位。
15.將「佇列」值保留為「取代存在的命令」。
16.重複步驟4至6來創建幾名醫護兵。

 

IV. 目標觸發器
除非我們給玩家一、兩個目標,否則玩家將不知道要在地圖上做什麼,因此接下來要製作的是「發現目標」和「完成目標」觸發器。讓我們來創建一個名為「目標」資料夾;首先右鍵點擊觸發器列表視窗,然後選擇「新增資料夾」或使用[Ctrl+G]熱鍵。

A. 發現目標
「發現目標觸發器」會將目標創建在畫面左上方,並涵蓋說明目標的文字。這個觸發器會在遊戲一開始時就執行。
新變數:我們需要加入幾個「變數」以追蹤我們的兩個目標。
1. 地下蠕蟲目標
到目前為止,我們的變數一直都是整數。現在將此變數的「類型」改為「目標」。
2. 雷獸目標
類型:目標

創建一個名為「發現目標」的新觸發器。

事件:
1. 創建「地圖初始化」事件。

條件:
我們不需要為這個觸發器製作任何條件,因為每次遊戲開始時它都必須執行一次。

動作:
1. 創建「等待」動作。這會造成觸發器按照指定的秒數暫停。我們之所以在這個觸發器中使用「等待」,是為了玩家在收到我們提供的資訊之前,可以有些緩衝時間。他們將有時間熟悉下環境,在地圖上找到他們的單位,接著才看到目標顯示於畫面中。我們將「時間」值設為2秒。
2. 下一步,創建一個「創造目標」動作。將「狀態」和「類型」值設為「啟動」和「首要的」,但把文字和描述改成與擊殺地下蠕蟲相符的內容。
3. 接著新增「設定變數」動作。選擇之前製作的「地下蠕蟲目標」變數,並將函數「最後創造的目標」設為第二個值,這樣我們就可以透過呼叫「變數」來參照新目標。
4. 重複步驟2和3來製作雷獸目標。

等你完成後,你的觸發器看起來應該像這樣:


儲存地圖!進行測試!
現在遊戲開始後,你將看到畫面上出現醒目的目標!按[Ctrl+F9]
來測試地圖,看看我們的新觸發器是否成功運作。


B. 完成目標
當目標完成後便會觸發此觸發器,且這會將目標狀態設為「完成」。

事件:
1. 創建「單位死亡」事件。

條件:
我們需要在這個「觸發器」中設定「條件」,但這次我們不會將其放在「條件」區。而是使用一個特殊「動作」在「動作」區中創建它們。

動作:
有時候在「觸發器」的流程中,你會想按照遊戲狀況與造成觸發器執行的情況來選擇不同的「動作」。就這個「觸發器」來說,我們將依據死亡單位是否為地下蠕蟲或雷獸,來決定將目標狀態變更為「完成」與否。為此,我們可以利用「If Then Else」動作。
「If Then Else」動作有個條件區,以及兩個動作區。如果條件為真,則執行第一組動作;如果條件為否,則執行第二組動作。

1. 創建「If Then Else」動作。
2. 在「If」區,製作一個「比較」條件以檢驗觸發單位是否為地下蠕蟲(需將數值1從「單位的擁有者」改為「觸發單位」)。
3. 在「Then」區製作一個「設定目標狀態」動作,並將目標設為我們的「地下蠕蟲目標」變數,接著將狀態設為「完成」。
4. 讓「Else」區保留空白。
5. 重複步驟1至4來設定雷獸的「完成目標」觸發器。

現在如果有任何單位死亡,會觸發我們「完成目標」觸發器;當觸發器被觸發後,「If Then」動作將會檢驗查看是否死亡單位為兩個目標的其中之一;如果是的話,目標狀態將被設為完成。


儲存地圖!進行測試!
讓我們再來測試一次我們的地圖,以確保我們成功擊殺對應單位時將正確地完成目標。