精英腳本冷卻時間
冷卻時間設定Boss在可以再次執行同一腳本或任何其他技能*之前必須經過的時間。
- 注意:某些技能目前不受冷卻時間影響。
配置位置
冷卻時間在精英腳本的Cooldowns部分中配置:
eliteScript:
ScriptName:
Events:
- [event configuration]
Actions:
- [action configuration]
Cooldowns:
local: [value or range]
global: [value or range]
注意:配置鍵不區分大小寫(local、Local、LOCAL都有效)。
關於單位的說明:所有冷卻時間值以刻(tick)為單位。在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設定同一腳本再次執行前的時間(以刻為單位)。範例:
範例
local: 60
設定技能在3秒後可以再次運行。
global
global設定任何其他腳本或技能再次執行前的時間(以刻為單位)[1]。範例:
範例
global: 20
設定所有其他技能在1秒內無法啟動。
[1] 注意:這適用於舊版技能實作(非EliteScript)。所有基於EliteScript的技能都正確支援全域冷卻時間。一些較舊的技能目前不受此影響,這是一項正在進行的工作。
**注意:透過使本地冷卻時間更長、全域冷卻時間更短,你可以保證Boss會在其可用技能之間交替使用!**永遠不要使全域冷卻時間更長,我建議至少保留一秒的本地冷卻時間,以給其他技能觸發的機會。
此外,如果你的技能有一個特定的啟用持續時間,你應該使用此系統來防止其他技能同時運行並可能破壞你的技能。
隨機化
local和global冷卻時間都支援使用範圍語法進行隨機化。這允許冷卻時間持續時間變化,為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]
有效的鍵為:local、global(不區分大小寫)