以前、マインクラフトの雪玉に炎魔法や氷魔法、雷魔法、風魔法などの魔法が使えるようになるコマンドを紹介しましたが、魔法の属性を変えたいときは毎回、コマンドブロックを有効にしたり、無効にしないと切り替えることができませんでした悲しい
今回は新たに追加されたhasitemを使ってスロットごとに雪玉の魔法属性を簡単に切り替えれる方法を紹介しますニコニコ

コマンドで雪玉に色んな魔法をかける記事 


hasitemって?

hasitemはマインクラフト バージョン1.18.20から新たに追加されました。セレクターにhasitemを使うと、より細かくプレイヤーが特定のアイテムを持っているか条件を絞り込むことができますひらめき


hasitem使用例

その1、プレイヤーがダイヤモンドのツルハシを持っていたらエンチャントされた金のリンゴをプレゼント

/give @p[hasitem={item=diamond_pickaxe,location=slot.weapon.mainhand}] appleenchanted




その2、プレイヤーがダイヤモンドのヘルメットを装備していたら水中呼吸のエフェクトがつく

/effect @p[hasitem={item=diamond_helmet,location=slot.armor.head}] water_breathing 10000 100 true




その3、プレイヤーの持ち物のスロット4に金の剣を持っていたら物理攻撃力をアップする

/effect @p[hasitem={item=golden_sword,location=slot.hotbar,slot=4}] strength 10000 100 true



その4、プレイヤーがエメラルドを5個以上持っていたら、ケーキをゲットする

/give @p[hasitem={item=emerald,quantity=5..}] cake




など、hasitemでプレイヤーが特定のアイテムを持っていた時のみコマンドを実行できるようになります。


コマンドブロックを用意
持ち物のスロット番号ごとに魔法属性のコマンドブロックを用意しました。
雪玉が持ち物のスロット番号の場所によって、炎魔法や氷魔法、雷魔法など魔法の属性を切り替えれるようになっています。
コマンドブロックは各魔法属性につき1個ずつ用意しています。
※今回は魔法の視覚的効果(パーティクル)は省略しています。


コマンドブロックの設定

コマンドブロックは全て

反復、無条件、常にアクティブになっています。


hasitemでスロット指定

スロット番号0番目に雪玉を持っていたら、炎魔法を実行すると書いてあります。

持ち物のスロット番号は0から始まります。

@e[hasitem={item=snowball,location=slot.hotbar,slot=0}]



スロット番目0 炎魔法

雪玉が当たると炎に包まれます

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=0}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ execute @e[type=!player,type=!snowball,r=5] ~ ~ ~ fill ~-1 ~ ~-1 ~1 ~1 ~1 fire



スロット番号1 氷魔法
雪玉が当たると敵が氷漬けになります。

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=1}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ execute @e[type=!player,type=!snowball,r=5] ~ ~ ~ fill ~-1 ~ ~-1 ~1 ~1 ~1 ice



スロット番号2 雷魔法
雪玉が当たると雷が落ちます
※イメージ図
execute @e[hasitem={item=snowball,location=slot.hotbar,slot=2}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ summon lightning_bolt ~ ~ ~


スロット番号3 風魔法
雪玉が当たると敵が空高く打ち上げられ、その後、落下します。

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=3}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ effect @e[type=!player,type=!snowball,r=5] levitation 8 5 true



スロット番号4 土魔法
雪玉が当たると敵は土に埋まります

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=4}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ execute @e[type=!player,type=!snowball,r=5] ~ ~ ~ fill ~-1 ~ ~-1 ~1 ~1 ~1 dirt


スロット番号5 毒魔法
雪玉が当たると敵は毒状態になります
※イメージ図

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=5}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ effect @e[type=!player,type=!snowball,r=5] fatal_poison 10000 60 true


スロット番号6 闇魔法
雪玉が当たると敵は徐々に衰弱し死にます
※イメージ図

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=6}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ effect @e[type=!player,type=!snowball,r=5] wither 10000 100 true


スロット番号7 回復魔法
雪玉が味方に当たると回復します
※イメージ図

execute @e[hasitem={item=snowball,location=slot.hotbar,slot=7}] ~ ~ ~ execute @e[type=snowball] ~ ~ ~ effect @e[type=!snowball,r=5] instant_health 10000 100 true

になります。
hasitemを使うことで持ち物のスロットの番号に雪玉を装備するだけで、簡単に魔法属性を切り替えれるようになりましたニコニコ
hasitemの使い方次第で色んなことができそうですねお願い

雪玉が炎魔法、雷魔法のところに装備すると、炎魔法と雷魔法が同時に使えました驚き複合魔法も使えそうですよだれ

まだマルチで複数プレイヤーがいたときの検証などしていません驚き


魔法属性のアイコンはいらすとや様 


のイラストを使用しています。いつもありがとうございますm(_ _)m