Minecraft【動く装置】消化できる無害な炎!

2024-03-02

Java版1.20.2、統合版はv1.20.41で動作確認。

炎の更新を止めて、消えなくなった炎を消化します。

せっかく建てた家が、家事で燃えたら困るよね!ゲームルールを変更して、炎が燃え広がらなくなったけど炎が消えない..。やっぱり元に戻そうかなぁ...。ちょっと待って!そんな時「消化栓」を設置しておくと安心です。※マルチプレイ対応。連続着火でも安心設計。

◻︎装置の特徴
・メインハンドの検知。
・アマスクロックで炎の消化。

 

目次

1.【Java版/統合版】 ゲームルールの変更。
・炎の更新を止める。

2.【Java版】 消火栓の設置。
・アマスクロック。
・メインハンドの検知と回転。
・タグ付けと消化。
・消化とタグ消し。

3.【統合版】 消火栓の設置。
・アマスクロック。
・メインハンドの検知と回転。
・タグ付けと消化。
・消化とタグ消し。

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

 

【Java版/統合版】 ゲームルールの変更。

炎の更新を止める。

◻︎チャットコマンドで入力。

/gamerule doFireTick false

/炎の更新を止めます。自然消化もオフになります。※戻すには「true」。

 

【Java版】 消火栓の設置。

火打ち石と打ち金をメインハンドに持っているプレイヤーを検知。クロック装置を動かして、消えない炎や着火した炎を消します。

アマスクロック。

簡単なクロック回路を作りたい。でも時間も調節したいなぁ...。そんな時便利なアマスクロック! 防具立てを召喚するだけです。

◻︎チャットコマンドで入力。

/summon armor_stand ~ ~ ~ {CustomName:"\"消化栓\""}

◻︎帽子を被せるには
item replace entity @e[type=armor_stand,name="消化栓"] armor.head with dispenser

/消化栓と名前を付けて、防具立てを召喚。

 

メインハンドの検知と回転。

火打ち石と打ち金をメインハンドに持っている時、信号を出し「消火栓」を回転します。

◻︎リピート(常時実行)→コンパレーター。

①execute if entity @a[nbt={SelectedItem:{id:"minecraft:flint_and_steel"}}]

①アイテムを持っていたら信号を出す。※このコマンドは「minecraft:」が必要です。

 

◻︎リピート(動力が必要)

②execute at @e[name="消化栓"] run tp @e[name="消化栓"] ~ ~ ~ ~5 ~

②信号がある時「消火栓」を「5度」回転します(正の数は時計回り)。レッドストーントーチを設置します。

 

 

タグ付けと消化。

プレイヤーにタグ「air」を付けて、約1.5秒(36ティック)おきに炎を消化します。

◻︎リピート(常時実行)。

③tag @a[nbt={SelectedItem:{id:"minecraft:flint_and_steel"}}] add air
④execute if entity @e[name="消化栓",y_rotation=0] run execute at @a[tag=air] run fill ~-15 ~-3 ~-15 ~15 ~7 ~15 air replace fire
⑤execute if entity @e[name="消化栓",y_rotation=180] run execute at @a[tag=air] run fill ~-15 ~-3 ~-15 ~15 ~7 ~15 air replace fire

③火打ち石と打ち金をメインハンドに持っているプレイヤーを検知して、タグ「air」を付けます。※このコマンドは「minecraft:」が必要です。
④⑤「消化栓」の向きが0度、180度を検知して、タグ「air」の周辺の炎を空気に変えます。

 

消化とタグ消し。

炎を消化して、プレイヤーに付いたタグ「air」を消します。

◻︎インパルス(動力が必要)→チェーン(常時実行)。

⑥execute at @a[tag=air] run fill ~-15 ~-3 ~-15 ~15 ~7 ~15 air replace fire
⑦tag @a remove air

⑥タグ「air」の周辺の炎を空気に変えます。
⑦全てのプレイヤーからタグ「air」を消します。※タグを付けるコマンドが常に動作しているので、火打ち石と打ち金をメインハンドに持っているプレイヤーのタグは消えません。

 

【統合版】 消火栓の設置。

統合版もJava版と同じ装置になります。Java版と内容が同じ箇所の説明は省略します。

アマスクロック。

◻︎チャットコマンドで入力。

/summon armor_stand 消化栓 ~~~

◻︎帽子を被せるには ※統合版では、通常ブロックを被せても表示されません。
replaceitem entity @e[type=armor_stand,name="消化栓"] slot.armor.head 0 carved_pumpkin

 

メインハンドの検知と回転。

◻︎リピート(常時実行)→コンパレーター。

①execute if entity @a[hasitem={item=flint_and_steel,location=slot.weapon.mainhand}]

 

◻︎リピート(動力が必要)

②execute at @e[name="消化栓"] run tp @e[name="消化栓"] ~~~ ~10~

②信号がある時「消火栓」を「10度」回転します(正の数は時計回り)。レッドストーントーチを設置します。※統合版では消化できる範囲が狭いため、Java版より少し早めに消化します。

 

タグ付けと消化。

プレイヤーにタグ「air」を付けて、約1秒(18ティック)おきに炎を消化します。

◻︎リピート(常時実行)。

③tag @a[hasitem={item=flint_and_steel,location=slot.weapon.mainhand}] add air
④execute if entity @e[name="消化栓",rym=0,ry=0] run execute at @a[tag=air] run fill ~-5~~-5 ~5~7~5 air [] replace fire
⑤execute if entity @e[name="消化栓",rym=180,ry=-180] run execute at @a[tag=air] run fill ~-5~~-5 ~5~7~5 air [] replace fire

 

消化とタグ消し。

◻︎インパルス(動力が必要)→鎖(常時実行)。

⑥execute at @a[tag=air] run fill ~-5~~-5 ~5~7~5 air [] replace fire
⑦tag @a remove air