この記事ではMcreator2023.4の情報を執筆しています。
こんにちは。もえやです。2年ほど前からMcreatorの制作動画をYoutubeにアップしています。
今回は、エメラルドで交換できる剣ガチャを作ってみようと思います。
エメラルドを持ってガチャブロックに右クリックすると、ノックバック、炎属性、ダメージ増加のどれかのついた剣、もしくは棒と交換できるようにします。
この記事では、エンチャント付きのアイテムの作り方を解説します。
ガチャブロックを作る
プラスから、ブロックを作成します。
名前を入れて、新しいブロックを作成、を押します。
テクスチャを設定し、プロパティタブに移動します。
クリエイティブインベントリタブを設定し、トリガーに移動します。
ブロックを右クリックしたとき、のプラスから、プロシージャを作成します。
まずは、ローカル変数を作成します。
ローカル変数のプラスから、変数を作成。名前を入れて、種類をnumberにし、OKを押します。
同様に、種類をitemstackにしたローカル変数を作成します。
フロー制御から、もし~実行を持ってきます。
左上の設定マークを押すと、そうでなくても、そうでなければ、などを足し足り引いたりできます。
ロジックから、これらのプロシージャブロックを持ってきます。
エンティティプロシージャのデータから、利き手にあるアイテムを取得するプロシージャブロックを持ってきます。
マインクラフトコンポーネントの中から、アイテムを選択するプロシージャブロックを持ってきます。
アイテムプロシージャのアクションから、アイテムスタックを減らすプロシージャブロックを持ってきます。
このように設定し、ブロックをクリックしたとき、利き手にエメラルドを持っていれば、エメラルドを1つ減らして以下の処理を実行するように設定します。
カスタム変数から、これらのプロシージャブロックを持ってきます。
数式から、ランダムな整数を設定するプロシージャブロックを持ってきます。
アイテムプロシージャのデータから、タグからランダムなアイテムを取得するプロシージャブロックを持ってきます。
このように設定し、ランダムに選んだ数字が5以下なら剣の中からランダムで1つを、5より大きければ棒を、ローカル変巣にセットします。
アイテムプロシージャのアクションから、エンチャントをするプロシージャブロックを持ってきます。
このように設定し、ランダムな数字が3以下ならノックバックを、7以上なら炎属性を、それ以外ならダメージ増加を、ローカル変数に設定したアイテムに付けるようにします。
プレイヤープロシージャのアクションから、アイテムをインベントリに追加するプロシージャブロックを持ってきます。
このように設定し、ローカル変数に入っているエンチャント付きのアイテムをインベントリに追加します。
保存して完成です。
エメラルドを持って右クリックすると、今回はエンチャント付きの棒が当たりましたね。