【RPGツクールMZ】戦闘でキャラクターが行動可能かを簡単に判定する


経緯

ツクールMZの戦闘でイベントを組む際、キャラクターが行動可能かどうかを実行条件に入れたいケースが多々あると思います。
ところが、ツクールMZのデフォルト機能にはステート状態で判定するものしかありません。
なので、「ステート〇〇に掛かっていない場合」という条件を複数作成して判定することになります。
ですが、このやり方は

  • ステートに掛かっている場合の欄が空白になって無駄になる

  • ステート情報を変えた時に都度修正が必要

という問題点があります。
そこで、一発で済む方法はないかを調べてみると見つかったので、ここに残しておくことにしました。

敵の条件設定欄
味方の条件設定欄

結論

敵側の設定方法

このスクリプトを条件分岐のスクリプト欄にコピペしてください。
[n]のnは敵のインデックス番号を入れて下さい。
(1番目の場合は0、2番目の場合は1)

$gameTroop.members()[n].canMove()

味方側の設定方法

このスクリプトを条件分岐のスクリプト欄にコピペしてください。
[n]のnは判定するパーティメンバーの順番を入れて下さい。
(1番目の場合は0、2番目の場合は1)

$gameParty.members()[n].canMove()

ただ、これだけだとパーティ編成のあるゲームだと使えません。
なので、事前に任意のアクターがパーティの何番目にいるかを取得しておきましょう。
取得したデータは変数に格納し、nの部分を

$gameVariables.value(n)

にすれば、変数の値を適用することが出来ます。
\V[n]と同じ意味なので、nの部分に変数番号を入れて下さい。

任意のアクターがパーティの何番目にいるかを取得する方法はこちら。

おわりに

こんな簡単に判定する関数があるのに、なぜイベントコマンドに組み込まなかったのか謎です。
仕様的な部分で何か問題があったのでしょうか…。

いいなと思ったら応援しよう!