ページ 1 / 1
条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月03日(金) 15:31
by sunagimo
お世話になっております。Sunagimoです。
掲題の件ですが、戦闘中に敵が全滅したことを判定してイベントを分岐させたいのですが
こちら、ターン終了時に条件分岐で敵♯1~8がステート:戦闘不能になっているとき、という条件を
組んだのですが、どうやらこの方法では敵が全滅しているかどうかを判定できないらしく、困っています。
他に何か方法をご存知の方はいらっしゃいませんでしょうか。
ちなみに、まっつUP様に以前作成頂いた
TroopDefeatcondition.js(https://tm.yumineko.com/viewtopic.php?f=23&t=6191&p=22580#p22580)
で敵が全滅しても勝利判定に流れないプラグインを使用しています。
Re: 条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月03日(金) 23:32
by フトコロ
sunagimo さんが書きました:こちら、ターン終了時に条件分岐で敵♯1~8がステート:戦闘不能になっているとき、という条件を
組んだのですが、どうやらこの方法では敵が全滅しているかどうかを判定できないらしく、困っています。
プラグインの仕様を考えると、その方法で判定できると思うのですが
具体的にどのようなイベントを組んだのか提示してもらえますか?
Re: 条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月04日(土) 00:59
by sunagimo
>フトコロ様
返答ありがとうございます。
組んだイベントの内容としては以下になります。
・敵グループの1P目に「条件:ターン0」「スパン:バトル」
・敵グループの2P目に「条件:ターン終了」「スパン:ターン」
・2P目のイベント内でコモンイベント「手仕込み敵全滅判定」を呼び出し
・コモンイベント「手仕込み敵全滅判定」の内容はスクショの通り、敵を順番に戦闘不能ステート判定しています
Re: 条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月04日(土) 01:09
by フトコロ
その条件分岐の組み方の場合では
敵グループが8体で、かつすべての敵が戦闘不能になっている必要があります。
設定されていない敵#のステートの判定は、できないため
うまく動作しないのだと思います。
Re: 条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月04日(土) 01:51
by sunagimo
なるほどぉ。条件を絞って敵2体のグループで、2体分の条件分岐で戦闘不能かどうかを
条件分岐させてみたら、判定が通ることを確認出来ました。
しかし、これでは敵グループ毎に敵の数に応じて都度条件分岐を作る必要があり
汎用性がなく作業がきついですね……。
今作ではひとつのバトルグループの冒頭でHIME_EnemyReinforcementsを使ってランダムで
敵グループを生成しているため、敵の数が状況によってバラバラなのです。
条件分岐のスクリプトで、敵が場に存在しているかどうかを判断する等の方法は可能でしょうか。
Re: 条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月04日(土) 12:13
by フトコロ
sunagimo さんが書きました:条件分岐のスクリプトで、敵が場に存在しているかどうかを判断する等の方法は可能でしょうか。
バトル中に敵の状態を確認するのに使えるスクリプトを紹介します。
・敵グループの全メンバーを参照
$gameTroop.members()
・敵グループの生存しているメンバーを参照
$gameTroop.aliveMembers()
・敵グループの戦闘不能のメンバーを参照
$gameTroop.deadMembers()
どれも配列でメンバーのデータを取得しますので
末尾に".length"をつければそれぞれの人数が分かります。
今回はどの敵が戦闘不能か知る必要はなく、全滅かどうかなので
生存しているメンバーが 0 人なら全滅です。
つまり、以下の条件式です。
$gameTroop.aliveMembers().length == 0
※なお、本来なら$gameTroop.isAllDead() でも同じなのですが
まっつUPさんのプラグインによって処理が変わっているためisAllDead() は使えません
Re: 条件分岐で敵が一体も居ないことを条件に分岐を行いたい
Posted: 2018年8月04日(土) 15:05
by sunagimo
>フトコロ様
$gameTroop.aliveMembers().length == 0
こちらのスクリプトを使用すること敵の全滅判定を取ることが出来たため
希望通りの処理を行うことが出来ました!
ありがとうございます!