跳至主要内容

精英腳本冷卻時間

冷卻時間設定Boss在可以再次執行同一腳本或任何其他技能*之前必須經過的時間。

  • 注意:某些技能目前不受冷卻時間影響。

配置位置

冷卻時間在精英腳本的Cooldowns部分中配置:

eliteScript:
ScriptName:
Events:
- [event configuration]
Actions:
- [action configuration]
Cooldowns:
local: [value or range]
global: [value or range]

注意:配置鍵不區分大小寫(localLocalLOCAL都有效)。

關於單位的說明:所有冷卻時間值以刻(tick)為單位。在Minecraft中,每秒有20刻,因此:

  • 20刻 = 1秒
  • 60刻 = 3秒
  • 100刻 = 5秒
  • 99999刻 ≈ 83分鐘

預設值

如果省略Cooldowns部分,localglobal預設為0,這意味著腳本完全繞過冷卻時間系統。

冷卻時間繞過

沒有Cooldowns部分的腳本,或localglobal都設定為0的腳本,將完全繞過冷卻時間系統。這允許事件觸發的行為無論Boss的冷卻狀態如何都始終執行。

範例:

eliteScript:
AlwaysTeleportOnLowHealth:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: TELEPORT
Target:
targetType: SELF_SPAWN
# 沒有Cooldowns部分 - 事件觸發時腳本始終執行

冷卻時間有兩個值:

local

local設定同一腳本再次執行前的時間(以刻為單位)。範例:

範例

local: 60

設定技能在3秒後可以再次運行。

global

global設定任何其他腳本或技能再次執行前的時間(以刻為單位)[1]。範例:

範例

global: 20

設定所有其他技能在1秒內無法啟動。

[1] 注意:這適用於舊版技能實作(非EliteScript)。所有基於EliteScript的技能都正確支援全域冷卻時間。一些較舊的技能目前不受此影響,這是一項正在進行的工作。

**注意:透過使本地冷卻時間更長、全域冷卻時間更短,你可以保證Boss會在其可用技能之間交替使用!**永遠不要使全域冷卻時間更長,我建議至少保留一秒的本地冷卻時間,以給其他技能觸發的機會。

此外,如果你的技能有一個特定的啟用持續時間,你應該使用此系統來防止其他技能同時運行並可能破壞你的技能。

隨機化

localglobal冷卻時間都支援使用範圍語法進行隨機化。這允許冷卻時間持續時間變化,為Boss行為增加不可預測性。

範例:

Cooldowns:
local: 40-80
global: 10-30

將本地冷卻時間隨機設定為40到80刻(2-4秒),全域冷卻時間隨機設定為10到30刻(0.5-1.5秒)。

注意:每次應用冷卻時間時都會隨機選擇值。

使用冷卻時間讓腳本只運行一次

為確保腳本在使用可能在戰鬥中多次發生的事件時只觸發一次,請將本地冷卻時間設定為較大的數字,例如99999。此範例演示了該概念:

範例
eliteScript:
SetMeOnFireOnlyOnce:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
duration: 60
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 99999
# global: 20 # 可選:阻止其他技能1秒

在此場景中,EliteMobDamagedByPlayerEvent觸發SET_ON_FIRE動作。如果沒有冷卻時間,每次玩家攻擊怪物時都會啟動該動作。

但是,將本地冷卻時間設定為99999後,該動作每99999刻(83分鐘)只會觸發一次。由於戰鬥很少持續那麼長時間,這實際上使腳本每次戰鬥遭遇只運行一次。

在這種情況下,全域冷卻時間是可選的 - 如果省略或設定為0,不會阻止其他技能運行。

故障排除

無效的冷卻時間鍵

如果你在Cooldowns部分使用了無法辨識的鍵,伺服器日誌中將出現警告:

Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]

有效的鍵為:localglobal(不區分大小寫)