
種を投げるだけで種まきしたり、スポンジを投げて水抜きができたら...
できます。これからお見せするコマンドを、一回実行するだけです。
今回は、Minecraft 1.8 + 1.9で種まきやスポンジ水抜きを投げて行えるようになる
とっても便利なコマンドを作ったので紹介します。
回路はもう出来上がっています。コマンドを実行すれば勝手に出来上がります。
[2016年3月4日追記] バージョン1.9用のコマンドへのリンクを追記しました。
スポンジ判定用のスコアボードを作成するコマンド 投げた種判定用のスコアボードを作成するコマンド 「1」のコマンドブロックに入力するコマンド 「2」のコマンドブロックに入力するコマンド 「3」のコマンドブロックに入力するコマンド 「1」のコマンドブロックに入力するコマンド 「2」のコマンドブロックに入力するコマンド 「3」のコマンドブロックに入力するコマ
ンド 最近書いたコマンド解説記事目次
ただ単に、種やスポンジを投げて使いたいだけ、という方は3章からお読み下さい。まずは実行してみて下さい。回路が完成して動きます。
それでは早速、あなたの夢を叶えてみせましょう。
今日からあなたは、種まきや水抜きの面倒臭さから開放されます。
▲このリンク先に貼ってある長ーいコマンドをコピーして下さい。
Minecraft 1.8以降のワールドで、周りに何もない場所にコマンドブロックを設置します。
それから中に、先程コピーしたコマンドを貼り付けて下さい。
そして、コマンドブロックの横にボタンをくっつけて押します。
なんという事でしょう、勝手にコマンドブロックの回路が出来上がったではありませんか!
これ、ただハリボテを置いたわけではありません。実際に動いています。
ご覧ください。種を投げると、耕した土に吸い込まれて、植えられるようになりました。
さらに、スポンジをポイっと投げるだけで水中に設置されて、水抜き出来るようになりました。
(チャットログが荒ぶって困るという方は、/gamerule commandBlockOutput false
を実行して下さい。)
これらの仕掛けは、あの回路が描画範囲内にある間はずっと効果が続きます。
どうやって、1つのコマンドからコマンドブロックの集合体を出したのでしょうか。どうやって作った? - こんな仕組みになっています
先ほどのコマンドを実行した際、何やら怪しい物が降ってきませんでしたか?
このコマンドブロックとレッドストーンブロックのタワーが空から降ってきたと思います。
そしてすぐに消えてしまいます。一体コレには何の意味があるんでしょうか。
それでは、全ての種明かしをしましょう。
毎回毎回お世話になっているコマンド生成ツール、MCStackerです。
リンク先には、今回解説するコマンドが編集可能な状態で公開されています。
(書いてあるコマンドを一つ一つ解説するのは大変なので省略します。)
さて、あのコマンドブロックのタワーは何だったのかといいますと、
いくつも積み重なった「FallingSand」というエンティティが落ちてきたものです。
「FallingSand」にブロックの種類を設定すれば、砂や砂利のように落ちてくるようになります。
つまり、ブロックを擬似的にエンティティ扱いにして、summonコマンドで重ねて召喚しています。
タワー内のコマンドブロックには、回路を組み立てるためのsetblockコマンドなどが入っています。
また、回路を動かすのに必要となるScoreboardも自動で作成されるようにしています。
最初の長ーいコマンドには、設置する全ブロックのデータが入っているというわけです。
コマンドを整形するとこんな感じです。
最初にレッドストーンブロックのFallingSandを召喚、その下にコマンドブロックのFallingSandを重ねて....
といった具合に、レッドストーンブロックでコマンドブロックをサンドイッチするように重ねています。
※実際にコマンドが実行される順序は、下から上です。
最後に一番上の「積み上がったコマンドブロックを消す」コマンドが実行されてタワーが消えます。普通に回路を作る場合のコマンド解説
『こんなややこしい事しなくても、普通に回路を組み立てればいいんじゃ?』
そう思ったそこのあなた、ぐう正論です。
先ほどの長ーいコマンドなんか使わなくとも、自力でコマンドブロックを設置して動かせばいいだけです。
あれは、"全てを自動化してみたい"という男のロマンです。
まずは、2種類のスコアボードを作成します。
/scoreboard objectives add isSponge dummy
/scoreboard objectives add isSeed dummy
種とスポンジ、どちらかの機能がいらない場合は片方だけ作って下さい。
回路はこれだけ。左側はこれまで何回も使ってきた、赤石ブロック式のクロック回路です。
これまでのコマンド解説記事で何回も作っているので、クロック回路の作り方は省略します。
(クロック回路で、赤石ブロックと石を設置する範囲を3広げて下さい。)
「1」「2」「3」がスポンジを投げて水抜きする処理、
「A」「B」「C」が種を投げて種まきする処理を担当します。
どちらかの機能がいらない場合は、片方だけ作って頂いて構いません。スポンジを投げて水中に設置するコマンドの解説
「1」「2」「3」のコマンドブロックの中身を解説します。
/scoreboard players set @e[type=Item] isSponge 1 {Item:{id:"minecraft:sponge",Damage:0s}}
/execute @e[type=Item,score_isSponge=1,score_isSponge_min=1] ~ ~ ~
detect ~ ~ ~ minecraft:water 0 setblock ~ ~ ~ minecraft:sponge
「detect」で、投げたスポンジが水に入った瞬間、その場にスポンジブロックを設置します。
/execute @e[type=Item,score_isSponge=1,score_isSponge_min=1] ~ ~ ~
detect ~ ~ ~ minecraft:sponge 0
kill @e[type=Item,score_isSponge=1,score_isSponge_min=1,c=1]
「detect」によって、スポンジが設置された瞬間に、アイテム化しているスポンジが、近くのアイテム化しているスポンジを殺します。つまり自分を殺し、アイテム化しているスポンジは消滅します。種を投げて種まきするコマンドの解説
次に、「A」「B」「C」のコマンドブロックの中身を解説します。
/scoreboard players set @e[type=Item] isSeed 1
{Item:{id:"minecraft:wheat_seeds"}}
/execute @e[type=Item,score_isSeed=1,score_isSeed_min=1] ~ ~ ~
detect ~ ~-1 ~ minecraft:farmland 0 setblock ~ ~ ~ minecraft:wheat
「detect」で、投げた種が耕した土の上に来た瞬間、その場に小麦を植えます。
/execute @e[type=Item,score_isSeed=1,score_isSeed_min=1] ~ ~ ~
detect ~ ~ ~ minecraft:wheat 0
kill @e[type=Item,score_isSeed=1,score_isSeed_min=1,c=1]
この時、「detect」を「~ ~ ~」にするので、小麦を植えたら即消えるようになっています。
この仕掛けの注意点として、既に植えてある小麦に種を投げても消えてしまいます....
ディスペンサーで種まきしたり、水抜きしたり.....
なかなか楽しそうです。
今回解説したコマンドがお役に立てれば幸いです。
「これはどうするの?」などコメント待ってます。
executeコマンドで「地面にアイテム”金の剣”が着地した時に金の剣周りのエンティティをkillするコマンドを考えております。
executeコマンドでデータタグはどこに入れれば良いのでしょうか?
/execute @e[type=Item] ~ ~ ~ kill @e[type=!Player,r=10]では金の剣指定ができず困り果てています
executeコマンドでは残念ながらNBTタグの指定はできません。ですので金の剣のアイテムエンティティにタグを付与して判別する必要があります。(タグを付与するscoreboardコマンドではNBTタグが使えます)
/scoreboard players tag @e[type=Item,c=1] add isGoldSword {Item:{id:”minecraft:golden_sword”,tag:{display:{Name:”金の剣”}}}}
▲を常時実行すれば「金の剣」と名のついた金の剣に「isGoldSword」タグが付きます。
それから
/execute @e[type=Item,tag=isGoldSword] ~ ~ ~ kill @e[type=!Player,r=10]
を実行すれば”金の剣”の周囲のエンティティをキルできます。
紙を投げると、GIVEコマンドが動いてインベントリに紙が増える。という仕組みで、
1つの紙だけで無限に紙が投げられるようにしたいのですが、どうすればいいでしょうか?
もしくは、アイテムを一つのスロットに複数持っていても、数字が見えないようにする方法を・・・
自己解決しました