エリートスクリプトイベント
EliteScriptはイベントベースです。つまり、特定のイベントがトリガーされたときに起動します。以下は現在有効なイベントです:
| イベント | 詳細 | 直接ターゲット [?] |
|---|---|---|
| EliteMobDamagedByEliteMobEvent | エリートが別のエリートにダメージを受けた | ❌ |
| EliteMobDamagedByPlayerEvent | エリートがプレイヤーにダメージを受けた | ダメージを与えたプレイヤー |
| EliteMobDamagedEvent | エリートが何かにダメージを受けた | ❌ |
| EliteMobDeathEvent | エリートの死亡 | ❌ |
| EliteMobEnterCombatEvent | エリートがプレイヤーと戦闘に入った | 交戦中のプレイヤー |
| EliteMobExitCombatEvent | エリートが戦闘から離脱 | ❌ |
| EliteMobHealEvent | エリートの回復(完全回復を含む) | ❌ |
| EliteMobSpawnEvent | エリートのスポーン | ❌ |
| EliteMobTargetPlayerEvent | エリートがプレイヤーをターゲット | ターゲットされたプレイヤー |
| PlayerDamagedByEliteMobEvent | エリートがプレイヤーにダメージを与えた | ダメージを受けたプレイヤー |
| ElitePhaseSwitchEvent | フェーズ切り替えによるボスのスポーン | ❌ |
| ZoneEnterEvent (ScriptZoneEnterEvent) | エンティティがゾーンに入った。ゾーンの設定が必要! | ゾーンに入ったエンティティ |
| ZoneLeaveEvent (ScriptZoneLeaveEvent) | エンティティがゾーンを離れた。ゾーンの設定が必要! | ゾーンを離れたエンティティ |
注意:「エリート」とは、プラグインによってスポーンされたすべての攻撃的なエンティティを指します。増援、ボス、その他何であっても同様です。 注意:ZoneEnterEventとZoneLeaveEventは計算コストが高いため、使用は控えめにしてください!
Direct Targetはスクリプトターゲットで使用されます。詳細はこちらをご覧ください。
注意:EliteMobDamagedEventはエリートが任意のソースからダメージを受けたときにトリガーされますが、EliteMobDamagedByPlayerEventとEliteMobDamagedByEliteMobEventはそれぞれプレイヤーまたはエリートモブからのダメージに対してのみトリガーされる、より具体的なバージョンです。
注意:イベント名は1文字単位で厳密に照合されます。 elitemobdeathevent や ELITEMOBDEATHEVENT はコンソール警告とともに拒否されます。機能するのは EliteMobDeathEvent だけです。セクション名自体も大文字小文字を区別します:Events、Actions、Zone、Conditions、Cooldowns はこのとおりに正確に記述する必要があり、アクション配下にネストした Conditions: ブロックも大文字で始める必要があります — アクション配下の小文字の conditions: は静かに破棄されます。これらのセクションの内部にあるもの(targetType、radius、borderRadius、isAlive、Target など)は大文字小文字を区別せず、すべての enum 値は慣例どおり正確な大文字の UPPER_SNAKE_CASE 定数です。
on_zone_enter / on_zone_leaveここに ZoneEnterEvent または ZoneLeaveEvent を列挙することが、そのボスでティックごとのゾーンリスナーを開始させます。そのリスナーは、同じボス上のLuaパワーにおけるトップレベルの on_zone_enter / on_zone_leave フックを発火させる唯一の仕組みです。Luaパワー自身の context.zones:watch_zone(...) はこれらを発火させません。
ZoneEnterEventとZoneLeaveEventは、スクリプト内で設定されたゾーンにエンティティが出入りすることに基づいてアクションをトリガーできる特別なイベントです。ZoneEnterEventとZoneLeaveEventのDIRECT_TARGETは、入場または退場したエンティティです(つまり、直接ターゲットをゾーンのターゲットとして使用することはできません)。また、内部ロジックの仕組みにより、入退場のスキャンには絶対座標(特定の座標)とボスに対する相対座標のみが使用でき、プレイヤーをターゲットとするゾーンは使用できません。
スクリプトごとにイベントセクションは1つだけです。ただし、1つのスクリプトに対して複数のイベントをトリガーとして設定できます:
例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
- EliteMobTargetPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,.3,0
Cooldowns:
local: 60
global: 20
このスクリプトは、プレイヤーに攻撃されたときやプレイヤーをターゲットにしたときに、エリートをジャンプさせます。