【解決済み】アクター1だけが生きている時の条件分岐

はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

【解決済み】アクター1だけが生きている時の条件分岐

投稿記事by はあちむ » 2022年10月31日(月) 03:26

はじめまして。バトルシーンを制作しているのですが、
アクターID1のみが生き残っていて、
他の仲間が戦闘不能の場合の条件分岐を作りたいと思っていますが、方法がわからず困っています。

$gameActors.actor(1).isStateAffected(1)

このスクリプトの$gameActors.actor(1)の部分を、ID1~9の複数アクターに設定できればと思い
色々調べているのですが、複数アクターを指定する場合の記述が分りませんでした。

お分かりになる方、教えて頂けますと幸いです。
宜しくお願い致します。
最後に編集したユーザー はあちむ on 2022年11月01日(火) 19:23 [ 編集 1 回目 ]

chro
記事: 86
登録日時: 2021年2月14日(日) 11:26

Re: アクター1だけが生きている時の条件分岐

投稿記事by chro » 2022年10月31日(月) 21:48

1行で設定が楽なのは以下のスクリプトでしょうか。
条件分岐もしくはスイッチのスクリプトで使用します。

最後の''で囲まれたアクターIDが生存中のみ判定されます。
複数のアクターIDを指定する場合は、,区切りでスペースを入れずに、IDの小さい順に入れてください。

コード: 全て選択

//アクターID1のみ生存
$gameParty.aliveMembers().map(actor => actor.actorId()).sort((a, b) => a - b).toString() === '1'

//アクターID 1と12のみ生存
$gameParty.aliveMembers().map(actor => actor.actorId()).sort((a, b) => a - b).toString() === '1,12'


スクリプトは、生存中のアクターIDのみを抽出してから、パーティーの並び順からIDの昇順に並び替えて、配列を文字列型として比較しています。
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: アクター1だけが生きている時の条件分岐

投稿記事by はあちむ » 2022年11月01日(火) 02:22

chro 様
ご返信ありがとうございます…!
アクター1だけ残っている場合との考え方もあったと事に目からうろこでした…。
実は並び替え戦闘を入れており、ご教授いただいたスクリプトですと、
戦闘パーティで1以外のアクターが戦闘不能・控えメンバーが生き残っている際も、アクター1のみが生き残っているという判定になってしまいます。
この場合はどうしたらよろしいのでしょうか…。
chro
記事: 86
登録日時: 2021年2月14日(日) 11:26

Re: アクター1だけが生きている時の条件分岐

投稿記事by chro » 2022年11月01日(火) 03:09

戦闘中の控えメンバーも対象に含める場合は、こちらを利用してください。

コード: 全て選択

//戦闘中に控えメンバーを含めて、アクターID 1のみ生存
$gameParty.allMembers().filter(actor => actor.isAlive()).map(actor => actor.actorId()).sort((a, b) => a - b).toString() === '1'
//戦闘中に控えメンバーを含めて、アクターID 1と12のみ生存
$gameParty.allMembers().filter(actor => actor.isAlive()).map(actor => actor.actorId()).sort((a, b) => a - b).toString() === '1,12'
はあちむ
記事: 15
登録日時: 2021年2月01日(月) 19:53

Re: アクター1だけが生きている時の条件分岐

投稿記事by はあちむ » 2022年11月01日(火) 19:22

ありがとうございます!
無事、思い通りの実装をすることができました。
感謝いたします。本当にありがとうございました!

“MZ:質問” へ戻る