觸發編輯器(Trigger Editor)

這是世界編輯器中最先進、威力最強大的部份。觸發編輯器可以讓你全面控制遊戲中的各個角落。它是個簡化後的程式化語言,專門設計給初學者使用的工具,但仍然保留了進階使用者想要的強大功能。要打開觸發編輯器,請按下F4,或是在模組選單中選擇觸發編輯器。

一個觸發包括了三個部份:事件、條件與動作。一項觸發的動作會在它的事件發生、符合條件之後啟動。

事件

事件將會啟動一個程序,可能導向一個觸發的啟動。在一個觸發的事件就位後,就會開始評估它的條件,最後啟動它的動作。在一場地圖上的預設觸發是「Melee Initialization」。這個觸發的預設事件是「Map initialization」。基本上,這表示在地圖一完成載入工作後就會啟動:觸發沒有非達到不可的條件。如果你有意願的話,你可以把這個事件變更為「Time - Time Elapsed」,然後變更它的秒數為10秒。接下來,這張地圖就會在載入10秒之後,執行「Melee Initialization」的觸發。

條件

條件是特殊的需求,必須達成之後才能讓觸發的動作啟動;一個條件必須是「真」才能讓一個觸發的動作運作。這種思考方式可能會導致某種程度的誤解,因為你可能會設定一個條件像是「假與假相等」 - 一個恆為真的條件。預設的觸發「Melee Initialization」並不包括預設條件;我們可以新增一個。按下Ctrl + D,然後選擇「Game Speed Comparison」。對話視窗中將會顯示藍色文字「(Current Game Speed) 等於 普通」。如果你把這個條件保留下來,然後從編輯器去執行地圖,則「Melee Initialization」的觸發仍會正常的運作(假定你沒有變更把其他部份的觸發數值)。不過,如果你把速度從「普通」轉為「最快」,則「Melee Initialization」觸發就不會在編輯器中執行。這是因為編輯器在自動作執行時將遊戲速度設定為「普通」。這個條件如果在「普通速度與最快速度是相同的」運算之下答案為「假」,所以這個條件不成立。

在條件與事件之間的不同之處,在於條件只有在觸發的事件發生了之後,才會執行。另外,雖然觸發可能有多重的事件,但是只有一個事件需要在觸發的動作發生時執行,而所有的條件必須同時為「真」,才能讓動作執行。

觸發中真正需要的唯一事情就是動作(呃,事實上,這也不完全如此。不過,一個沒有動作的觸發並不會影響遊戲,但這完全沒有加以描述的必要)。很重要的一點是,觸發在遊戲中並非一定要靠著條件或是事件,才能來執行所描述的動作。觸發可以利用動作從其他的觸發執行,像是「觸發 - 執行(忽略條件)」,可以執行任何觸發,不管它的條件、事件或是缺乏相關資料。

動作

動作是觸發的結果。這些動作可能是從移動攝影機到特定的部隊上空、播放動畫,或是讓一個部隊攻擊另一個。動作可以讓設計者全面控制遊戲中所發生的事。

創造一個觸發

要打開觸發編輯器,按下F4或是選擇模組選單中的觸發編輯器。

在你創造一個觸發之前,你必須將這個觸發編入一個類別。你可以從選單中的「新增」,再點選「資料夾」來創造想要的類別;而且它會出現在左側的樹狀列表中。類別有檔案圖示,你可以在你創造類別之後輸入名稱來為類別命名,或是選擇類別後按下F2,再輸入想用的名稱。

要創造一個新的觸發,選擇你剛剛創造的類別,然後從選單列中點選「新增」,再選擇你剛剛創造出來的觸發。你會注意到在觸發對話框的右側,有二個新的查核方塊:

啟用 - 如果這個查核方塊已經關掉了,這個觸發就會被關閉,而且在遊戲中無法生效。 初始值開啟 - 如果這個查核方塊已經關掉了,這個觸發剛開始時是處於關閉的狀況,但是可以在遊戲中透過「Trigger - Turn On」的動作來打開。注意:被用來啟動一個觸發的觸發,會忽略它的啟用/關閉狀態。

在觸發對話框的右側還有好幾塊區域:

觸發說明 - 這個區域是讓你寫下一些註譯,用來提醒你與其他想要變更這些描述的人。註釋完全不會影響到觸發中的功能;它們是用來撰寫個人摘記的。 觸發函數 - 這個地方會列出觸發中的核心。你會注意到所有的事件、條件與動作都顯示在編輯器的這個區域中。如果你增加了一個事件、條件或動作,它會在這個地方,以合理的方式排列出來。

你可以在進行複製(或貼上)事件、條件與動作的觸發;甚至在地圖之間也行。要編輯一個已經創造出來的事件、條件或動作, 你只需要雙擊它們就行了。

有些你在編輯器中較不熟悉的項目,可能是變數、函數與預設。

變數

你可以在編輯器中按下Ctrl + B來打開變數的部份,或是在觸發編輯器中的「編輯」選單選擇「變數」。這些變數的作用很類似Basic或C語言中的變數,相當於編輯器用來存放一些特定資料的桶子,但是桶中的東西可以隨時變換:它們一次只攜帶一種資料。舉例來說,你無法把整數放入部隊變數中。

靠著觸發,你可以與地圖上面已經放置好的物件互動。假設你想要在一個部隊上面使用一種動作,就得打開你想要用在部隊上面的動作,然後點選動作文字的正確部份。紅、藍色底線的文字描繪出的動作是可以加以變更的。現在點選「選擇一個部隊」的按鈕,然後選擇你地圖上面的部隊。你所選擇的部隊變數名稱,現在會出現在變數列表中。

試試這一步:在一個空白的地圖中,放一個半獸人農奴。按下F4打開觸發編輯器,再按下Ctrl + G來創造一個類別;接下來按下Ctrl + T創造一個觸發。使用Ctrl + R來創造一個新的動作。按下u鍵二次,來選擇動作「Unit - Kill」,叫出這個「Unit - Kill」的文法 (Triggering Unit)。點選藍色底線的文字,「Triggering Unit」。點選按鈕後畫面會叫你選擇一個部隊(在編輯變數按鈕的左側)。選擇農奴。恭喜你!你已經把這個觸發加在地圖上的這個農奴身上了。所有先前放置在地圖上的部隊,上面都有一個變數名稱。

如果你想要得知變數的正確解釋,建議你多花點時間來學習任一種電腦語言(C++是王道!)

函數

觸發編輯器包括了許多的函數,可以讓使用者在使用時比Blizzard以前提供的編輯器更為平順。一般來說,函數都是與變數與指定的資料類型混合使用。舉例來說,一個很好用的函數是「Last Created Unit」。這個函數可以讓你找到你最近用「Unit - Create」所創造出來的部隊。而且,事實上這是二個在遊戲執行後,能夠幫助你找到部隊的二種函數之一(另一個是「Last Created Unit Group」)。這些函數可以用來代替一個部隊變數或是一個先前放在地圖上面的部隊。請記住,這些函數會傳回數值,你無法手動設定一個函數,相等於某些像是變數之類的數值。不過,你可以將一個變數設定為與函數相符。

舉例來說,如果你剛剛被一個事件偵測到你的英雄昇級了,那「Event Response - Leveling Hero」只會出現在特定的英雄身上。你不能直接把這個函數,設定為作用到其他英雄身上,然後期望世界編輯器會乖乖照做。如果你想要把特定的英雄昇級,你必須使用其他的方法來偵測出這個英雄(像是「Unit - Player-Owned Unit Event」事件以及「Unit-Type Comparison」條件),然後在這個英雄的身上使用合適的動作,像是「Hero - Set Level」。

預設

預設是內建在編輯器中的資料,你並不需要做任何事,就可以讓它們按步就定位,而且它們永遠都不會變動。最好的例子是「玩者1(紅色)」。

數值

另一個你會變常經更的是數值區。這個區域中可以讓你直接輸入特定的資訊。舉例來說,這個區域會出現在「Game - Text Message (Auto-Timed)」動作中。如果你點選藍色底線的文字,你就會打開一個字串視窗,這個視窗的最後一個選項就是數值。如果你想要的是一段簡單的訊息,你可以直接在這個區域中輸入;你用不著創造一個新變數或是使用一個新函數。

官方導引/m2.觸發編輯器.txt · 上一次變更: 2007年11月02日 6:06 pm 來自 wasabi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0