1. 程式人生 > 實用技巧 >研究War3編輯器(4):觸發器與變數

研究War3編輯器(4):觸發器與變數

概念

在【觸發編輯器】裡,可以對“觸發器”和“變數”進行編輯。他們可以以較為簡單的方式來指定遊戲中的一些邏輯,而不必寫程式碼。
在這裡插入圖片描述
例如,目前可以看到一個名為Melee Initialization的觸發器。

觸發器(Trigger)

“觸發器”代表了一種邏輯:
特定時機並且滿足限定條件下需要進行的一系列操作

  • 所謂的 “特定時機”事件表示,比如“一個單位的死亡”。
  • 所謂的 “限定條件”條件表示,是一些附加的判斷,比如比較一個自定義的變數是否大於一個特定的值。它是可選的,並不是必須指定。
  • 所謂的 “一系列操作”動作表示,比如“改變當前的天氣”、“設定英雄的等級”等等,可以有多個。

例如,目前在Melee Initialization

這個預設新增的觸發器中,可以看到它觸發的時機是“Map initialization”即地圖初始化時。而它進行了一系列的初始化操作,他們在動作中可以看到。

變數(Variable)

有時候,想要實現的邏輯其中包含了一些“非固定的量”,例如:我想要讓英雄升級到“x級”,但這個“x”是由其他邏輯進行決定的。這時,“x”就是一個變量了。

“變數”對於程式設計而言是一個基礎的概念,而關於它,一個重要的屬性就是“作用域”:例如對於一個全域性作用域的變數,在任何地方都可以訪問,而一個區域性作用域的變數,只在一個範圍內可見。
在【觸發編輯器】這個介面中,新增的變數似乎都屬於全域性變數,至於區域性變數,似乎只存在於在JASS指令碼中(此說法參考

world-editor-tutorials : Learning Variable Basics)。而關於JASS指令碼,目前瞭解較少,有待後續研究。

實踐:新增一個新的觸發器

首先,新增一個新的“類別”
在這裡插入圖片描述
新的類別起名為“測試類別”,然後就可以在其中新增“新觸發(Trigger)”了。
在這裡插入圖片描述
新的觸發器命名為“TestTrigger”,
工具欄的三個按鈕分別可以新增新的 事件條件動作。新增後的可以在右下側看到(當前沒有任何內容)。
在這裡插入圖片描述
這裡打斷一下觸發器的操作,我需要在地圖中新加一個單位作為測試,我是玩家1紅色方,這裡我需要一個敵對方。因此新增一個“玩家2陣營(藍色方)”的農民:
在這裡插入圖片描述
然後新增新事件

  • 型別為單位 - Specific Unit Event(特定單位的事件)
  • 選擇這個【單位(Unit)】為剛才建立的農民,而【事件】預設就是“死亡”。

在這裡插入圖片描述
然後新增對應的動作
型別為環境 - Create Weather Effect建立天氣效果,而這個效果就是“灰谷大雨”
在這裡插入圖片描述
這樣就表示,當這個農民死亡時,會觸發下雨的天氣特效了。
效果如下:
在這裡插入圖片描述

實踐:使用變數

新增一個新的變數:
在這裡插入圖片描述
新變數命名為test,變數型別是整數,初始值是7
在這裡插入圖片描述
然後為TestTrigger新增新的事件:

  • 事件型別為英雄 - Set Level即給英雄設定等級
  • 選擇單位為己方的英雄
  • 而要升的等級為一個變數,他就是test

在這裡插入圖片描述
這樣的意思是,現在農民死亡之後,不僅會下雨,還會讓英雄升級的test的值(7)。
效果:
在這裡插入圖片描述

相關資料

world-editor-tutorials : Trigger Basics and Formats
world-editor-tutorials : Learning Variable Basics