RPGツクール2000/バグ・エラー
■定期的に並列処理するが最後まで実行されない
(更新:2015/11/21)


定期的に並列処理するを実行し、
最後までイベントが実行されない時の原因と対策を紹介します。



☆イベント出現条件を使っている場合

イベント出現条件を設定している場合、
イベントの設定状況によっては、最後までイベントが実行されない事があります。

【1】
以下のように定期的に並列処理するイベント出現条件が設定されている場合、
スイッチ0001番がONになりますと、このイベントが実行されます。



【2】
初めの文章:あいうえおは問題なく実行されます。



【3】
次のスイッチの操作:[0001]をOFFにするが実行される事により、
このイベントのイベント出現条件の条件が満たさなくなりますが、
この段階ではまだスイッチのOFFが有効にはなっていませんので、
イベント処理は続きます。



【4】
ウェイトの実行により、スイッチのOFF設定が有効になります。
定期的に並列処理するでは、
イベント出現条件が満たさなくなった時点でイベントが終了しますので、
ウェイト以降の処理(文章の表示:かきくけこ)は実行されません。


このようなイベントを設定する場合は、
◆スイッチの操作:[0001]をONにする
の設定をイベント実行内容の最後に設定してください。



コモンイベント出現条件スイッチを満たさなくなって処理が中断した場合は、
再び出現条件スイッチがONになってコモンイベントが再起動した時には、
イベント処理が止まった所から処理が再開されます。
上記の設定をコモンイベントで実行した場合は、
スイッチOFFで一度イベントが終了した後に再びスイッチをONにした時には、
ウェイトの次の行から処理が再開され、「かきくけこ」が表示されます。



自動的に始まるの場合は、途中でイベント出現条件が満たされなくなっても、
イベント実行内容の最後まで処理されます。



☆指定動作の全実行を使っている場合

指定動作の全実行を使っている場合、イベントの設定状況によっては、
指定動作の全実行の所で処理が止まってしまう事があります。

■バグの確認
このバグの確認方法は、指定動作の全実行の前後に変数を1つずつ設定してください。
◆変数の操作:[0001:確認用1]加算,1
◆指定動作の全実行
◆変数の操作:[0002:確認用2]加算,1

そして「イベントが止まった!」と思ったら、F9で変数の値を確認してみてください。
変数0001番=560
変数0002番=559

このように下の方の変数の値が1少ない場合は、
この指定動作の全実行でイベント処理が止まっている事になります。


■原因
イベントコマンド:キャラクターの動作指定で、
オプション:移動できない場合は無視のチェックを設定せずに、
マップイベントの移動設定を行い、
その移動設定によって、移動できないマスへ移動してしまう状態である場合は、
指定動作の全実行でイベントを実行しますと、
コンピューターが処理のできないイベント設定があるために、
指定動作の全実行の所でイベント処理が止まってしまいます。


■対策
キャラクターの動作指定の移動処理を設定しているイベントに、
オプション:移動できない場合は無視を設定するなど、
原因になりそうな部分は排除する必要があります。

どうしても原因元が分からない時には、
◆指定動作の全解除
◆キャラクターの動作指定:〜実行したい動作指定〜
◆指定動作の全実行

と言ったように、一旦動作指定を全て解除して、
その上で実行したい動作指定を設定すると良いでしょう。

他のイベントでキャラクターの動作指定を使っているために、
指定動作の全解除が使えない時には、
◆キャラクターの動作指定:〜実行したい動作指定〜
◆ウェイト:〜動作指定を動かす時間〜
と言ったように、指定動作の全実行の代わりにウェイトを設定すると良いでしょう。
【移動速度に合わせたウェイトの設定時間を確認】



◎関連ページ
 ●ツクールの仕様
 ●「自動的に始まる」と「定期的に並列処理する」の違い
 ●イベントコマンド:キャラクターの動作指定
 ●イベントコマンド:指定動作の全実行
 ●イベントコマンド:指定動作の全解除
 ●イベントコマンド:ウェイト


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール