怎樣在開始時允許玩家選擇喜歡的英雄?

Tags: 英雄, 玩家,

利用魔獸地圖編輯器編輯

工具/原料

魔獸地圖編輯器

這裡還要講到函式和變數的運用。編輯器裡還有許多內建的函式,與變數不同,函式是固定的不能夠改變,它有一個最大的特點就是所有函式都有返回值,例如:"Last Created Unit"返回最後建立的單位;"Triggering Unit"返回觸發此觸發器的單位等等。

步驟/方法

首先開啟變數編輯器新建一個變數PlayerUnit,型別設定為單位。

怎樣在開始時允許玩家選擇喜歡的英雄

然後在地形編輯器中選擇地區面板,新增三塊區域,預設名字為"地區 000"、"地區 001"、"地區 002"。

怎樣在開始時允許玩家選擇喜歡的英雄

在單位面板上選擇"中立無敵意",然後在"地區 001"和"地區 002"上各放置一個英雄,然後選擇"玩家 1 (紅色)",放置一個小精靈。

怎樣在開始時允許玩家選擇喜歡的英雄

在觸發事件編輯器裡增加一個新觸發器,就命名為"ChooseHero1",併為加入指令。

觸發事件

單位 - Unit Enters Region

如果單位進入地區1就執行觸發器

怎樣在開始時允許玩家選擇喜歡的英雄

單擊Region出現以下對話方塊,選擇"地區 001"。

怎樣在開始時允許玩家選擇喜歡的英雄

兩次確定後完成事件的設定,現在新建一個條件。

條件

Unit-Type Comparison

判斷觸發的單位型別是否是一個小精靈。

怎樣在開始時允許玩家選擇喜歡的英雄

點選步兵出現單位型別對話方塊,選擇暗夜精靈族,再選擇小精靈後確定。

怎樣在開始時允許玩家選擇喜歡的英雄

現在就要設定動作了,也就是給玩家一個英雄單位,並將這個單位儲存到變數PlayerUnit中。

動作

單位 - Kill

殺死小精靈,預設(Triggering unit)表示是觸發此觸發器的單位,也就是小精靈。

怎樣在開始時允許玩家選擇喜歡的英雄

單位 - Cearte a Unit

在"地區 000"當中建立一個英雄給玩家1,如下圖修改,(Unit-type of 聖騎士 0000 <情報> )這是建立給玩家的單位,單擊"選擇一個單位"按鈕,然後在地圖上單擊聖騎士,玩家 1 (紅色)表示此單位給玩家1,(Center of 地區 000 <情報> )建立位置在"地區 000"正中,預設的建築朝向單位面向哪個方向。

怎樣在開始時允許玩家選擇喜歡的英雄

Set Variable

這條指令將最後建立的英雄賦值給變數PlayerUnit。選擇變數為PlayerUnit,然後將預設函式(Triggering unit)改為(Last created unit),(Triggering unit)表示觸發此觸發器的單位,也就是已經被殺死的小精靈,(Last created unit)表示最後建立的英雄。

怎樣在開始時允許玩家選擇喜歡的英雄

特效 - Create Special Effect On Unit

建立一個傳送的特效給PlayerUnit,這句僅僅是為了好看。:)

怎樣在開始時允許玩家選擇喜歡的英雄

點選Abilities\Spells\NightElf\Blink\BlinkTarget.mdl就能選擇特效模型了,同時,這裡也用到了變數PlayerUnit。

怎樣在開始時允許玩家選擇喜歡的英雄

現在要判斷第二個英雄,這很簡單,只要複製一份觸發器,選擇觸發器"ChooseHero1"點複製,然後點貼上,就有了一份與"ChooseHero1"相同的觸發器。

怎樣在開始時允許玩家選擇喜歡的英雄

然後單擊複製的觸發器,將其改名為"ChooseHero2",並修改其中的指令,只用把事件中"地區 001"修改為"地區 002",然後再把Cearte a Unit指令中"聖騎士"改為"山丘之王"就可以了,很簡單吧。

從上面可以看出,如果你想改變可選擇的英雄時,只用修改Cearte a Unit這一條命令中的英雄就行了。運用了變數以後,不管你選擇的是那個英雄,只用建立特效給變數PlayerUnit就行了。

由此可看出,為可能多次運用的物件建立變數是個很好的習慣,合理運用將大大減少你的工作量。

怎樣在開始時允許玩家選擇喜歡的英雄

如果你想問,我要做一個多人遊戲呢?難到每個人都要設定一次?如果有10個英雄可選,共5個玩家,難道要設定10x5=50個觸發器?事實上這個問題很好解決,在這裡一個函式起到關鍵的作用。

首先要把變數PlayerUnit下的陣列打上鉤,使其成為變數陣列。

怎樣在開始時允許玩家選擇喜歡的英雄

然後修改"單位 - Cearte a Unit",將其中的"玩家 1 (紅色)"改為功能"轉化 - Convert Player Index To Player",然後點選1,把功能改為"遊戲 - Number Of Players" (如下圖),確定。

怎樣在開始時允許玩家選擇喜歡的英雄

同樣修改"Set Variable",變數這時候變成了"PlayerUnit [序號]"的形式,把"序號"也改為"遊戲 - Number Of Players"就行了。

"遊戲 - Number Of Players"表示是觸發此觸發器的玩家的序號,所以"Player [遊戲 - Number Of Players]"就是觸發此觸發器的玩家,這就使觸發器能夠自動判斷是哪個玩家選擇了這個英雄。在呼叫變數時只用選擇陣列的序號就行了,比如要呼叫玩家2的英雄,那麼就只用呼叫對應的變數PlayerUnit[2]就行了。

如果你不想玩家選擇相同的英雄呢?只要增加一句:

Trigger - Turn off

關閉觸發器。

This trigger返回當前觸發器,這條指令表示關閉當前觸發器,觸發器將不會再被觸發。這句可以放在動作中任何位置,動作不會因此中止,所以建議放在第一條執行,避免因為沒有及時關閉而導致其他玩家再次觸發此觸發器。

你可以多放幾個小精靈在地圖上測試。

怎樣在開始時允許玩家選擇喜歡的英雄

當然小精靈和英雄都可以改成其他的你也可以到u9網下載其他英雄模型

還有一種雙擊選擇英雄的方法,我自己也沒弄懂望高手指點一二(*^__^*) 嘻嘻……

注意事項

英雄如果多的話很容易搞混所以要注意

英雄, 玩家,
相關問題答案