【解決済】エネミーが居るかどうかの条件分岐

けいのすけ
記事: 43
登録日時: 2022年11月02日(水) 04:59

【解決済】エネミーが居るかどうかの条件分岐

投稿記事by けいのすけ » 2024年1月04日(木) 18:20

お世話になっております。
表題の件でお聞かせ下さい。

https://rpgmaker-script-wiki.xyz/condition_mz.php#12
↑コチラの「ツクールMZのスクリプトで条件分岐を行う方法 > MZスクリプトwiki」ページをよく利用させて頂いてるのですが条件分岐にある「敵キャラが出現しているか」を利用した時にエラーが出るのでお知恵をお貸しください。

「敵キャラが出現しているか」
$gameTroop.members()[敵キャラID].isAlive()

この出現しているかの判定が例えばエネミーグループが3体のエネミーがいる場合[敵キャラID]が0,1,2は使える(0,1,2は生きていればtrue、戦闘不能ならfalseが返る)のですが3以降の数値が入った時に

TypeError
Cannot read property 'isAlive' of undefined

というエラーが出ます。
自分の意図する「出現しているか?」判定で欲しいのは敵キャラID3は「false」なのですが…そのような条件分岐の条文はどのように書けばいいのでしょう?
最後に編集したユーザー けいのすけ on 2024年1月04日(木) 19:28 [ 編集 1 回目 ]

アバター
剣崎 宗二
記事: 681
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: エネミーが居るかどうかの条件分岐

投稿記事by 剣崎 宗二 » 2024年1月04日(木) 18:55

完全にfalseになる訳ではありませんが(実返却値はundefinedになります)ifで使うだけなのであればundefinedはfalseと数えられますので、

オプショナルチェーン
https://developer.mozilla.org/ja/docs/W ... l_chaining
が役に立つのかとは思います。

この場合

コード: 全て選択

$gameTroop.members()[敵キャラID]?.isAlive()

ですね。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
けいのすけ
記事: 43
登録日時: 2022年11月02日(水) 04:59

Re: エネミーが居るかどうかの条件分岐

投稿記事by けいのすけ » 2024年1月04日(木) 19:27

剣崎さま、こちらのトピックもご返信頂いてたのですね!
ありがとうございます!

こちらは希望した挙動になりました!
重ねてお礼申し上げます。

“MZ:質問” へ戻る