【解決済】直前の戦闘で逃走したかをスクリプトで判定できるか

RPG作るマン
記事: 14
登録日時: 2021年11月14日(日) 01:42

【解決済】直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by RPG作るマン » 2023年5月29日(月) 20:47

こんにちは!

ニッチな需要になってしまうのですが、条件分岐のスクリプトで
【直前の戦闘で敵から逃走したか】を判定することは出来るのでしょうか。

直前の戦闘で敵を倒したか、敵から逃走したかで
セリフが変わる仕様を実装したいと思い、質問させていただきました。
最後に編集したユーザー RPG作るマン on 2023年6月01日(木) 22:22 [ 編集 1 回目 ]

ecf5DTTzl6h6lJj02
記事: 450
登録日時: 2018年12月23日(日) 13:55

Re: 直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by ecf5DTTzl6h6lJj02 » 2023年5月29日(月) 22:07

こんばんは。
RPG作るマン さんが書きました:こんにちは!

ニッチな需要になってしまうのですが、条件分岐のスクリプトで
【直前の戦闘で敵から逃走したか】を判定することは出来るのでしょうか。

直前の戦闘で敵を倒したか、敵から逃走したかで
セリフが変わる仕様を実装したいと思い、質問させていただきました。

念のためにお聞きします。
イベントコマンドの『戦闘の処理』は、逃走可にチェックを入れた場合、勝ったときと、逃走した時で、処理を分岐できるのですが、
そういうことではなく、戦闘から逃げたかどうかをチェックしたいということでしょうか?
RPG作るマン
記事: 14
登録日時: 2021年11月14日(日) 01:42

Re: 直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by RPG作るマン » 2023年5月30日(火) 03:53

ecf5DTTzl6h6lJj02 sさん

返信ありがとうございます!

イベントコマンドの『戦闘の処理』は、逃走可にチェックを入れた場合、勝ったときと、逃走した時で、処理を分岐できるのですが、
そういうことではなく、戦闘から逃げたかどうかをチェックしたいということでしょうか?


情報が不足してましたね、すみません。

特定タイミング発動コモン - TimingInvokeCommon.js
https://plugin.fungamemake.com/archives/2052

こちらのプラグインで、戦闘後(勝利時・逃走時問わず)コモンイベントを差し込んで会話を挿入してます。
ここに差し込んでいる会話内容を勝利時・逃走時で変更したいなと思っております。

ecf5DTTzl6h6lJj02 sさんがおっしゃるように、逃走可にチェックを入れることで処理を分岐し、
望む仕様を実装することは出来ることには出来るのですが、
全てのシンボルエンカウントに上記仕様を実装するのは膨大な修正が必要になり反映漏れも怖いので、
できればコモンイベント内で分岐させたいなと考え、質問させていただきました。
ecf5DTTzl6h6lJj02
記事: 450
登録日時: 2018年12月23日(日) 13:55

Re: 直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by ecf5DTTzl6h6lJj02 » 2023年5月30日(火) 08:37

RPG作るマン さんが書きました:ecf5DTTzl6h6lJj02 sさん

返信ありがとうございます!

情報が不足してましたね、すみません。

特定タイミング発動コモン - TimingInvokeCommon.js
https://plugin.fungamemake.com/archives/2052

こちらのプラグインで、戦闘後(勝利時・逃走時問わず)コモンイベントを差し込んで会話を挿入してます。
ここに差し込んでいる会話内容を勝利時・逃走時で変更したいなと思っております。

ecf5DTTzl6h6lJj02 sさんがおっしゃるように、逃走可にチェックを入れることで処理を分岐し、
望む仕様を実装することは出来ることには出来るのですが、
全てのシンボルエンカウントに上記仕様を実装するのは膨大な修正が必要になり反映漏れも怖いので、
できればコモンイベント内で分岐させたいなと考え、質問させていただきました。

そういうことでしたら、
BattleManager.isEscaped()
で、逃走したかどうかを判定できると思います。

ご確認ください。
RPG作るマン
記事: 14
登録日時: 2021年11月14日(日) 01:42

Re: 直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by RPG作るマン » 2023年6月01日(木) 01:16

ecf5DTTzl6h6lJj02 sさん

返信が遅くなってしまいすみません。
教えてもらったスクリプトで、直前の戦闘で逃走したかどうかを判定できるようになりました。
ありがとうございます!

ただ少し問題もありまして……。
製作中のプロジェクトに導入しているプラグインと相性が悪いようで、
BattleManager.isEscaped()を使った判定方法では、常に【逃走していない】結果が返ってきてしまいます。

FTKR_CustomSimpleActorStatus.js
https://github.com/futokoro/RPGMaker/blob/master/FTKR_CustomSimpleActorStatus.ja.md

こちらステータス画面のレイアウトを変更するプラグインでして、逃走判定とは無関係そうに見えるのですが、
導入しているとスクリプトによる判定ができなくなってしまいます。
もし、原因に心当たりがありましたら追加で情報いただけますとありがたいです。

原因の特定が難しかったり、大規模な改修が必要そうであれば
スクリプトによる判定は諦めてイベントを1つ1つ手直ししていこうと思います。
ecf5DTTzl6h6lJj02
記事: 450
登録日時: 2018年12月23日(日) 13:55

Re: 直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by ecf5DTTzl6h6lJj02 » 2023年6月01日(木) 08:41

こんにちは。
RPG作るマン さんが書きました:ecf5DTTzl6h6lJj02 sさん

返信が遅くなってしまいすみません。
教えてもらったスクリプトで、直前の戦闘で逃走したかどうかを判定できるようになりました。
ありがとうございます!

ただ少し問題もありまして……。
製作中のプロジェクトに導入しているプラグインと相性が悪いようで、
BattleManager.isEscaped()を使った判定方法では、常に【逃走していない】結果が返ってきてしまいます。

FTKR_CustomSimpleActorStatus.js
https://github.com/futokoro/RPGMaker/blob/master/FTKR_CustomSimpleActorStatus.ja.md

こちらステータス画面のレイアウトを変更するプラグインでして、逃走判定とは無関係そうに見えるのですが、
導入しているとスクリプトによる判定ができなくなってしまいます。
もし、原因に心当たりがありましたら追加で情報いただけますとありがたいです。

原因の特定が難しかったり、大規模な改修が必要そうであれば
スクリプトによる判定は諦めてイベントを1つ1つ手直ししていこうと思います。

FTKR_CustomSimpleActorStatus.js を確認したところ、戦闘終了後、マップ画面に移行する際に、
逃走したかのフラグを初期化する処理が入っているため、逃走していないという判定になってしまうようです。

とりあえず、FTKR_CustomSimpleActorStatus.js をJavaScriptを編集できるソフトを使って開き、
2069 行目あたりから始まっている バトル終了後に、逃走フラグを削除 というセクションの内容を
コメントアウトして(各行の先頭に // をつけて)動作を確認してみてください。
特に問題が起きないようでしたら、これで作成を進めてください。
問題が起きるようなら、元に戻してください。

問題が起きてしまう場合は、逃走したかどうかのチェック内容を変える必要があります。
変数の操作 > ゲームデータ > その他 から逃走回数が取得できるようになっているので、
前回の逃走回数、今回の逃走回数 というような2つの変数を用意して、
戦闘終了時のコモンイベントで、随時、逃走回数を記憶しておき、
この二つを比べて変わっている(増えて)なら直前の戦闘で逃走している、
という判定をすればいいかなと思います。

きちんとチェックできていませんが、これで解決できるか(できればいいな)と思います。
ご確認ください。
RPG作るマン
記事: 14
登録日時: 2021年11月14日(日) 01:42

Re: 直前の戦闘で逃走したかをスクリプトで判定できるか

投稿記事by RPG作るマン » 2023年6月01日(木) 22:22

とりあえず、FTKR_CustomSimpleActorStatus.js をJavaScriptを編集できるソフトを使って開き、
2069 行目あたりから始まっている バトル終了後に、逃走フラグを削除 というセクションの内容を
コメントアウトして(各行の先頭に // をつけて)動作を確認してみてください。

なるほど、そもそもプラグインに逃走判定を初期化する記述があったのですね。
しかしながら全容を理解しないままコメントアウトしてしまうのは少し不安ですね……。

変数の操作 > ゲームデータ > その他 から逃走回数が取得できるようになっているので、
前回の逃走回数、今回の逃走回数 というような2つの変数を用意して、
戦闘終了時のコモンイベントで、随時、逃走回数を記憶しておき、
この二つを比べて変わっている(増えて)なら直前の戦闘で逃走している、
という判定をすればいいかなと思います。

変数の操作で逃走回数を取得できることを失念しておりました!
デフォルトの機能で実装できてしまうのであればそれに越したことはないですね。
今回はコモンイベント中に処理を組み込むだけですので、この方法を採用しようと思います。

大変助かりました。
ありがとうございました!

“MV:質問” へ戻る