ラテーラのマイクラブログ

冒険・建築・自動化・検証といろいろやってます

ガーディアンのスポーン検証〜コマンド編

f:id:laterraing:20201003090132p:plain

ガーディアンのスポーン座標を特定するコマンドを作りました

※統合版でプレイした内容になります

 

ワールド設定

検証は新たに生成した海底神殿で行います

ワールド設定は以下のとおり

  • ゲームモード:クリエイティブ
  • 難易度:ピース(あとで変更します)
  • 座標を表示:ON
  • モブのアイテムドロップ:OFF
  • 常に昼間:ON
  • 天候の変化:OFF

下3つは快適に検証できるように設定しています

 

海底神殿探し

新しいワールドでは海底神殿がどこにあるのかがすぐにはわからないので、locateコマンドを使って現在地から一番近い海底神殿の座標を調べます

f:id:laterraing:20201003090156p:plain

コマンドを実行すると左上に座標が表示されます

f:id:laterraing:20201003090211p:plain

 

次にtpコマンドを使って調べた座標までテレポートします

f:id:laterraing:20201003090226p:plain

Y値の部分は海面より上の高さになる値を入れておくと海底神殿の真上にテレポートします

f:id:laterraing:20201003090244p:plain

 

スポーン座標を調べるコマンド 

目視でスポーンした場所に印を付けていくのは難しいのでコマンドを作ります

まずは、giveコマンドでコマンドブロックを用意します

f:id:laterraing:20201003090424p:plain

コマンドを実行すると持ち物にコマンドブロックが追加されます

f:id:laterraing:20201003090441p:plain

コマンドブロックはレッドストーン信号でコマンドを動作させることができ、複数のコマンドを組み合わせたり、繰り返し命令を出したりするなど、より複雑なことができるようになります

 

コマンドブロックを↓のように2つ設置し、左の方にはレバーを付けます

f:id:laterraing:20201003090454p:plain

各コマンドブロックの設定画面を開いてコマンドを入力します

<左側>

ガーディアンのいる座標にレッドストーンブロックを設置します

・ブロックの種類:反復

レッドストーンレッドストーンが必要

・最初のティックで実行:ON

・ティックの遅延:10

・コマンド入力:/execute @e [type=guardian] ~ ~ ~ setblock ~ ~1 ~ redstone_block

f:id:laterraing:20201003090600p:plain

環境のせいかタイムラグの発生により、ガーディアンのスポーンと同時にコマンドが実行されない場合があり、ガーディアンが少し沈んでスポーン座標の下の位置にブロックが設置されてしまうことがあるので、わざと10tick沈ませた後、+1の高さにブロックを設置するようにしています

追記:X,Z座標だけ知りたい場合は遅延なしでsetblockの後の座標を~ ~ ~にすると良いです

 

<右側>

ガーディアンを倒します

・ブロックの種類:チェーン

レッドストーン:常にアクティブ

・コマンド入力:/kill @e [type=guardian]

f:id:laterraing:20201003090644p:plain

 

ちなみに"ブロックの種類"を変更すると↓のように見た目が変わります

f:id:laterraing:20201003090702p:plain

 

あとは難易度をイージー以上にしてレバーをONにすると、ガーディアンがスポーンした座標にレッドストーンブロックが設置され、直後にガーディアンが倒されます

f:id:laterraing:20201003090718p:plain

 

コマンドを実行してしばらく待機すると定点にブロックが設置されるので、スポーン座標を特定することができます

f:id:laterraing:20201003090734p:plain

今回は対象がガーディアンですが、統合版ではウィザースケルトンも定点湧きだそうなので、このコマンドはそちらでも使えると思います

 

まだまだコマンドは勉強中なので詳しいことは説明できないのですが、最初はそのままネットで紹介してあるのを丸写しして、一部を自分なりに変えたりして実際に動作させると理解が進むのかなと思います

 

次回は実際にコマンドを使ってスポーン座標を検証します