コモンイベントからイベントを終了させたい

返信する
もももん
記事: 14
登録日時: 2021年9月10日(金) 12:30

コモンイベントからイベントを終了させたい

投稿記事 by もももん »

コモンイベントからイベント処理の中断をしても
そのまま、中断したいコモンイベントが発生してしまいます

コモンイベントではなく、そのまま記述すれば
ちゃんとイベント処理の中断はしてくれるのですが
なにか、上手くイベントを終わらせる方法など、ないでしょうか?

よろしくお願いします
添付ファイル
bf2809e562989ff715e62d0e0f60c653.png
bf2809e562989ff715e62d0e0f60c653.png (16.16 KiB) 閲覧された回数 2630 回
55a7601b7f45c94c820e25423a8b3be8.png
55a7601b7f45c94c820e25423a8b3be8.png (19.89 KiB) 閲覧された回数 2630 回
アバター
Plasma Dark
記事: 731
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: コモンイベントからイベントを終了させたい

投稿記事 by Plasma Dark »

イベントからコモンイベントを呼び出すと、子のインタープリターが生成されて実行されます。
イベントの中断コマンドは、実行中のインタープリターが持つコマンドリストの最後までジャンプする処理になっているため、親インタープリターについては全く干渉しません。

マップ上で実行されている並列処理でないイベントを強制終了するプラグインコマンドを書いてしまう手は考えられます。
もももん
記事: 14
登録日時: 2021年9月10日(金) 12:30

Re: コモンイベントからイベントを終了させたい

投稿記事 by もももん »

Plasma Dark さんが書きました:イベントからコモンイベントを呼び出すと、子のインタープリターが生成されて実行されます。
イベントの中断コマンドは、実行中のインタープリターが持つコマンドリストの最後までジャンプする処理になっているため、親インタープリターについては全く干渉しません。

マップ上で実行されている並列処理でないイベントを強制終了するプラグインコマンドを書いてしまう手は考えられます。
Plasma Dark様

詳しい説明ありがとうございます
なぜ駄目なのか、理解できました

申し訳ないのですが
並列処理でないイベントを強制終了するプラグインコマンドというのは
どういう風にすればよいのでしょうか?

教えて頂いてもよろしいでしょうか?
よろしくお願いします
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: コモンイベントからイベントを終了させたい

投稿記事 by 名無し蛙 »

多分欲しい機能はこういう感じですか

コード: 全て選択

// 実行時点で全てのイベント処理を中断する
for(let i = $gameMap._interpreter; !!i; i = i._childInterpreter) i.command115();
頭の体操って感じですけど。
「イベント処理の中断」の代わりに「スクリプト」から上記のコードをコピペすれば動作すると思います。
起点となる処理がバトルイベント、マップ並列イベント、コモン並列イベントの場合は適用範囲外です。
Parentも保存していたらもう少し汎用的になったんですけどねぇ。
もももん
記事: 14
登録日時: 2021年9月10日(金) 12:30

Re: コモンイベントからイベントを終了させたい

投稿記事 by もももん »

名無し蛙 さんが書きました:多分欲しい機能はこういう感じですか

コード: 全て選択

// 実行時点で全てのイベント処理を中断する
for(let i = $gameMap._interpreter; !!i; i = i._childInterpreter) i.command115();
頭の体操って感じですけど。
「イベント処理の中断」の代わりに「スクリプト」から上記のコードをコピペすれば動作すると思います。
起点となる処理がバトルイベント、マップ並列イベント、コモン並列イベントの場合は適用範囲外です。
Parentも保存していたらもう少し汎用的になったんですけどねぇ。
名無し蛙様

回答ありがとうございます
上手くできました
ありがとうございます
返信する

“MV:質問”に戻る