エンティティとプレイヤの指定子
エンティティ指定子とプレイヤ指定子について説明しています。
概要
エンティティ指定子・プレイヤ指定子はそれぞれ, アクションにおいてターゲットを指定するために使います。
エンティティ指定子
エンティティ指定子は, 文字列型とEntity 型としてふるまう特別な型です。
target1: "Player1"
target2: "00000000-0000-0000-0000-000000000000"
target3: "@e[team=Red,tag=MyTag]"
target4:
type: ARMOR_STAND
tags: ["MyTag"]
主にエンティティを指定するときに使用し, 以下のような値をとります。
1. プレイヤの名前
プレイヤの名前を文字列で指定します。(エンティティの名前ではありません)
例:"Player1"
警告エンティティの名前は指定できません。
2. プレイヤまたはエンティティの UUID
UUID を用いて指定します。ハイフンは自動的に補完されるため省略可能です。
例:
"00000000-0000-0000-0000-000000000000"
,"00000000000000000000000000000000"
3. プレイヤまたはエンティティのセレクタ
セレクタを用いて指定します。
- 省略可:
@e
は省略できます。(例:"[team=Red,tags=MyTag]"
)- 省略可:
@e[...]
は省略できます。(例:"team=Red,tags=MyTag"
)例:
"@e[team=Red,tag=MyTag]"
警告ここでのセレクタは, 通常のMinecraft ターゲットセレクタ とは異なります。
Scenamatica では, いくつかの理由で独自のセレクタを使用しています。 基本的な構文や機能はMinecraft のセレクタと同じですが, 独自の機能が追加されています。
詳しくは以下のドキュメントを参照してください:
4. Entity 型 のオブジェクト
YAML のオブジェクトを用いてエンティティを指定します。
これを使用すれば, セレクタを使用せずに, YAML のオブジェクトで高度な条件を指定できます。例:
# ↓ タグ MyTag を持つアーマースタンドエンティティを指定
target:
type: ARMOR_STAND
tags: ["MyTag"]せんでんエンティティ(コンテキスト)を使用すれば, 常に読み込まれるシナリオ専用のエンティティを作成できます。
プレイヤ指定子
プレイヤ指定子は, 文字列型とPlayer 型としてふるまう特別な型です。
これは基本的には上記のエンティティ指定子と同じですが, プレイヤを指定する場合にのみ有効です。
シナリオの種類での振る舞いの違い
シナリオの種類によって, エンティティ指定子またはプレイや指定子は以下のように振る舞います。
- アクション実行シナリオでは, 単一のエンティティを指します。
@e
等で複数のエンティティを指定した場合は, 最初に見つかったエンティティが使用されます。 - アクション実行期待シナリオでは, 該当する複数のエンティティのうちどれか一体を指します。
複数のエンティティを指定した(見つかった)場合は, そのうちのどれか一体が条件を満たしていたらパスされます。
単一のエンティティを指定した場合は, そのエンティティが条件を満たしているかどうかが判定されます。
例:
- type: execute
action: ...
with:
target: "@e[team=Red]" # チームが Red のエンティティのうち, 最初に見つかったものが使用される
---
- type: expect
action: ...
with:
target: "@e[team=Red]" # チームが Red のエンティティのうち, どれか一体が条件を満たしていればパスされる