YuuuuKiのマイクラ日記

マイクラ配布ワールド制作のこと中心にのんびり書いていきます!

配布ワールド作成で役立つコマンド④ パスワード入力装置編 [マイクラ統合版]

こんばんは!YuuuuKiです。

今日のテーマは「配布ワールド作成で役立つコマンド」です。

謎解きには欠かせない、パスワード入力装置の紹介です(^_-)-☆

 

f:id:YuuuuKi:20210228120612p:plain

 

 

 

完成例

表から見るとこんな感じ。

左のボタンを押すと紙と経験値がもらえます。

その紙に金床でパスワードを書いて、ドロッパーに入れると扉が開く仕組みです。

f:id:YuuuuKi:20210228121106p:plain

 裏から実行される様子を見るとこんな感じです。

f:id:YuuuuKi:20210228151419g:plain

ではでは仕組みを見ていきましょー!

パスワード入力装置

下の画像の番号順に紹介していきます。

f:id:YuuuuKi:20210228142039p:plain

①ドロッパーを比較する

あらかじめ正解のパスワードが書かれた紙を入れたドロッパー(下記画像)を用意しておき、これとプレイヤーがパスワードを書いた紙を入れるドロッパーの中身が一致しているかどうかを比較します。

f:id:YuuuuKi:20210228122405p:plain

<コマンドブロックの設定(参考)>

ブロックの種類:反復

   条件  :無条件

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

<コマンド>

testforblocks Xs Ys Zs Xe Ye Ze X Y Z

Xs Ys Zs  正解のパスワードを入れたドロッパーの座標

Xe Ye Ze 正解のパスワードを入れたドロッパーの座標

X Y Z       扉横のドロッパーの座標

※Xs Ys Zs と Xe Ye Zeは指定する範囲の対角の座標ですが、今回はドロッパーがある1マスだけ指定するので、Xs Ys Zs と Xe Ye Zeは同じ座標で大丈夫です。

プレイヤーがパスワードが書かれた紙をドロッパーに入れ、一致したと判定されれば信号が送られます。

※testforblocksはドロッパーの向きや中身の紙の位置も同じじゃないと一致したと判定されないので気を付けましょう( ..)φメモメモ

 

レッドストーントーチを設置し、扉を開く

①で信号が送られたら、扉を開きます。

<コマンドブロックの設定(参考)>

ブロックの種類:衝撃

   条件  :無条件

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

<コマンド>

setblock X1 Y1 Z1 redstone_torch

X1 Y1 Z1       画像内※の座標

 

ここまでで、パスワードが正解したら扉を開く仕組みは完了!

③以降はあったほうがいいかなというコマンドです。

 

③ドロッパーを設置しなおす

パスワードが一致したことを分かりやすくするために、ドロッパーを再設置します。プレイヤーが入れた紙はなくなります。

<コマンドブロックの設定(参考)>

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

   条件  :条件付き

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

<コマンド>

setblock X Y Z dropper

X Y Z       扉横のドロッパーの座標

 

④ 音を鳴らす

一致したら音を鳴らします。

僕はいつもレベルアップの音を使っています。

<コマンドブロックの設定(参考)>

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

   条件  :条件付き

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

<コマンド>

playsound random.levelup @a

 

⑤ 文章を表示する

さらにわかりやすく、「扉が開いた!」という文章も表示します。

<コマンドブロックの設定(参考)>

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

   条件  :条件付き

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

<コマンド>

say 扉が開いた!

 

以上、少し複雑かもしれませんがこのようにすればパスワード入力装置を作ることができます。

 

ついでに、紙を受け取る仕組みもさくっと紹介しておきます。

紙受け取り装置

f:id:YuuuuKi:20210228143107p:plain

①経験値を与える

経験値がないと金床で記入できません。

<コマンドブロックの設定(参考)>

ブロックの種類:衝撃

   条件  :無条件

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

<コマンド>

xp 1l @p
 

②紙を与える

<コマンドブロックの設定(参考)>

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

   条件  :条件付き

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

<コマンド>

give @p paper

 

 

以上、紙の受け取りは簡単ですね。

では、長くなってしまいましたが、今日も読んでいただきありがとうございました(^^)/