コマンド構文解説-アイテムを消去&検知!?/clear-
投稿日:2021/02/27
最終更新日:2021/02/27
どうも、ユキミ大福です。
今回はMinecraft統合版のコマンドの内の1つである『 /clear 』について解説をしていきます。
ここで解説するコマンド等は、解説する注意事項等をよく読み、個人でより詳しく調べた上で、個人の責任において使用して下さい。コマンド等の使用によって如何なる損害が発生しても、筆者であり当ブログの管理者でもあるわたくしユキミ大福は一切の責任を負いかねますので、ご了承下さい。
今回のコマンドは?
今回ご紹介するコマンドは『 /clear (クリア)』です。このコマンドは指定したアイテムを対象プレイヤーから消去するというコマンドです。
実はそれ以外の使い道があるのですが…まずはコマンド構文の解説からいきます。
/clear のコマンド構文
/clear <セレクター> <アイテムID> <データ値(int)> <最大個数(int)>
- <セレクター>:省略可。コマンドブロックでは必須
ターゲットセレクター。プレイヤーしか対象にできない。ゲーマータグを直接入力可。チャット欄から実行する場合や /execute で実行する場合は省略できるが、コマンドブロックで実行する場合や、この後ろの項目を設定する場合は必須となる。 - <アイテムID>:省略可。<データ値(int)>を指定する場合は必須
アイテムID。省略した場合は対象プレイヤーのインベントリを全て消去する。 - <データ値(int)>:省略可。<最大個数>を指定する場合は必須
アイテムのデータ値をint型の数値で指定する。省略した場合または「-1」と入力した場合、データ値が無視される(アイテムIDだけで判断する)。データ値が特に存在しないアイテムを消去する場合にこの後の<最大個数>を指定したい場合、「0」を入力する必要がある。 - <最大個数(int)>:省略可。
消去するアイテムの最大個数をint型の数値で指定する。省略した場合は対象プレイヤーの持つ、指定されたアイテムを全て消去する。「0」を入力した場合、対象プレイヤーが指定したアイテムを持っているかどうかでコマンドの成功・失敗を判定する。
/clear の失敗条件
- 構文が適切でない(スペルミス等)。
- 対象プレイヤーが指定したアイテムを持っていない。
/clear の成功条件
- 上記の失敗条件を満たしていない場合。
- 消去に成功した数が最大個数未満でも成功扱いとなる。
- <最大個数(int)>に0を入力した場合、対象プレイヤーが指定したアイテムを1つでも持っていた場合に成功となる。
- 指定したアイテムが頭、胴、足、靴、オフハンドに存在しても成功する(<最大個数(int)>が0でなければ消去もされる)。
- コマンドが1人にしか成功しなくとも成功扱いとなる。
/clear の実行例
例1)
コマンド:/clear
実行結果:コマンド実行者が持っているアイテムを全て消去する(コマンドブロックではエラーとなる)。
例2)
コマンド:/clear @p wooden_sword -1
実行結果:基準座標から1番近いプレイヤーが持っている木の剣(wooden_sword)を、データ値(木の剣の場合は耐久値)を無視して全て消去する。
例3)
コマンド:/clear @p[tag=test] diamond 0 0
実行結果:基準座標から1番近く、「test」というタグが付与されているプレイヤーが、ダイヤモンド(diamond 0)を持っているかどうかを判定する。
例4)
コマンド:/clear @a[scores={pNum=1..8}] iron_sword -1 2
実行結果:「pNum」というオブジェクティブで1~8のスコアを持っているプレイヤー全員が持っている鉄の剣(iron_sword)を、データ値(鉄の剣の場合は耐久値)を無視して、最大で2つまで消去する。
/clear の詳細解説
/clear の概要
/clear は指定したアイテムを対象プレイヤーから消去するコマンドです。
しかし、<最大個数(int)>を0に指定すると、対象プレイヤーが指定したアイテムを持っているかどうかを判別することができる性質や、<最大個数(int)>を下回る数しか消去できなくとも成功となる性質上、指定したアイテムを対象プレイヤーが持っているかどうかを判別した上で、指定した個数まで消去するコマンドと言うことができます。
つまるところ、プレイヤーが何のアイテムを所持しているかを検知できるため、非常に応用の幅が広いコマンドです。
/clear の実行結果等々
コマンドの実行結果は「コマンドの成功・失敗・エラー」のいずれかになります。
失敗した場合には「(プレイヤー名)の持ち物にはアイテムがないので消去できません」と返って来ます。
コマンドブロックが保持・出力する結果は「コマンドの実行に成功したか(True or False)」と「コマンドが何人に対して成功したか(int)」の2点です。コマンドが成功した人数については、RSコンパレーターを用いてRS動力の形で取り出せます。
/clear の強み・使い道
ゲーム制作においてはもっぱら、特定のアイテムを所持している(していない)かどうかの検知に用いられます。要するに、特定のアイテムの有無をトリガーとしたコマンドの実行ができるようになるというわけです。一例を挙げてみましょう。
RNR/clear @p diamond 0 0
=>chain1
CCA/effect @p speed 1 1 false
=>chain2
このコマンド群は、コマンドブロックに一番近い人がダイヤモンド(diamond 0)を持っているかどうかを検知し、持っている(chain1が成功になる)場合はコマンドブロックに一番近い人にスピード2(speed 1)のポーション効果を付与し続けるというものです。
スピード2が付与されなくなる条件は簡単で、chain1で対象になっているプレイヤーがダイヤモンドを手放すことです。このコマンドの応用性や可能性の広さを実感して頂けたでしょうか。
実際にゲームで使用する場合は、もう少しちゃんとターゲットセレクターの引数を設定しなければなりませんが、そのあたりの話はまた別の機会でお話したいと思います。
/clear の弱み・弱点
このコマンドの最大の持ち味は「対象プレイヤーが指定のアイテムを所持しているか」を検知できるところですが、どのインベントリに入っているかまでは検知できません。その指定したアイテムがプレイヤーインベントリにさえあれば、装備していようが、オフハンドに持っていようが、ホットバーにあろうがお構いなしに成功してしまいます。特定のスロットのアイテムを検知する機能については管見の限り、バニラでは実装不可能なのはちょっと残念ですね。
また、繰り返しにはなりますが、装備アイテムやオフハンドのアイテムも対象になります。この辺は忘れやすいので注意しましょう。
今回ご紹介した /clear には、様々な応用法があります。是非ともみなさんで色々な活用法を考えてみて下さい!
今回のまとめ
- 『 /clear 』は、指定したアイテムを対象プレイヤーが持っているかどうかを判別した上で、指定した個数まで消去するコマンド!
関連記事
- コマンド構文解説-霧を操る…?/fog-
- コマンド構文解説-エンティティにライド・オン!/ride-
- コマンド構文解説-モブがアクションを起こす!?/event, /mobevent-
- コマンド構文解説-あのモブのあのモーションを!?/playanimation-
- コマンド構文解説-何が起こるんだ!?PART1!/connect ( /wsserver ), /help ( /? ), /kick
- コマンド構文解説-何が起こるんだ!?PART2!/list, /locate, /schedule-
- コマンド構文解説-コマンドに革命を起こす…!?/function, /reload-
当記事及び当ブログへのご意見・ご質問はいつでも受け付けております。
お気軽にコメント欄までどうぞ!
↓良ければポチッとお願いします。