この記事ではMCreator2025.2の情報を執筆しています。
こんにちは、もえやです。3年ほど前からMCreatorの制作動画をYoutubeにアップしています。
今回は、心臓を取引する村人を作ります。
村人の職業を作る
プラスから、村人の職業を作成します。

名前を入れて、新しい村人の職業を作成、を押します。

この部分を好きに設定し、保存します。

村人の心臓を作る
プラスから、アイテムを作成します。

名前を入れて、新しいアイテムを作成、を押します。

テクスチャを設定し、トリガーに移動します。

アイテムがインベントリにある間のティック、のプラスから、プロシージャを作成します。

フロー制御から、もし~実行を持ってきます。

ロジックから、これらのプロシージャを持ってきます。

アイテムプロシージャのデータから、カスタムNBTタグを取得するプロシージャを持ってきます。

ワールドプロシージャのアクションから、範囲内のエンティティに対して実行するプロシージャを持ってきます。

ロジックから、エンティティのタイプを調べるプロシージャを持ってきます。

高度から、カスタムコードスニペットを持ってきます。

エンティティプロシージャのデータから、これらのプロシージャを持ってきます。

フロー制御から、指定時間後に実行する処理を持ってきます。

エンティティプロシージャのアクションから、ダメージを与えるプロシージャを持ってきます。

エンティティプロシージャのデータから、最大体力を取得するプロシージャを持ってきます。

アイテムプロシージャのアクションから、NBTタグをセットするプロシージャを持ってきます。

このように設定し、アイテムがインベントリに入ったら、取引した村人をキルする様にします。

コードスニペット内部はこのように記載し、村人の職業を特定しています。
moeyamodfにはmodIDを、brokerには村人の職業を入れます。
((Villager) entityiterator).getVillagerData().getProfession().toString().equals(“moeyamodf:broker”)
村人の取引を作る
プラスから、村人の取引を作成します。

名前を入れて、新しい村人の取引を作成、を押します。

プラスから取引を追加し、このように設定します。

取引する村人を識別するプロシージャを作る
プラスから、プロシージャを作成します。

名前を入れて、新しいプロシージャを作成、を押します。

グローバルトリガーを、プレイヤーがエンティティに右クリックする、にします。

ワールドプロシージャのデータから、エンティティがいるかどうかを調べるプロシージャを持ってきます。

エンティティプロシージャのアクションから、NBTタグをセットするプロシージャを持ってきます。

このように設定し、一度広い範囲に同じ名前のNBTタグが付いていたら消して、右クリックしたエンティティに再度タグをつけなおします。

コードスニペットは先ほどとほとんど同じですが、対象がイベントターゲットエンティティの場合はentity、エンティティイテレータの場合はentityiteratorにします。
保存して完成です。
このように、ハートを売ってくれる村人の職業ができました。
