1.
イベントスクリプトにおいて複雑な処理をするうえで 必須となるループ処理について解説する。 ループ処理で使用するスクリプトは Start と GoTo である。 エベントスクリプトは、上から下に順々に読み込まれていくが、 スクリプトでGoToと記述されていると、 そこからひとつ前のStartと記述されているところまで戻る。 2.
ループ処理を実際に作成してみた。 まず、最初に一時変数aに0を代入させる。 一時変数が3未満の場合、一時変数aに1をプラスさせる。 そして、GoToの個所から、Startまで戻る。 それを、繰り返して行い、一時変数aが3以上になったときに GoToの個所が飛ばされ、イベントは終了となる。 このような使い方が、ループ処理の基本となる。 このスクリプトを実際に実行すると、下図のようになる。 3.
ループ処理を行う場合、組み方に問題があると 永遠にイベントが終わらない事になりかねない。 いわゆる、無限ループというものであるが これは、絶対に避けなければならない。 それを回避する基本的な方法を解説する。 一つ目は、上述のとおり一時変数を使用する方法である。 一時変数でなくても、Flagや他の変数などでも構わないが。 もう一つは、 「はい」「いいえ」で分岐させる方法である。 「はい」か「いいえ」のどちらを選択するかによって ループするか、イベントが終了するかを決定する。 左図の場合は、「いいえ」を選択すると 最初の選択肢まで戻される。 この場合、「はい」を選択しないと 永遠にイベントは終了しない。 以上のふたつが、ループ処理を使用したスクリプトで よく見られる無限ループの回避方法である。 4.
ループ処理を使用したスクリプトは ミスをすると永遠にイベントが終了しないという 事態が発生する。 イベントスクリプトを触れないプレイヤーが オリジナルシナリオをプレイ中にこのバグに遭遇すると それ以上ゲームを進行させることが出来なくなる可能性がある。 極めて深刻なバグとなる危険性をはらんでいる。 ゆえに、ループ処理を行う際は テストプレイを入念に行うことが推奨される。 |