Luaスクリプティング:列挙型と値
このページでは、EliteMobsのLuaメソッドが使用するSpigotの値の型を紹介します。Luaコードでは "FLAME"、"ZOMBIE"、"STONE" などの定数名を文字列として渡してください。サーバーのAPIバージョンで使用できる値を選んでください。
- スペルはenum定数名と正確に一致する必要があります
- 大文字小文字は通常内部で正規化されますが、安全のためにJavadocのスペルに合わせてください
- 無効な値の処理はメソッドによって異なります。警告を記録するもの、
nilを返すか何もしないものがあり、入力を検証する API では Lua エラーが発生する場合があります
列挙型リファレンス
| 列挙型 | 用途 | Javadoc |
|---|---|---|
BarColor | ボスバーの色 | BarColor |
BarStyle | ボスバーのスタイル | BarStyle |
DamageCause | ダメージ原因フィルタリング | EntityDamageEvent.DamageCause |
EnderDragon.Phase | エンダードラゴンフェーズ制御 | EnderDragon.Phase |
EntityEffect | エンティティの視覚効果 | EntityEffect |
EntityType | エンティティの出現 | EntityType |
EquipmentSlot | エンティティの装備スロット。damage_equipment が受け付けるのは HAND、OFF_HAND、HEAD、CHEST、LEGS、FEET のみ | EquipmentSlot |
FireworkEffect.Type | 花火の形 | FireworkEffect.Type |
Material | ブロックとアイテム | Material |
Particle | パーティクル効果 | Particle。旧名の変換はEliteScriptのパーティクルアクションに適用されます。Luaのネイティブパーティクル関数には現在のAPI名が必要です。 |
PotionEffectType | ポーション効果 | PotionEffectType |
Sound | サウンド再生 | Sound |
すべてのLuaサウンドヘルパー(boss:play_sound_at_self、entity:play_sound_at_entity、world:play_sound_at_location)は、文字列を2段階で解決します。まず Spigot の Sound enum 名として解釈を試み(大文字化されるため "entity_blaze_shoot" も機能します)、それが失敗した場合はネームスペース付きのサウンドキーとして扱います(小文字化されるため "entity.blaze.shoot" も、独自のリソースパックキー "mypack:boss.roar" も機能します)。
どちらの処理も前後の空白を除去します。名前空間のないキーには minecraft を使用します。形式が不正なキーは無視されますが、構文が正しいキーはサウンドの存在を確認せずにクライアントへ送られます。そのため、キーの誤字やリソースパック内のサウンド不足によって音が鳴らない場合があります。
Spigot以外の値
これらの値はEliteMobs固有であり、Spigot Javadocsには含まれていません:
ゾーンの形状
ネイティブゾーン定義の kind フィールドと、スクリプトユーティリティのゾーン仕様の shape フィールドで使用します。これらの値は大文字小文字を区別します。ネイティブ形状には小文字、スクリプトユーティリティの形状には大文字を使用してください。
ネイティブ (kind) | スクリプトユーティリティ (shape) |
|---|---|
sphere | SPHERE |
dome | DOME |
cylinder | CYLINDER |
cuboid | CUBOID |
cone | CONE |
static_ray | STATIC_RAY |
rotating_ray | ROTATING_RAY |
translating_ray | TRANSLATING_RAY |
エンティティフィルター
context.zones および context.entities のクエリオプションで使用されます。値は大文字小文字を区別しません。使用できる別名は次のとおりです。
| フィルター | 対象 |
|---|---|
player / players | プレイヤーのみ |
elite / elites | エリートモブのみ |
mob / mobs | プレイヤー以外のリビングエンティティ(エリートを含みます) |
living | プレイヤーを含むすべてのリビングエンティティ(デフォルト) |
all / entities | 非リビングを含むすべてのエンティティ。context.entities:get_nearby_entities でのみ認識されます |
不明なフィルターは living として扱われるため、"playr" のような誤字では検索範囲内のすべての種類のリビングエンティティが対象になります。これらのネイティブクエリはボス自身を除外します。ゾーンのエンティティ検索はボスのワールドで、ボックス検索は指定した中心のワールドで行います。
get_nearby_entities(radius, filter) は、リビングエンティティのフィルターでは球状の距離判定を使用します。all または entities では、各軸方向に radius だけ広がる軸平行の直方体を検索し、非リビングも含むエンティティ参照テーブルを返します。他のネイティブクエリでは、この2つのフィルターも living として扱います。
context.script:zone({...}) は EliteScript エンジンを実行するため、異なる大文字のフィルターセット(PLAYER、ELITE、LIVING)を使用します。
天候の値
context.world:set_world_weather(weather) で使用します。値は大文字に変換されますが、空白は除去されません。不明な値は警告を記録し、天候を変更しません。
| 値 | 効果 |
|---|---|
CLEAR | 晴天 |
PRECIPITATION / RAIN | 雨 |
THUNDER | 雷雨 |
ターゲットの種類
以下はEliteScriptのターゲット値です。context.script:target() は同じ解決処理を使いますが、継承元のアクションや着地のデータは提供しません。ゾーンターゲットはゾーンハンドルの full_target() または border_target() から取得してください。
| 値 | 解決される対象 |
|---|---|
SELF | ボスのエンティティ |
SELF_SPAWN | 位置の解決ではボスの出現位置、エンティティの解決ではボス自身 |
DIRECT_TARGET | 現在のイベントの直接ターゲット。イベントがターゲットを提供しない場合は何も選択しない |
NEARBY_PLAYERS | ボスから各軸方向に range だけ広がる直方体内のプレイヤー |
NEARBY_MOBS | 同じ直方体内のプレイヤー以外のリビングエンティティ。ボスを除く |
NEARBY_ELITES | 同じ直方体内のエリートモブ。ボスを除く |
ALL_PLAYERS | オンラインの全プレイヤー |
WORLD_PLAYERS | ボスのワールド内の全プレイヤー |
ZONE_FULL | ゾーン内部のエンティティや位置 |
ZONE_BORDER | ゾーン境界上のエンティティや位置 |
LOCATION | spec の location フィールドで指定した特定の位置 |
LOCATIONS | spec の locations リストで指定した複数の位置 |
LANDING_LOCATION | 落下ブロックまたは召喚エンティティが着地した位置 |
ACTION_TARGET | 周囲の EliteScript アクションのターゲットを継承します |
INHERIT_SCRIPT_TARGET | 呼び出し元 EliteScript のターゲットを継承します |
INHERIT_SCRIPT_ZONE_FULL | 呼び出し元EliteScriptのゾーンを継承。現在のエンティティ選択はその境界を使用します。継承ゾーンの制限を参照してください。 |
INHERIT_SCRIPT_ZONE_BORDER | 呼び出し元EliteScriptのゾーン境界。位置の解決については継承ゾーンの制限を参照してください。 |
context.script:target() では LANDING_LOCATION、ACTION_TARGET、3つの INHERIT_SCRIPT_* 値を使用しないでください。Luaハンドルには対応するアクション、継承、着地の状態がないため、ターゲットが返らないか処理が失敗します。単独の ZONE_FULL や ZONE_BORDER 仕様にもゾーンがありません。YAMLアクションでの意味は EliteScriptターゲット を参照してください。
次のステップ
- はじめに | NPCスクリプト | フックとライフサイクル | ワールドと環境 | ゾーンとターゲティング | サンプル | 列挙型 | トラブルシューティング
- APIリファレンス | スクリプティングエンジン
