Minecraft【Java版/統合版】
連射の弓。(ダメージ・アイテム名検知)
矢の雨を降らせる。
Java版1.19.2、統合版はv1.19.30で動作確認。
【Java版】では、メインハンドとアイテム名検知はもちろん、ダメージ検知で矢の当たったモブに矢を降らせます。装置は魔女の剣と同じ構造です。マルチプレイも対応(※1)
【統合版】では、ダメージ検知が無いので、射った矢を検知して矢を降らせています。Java版とは若干違う仕様になりましたが、矢をどこに射ってもなんとなく当たる、雨っぽい感じになっていると思います。矢の区別が出来ないので、敵が射る矢にも同じ効果が付きます。
タグ付けは、アイテム専用ケースではなく、制限時間を付けたミニショップ。
※通常版では、hasitemがまだ使えないようです。
※1 連射の弓を装備しているプレイヤー周辺の、他のプレイヤーも同じ効果が発動します。(15ブロック内)
完成動画
更新履歴
2022-10-1/
統合版→❸矢の召喚装置 「①はレッドストーンが必要に変更」を追加。
連射の弓【Java版】
矢が当たったモブの頭上に、連続で矢を降らせパーティクルを表示します。矢が外れると連続の矢は中断されます。
アイテム名の変更。
Java版では名前を変更したアイテムを、コマンドから直接出せるので便利です。
※メモ帳やテキストエディタでコマンドを作っておくと便利。
①名前を付けた弓を入手するコマンドを作成。
コマンドの作り方は魔女の剣と同じなので割愛します。
LV1の射撃ダメージ増加を付け、チャットコマンドで入手します。
/give @p minecraft:bow {display:{Name:"\"連射の弓\"",Lore:["\"説明文\""]}, Enchantments:[{id:power,lvl:1}]} 1 |
Java版のコマンド作成。
画像を参考に、ブロックを配置。
◎配置したコマンドブロックの状態/すべて無条件
コマンドブロックの色 | ブロックの種類 | レッドストーン |
黄色 | インパルス | 動力が必要 |
青色 | チェーン | 常時実行 |
紫色 | リピート | 常時実行 |
②は、動力が必要に変更。
❶連射の弓装置
連射の弓を、メインハンドに装備しているプレイヤー対象。
①execute if entity @a[nbt={SelectedItem:{tag:{display:{Name:"\"連射の弓\"",Lore:["\"説明文\""]}}}}] ②execute at @a[nbt={SelectedItem:{tag:{display:{Name:"\"連射の弓\"",Lore:["\"説明文\""]}}}}] at @e[distance=..15,type=!player,nbt={HurtTime:1s}] run particle minecraft:happy_villager ~ ~ ~ 1 1 1 0 6 force ③execute at @a[nbt={SelectedItem:{tag:{display:{Name:"\"連射の弓\"",Lore:["\"説明文\""]}}}}] at @e[distance=..15,type=!player,nbt={HurtTime:1s}] run summon arrow ~ ~3 ~ |
①連射の弓を、メインハンドに装備しているプレイヤーを検知。
②プレイヤーの周辺15ブロック内で、ダメージを受けたモブにパーティクルを表示。(プレイヤーを除く)③プレイヤーの周辺15ブロック内で、ダメージを受けたモブの頭上に矢を召喚。(プレイヤーを除く)
※マルチプレイにも対応していますが、近くのプレイヤーにもコマンドが反映されます。
完全に個別にしたい場合は、タグなどを追加してプレイヤーを指定する必要があります。
連射の弓【統合版】
矢を射ると、プレイヤー周辺のモブに3体に矢を降らせます。
※射った矢が周辺に残っていると連続の矢は降らない。
地面に残っている矢は、矢を射った1.5秒後に、コマンドで消しています。
アイテム名の変更。
統合版ではアイテム名での検知や、名前を付けたアイテムをコマンドで出せません。(落ちてるアイテム除く)
金床を使ってチェストと弓の名前を変更しておきます。
チェスト→弓ケース 弓→連射の弓 |
統合版のコマンド作成。
画像を参考に、ブロックを配置。
◎配置したコマンドブロックの状態/すべて無条件
コマンドブロックの色 | ブロックの種類 | レッドストーン |
黄色 | 衝撃 | レッドストーンが必要 |
青色 | チェーン | 常にアクティブ |
紫色 | 反復 | 常にアクティブ |
◻︎連射の弓装置の仕組み
装置は大きく分けて【ショップ装置】【アイテム検知装置】の2種類で設計してあります。
分かりにくい【連射の弓】をチャートにしました。
矢を降らせるコマンドは3個ですが、実用性のある装置にすると、一気に数が増えます。
難易度の高い装置になりましたが、基本は浮游の靴と同じです。
使っているコマンドは簡単なので、ぜひ挑戦してみてください。
【ショップ装置】
連射の弓の購入と、タグを付けたり消したりする装置。
【アイテム検知装置】
落ちている「連射の弓」を検知。弓を召喚したり、矢の雨を降らせます。
【連射の弓】チャート
①タグが付いている時「連射の弓」を投げると、オフハンドにオウムガイの殻を設置。
②オウムガイの殻をオフハンドに持っている時、弓を入手。
③メインハンドに弓がある時、無限のエンチャントを付ける。
④矢を射った時、周辺のエンティティに3体に矢を降らせる。
⑤弓が壊れた時、地面に残っている矢を消し弓を入手。
⑥オウムガイの殻をオフハンドから外すと、弓とオウムガイの殻を消し「連射の弓」を入手。
⑦タグが消えている時「連射の弓」を投げると消える。
※「連射の弓」以外は、データ値を変更したアイテムを検知しています。
「あ」にブロックを置いて、ボタンや商品を入れた額縁を設置。
「A」には弓ケースを設置して「連射の弓」と矢を1本入れておきます。
⑤はティックの遅延を16に変更。
❷アイテム検知とタグ消し装置の③は地面下。
❶ショップ装置、タグ装置
アイテム購入とタグを付ける装置。
①tag @p add r_bow ②execute @a[tag=r_bow] ~~~ clone ~~~ ~~~ ~~1~ ③execute @a[tag=r_bow] ~~~ setblock ~~1~ air 0 destroy ④kill @e[name="弓ケース"] ⑤clone ~~~ ~~~ ~~~ |
①近くのプレイヤーに「r_bow」のタグを付けます。
②「~~~」には「A」の座標(2回)。プレイヤーの頭上にチェストをクローンします。
③頭上のチェストを壊し、中身を取り出します。
④クローンしたチェストを削除。
⑤「~~~」には、❷アイテム検知とタグ消し装置の③の座標(2回)。
後ろの「~~~」には「い」の座標。(ティックの遅延16)
ミニAND回路、No1。③は地面下。
④ティックの遅延を6000に変更。(1秒20tickで計算。約5分)
※ティックの遅延は最長で5分です。
さらに長く使いたい場合は、タイマーを組むか別の方法でタグを消してください。
❷アイテム検知とタグ消し装置
アイテム名やデータ値検知、タグ付きプレイヤーを検知。
①testfor @e[type=item,name=連射の弓] ②testfor @a[tag=r_bow] ③replaceitem entity @a[tag=r_bow] slot.weapon.offhand 0 keep nautilus_shell 1 500 ④tag @a remove r_bow ⑤setblock ~~~ air ⑥clear @a nautilus_shell 500 1 ⑦clear @a bow 800 |
①連射の弓が落ちていたら、信号を送ります。
②タグ付きプレイヤー「r_bow」がいたら、信号を送ります。
③タグ付きプレイヤーのオフハンドにオウムガイの殻を設置。(データ値500)
④全てのプレイヤーから、タグ「r_bow」を削除。(ティックの遅延6000)
⑤地面下「い」の座標。クローンされたコマンドブロックを削除。
⑥全てのプレイヤーからオウムガイの殻を削除。(データ値500)
⑦全てのプレイヤーから弓を削除。(データ値800)
①はレッドストーンが必要に変更。③はティックの遅延を32に変更。
❸矢の召喚装置
射った矢を検知して、頭上に矢を召喚。さらに地面に残っている矢を削除。
①testfor @e[type=arrow] ②execute @e[type=!xp_orb,type=!item,type=!player,r=20,c=3] ~~~ summon arrow ~~3~ ③kill @e[type=arrow] |
①矢を射った時、信号を送ります。
②20ブロック以内にいるエンティティ3体の頭上に、矢を召喚。(プレイヤーとアイテム除く)
③地面に残っている矢を削除。 (ティックの遅延32)
ミニAND回路、No2。
❹連射の弓の削除装置
タグが消え、制限時間が終わった「連射の弓」を削除する装置。
①kill @e[type=item,name=連射の弓] |
①地面に落ちている連射の弓を削除。
「う」に設置したレッドストーンのたいまつが電源。
コマンドブロックは、高さ2ブロック目に配置。①②はレッドストーンが必要に変更。
❺連射の弓の追尾と差し替え
「連射の弓」を頭上に追尾させ、無限の弓に差し替えます。(タグ付きプレイヤー対象)
①clear @a[tag=r_bow] nautilus_shell 500 0 ②execute @e[tag=r_bow] ~~~ tp @e[type=item,name=連射の弓] ~~3~ ③give @a[tag=r_bow] bow 1 800 ④enchant @a[tag=r_bow] Infinity |
①オウムガイの殻を持っているか検知。(データ値500)
②信号がある時、プレイヤーの頭上に連射の弓を追尾。
③プレイヤーに弓を与えます。(データ値500)
④メインハンドに弓がある時、無限のエンチャントを付ける。(ホットバーの左優先)
※弓に無限エンチャントが付かないと矢が足りなくなります。
弓とメインハンド(枠)を一番左に持っていき、弓を捨てると、エンチャントが付きます。
失敗してもタグが付いている間は、繰り返し挑戦出来ます。
②はティックの遅延を8に変更、レッドストーンのたいまつを設置。
③はティックの遅延を16に変更。
❻連射の弓の追尾を解除
頭上に追尾させている「連射の弓」を解除し、召喚したアイテムを削除。
①replaceitem entity @a[tag=r_bow] slot.weapon.offhand 0 keep air ②clear @a nautilus_shell 500 ③clear @a bow 800 |
①タグ付きプレイヤーのオフハンドが空の時、信号を送ります。
②全てのプレイヤーからオウムガイの殻を削除。(データ値500)
③全てのプレイヤーから弓を削除。(データ値800)
オフハンドにオウムガイの殻を持っている時に動く装置。(データ値500)
①はレッドストーンが必要に変更。
②はティックの遅延を32に変更。
❼無限の弓の召喚と矢の削除
弓が壊れた時、地面に残っている矢を削除し、新しく無限の弓を召喚します。
①clear @a[tag=r_bow] bow 800 0 ②kill @e[type=arrow] ③give @a[tag=r_bow] bow 1 800 ④enchant @a[tag=r_bow] Infinity |
①タグ付きプレイヤーが弓を持っていない時、信号を送ります。(データ値800)
②地面に残っている矢を削除。 (ティックの遅延32)
③プレイヤーに弓を与えます。(データ値500)
④メインハンドに弓がある時、無限のエンチャントを付ける。(ホットバーの左優先)
※射った矢が消えるまで約1.5秒かかります。
射るのが早すぎると、矢は召喚されません。
注意点
マルチプレイでも動作しますが、タグ「r_bow」が重複しているとうまく動作しません。 アイテムの制限時間が切れるまでは、タグが重複するため交代で使えません。 同時に使いたい場合は、タグ名を変えて人数分の装置を作る必要があります。
おすすめ記事もどうぞ!