Minecraft【武器・防具・道具】魔女の剣。(メインハンド検知)

2024-06-20

Java版1.20.6、統合版はv1.20.81で動作確認。

攻撃すると魔女がささやく。

魔女の剣。v1.20

モブを攻撃した時、ウィッチの声やパーティクルを再生します。Java版と統合版では検知対象や方法が大きく異なりますが、似たような動作になります。マルチプレイ対応。Java版、統合版とも中級者向けの装置となります。キーボード、コントローラー推奨。※Java版は新コマンド、データコンポーネントに対応。統合版は「hasitem」で装備のデータ値(耐久値)を検知します。

 

◻︎装置の特徴
【Java版】
・メインハンドの検知。(セレクトアイテム)
・HurtTimeを使ったダメージ検知。
【統合版】
・アイテム名をトリガーにして装置を起動。
・ホットバーにアイテムを固定。
・耐久度を使った検知。

 

更新履歴
2024-5-7/古い情報を更新しました。Java版(1.20.5〜)のデータコンポーネントに対応。
2023-5-26/統合版のターゲットの絞り込みを、専用コマンド「family」に変更しました。
2023-3-31/Java版のコマンドを変更しました。
2023-3-23/統合版の新コマンドに対応! 複雑な装備検知をやめ、アイテム名から動作するように変更しました。

 

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

旧式/ v1.0はこちら。

 

 

目次

1.作成準備
・ログの非表示。
2.コマンドブロックの設置
3.魔女の剣【Java版】
・鉄の剣の入手(名前を変更)。・メインハンドの検知(Java版)。・コマンドの詳細。
4.魔女の剣【統合版】
・アイテム名の変更。・タグ付け装置。・テレポート式。・アイテムの保存。
5.ワールドデータ
・完成データのダウンロード。

 

※「as」や「minecraft:」などのコマンドは簡略化しています。一部のコマンド、マルチプレイやサーバーでは必要な場合があります。

 

作成準備

マルチプレイ対応。※統合版での同時使用には、複数の装置を作る必要があります。

ログの非表示。

◻︎ログの非表示とコマンドブロックを入手。

/gamerule commandBlockOutput false
/give @s command_block

 

コマンドブロックの設置

コマンドブロックは画像に合わせて配置。「ブロック種類」「レッドストーン」を変更します。 変更がある場合は、個別に解説していきます。

◎配置したコマンドブロックの状態/すべて無条件。※()内は統合版の名称。

コマンドブロックの色 ブロックの種類 レッドストーン
黄色 インパルス 動力が必要
青色 チェーン(鎖) 常時実行
紫色 リピート 常時実行

 

魔女の剣【Java版】

「魔女の剣」を持って敵を攻撃すると、ウィッチの声とパーティクルを再生します。装備はダメージを受け壊れると壊れます。※「魔女の剣」を手にしていない時は、コマンドは実行されません。

 

鉄の剣の入手(名前を変更)。

アイテムIDにアイテム名や説明文、エンチャントを追加します。※コマンドは長くなるので、メモ帳やテキストエディタを使うと便利です。

【鉄の剣】
①鉄の剣を1個入手するコマンド。

/give @s iron_sword 1

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

[custom_name="魔女の剣",lore=["説明文"]]

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

/give @s iron_sword[custom_name="魔女の剣",lore=["説明文"]] 1

※さらに、エンチャントを付ける場合。(耐久度Lv1)
.....["説明文"],enchantments={levels:{"unbreaking":1}}] 1

改行無しの1行で、チャットに入力して「魔女の剣」を入手します。

 

メインハンドの検知(Java版)。

メインハンドで選択している装備を、アイテム名で検知してコマンドを実行します。

【Java版】

①execute at @a[nbt={SelectedItem:{components:{"minecraft:custom_name":"\"魔女の剣\""}}}] as @e[distance=..10,nbt={HurtTime:1s}] run playsound entity.witch.ambient player @a[nbt={SelectedItem:{components:{"minecraft:custom_name":"\"魔女の剣\""}}}] ~ ~ ~
②execute at @e[type=!player,nbt={HurtTime:1s}] as @a[distance=..10,nbt={SelectedItem:{components:{"minecraft:custom_name":"\"魔女の剣\""}}}] run particle minecraft:witch ~ ~ ~ 1 1 1 0 12 force

①②「魔女の剣」をメインハンドに持っているプレイヤーの10ブロック以内でモブがダメージを受けた時、 ウィッチの声とパーティクルを再生(ダメージを受けたモブを対象)。 ※アイテムIDや、説明文は省略可。金床が使える環境では注意が必要。「minecraft:」が必要です。

「playsound」と「particle」でコマンドの実行者や場所を変えています。対象範囲は10ブロック。コマンド数は増えますが、タグを使うとコマンドは簡略化出来そうです。

 

コマンドの詳細。

ターゲットセレクターに、データコンポーネント(NBT形式)で詳細を追加。

【プレイサウンド】

ウィッチの声を再生するコマンドに、実行者場所を追加。

execute at @a as @e run playsound entity.witch.ambient player @a ~ ~ ~

コマンド実行者「@e」、場所「@a」。

@a[nbt={SelectedItem:{components:{"minecraft:custom_name":"\"魔女の剣\""}}}]
@e[distance=..10,nbt={HurtTime:1s}]

【パーティクル】

パーティクルを再生するコマンドに、実行者場所を追加。

execute at @e as @a run particle minecraft:witch ~ ~ ~ 1 1 1 0 12 force

コマンド実行者「@a」、場所「@e」。

@e[type=!player,nbt={HurtTime:1s}]
@a[distance=..10,nbt={SelectedItem:{components:{"minecraft:custom_name":"\"魔女の剣\""}}}]

 

魔女の剣【統合版】

統合版ではモブのダメージを検知出来ないので、装備の耐久度を使ったループ装置を作ります。モブを攻撃し装備が壊れた時に効果を再生。再び1回で壊れる装備を手にします。ループ装置を停止するために、帽子を使います。

今回は「give」ではなく「replaceitem」を使ってホットバーにアイテムを固定。サバイバルでは使いにくくなりますが、より安定した装置になると思います。簡単なタグの切り替え装置と、テレポート式の装置を紹介。※耐久度の減った装備を投げた時も効果が発動します。

 

アイテム名の変更。

金床を使ってチェストと革の帽子の名前を変更します。※装置は名前で動作するので、鉄の剣や他のアイテムでも可。データ値が区別出来ないアイテムもあります。

革の帽子→「魔女の剣」を3個作成。

 

チェスト→「剣ケース」を2個作成。

 

タグ付け装置。

マルチプレイ用に装備を出し入れする時に、タグの切り替えが出来る剣ケースを作ります(切り替え式)。※同じタグ名のプレイヤーが複数いるとうまく動作しません。

開始点は座標(0 -60 0)。「A」は座標(1 -60 0)、「B」は座標(1 -60 4)。②レッドストーンランプ、トーチを設置。

【統合版】

①execute if blocks 1 -60 0 1 -60 0 1 -60 4 all
②tag @a remove w_sword
③tag @p add w_sword

①座標「A」と「B」のチェストの中身が同じ時、信号を出す。
全てのプレイヤからタグ「w_sword」を削除。
③近くのプレイヤーにタグ「w_sword」を追加。

 

A」と「B」のチェストの中身が同じ時、プレイヤーのタグが消えレッドストーンランプが点灯。 ※チェストの向き、装備の位置や耐久度も合わせる必要があります。 ◻︎タグの確認。 /tag @a list

 

テレポート式。

「魔女の剣」を投げた時、「魔女の剣」を頭上に追尾して、ループ装置を起動します。スマホやゲーム機でも作れますが、頭上のアイテムは5分で消滅します。

①はティックの遅延10。⑤は動力が必要。⑩はティックの遅延6。

【統合版】

①execute if entity @e[name=魔女の剣] run replaceitem entity @a[tag=w_sword] slot.armor.head 0 keep leather_helmet 1 180
②execute at @a[hasitem={item=leather_helmet,location=slot.armor.head,data=180}] run replaceitem entity @a[tag=w_sword] slot.hotbar 0 iron_sword 1 600
③execute at @a[hasitem={item=leather_helmet,location=slot.armor.head,data=180}] run tp @e[name=魔女の剣] ~~3~
------
④clear @a[tag=w_sword] iron_sword 600 0
⑤kill @e[name=鉄の剣]
⑥execute as @e[type=!villager,type=!armor_stand,family=mob] at @a[tag=w_sword] run playsound mob.witch.ambient @a[tag=w_sword] ~~~
⑦execute at @e[type=!villager,type=!armor_stand,family=mob] as @a[tag=w_sword,c=1,r=10] run particle minecraft:dragon_breath_fire ~~~
------
⑧replaceitem entity @a[tag=w_sword] slot.armor.head 0 keep air
⑨clear @a leather_helmet 180
⑩clear @a iron_sword 600

◻︎タグ付きプレイヤー対象
①「魔女の剣」 が落ちている時、ヘッドスロットに革の帽子を設置(データ値180)。
②革の帽子(データ値180)を被っている時、一番左のホットバーに鉄の剣を設置(データ値600)。
③革の帽子(データ値180)を被っている時、頭上に「魔女の剣」 を追尾。
------
鉄の剣データ値600)が無くなった時、信号を出す。
鉄の剣を削除。
⑥敵対モブがいる時、ウィッチの声を再生。
⑦10ブロック以内の近くの敵対モブに、パーティクルを再生。※「minecraft:」が必要。
------
⑧ヘッドスロットが空の時、信号を出す。
⑨革の帽子を削除(データ値180)。
鉄の剣を削除(ティックの遅延6、データ値600)。

ダメージを受けた時、革の帽子を脱いだ時に頭上のアイテムが戻って来ます。※①にティックの遅延を入れないとうまく動作しません。④壊れた時と投げた時の違いには未対応。

 

ストラクチャー式(Windows推奨)。

テレポート式の弱点を克服したストラクチャー式も紹介しています。

 

 

ワールドデータ

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

【統合版】 v1.20.81〜対応

ダウンロード/魔女の剣v1.20.mcworld

「テレポート式」と「ストラクチャー式」のワールドデータをダウンロード出来ます。

【Java版】 v1.20.6〜対応

ダウンロード/魔女の剣v1.20.zip

解凍後「saves」フォルダに入れてください。

※二次配布は禁止です。