建立能力
EliteMobs 腳本系統
以下頁面介紹了如何建立 Elite 腳本!
這是一項進階功能,需要對 EliteMobs 有深入的了解。
注意:Elite 腳本可以作為能力檔案添加,也可以添加到自訂 Boss 檔案中! 如果用作能力檔案,你可以像往常一樣使用自訂 Boss 的 powers 設定,將它們作為一般能力添加到 Boss 中。
添加 EliteScript
要開始向 Boss 添加 EliteScript,請在 Boss 檔案中添加以下條目:
eliteScript:
注意:以下內容對大小寫和空格極其敏感!請確保你的空格、換行符和整體格式與範例一致!
現在你已經宣告了腳本的開始,可以添加你的特定腳本了。在此範例中,我們將建立一個名為 Example 的腳本:
eliteScript:
Example:
EliteScripts 有 5 個不同的部分:Events、Conditions、Zones、Actions 和 Cooldowns。只有 Actions 是必要的。
讓我們看一個簡單的範例:
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,0.5,0
Cooldowns:
local: 60
global: 20
此腳本使菁英怪在被玩家擊中時向上彈起,並且在 3 秒內不會再次觸發(由於 Cooldowns 部分的設定,其他能力也會在 1 秒內被阻止觸發)。
現在你已經了解了腳本結構的一般格式,是時候學習每個部分可以做什麼了!
Events
點擊上方的連結了解如何使用事件!
Targets
點擊上方的連結了解如何使用目標!
Actions
點擊上方的連結了解如何使用動作!
Zones
點擊上方的連結了解如何使用區域!
Conditions
點擊上方的連結了解如何使用條件!
Cooldowns
點擊上方的連結了解如何使用冷卻時間!
添加多個 EliteScripts
你可以在一個事件上擁有多個動作,但如果你想在同一個 Boss 上擁有多個腳本呢?只需建立一個新的腳本條目即可!讓我們擴展前面的範例並添加另一個腳本:
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,0.5,0
Cooldowns:
local: 60
global: 20
Example2:
Events:
- PlayerDamagedByEliteMobEvent
Actions:
- action: SET_ON_FIRE
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 200
global: 60
在這個範例中,我們添加了第二個名為 Example2 的腳本。Example2 會點燃被 Boss 傷害的玩家,這是因為 targetType 設定為 DIRECT_TARGET。
此腳本的冷卻時間設定為 200 tick,這意味著 Boss 每 10 秒才能點燃玩家一次。
建立獨立能力
獨立能力幾乎完全由 Elite 腳本組成。只有兩個可選欄位。不要忘記,獨立能力必須放置在 ~plugins/EliteMobs/powers 資料夾中才能運作。
獨立能力範例:
isEnabled: true
powerType: UNIQUE
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,.3,0
Cooldowns:
local: 60
global: 20
isEnabled
與外掛程式其他地方一樣,設定能力是否啟用。
powerType
能力類型設定能力的分配方式。值為:
UNIQUE:能力僅套用於在能力部分設定了該能力的自訂 Boss。DEFENSIVE/MISCELLANEOUS/OFFENSIVE:任何菁英怪都可以獲得這些能力,它們將計入特定的能力子集。MAJOR_ZOMBIE、MAJOR_SKELETON、MAJOR_BLAZE、MAJOR_ENDERMAN、MAJOR_GHAST:只有相應實體類型的菁英怪才能自然生成這些能力,它們將計為主要能力。
effect
設定能力使用的視覺效果或材質。這由一些硬編碼的能力用來定義其視覺粒子或材質效果。
| 鍵 | 值 | 預設值 |
|---|---|---|
effect | String | none |
powerCooldown
設定單個能力的冷卻時間(以 tick 為單位)。這控制此特定能力觸發的頻率。
| 鍵 | 值 | 預設值 |
|---|---|---|
powerCooldown | Integer | 0 |
globalCooldown
設定所有能力共用的全域冷卻時間(以 tick 為單位)。此能力觸發後,在全域冷卻時間到期之前,其他能力無法觸發。
| 鍵 | 值 | 預設值 |
|---|---|---|
globalCooldown | Integer | 0 |
