エリートスクリプトクールダウン
クールダウンは、ボスが同じスクリプトまたは他のパワー*を再度実行できるようになるまでに経過しなければならない時間を設定します。
- 注意:一部のパワーは現在クールダウンの影響を受けません。
設定場所
クールダウンはエリートスクリプトのCooldownsセクション内で設定されます:
eliteScript:
ScriptName:
Events:
- [event configuration]
Actions:
- [action configuration]
Cooldowns:
local: [value or range]
global: [value or range]
注意:設定キーは大文字小文字を区別しません(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ベースのパワーはグローバルクールダウンを正しくサポートしています。古いパワーの一部は現在この影響を受けません。これは現在作業中です。
**注意:ローカルクールダウンを長くし、グローバルクールダウンを短くすることで、ボスが利用可能なパワーを交互に使用することを保証できます!**グローバルクールダウンを長くしないでください。また、他のパワーがトリガーされる機会を与えるため、少なくとも1秒のローカルクールダウンを残すことをお勧めします。
さらに、パワーがアクティブな特定の期間がある場合、このシステムを使用して、他のパワーが同時に実行されてパワーが台無しになるのを防ぐべきです。
ランダム化
localとglobalの両方のクールダウンは、範囲構文を使用したランダム化をサポートしています。これにより、クールダウンの持続時間が変化し、ボスの行動に予測不能性が加わります。
例:
Cooldowns:
local: 40-80
global: 10-30
ローカルクールダウンをランダムに40〜80ティック(2〜4秒)、グローバルクールダウンをランダムに10〜30ティック(0.5〜1.5秒)に設定します。
注意:値はクールダウンが適用されるたびにランダムに選択されます。
クールダウンでスクリプトを1回だけ実行する
戦闘中に複数回発生する可能性があるイベントを使用しながら、スクリプトが1回だけトリガーされるようにするには、ローカルクールダウンを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分)に1回だけトリガーされます。戦闘がそれほど長く続くことはめったにないため、これによりスクリプトは戦闘遭遇ごとに1回だけ実行されます。
この場合、グローバルクールダウンはオプションです - 省略または0に設定した場合、他のパワーの実行を妨げません。
トラブルシューティング
無効なクールダウンキー
Cooldownsセクションで認識されないキーを使用すると、サーバーログに警告が表示されます:
Failed to parse cooldown entry for script name [ScriptName] in config file [FileName]
有効なキーは:local、global(大文字小文字を区別しない)