ページ 1 / 1
コモンイベントからイベントを終了させたい
Posted: 2022年4月08日(金) 01:05
by もももん
コモンイベントからイベント処理の中断をしても
そのまま、中断したいコモンイベントが発生してしまいます
コモンイベントではなく、そのまま記述すれば
ちゃんとイベント処理の中断はしてくれるのですが
なにか、上手くイベントを終わらせる方法など、ないでしょうか?
よろしくお願いします
Re: コモンイベントからイベントを終了させたい
Posted: 2022年4月08日(金) 10:19
by Plasma Dark
イベントからコモンイベントを呼び出すと、子のインタープリターが生成されて実行されます。
イベントの中断コマンドは、実行中のインタープリターが持つコマンドリストの最後までジャンプする処理になっているため、親インタープリターについては全く干渉しません。
マップ上で実行されている並列処理でないイベントを強制終了するプラグインコマンドを書いてしまう手は考えられます。
Re: コモンイベントからイベントを終了させたい
Posted: 2022年4月08日(金) 11:58
by もももん
Plasma Dark さんが書きました:イベントからコモンイベントを呼び出すと、子のインタープリターが生成されて実行されます。
イベントの中断コマンドは、実行中のインタープリターが持つコマンドリストの最後までジャンプする処理になっているため、親インタープリターについては全く干渉しません。
マップ上で実行されている並列処理でないイベントを強制終了するプラグインコマンドを書いてしまう手は考えられます。
Plasma Dark様
詳しい説明ありがとうございます
なぜ駄目なのか、理解できました
申し訳ないのですが
並列処理でないイベントを強制終了するプラグインコマンドというのは
どういう風にすればよいのでしょうか?
教えて頂いてもよろしいでしょうか?
よろしくお願いします
Re: コモンイベントからイベントを終了させたい
Posted: 2022年4月08日(金) 12:01
by 名無し蛙
多分欲しい機能はこういう感じですか
コード: 全て選択
// 実行時点で全てのイベント処理を中断する
for(let i = $gameMap._interpreter; !!i; i = i._childInterpreter) i.command115();
頭の体操って感じですけど。
「イベント処理の中断」の代わりに「スクリプト」から上記のコードをコピペすれば動作すると思います。
起点となる処理がバトルイベント、マップ並列イベント、コモン並列イベントの場合は適用範囲外です。
Parentも保存していたらもう少し汎用的になったんですけどねぇ。
Re: コモンイベントからイベントを終了させたい
Posted: 2022年4月08日(金) 18:29
by もももん
名無し蛙 さんが書きました:多分欲しい機能はこういう感じですか
コード: 全て選択
// 実行時点で全てのイベント処理を中断する
for(let i = $gameMap._interpreter; !!i; i = i._childInterpreter) i.command115();
頭の体操って感じですけど。
「イベント処理の中断」の代わりに「スクリプト」から上記のコードをコピペすれば動作すると思います。
起点となる処理がバトルイベント、マップ並列イベント、コモン並列イベントの場合は適用範囲外です。
Parentも保存していたらもう少し汎用的になったんですけどねぇ。
名無し蛙様
回答ありがとうございます
上手くできました
ありがとうございます