全滅時の挙動の制御(イベント戦対策)
以前つくったやつ
少し前に、全滅したときMZデフォルトのゲームオーバー画面に飛ばしてからタイトルに戻るという挙動ではなく、ゲームオーバー画面に飛ばさずにプラグインパラメータで設定した変数が示す場所に移動した上でプラグインパラメータで指定したコモンイベントを実行させる、というのを書きました。
これはこれでよかったんですが、別の問題が発生しました。
イベント戦の場合
なんか会話とかしてそのまま戦闘に突入するやつがあるじゃないですか。たとえばこういうのです。
プラグインなしのデフォルトだと、ここに出ている戦闘で負けたら問答無用でゲームオーバー画面に飛ばされてしまうので、後続の処理は問題になりません。しかし、いまはプラグインが入っています。この状態でこのイベント戦で負けたらどうなるでしょう?
イベント戦負け
→プラグインが場所移動を予約
→プラグインがコモンイベントを予約
→Scene_Mapに戻る
→予約されていた場所移動実行
→戦闘が入っていたもとのイベントに書いてある後続の処理(!)
→予約されていたコモンイベント実行
という動作になります。つまり、上記の場合だとイベント戦で勝っても負けてもいかずちのつえは手に入ってしまいます。これはおもてたんとちがう。
どうする?
イベントページ内の戦闘の処理が最後になるようにして、勝ち負けでスイッチなり変数なりをどうこうしてというのを少し考えたんですが、これまでにもイベント戦闘のあとあれこれするような書き方をいくつかしてしまっていました。そこも修正の必要が出てきそうです。正直めんどくさい。
改良ポイント
ということでプラグインの側を直すことにしました。まぁでもなんのことはない、Scene_Map に戻る前に、場所移動の予約とコモンイベントの予約といっしょにスイッチを入れちゃいます。そうすると、「負けたときだけ入るスイッチ」ができることになるので、イベント戦闘のページ内の後続の処理はそのスイッチで条件分岐しちゃえばOKですね。ということでバージョンアップです。
ダウンロードはこちら
CSVN_loseThenBack.js
※右クリックでDL。