ページ 1 / 1
【解決済み】アクター1だけが生きている時の条件分岐
Posted: 2022年10月31日(月) 03:26
by はあちむ
はじめまして。バトルシーンを制作しているのですが、
アクターID1のみが生き残っていて、
他の仲間が戦闘不能の場合の条件分岐を作りたいと思っていますが、方法がわからず困っています。
$gameActors.actor(1).isStateAffected(1)
このスクリプトの$gameActors.actor(1)の部分を、ID1~9の複数アクターに設定できればと思い
色々調べているのですが、複数アクターを指定する場合の記述が分りませんでした。
お分かりになる方、教えて頂けますと幸いです。
宜しくお願い致します。
Re: アクター1だけが生きている時の条件分岐
Posted: 2022年10月31日(月) 21:48
by chro
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の昇順に並び替えて、配列を文字列型として比較しています。
Re: アクター1だけが生きている時の条件分岐
Posted: 2022年11月01日(火) 02:22
by はあちむ
chro 様
ご返信ありがとうございます…!
アクター1だけ残っている場合との考え方もあったと事に目からうろこでした…。
実は並び替え戦闘を入れており、ご教授いただいたスクリプトですと、
戦闘パーティで1以外のアクターが戦闘不能・控えメンバーが生き残っている際も、アクター1のみが生き残っているという判定になってしまいます。
この場合はどうしたらよろしいのでしょうか…。
Re: アクター1だけが生きている時の条件分岐
Posted: 2022年11月01日(火) 03:09
by chro
戦闘中の控えメンバーも対象に含める場合は、こちらを利用してください。
コード: 全て選択
//戦闘中に控えメンバーを含めて、アクター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'
Re: アクター1だけが生きている時の条件分岐
Posted: 2022年11月01日(火) 19:22
by はあちむ
ありがとうございます!
無事、思い通りの実装をすることができました。
感謝いたします。本当にありがとうございました!