Minecraft【武器・防具・道具】連射の弓。ダメージ検知

2025-07-02

Java版1.21.6-、統合版v1.21.90-で動作確認。

矢の雨を降らせる。

連射の弓。v1.30

アイテム名とダメージ検知で、弓でモブを攻撃した時に、矢の雨を降らせる「連射の弓」を作ります。Java版と統合版ではコマンドが大きく異なりますが、同じように動く装置になりました。v1.30のJava版は、装備の仕様変更に対応。統合版は「ポーション式」に変更。ひとつの装置でマルチプレイに対応しました。Java版は初心者、統合版は上級者向けの装置になります。

 

◻︎装置の特徴
・ひとつの装置でマルチプレイ対応。
・ターゲットを絞った矢の召喚。

【Java版】
・メインハンド検知。(セレクトアイテム)
・HurtTimeを使ったダメージ検知。
【統合版】
・アイテム名で装置を起動。
・耐久度(データ値)を使ったループ装置。
・ポーション式で、装置を簡略化。
・射った矢にタグを付ける。

 

更新履歴
2025-5-25/Java版の仕様変更に対応。統合版は装置を改良。
2024-5-11/古い情報を更新しました。Java版(1.20.5〜)のデータコンポーネントに対応。
2023-5-26/統合版の矢の検知方法、ターゲットの絞り込みを、専用コマンド「family」に変更しました。
2023-4-1/統合版のv1.19.70以降のコマンドに対応! 複雑な装備検知をやめ、アイテム名から動作するように変更しました。 Java版のコマンドも変更。

 

プレイ動画。v1.1(旧式)

旧式/ v1.0はこちら。

 

 

目次

1.作成準備
・使用方法。

2.連射の弓【Java版】
・弓を入手(名前を変更)。
・コマンドの結合。
・ダメージを検知。

3.連射の弓【統合版】
・装置のしくみ。
・弓を入手(名前を変更)。
・ポーションを入手。
・捨てる式。
・ループ装置。
・効果の再生。

4.ワールドデータ
・完成データをダウンロード。

 

※「as」や「minecraft:」など、一部のコマンドは簡略化。必要な場合は記入してあります。

 

作成準備

使用方法。

コマンドブロックの使い方、「アイテム検知」や「hasitem」の詳細は、関連記事をご確認ください。

 

 

 

連射の弓【Java版】

「連射の弓」を持って敵を攻撃すると、ダメージを受けたモブに矢の雨を降らせます。装備はダメージを受け壊れると壊れます。※連射の弓」を手にしていない時は、コマンドは実行されません。近くのプレイヤーにもコマンドが反映されます。

弓の入手(名前を変更)。

名前を変更したアイテムをコマンドから入手。説明文やエンチャントも追加出来ます。※コマンドは長くなるので、メモ帳やテキストエディタを使うと便利です。

◻︎コマンド 例

/give @s bow 1

①弓を1個入手するコマンド。

◻︎コマンド 例

[custom_name="連射の弓",lore=["説明文"]]

②アイテム名や説明文を追加します(NBT形式)。※item_nameにすると、金床で名前を変更出来ない装備になります。

 

コマンドの結合。

改行無しの1行で、チャットに入力して「連射の弓」を入手します。

◻︎コマンド 例

/give @s bow[custom_name="連射の弓",lore=["説明文"]] 1

①のアイテムIDに②のコマンド(NBT形式)を繋げます。

◻︎コマンド 例

.....["説明文"],enchantments={"minecraft:power":1}] 1

「射撃ダメージ増加LV1」のエンチャントを付けた場合。

 

ダメージを検知。

「連射の弓」を持っているプレイヤーの周辺で、ダメージを受けたモブを検知。コマンドを実行します。

「A」はチェスト。

【Java版】

①execute at @e[type=!player,nbt={HurtTime:1s}] as @a[distance=..20,nbt={SelectedItem:{components:{"minecraft:custom_name":"連射の弓"}}}] run summon arrow ~ ~3 ~
②execute at @e[type=!player,nbt={HurtTime:1s}] as @a[distance=..20,nbt={SelectedItem:{components:{"minecraft:custom_name":"連射の弓"}}}] run particle happy_villager ~ ~ ~ 1 1 1 0 6 force

【装置の起動】①②
「連射の弓」をメインハンドに持っているプレイヤーの20ブロック以内でモブがダメージを受けた時、 頭上に矢を召喚し、パーティクルを再生。※アイテムIDや、説明文は省略可。

 

連射の弓【統合版】

今回はタグよりも管理の簡単なポーション式を採用。コマンドでしか装備出来ないアイテムを、オフハンドに設置することで、プレイヤーを絞ることが出来ます。ひとつの装置を、複数人で同時に使うことが出来ます。

装置のしくみ。

ダメージ検知が出来ないので、装備の耐久度を使ったループ装置を作ります。「負傷のポーション」を捨てるとオフハンドに装着。さらに「連射の弓」を捨てると弓を装着(データ値800)。矢を射った時タグを付け、再び1回で壊れる弓をを装備。弓(データ値800)を持っている時、タグ付き矢の近くのモブ1体に矢を降らせます。

モブがタグ付き矢から離れた時、弓(データ値800)を持ち替えた時、タグや矢が削除されます。ポーションを外すと装置を停止。落とした「連射の弓」も、インベントリに戻ります。※ホットバー「0」のアイテムは、弓に置き換えられます。連射中の矢は無限ですが、射った矢は減ります。ポーションは検知範囲が狭いので、下を向きながら捨てます。

 

弓の入手(名前を変更)。

金床を使ってオウムガイを「連射の弓」に変更。※名前が同じなら、他のアイテムでも動作します。誤射する場合があるので、弓や矢は非推奨。

 

ポーションを入手。

装置はポーションと「連射の弓」の組み合わせで動く、ダブルトリガーを採用。スコアボードで回数を決めたり、購入アイテムにしたり、ポーションをうまく管理することで、使う場所を限定することが出来ます。今回の装置では「負傷のポーション」を、1人1個しか持てないようにしています。

◻︎コマンド 例

/give @s potion 1 23

負傷のポーションを1個入手するコマンド。

 

捨てる式。

ポーションを捨てた時、オフハンドにポーションを設置します。オフハンドに盾など、アイテムを持っている時は使えません。一度外してから使用してください。※長いコマンドは、メモ帳やテキストエディタを使うと見やすくなります。

「A」はチェスト。⑥は条件付き。

【統合版】

①execute at @a[hasitem={item=bow,data=800,quantity=2..}] run clear @a[r=1,c=1] bow 800
②execute at @a[hasitem={item=potion,data=23,quantity=2..}] run clear @a[r=1,c=1] potion 23 1
------
③execute at @a[hasitem={item=potion,data=23,location=slot.inventory}] run clear @a[r=1,c=1] bow 800
④execute at @a[hasitem={item=potion,data=23,location=slot.hotbar}] run clear @a[r=1,c=1] bow 800
------
⑤execute at @e[name=負傷のポーション] run replaceitem entity @p[r=1] slot.weapon.offhand 0 keep potion 1 23
⑥kill @e[name=負傷のポーション]
------
⑦execute at @e[name=連射の弓] run replaceitem entity @a[r=1,hasitem=
{item=potion,data=23,location=slot.weapon.offhand}] slot.hotbar 0 bow 1 800
⑧execute at @a[hasitem={item=potion,data=23,location=slot.weapon.offhand}] run tp @e[name=連射の弓,r=3] ~~~
------
⑨execute at @a[hasitem={item=potion,data=23,location=slot.weapon.offhand}] run tag @e[r=3,type=arrow] add rap

◻︎弓(データ値800)

【数の制限】①②
弓、負傷のポーションが2個以上になった時、1個を削除。
------
【装置の停止】③④
負傷のポーションを外した時、弓を削除。
------
【装置の起動】⑤⑥
負傷のポーションが落ちている時、近くのプレイヤーに、負傷のポーションを設置。
------
【ターゲットの検知】⑦⑧
「連射の弓」をプレイヤーに戻す。
------
【タグ付け】⑨
射った矢に、タグ「rap」を付ける。

 

ループ装置。

マルチプレイ対応。弓の破壊と装備の、最小ループ装置になります。コマンドブロックを減らすため、一部を共有しています。

②は動力が必要。赤色のテラコッタにレッドストーントーチ。⑤はティックの遅延:10。(最初のティックで実行:オフ)

【統合版】

①execute unless entity @a[hasitem={item=bow,data=800,location=slot.weapon.mainhand,quantity=1}]
②kill @e[name=弓]
------
③execute unless entity @a[hasitem={item=bow,data=800,quantity=1}]
④⑥replaceitem entity @a[hasitem={item=potion,data=23,location=slot.weapon.offhand}] slot.hotbar 0 bow 1 800
------
⑤execute unless entity @a[hasitem={item=bow,data=800,quantity=0}]

◻︎弓(データ値800)

【装置の起動】①②
メインハンドに弓がない時、ホットバー「0」に弓を設置。
------
【弓の装備a】③④
弓を持っていない時、ホットバー「0」に弓を設置。
------
【弓の装備b】⑤⑥
弓を持っている時、信号を出す。ホットバー「0」に弓を設置。

 

効果の再生。

タグ付き矢を基準にモブを絞り、連続で矢を召喚したり、パーティクルを再生。不要な矢も削除します。※敵対モブ対象。

③は動力が必要。レッドストーントーチ。①はティックの遅延:30。②はティックの遅延:40。④はティックの遅延:10。①②④は最初のティックで実行:オフ。

【統合版】

①execute if entity @a[hasitem={item=bow,data=800,location=slot.weapon.mainhand}] as @e[tag=rap] at @e[c=1,family=monster] run particle minecraft:critical_hit_emitter ~~2~
------
②execute at @e[tag=rap] unless entity @e[family=monster,r=6]
③kill @e[tag=rap]
------
④execute if entity @a[hasitem={item=bow,data=800,location=slot.weapon.mainhand}] as @e[tag=rap] at @e[c=1,family=monster] run summon arrow ~~3~
------
⑤kill @e[type=arrow]

◻︎弓(データ値800)

【効果の再生a】①
タグ「rap」近くのモブに、パーティクルを再生。(1.5秒間隔)
-----
【効果の停止】②③⑤
タグ「rap」からモブが離れた時、タグ「rap」、矢を削除。(2秒後)
-----
【効果の再生b】④
タグ「rap」近くのモブの頭上に、矢を召喚。(0.5秒間隔)

矢はモブに当てずに近くを狙います。①④弓(データ値800)をメインハンドに持っていないと、矢の連射やパーティクルは再生されません。速さは、ティックの遅延で変更出来ます。

 

ワールドデータ

ワールドデータは、コマンド入力不要。アイテムの入った「トラップチェスト」を開くと装置が起動します。

完成データをダウンロード。

ダウンロード先/連射の弓v1.30

◻︎統合版【武器・防具・道具】連射の弓v1.30.mcworld
iOS、Android/Minecraftで開く。Windows/ダブルクリックでインポート。

◻︎Java版【武器・防具・道具】連射の弓v1.30v.zip
解凍後、ワールド内の「saves」フォルダに入れる。

※二次配布は禁止です。