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

2024-02-16

Java版1.19.4、統合版はv1.19.83で動作確認。

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

魔女の剣。

【Java版】では、メインハンドとダメージを受けたモブを検知して、ウィッチの声やパーティクルを再生。マルチプレイでもアイテムを受け渡して使ったり、同時使用可能。

【統合版】では、アイテムを投げて「魔女の剣」を召喚。剣が壊れた時を検知して、ウィッチの声やパーティクルを再生。マルチプレイでは、剣ケース(チェスト)でタグを切り替えて使う事が出来ます。キーボード、コントローラー推奨。

※統合版の新コマンド「hasitem」は、名前を変更したアイテムや装備の耐久値を検知出来ないので使用しません。

◻︎装置の特徴
【Java版】
・メインハンド検知。
・HurtTimeを使ったダメージ検知。
【統合版】
・ヘッドスロット検知で「魔女の剣」の召喚と解除。
・clear、replaceitem、execute if entity、データ値を使ったアイテム検知。
・tpを使った装備の追尾。

 

完成動画(旧式)

 

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

 

 

目次

1.作成準備
・フラットワールド。
・チャットコマンド。
2.コマンドブロックの設置
3.魔女の剣【Java版】
・名前を付けた革のブーツ。
・Java版のコマンド作成。
4.魔女の剣【統合版】
・アイテム名の変更。
・タグ付け装置。
・ステータス効果(AND回路)。
・魔女の剣の効果と帽子の追尾。
・ヘッドスロット検知。
5.ワールドデータ
・完成データのダウンロード。

※一部Java版と統合版のコマンドに違いがあるので気をつけてください。

 

作成準備

フラットワールド。

マインクラフトのバージョンも上がり、フラットワールドの作成が簡単になりました。 詳しくは、下記の関連記事を参考に作成してください。

 

 

 

チャットコマンド。

チャットに大量のコマンドログが流れ、装置作成の邪魔になるのでログを非表示にしておきます。 ※Java版では、新規ワールド作成時にも非表示に出来ます。

◻︎コマンドログの非表示 ※表示する場合 「false」を「true」に変更。

/gamerule commandBlockOutput false

装置作成に必要なコマンドブロックを手に入れます。

◻︎コマンドブロックの入手

/give @s command_block

 

コマンドブロックの設置

Java版と統合版では、コマンドやブロックの名称など違いがあります。装置の解説はJava版の名称で統一しています。

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

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

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

 

装置は開始点座標(0 -60 0)を基準に、南が正面がになるよう設置にしています。座標を合わせてブロックを設置していくと、コマンドはコピー&ペーストで作れます。

◻︎南向きを確認するには
ストラクチャーブロックを設置して、境界線の青い線が伸びる方が南。※赤い線は東。
/give @s structure_block

 

魔女の剣【Java版】

「魔女の剣」を持って敵を攻撃すると、ウィッチの声が聞こえる(パーティクルあり)。Java版ではアイテム名の変更はもちろん、エンチャントや説明文を追加した装備も検知可能。装備はダメージを受け壊れると無くなります。※「魔女の剣」を手にしていない時は、コマンドは実行されません。

 

名前を付けた鉄の剣。

Java版では名前や説明文を付けた装備を、コマンドから直接出す事が出来ます。 ※コマンドは長くなるので、メモ帳やテキストエディタを使うと作りやすいです。

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

/give @s minecraft:iron_sword 1

【アイテム名と説明文】
②アイテム名や説明文を追加します。

{display:{Name:"\"魔女の剣\"",Lore:["\"説明文\""]}}

コマンドの結合
①のiron_swordの後ろに②のコマンドを繋げます。

/give @s minecraft:iron_sword
{display:{Name:"\"魔女の剣\"",Lore:["\"説明文\""]}} 1

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

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

 

Java版のコマンド作成。

メインハンド検知で信号を出し、ウイッチの声やパーティクルを再生します。同じ色の「ターゲットセレクター」後ろのNBTフォーマットは共通です。コマンドは長くなるので分けています。

②は動力が必要に変更。

【メインハンド検知】

①execute if entity @a[nbt={SelectedItem:{tag:{display:{Name:"\"魔女の剣\"",Lore:["\"説明文\""]}}}}]

①「魔女の剣」をメインハンドに持っている時、信号を出す。

【プレイサウンド】

②execute at @a[nbt={SelectedItem:{tag:{display:{Name:"\"魔女の剣\"",Lore:["\"説明文\""]}}}}] as @e[distance=..10,nbt={HurtTime:1s}] run playsound entity.witch.ambient player @a[nbt={SelectedItem:{tag:{display:{Name:"\"魔女の剣\"",Lore:["\"説明文\""]}}}}] ~ ~ ~

②「魔女の剣」をメインハンドに持っているプレイヤーから10ブロック以内で、エンティティがダメージを受けると、ウィッチの声を再生。

【パーティクル効果】

③execute at @e[type=!player,nbt={HurtTime:1s}] as @a[distance=..10,nbt={SelectedItem:{tag:{display:{Name:"\"魔女の剣\"",Lore:["\"説明文\""]}}}}] run particle minecraft:witch ~ ~ ~ 1 1 1 0 12 force

③「魔女の剣」をメインハンドに持っているプレイヤーから10ブロック以内で、エンティティがダメージを受けると、パーティクルを再生。

 

魔女の剣【統合版】

「魔女の剣」(革の帽子)を投げると、革の帽子(ダミー)を被ります。革の帽子(ダミー)を被った時、 鉄の剣(データ値600)を召喚。鉄の剣(データ値600) が壊れた時、ウイッチの声とパーティクルを再生。

また、使用中にダメージを受けると、鉄の剣(データ値600)は解除され「魔女の剣」(革の帽子)はアイテム化します。マルチプレイでも使えるように、タグの解除と「魔女の剣」(革の帽子)が受け渡しが出来る、剣ケースを作ります。

※プレイヤーにタグが残っていると効果が重複します。

 

アイテム名の変更。

金床を使ってチェストと革の帽子の名前を変更します。

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

 

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

 

タグ付け装置。

装備を出し入れする時に、プレイヤーにタグを付けたり消したりします。

開始点は座標(0 -60 0)。「A」は座標(1 -60 0)、「B」は座標(1 -60 6)。

【統合版】

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

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

「あ」にはチェストの中身が分かるように、額縁に「魔女の剣」(革の帽子)を入れておきます。 ②にはレッドストーンランプを設置。「A」と「B」のチェストの中身が同じ時点灯。

 

ステータス効果(AND回路)。

タグ付きプレイヤーが「魔女の剣」(革の帽子)を投げた時、革の帽子(データ値180)を被ります。

③は地面下。

【統合版】

①execute if entity @e[type=item,name=魔女の剣]
②execute if entity @a[tag=w_sword]
③replaceitem entity @a[tag=w_sword] slot.armor.head 0 keep leather_helmet 1 180
④give @a[tag=w_sword] iron_sword 1 600

【AND回路】
①「魔女の剣」(革の帽子)が落ちている時、信号を出す。
②プレイヤーにタグ「w_boots」がある時、信号を出す。
【ステータス効果】
③タグ付きプレイヤーのヘッドスロットに、革の帽子(データ値180)を設置。
④タグ付きプレイヤーに、鉄の剣(データ値600)を与えます。

 

魔女の剣の効果と帽子の追尾。

プレイヤーが革の帽子(データ値180)を持っているかを検知して、頭上に「魔女の剣」(革の帽子)を追尾させます。 ※頭上に追尾しているアイテムは、5分後に自然消滅するので注意。

②③はレッドストーンが必要に変更。④レッドストーンのたいまつを設置。

【統合版】タグ付きプレイヤー対象。

①clear @a[tag=w_sword] leather_helmet 180 0
②clear @a[tag=w_sword] iron_sword 600 0
③execute as @a[tag=w_sword] at @s run tp @e[type=item,name=魔女の剣] ~~3~
④execute as @a[tag=w_sword] at @s 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 ~~~
⑥give @a[tag=w_sword] iron_sword 1 600

【インベントリ検知】
①革の帽子(データ値180)を持っている時、信号を出す。
②鉄の剣(データ値600)を持っている時、信号を出す。
【魔女の剣(革の帽子)の追尾】
③信号がある時、プレイヤーの頭上に「魔女の剣」(革の帽子)を追尾。
【魔女の剣の効果】タグ付きプレイヤー対象
④信号がある時、ウィッチの声を再生。
⑤信号がある時、村人、防具立て以外のモブ1体にパーティクルを再生(プレイヤーから10ブロック内)。
【剣の召喚】
⑥タグ付きプレイヤーに鉄の剣(データ値600)を与える。

 

ヘッドスロット検知。

プレイヤーのヘッドスロットにアイテムがあるかを検知。

③はティックの遅延を8に設定。

【統合版】

①replaceitem entity @a[tag=w_sword] slot.armor.head 0 keep air
②clear @a leather_helmet 180
③clear @a iron_sword 600

【ヘッドスロット検知】
①タグ付きプレイヤーのヘッドスロットが空の時、信号を出す。
②全てのプレイヤーから革の帽子(データ値180)を削除。
③全てのプレイヤーから鉄の剣(データ値600)を削除。(遅延8)

 

ワールドデータ

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

【統合版】 v1.19.83
完成データでは、座標(0 -61 0)にストラクチャーブロックが埋め込んであります。
アプリで開くから、Minecraftを選びます。

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

 

【Java版】 v1.19.4
完成データでは、座標(0 -61 6)のチェストに「魔女の剣」が入っています。
zipを解凍して、フォルダを「saves」に入れて起動します。

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

※二次配布は禁止です。