こんにちは。
現在、ホラーゲームをMZで作っています。
戦闘ではなくマップ上で敵に追われて捕まった時に、追われる直前に戻すリトライ機能を実装したいと考えています。
【導入プラグイン】
ケケー様の「Keke_TimingCommon - タイミングコモン(バージョン: 1.2.1)」
【やりたいこと】
敵イベントがプレイヤーに接触
↓
敵のイベントページでゲームオーバー処理
↓
ゲームオーバー時にコモンイベント実行(プラグインで実行可能)
↓
リトライ機能を選択
↓
敵に追われる直前のイベントに戻る
【現状と相談】
上記のプラグインで、ゲームオーバー時にコモンイベントを入れることができるようになりました。
コモンイベントを使用して、敵に追われる直前にイベントを戻したいと考えています。
上記の様にマップに配置したイベント内にラベル、コモンイベント内にラベルジャンプを設定してみましたが、選択肢で「リトライ」を選んでもそのままコモンイベントがループしてしまいます。
イベントの中断等を入れてみてもだめでした。
ラベル&ラベルジャンプは両方ともコモンイベント内に置かないと機能しないという記事を拝見しました。
(まっつUP様のMVツクマテ記事)
https://tm.lucky-duet.com/viewtopic.php?t=1799
戦闘ではなく接触イベントでゲームオーバー処理をした場合、コモンイベントを使用してどのようにリトライ機能を実装すればいいのか分かりません。(=追われる直前までイベントを巻き戻す方法が分かりません)
イベントでゲームオーバー処理した場合の、リトライ機能を実装する方法をご教授いただけますと幸いです。
【解決】ゲームオーバーをイベント処理した時のリトライ機能について
Re: ゲームオーバーをイベント処理した時のリトライ機能について
このプラグインの仕様がよくわかりませんが、マップ移動する事を想定していると思います。
ラベルジャンプは、そもそもイベントコマンドを1行ずつ検索して、同じラベルの名前を探すという処理をします。
別イベントのラベルを探したりすると、同じ名前のラベルをつけることが出来ないし、スイッチのように全体で管理する必要が出てきます。
同一イベント内でラベルは使用するものです。
イベントでゲームオーバーの処理をするのではなく、
リトライ機能というコモンイベントの呼び出しをするのがいいかもしれません。
その場合、イベント処理の中断で、呼び出し元のイベントに戻ります。
リトライというスイッチをオンにして、リトライ用のイベントが起動するようにするといいと思います。
巻き戻すというのが、敵キャラ等のイベント位置を初期位置にしたい場合は、
ゲームオーバー用マップに移動してから、元にマップに移動させます。
マップ移動などを挟むと、元々のマップID等を変数に代入して、作成する必要があります。
変数の操作→ゲームデータ→その他→マップID
キャラクター→プレイヤー→マップX/Y
イベントを自動実行させた後、イベントの一時消去を使うと、再びマップに入った時にイベントは復活して再び実行されます。
マップと初期位置を変数に保存する。
場所移動→変数で移動
代入した変数を指定します。
ゲームオーバー用マップで、保存した位置へ移動させる。
もう一度マップに入り、イベントの位置はもとに戻り、一時消去されたイベントは復活しています。
リトライスイッチがオンの場合は、少し処理を変えたりする事が出来ます。
もし、HPを減らしてゲームオーバーになる仕様の場合には、特徴にステートの無効化「戦闘不能」を設定すると、HPが0になってもゲームオーバーにはなりません。
その場合、HPが0の場合の条件分岐で判定出来ます。
ラベルジャンプは、そもそもイベントコマンドを1行ずつ検索して、同じラベルの名前を探すという処理をします。
別イベントのラベルを探したりすると、同じ名前のラベルをつけることが出来ないし、スイッチのように全体で管理する必要が出てきます。
同一イベント内でラベルは使用するものです。
イベントでゲームオーバーの処理をするのではなく、
リトライ機能というコモンイベントの呼び出しをするのがいいかもしれません。
その場合、イベント処理の中断で、呼び出し元のイベントに戻ります。
リトライというスイッチをオンにして、リトライ用のイベントが起動するようにするといいと思います。
巻き戻すというのが、敵キャラ等のイベント位置を初期位置にしたい場合は、
ゲームオーバー用マップに移動してから、元にマップに移動させます。
マップ移動などを挟むと、元々のマップID等を変数に代入して、作成する必要があります。
変数の操作→ゲームデータ→その他→マップID
キャラクター→プレイヤー→マップX/Y
イベントを自動実行させた後、イベントの一時消去を使うと、再びマップに入った時にイベントは復活して再び実行されます。
マップと初期位置を変数に保存する。
場所移動→変数で移動
代入した変数を指定します。
ゲームオーバー用マップで、保存した位置へ移動させる。
もう一度マップに入り、イベントの位置はもとに戻り、一時消去されたイベントは復活しています。
リトライスイッチがオンの場合は、少し処理を変えたりする事が出来ます。
もし、HPを減らしてゲームオーバーになる仕様の場合には、特徴にステートの無効化「戦闘不能」を設定すると、HPが0になってもゲームオーバーにはなりません。
その場合、HPが0の場合の条件分岐で判定出来ます。
【解決】Re: ゲームオーバーをイベント処理した時のリトライ機能について
chro様ご返信ありがとうございます。
返信内容を何度も読み、四苦八苦&試行錯誤しながらなんとか実装できました
最終的に、プラグインを使用せずにリトライ機能を実装することができました。
「コモンイベントでリトライ機能を実装しよう」とざっくりネットに書いてはあれど、具体的な設定方法を載せているサイトを見つけられなかったためとても助かりました。本当にありがとうございました!
今後、同じことで検索する方のため&忘備録として設定した方法をこちらのトピックに残しておこうと思います。
(ご教授いただいたものと微妙に違う設定になっている気がしますが、今のところテストプレイで無事思った通りの動作をしたので大丈夫だと……思います……)
■機能実装できたため、これにて解決とさせていただきます■
2023/1/16追記
①の画像、自動実行だとうまく位置保存ができない場面が出てきたため、
並列処理の方が良いことがわかりましたので修正しました。
返信内容を何度も読み、四苦八苦&試行錯誤しながらなんとか実装できました
最終的に、プラグインを使用せずにリトライ機能を実装することができました。
「コモンイベントでリトライ機能を実装しよう」とざっくりネットに書いてはあれど、具体的な設定方法を載せているサイトを見つけられなかったためとても助かりました。本当にありがとうございました!
今後、同じことで検索する方のため&忘備録として設定した方法をこちらのトピックに残しておこうと思います。
(ご教授いただいたものと微妙に違う設定になっている気がしますが、今のところテストプレイで無事思った通りの動作をしたので大丈夫だと……思います……)
■機能実装できたため、これにて解決とさせていただきます■
2023/1/16追記
①の画像、自動実行だとうまく位置保存ができない場面が出てきたため、
並列処理の方が良いことがわかりましたので修正しました。