Elite Script 冷卻時間
冷卻時間設定了在 boss 能夠再次執行相同腳本或任何其他能力*之前必須經過的時間量。
- 注意:某些能力目前不受冷卻時間影響。
配置位置
冷卻時間在精英腳本的 Cooldowns 部分中配置:
eliteScript:
ScriptName:
Events:
- [事件配置]
Actions:
- [動作配置]
Cooldowns:
local: [值或範圍]
global: [值或範圍]
注意:配置鍵不區分大小寫(local、Local、LOCAL 都可以使用)。
關於單位的注意事項:所有冷卻時間值都以刻為單位指定。在Minecraft中,每秒有20刻,所以:
- 20 刻 = 1 秒
- 60 刻 = 3 秒
- 100 刻 = 5 秒
- 99999 刻 ≈ 83 分鐘
預設值
如果省略 Cooldowns 部分,local 和 global 都預設為0,這意味著腳本完全繞過冷卻系統。
冷卻繞過
沒有 Cooldowns 部分的腳本,或者 local 和 global 都設置為0的腳本,將完全繞過冷卻系統。這允許事件觸發的行為始終執行,無論boss的冷卻狀態如何。
範例:
eliteScript:
AlwaysTeleportOnLowHealth:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: TELEPORT
Target:
targetType: SELF_SPAWN
# 無 Cooldowns 部分 - 事件觸發時腳本總是執行
冷卻時間有兩個數值:
local
local 設定在相同腳本可以再次發生之前的時間,以刻(ticks)為單位。範例:
範例
local: 60
設定該能力在 3 秒後可以再次執行。
global
global 設定在任何其他腳本或能力可以再次發生之前的時間,以刻為單位[1]。範例:
範例
global: 20
設定所有其他能力在 1 秒內無法開始。
[1] 注意:這適用於舊版能力實作(不是EliteScripts)。所有基於EliteScript的能力都正確支援全域冷卻時間。一些較舊的能力目前不受此影響,這仍在進行中。
注意:通過將 local 冷卻時間設置得更長,並將 global 冷卻時間設置得更短,你可以保證 boss 會在其可用能力之間輪流使用! 永遠不要讓 global 冷卻時間更長,我建議至少保留一秒的 local 冷卻時間,以給其他能力觸發的機會。
此外,如果你的能力在其活躍期間有特定的持續時間,你應該使用此系統來防止其他能力同時執行,並可能破壞你的能力。
隨機化
local 和 global 冷卻時間都支援使用範圍語法進行隨機化。這允許冷卻持續時間變化,為boss行為增加不可預測性。
範例:
Cooldowns:
local: 40-80
global: 10-30
將local冷卻時間隨機設定為40到80刻之間(2-4秒),將global冷卻時間隨機設定為10到30刻之間(0.5-1.5秒)。
注意:每次應用冷卻時間時都會隨機選擇值。
使用冷卻時間讓腳本只執行一次
為了確保腳本只觸發一次,同時仍然使用可能在戰鬥期間多次發生的 Event,請將 local 冷卻時間設置為較高的數字,例如 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 動作。如果沒有冷卻時間,該動作將在每次玩家擊中怪物時觸發。
然而,將 local 冷卻時間設置為 99999,該動作將只會每 99999 刻(83 分鐘)觸發一次。由於戰鬥很少持續那麼長時間,這有效地使腳本在每次戰鬥遭遇中只運行一次。
在這種情況下,global冷卻時間是可選的 - 如果省略或設置為0,它不會阻止其他能力運行。
故障排除
無效的冷卻鍵
如果您在 Cooldowns 部分使用無法識別的鍵,伺服器日誌中將顯示警告:
Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]
有效的鍵是:local、global(不區分大小寫)