Elite Script クールダウン
クールダウンは、ボスが同じスクリプトまたは他のパワーを実行できるようになるまでに経過しなければならない時間を設定します*。
- 注意: 一部のパワーは現在クールダウンの影響を受けません。
設定場所
クールダウンはエリートスクリプトの Cooldowns セクション内で設定されます:
eliteScript:
ScriptName:
Events:
- [イベント設定]
Actions:
- [アクション設定]
Cooldowns:
local: [値または範囲]
global: [値または範囲]
注意: 設定キーは大文字小文字を区別しません (local, Local, LOCAL すべて動作します)。
単位に関する注意: すべてのクールダウン値はティック単位で指定されます。Minecraftでは1秒あたり20ティックなので:
- 20 ティック = 1 秒
- 60 ティック = 3 秒
- 100 ティック = 5 秒
- 99999 ティック ≈ 83 分
デフォルト値
Cooldowns セクションが省略された場合、local と global の両方がデフォルトで0に設定され、スクリプトがクールダウンシステムを完全にバイパスすることを意味します。
クールダウンバイパス
Cooldowns セクションがないスクリプト、または local と global の両方が0に設定されているスクリプトは、クールダウンシステムを完全にバイパスします。これにより、ボスのクールダウン状態に関係なく常に実行されるべきイベント駆動の動作が可能になります。
例:
eliteScript:
AlwaysTeleportOnLowHealth:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: TELEPORT
Target:
targetType: SELF_SPAWN
# Cooldowns セクションなし - イベントが発生するとスクリプトは常に実行されます
クールダウンには2つの値があります:
local
local は、同じスクリプトが再び実行されるまでの時間をティック単位で設定します。例:
例
local: 60
パワーを3秒後に再び実行できるように設定します。
global
global は、他のスクリプトやパワーが再び実行されるまでの時間をティック単位で設定します[1]。例:
例
global: 20
他のすべてのパワーが1秒間実行できないように設定します。
[1] 注意: これはレガシーパワー実装(EliteScriptsではない)に適用されます。EliteScriptベースのすべてのパワーはグローバルクールダウンを適切にサポートします。一部の古いパワーは現在この影響を受けていません。これは進行中の作業です。
注意: local クールダウンを長くし、global クールダウンを短くすることで、ボスが利用可能なパワーを交互に使用することを保証できます! global クールダウンを長くしないでください。また、他のパワーがトリガーされる機会を与えるために、少なくとも1秒の local クールダウンを残すことをお勧めします。
さらに、パワーがアクティブである特定の期間がある場合、このシステムを使用して他のパワーが同時に実行されてパワーを台無しにすることを防ぐ必要があります。
ランダム化
local と global の両方のクールダウンは、範囲構文を使用したランダム化をサポートします。これにより、クールダウンの持続時間が変動し、ボスの動作に予測不可能性が追加されます。
例:
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分)ごとにのみトリガーされます。戦闘がそれほど長く続くことはめったにないため、これにより事実上、スクリプトは戦闘遭遇ごとに1回だけ実行されます。
この場合、global クールダウンはオプションです - 省略するか0に設定すると、他のパワーの実行を妨げません。
トラブルシューティング
無効なクールダウンキー
Cooldowns セクションで認識されないキーを使用すると、サーバーログに警告が表示されます:
Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]
有効なキーは: local, global (大文字小文字を区別しません)