久しぶりの更新です。今回は「目の前の相手を浮かせる魔法の杖をつくりたい」と弟に言われたので作ってみました。
メモしておかないとワールド作り変えたときに忘れてしまうのでメモ。
魔法を使うためのアイテム
魔法を使う=右クリックしたことを検知するために、右クリックすると右クリックした回数をカウントアップしてくれるアイテムを使います。使用可能なものは
釣竿か、ニンジン付きの棒か、歪んだキノコ付きの棒。
今回はニンジン付きの棒を使いました。
scoreboadをつくる
魔法をつかったかどうかを検知するためのscoreboadをひとつつくります。
今回はrepulserという名前にしました。ニンジン付きの棒の使用回数を知りたいので、
/scoreboard objectives add repulser minecraft.used:minecraft.carrot_on_a_stick
とします。もし、歪んだキノコ付きの棒を使いたい場合は
/scoreboard objectives add repulser minecraft.used:minecraft.warped_fungus_on_a_stick
と、最後のIDの部分を変更してください。釣竿の場合はfishing_rod
scoreboadに関する詳細は、 Minecraft Wiki scoreboad を参照。
コマンドブロックを作成
使うコマンドブロックはふたつ。リピートコマンドブロックとチェーンコマンドブロックをひとつずつ。
両方とも「無条件」「常時実行」にします。
ひとつめのリピートコマンドブロックには、
/execute as @a[scores={repulser=1..}] at @s run effect give @e[distance=1..10] levitation 1 10
を設定。これは、先ほど作ったrepulserの数値が1以上のひとからの距離が1~10までのエンティティにlevitation(浮遊)の効果を10の威力で1秒間与える、というコマンド。distanceの設定をdistance=..10としてしまうと、ニンジン付き棒を使った人も一緒に浮いてしまうので注意。
ふたつめに設定するチェーンコマンドブロックには、
/scoreboard players set @a[scores={repulser=1..}] repulser 0
を設定します。これは、repulserが1以上のプレイヤーのrepulserの値を0にする、というコマンド。
0に戻さないとずっと魔法を使いっぱなしになってしまうのでリセットします。
使ってみる
いざ、
/give @p carrot_on_a_stick 1
でニンジン付き棒をGETして、ためしてみたようすがこちら。
ぶたさんちゃんと浮きました!!めっちゃ簡単。
しかしこのままだと、魔法の杖ではなくてもすべてのニンジン付き棒を使うと魔法が使えちゃうので、特定のニンジン棒じゃないと魔法が使えるようにしたいと思います。
長くなちゃうのでまた次回に。
コメント