※本サイトはPRリンクを含みます

【マイクラ統合版】ダメージを受けたら、というトリガーを作る【コマンドの使い方】

ダメージを受けたらトリガー コマンドの使い方

マイクラ統合版で『ダメージを受けたら~』というトリガーをコマンドで作ってみます。

スポンサーリンク

被ダメをトリガーとして拾うことは出来ない?

あくまで筆者の知る限りの話ではありますが、マイクラ統合版では『自分のキャラクターがダメージを受けたら~』に該当するイベントが無いようです。

が、コマンドでいろんなゲームを作っていると
『被ダメきっかけで○○を発動したい』的なケースに割と出くわします。
殴られたら鬼交代とか、殴られたら大爆発とか。

なので、コマンドで疑似的に被ダメトリガーを作ります。

防具の耐久度を利用する

プレイヤーの体力の変化を監視できるトリガーが無いので、代わりに防具の耐久値を利用します。

clear (ターゲット) leather_chestplate 0 0

ターゲットの耐久値MAXの革胸防具を0個削除する

このコマンドでは、ターゲットから防具をクリアする際に、防具に『データ値0(耐久値MAX)』『個数0』を指定することで
・耐久値MAXの防具を持っている→clear成功
・耐久値が削れた防具を持っている→clear失敗

という結果を拾うことが出来ます。

削除する個数は0なので、clearコマンドが成功しても防具はなくなりません。
そのためこのコマンドは反復で実行し、「常に耐久値MAXの防具を持っている」という状況を監視し続けられます。

ただし、今回は被ダメをトリガーとして拾うことが目的なので、コマブロからコンパレーターで成功(信号ON)失敗(信号OFF)を取り出したうえでトーチで反転
・耐久値MAXの防具を持っている→クリア成功→反転→信号OFF
・耐久値が削れた防具を持っている→クリア失敗→反転→信号ON

とします。

clearコマンドを反復で実行することで防具の耐久を常時監視しながら、
『プレイヤーがダメージを受ける=防具の耐久値が削れる』ことでONの信号を拾えるようになります。

なお、ON信号を拾った後は↓

replaceitem entity (ターゲット) slot.armor.chest 0 leather_chestplate 1 0 {“item_lock”:{“mode”:”lock_in_slot”}}

耐久値MAXの防具に置き換えるコマンドを実行して被ダメ待ち(信号OFF)の状態に戻します。

※clearコマンドではアイテム名の後に(データ値)(個数)と並びますが、
 replaceitemコマンドではアイテム名の後に(個数)(データ値)と並ぶ点に注意しましょう。
 これのせいで毎回「どっちだっけ?」と考えるハメになります。

削れ幅を限定できれば反転は要らないかも

上記の方法では『ダメージを負って防具が削れる』ことをトリガーとしていますが、『耐久がいくつ削れるか』はわかっていません。
なので「耐久MAX→反転→ではない」という条件で削れ幅を限定しないようにしています。

もしも削れ幅を限定してコントロールするなら、反転は使用せずに『データ値(耐久値)〇なら』という条件をピンポイントで狙えるんじゃないでしょうか。