跳到主要内容

精英脚本冷却时间

冷却时间设置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(不区分大小写)