Minecraft【武器・防具・道具】炎の盾。オフハンド検知

2025-06-20

Java版1.21.5-、統合版v1.21.81-で動作確認。

攻撃をガードすると、相手を燃やす。

炎の盾。v1.30

盾で攻撃をガードした時、近くのモブを3体燃やします。盾を解除すると、近くの炎を消化する「炎の盾」を作ります。Java版と統合版ではコマンドが大きく異なりますが、同じように動く装置になりました。v1.30のJava版は、装備の仕様変更に対応。ノックバックを追加しました。統合版は、タグを使わない「ポーション式」に変更。ひとつの装置でマルチプレイに対応しました。Java版は中級者、統合版は上級者向けの装置になります。

 

◻︎装置の特徴
・ひとつの装置でマルチプレイ対応。
・オフハンド検知。
・炎の消化。

【Java版】
・盾ダメージ検知。
・ノックバック再現。
【統合版】
・アイテム名で装置を起動。
・耐久度(データ値)を使ったループ装置。
・ポーション式で、装置を簡略化。

 

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

 

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

旧式/ v1.0はこちら。

 

 

目次

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

2.炎の盾【Java版】
・盾を入手(名前を変更)。
・コマンドの結合。
・スコアボードの作成。
・オフハンドを検知。

3.炎の盾【統合版】
・装置のしくみ。
・鉄のヘルメットを入手(名前を変更)。
・ポーションを入手。
・捨てる式。
・ループ装置。

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

 

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

 

作成準備

使用方法。

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

 

 

 

炎の盾【Java版】

「炎の盾」をオフハンドに持つと火炎耐性が付き、盾がダメージを受けると、近くのエンティティを3体燃やし、ノックバックします。盾をメインハンドに持ち替えると、周辺の炎が消えます。装備はダメージを受け壊れると壊れます。※「炎の盾」は、オフハンドに装備してください。

盾を入手(名前を変更)。

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

◻︎コマンド 例

/give @s shield 1

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

 

◻︎コマンド 例

[custom_name="炎の盾",lore=["説明文"]]

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

 

コマンドの結合。

◻︎コマンド 例

/give @s shield[custom_name="炎の盾",lore=["説明文"]] 1

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

 

◻︎コマンド 例

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

「火炎耐性LV10」のエンチャントを付けた場合。

 

スコアボードの作成。

◻︎コマンド 例

/scoreboard objectives add shield minecraft.custom:minecraft.damage_blocked_by_shield

盾ダメージを検知するために、スコアボードを作っておきます。

 

オフハンドを検知(Java版)。

オフハンドに「炎の盾」を装備した時、攻撃をガードした時、各種コマンドを実行します。※燃やしたいエンティティは、指定してくだい。データパックを使う場合は「最初からクライマックス」参照。

「A」はチェスト。

【Java版】

①execute at @a[scores={shield=1..},nbt={equipment:{offhand:{components:{"minecraft:custom_name":"炎の盾"}}}}] run tp @e[type=!villager,type=!item,type=!player,type=!armor_stand,type=!arrow,type=!item_frame,distance=..10,sort=nearest,limit=3] ^ ^2 ^3
②execute at @a[scores={shield=1..},nbt={equipment:{offhand:{components:{"minecraft:custom_name":"炎の盾"}}}}] run tag @e[type=!villager,type=!item,type=!player,type=!armor_stand,type=!arrow,type=!item_frame,distance=..10,limit=3] add fire
③scoreboard players reset @a shield
------
④effect give @a[nbt={equipment:{offhand:{components:{"minecraft:custom_name":"炎の盾"}}}}] fire_resistance 1 10
------
⑤execute at @a[nbt={SelectedItem:{components:{"minecraft:custom_name":"炎の盾"}}}] run fill ~-5 ~-3 ~-5 ~5 ~3 ~5 air replace fire
------
⑥execute at @e[tag=fire] run fill ~ ~ ~ ~ ~ ~ fire

◻︎盾(データ値100)

【装置の起動】①②③
「炎の盾」がダメージを受けた時、近くのモブ3体をノックバック。タグ「fire」を付け、スコア「shield」をリセット。
------
【効果の再生】④⑤⑥
「炎の盾」を装備しているプレイヤーに、LV10の火炎耐性を3秒与える。「炎の盾」がメインハンドにある時、周辺の炎を消す。タグ「fire」があるエンティティを燃やす。

 

炎の盾【統合版】

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

装置のしくみ。

ダメージ検知が出来ないので、装備の耐久度を使ったループ装置を作ります。「耐火のポーション」を捨てるとオフハンドに装着。さらに「炎の盾」を捨てると盾をホットバー「0」に設置(データ値盾1000)。攻撃を受け盾が壊れた時、効果を再生。再び1回で壊れる盾をホットバー「0」に設置します。ポーションを外すと装置を停止。落とした「炎の盾」も、インベントリに戻ります。

 

鉄のヘルメットを入手(名前を変更)。

金床を使って鉄のヘルメットを「炎の盾」に変更。※名前が同じなら、他のアイテムでも動作します。

 

ポーションを入手。

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

◻︎コマンド 例

/give @s potion 1 12

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

 

捨てる式。

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

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

【統合版】

①execute at @a[hasitem={item=shield,data=1000,quantity=2..}] run clear @a[r=1,c=1] shield 1000
②execute at @a[hasitem={item=potion,data=12,quantity=2..}] run clear @a[r=1,c=1] potion 12 1
------

③execute at @a[hasitem={item=potion,data=12,location=slot.inventory}] run clear @a[r=1,c=1] shield 1000
④execute at @a[hasitem={item=potion,data=12,location=slot.hotbar}] run clear @a[r=1,c=1] shield 1000
------
⑤execute at @e[name=耐火のポーション] run replaceitem entity @p[r=1] slot.weapon.offhand 0 keep potion 1 12
⑥kill @e[name=耐火のポーション]
------
⑦execute at @e[name=炎の盾] run replaceitem entity @a[r=1,hasitem={item=potion,data=12,location=slot.weapon.offhand}] slot.hotbar 0 shield 1 1000
⑧execute at @a[hasitem={item=potion,data=12,location=slot.weapon.offhand}] run tp @e[name=炎の盾,r=3] ~~~
------
⑨execute at @a[hasitem={item=potion,data=12,location=slot.weapon.mainhand,quantity=1}] run fill ~-5~~-3 ~5~3~5 air replace fire

◻︎盾(データ値1000)

【数の制限】①②
盾、耐火のポーションが2個以上になった時、1個を削除。
------
【装置の停止】③④
耐火のポーションを外した時、盾を削除。
------
【装置の起動】⑤⑥
「耐火のポーション」が落ちている時、近くのプレイヤーに、耐火のポーションを設置。
------
【ターゲットの検知】⑦⑧
「炎の盾」をプレイヤーに戻す。
------
【効果の停止】⑨
「耐火のポーション」がメインハンドにある時、周辺の炎を消す。

 

ループ装置。

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

③⑦は動力が必要。⑥はティックの遅延:10(最初のティックで実行:オフ)。⑦にレッドストーントーチ。

【統合版】

①execute unless entity @a[hasitem={item=shield,data=1000,location=slot.weapon.mainhand,quantity=1}]
②⑧replaceitem entity @a[hasitem={item=potion,data=12,location=slot.weapon.offhand}] slot.hotbar 0 shield 1 1000
③kill @e[name=鉄のヘルメット]
------
④execute unless entity @a[hasitem={item=shield,data=1000,quantity=1}]
⑤execute at @e[family=monster] as @a[hasitem={item=potion,data=12,location=slot.weapon.offhand},c=3,r=10] run fill ~~~ ~~~ fire
------
⑥execute unless entity @a[hasitem={item=shield,data=1000,quantity=0}]
⑦effect @a[hasitem={item=shield,data=1000,location=slot.weapon.mainhand,quantity=1}] fire_resistance 2 10

◻︎盾(データ値1000)

【装置の起動】①②③
メインハンドに盾がない時、ホットバー「0」に盾を設置。
------
【効果の再生a】④⑤
盾を持っていない時、信号を出す。近くのモブを燃やし、エフェクトを再生。
------
【効果の再生b】⑥⑦⑧
盾を持っている時、信号を出す。近くのモブを燃やし、エフェクトを再生。

 

ワールドデータ

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

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

ダウンロード先/炎の盾v1.30

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

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

※二次配布は禁止です。