「GoToコマンド」の編集履歴(バックアップ)一覧に戻る
GoToコマンド - (2006/09/21 (木) 16:08:10) のソース
**GoToコマンド シナリオ中でGoToコマンドを実行すると、指定したラベルへと移動することができます。 コマンド名からしてその流れは一方通行のようですが、Returnコマンドで戻ってこれます。その後も何事も無かったかのように動作します。 もちろんExitで終了しても問題なし。 引数の無いCallコマンドとでも言うべきでしょうか。 しかしGoToコマンドはCallコマンドと違って、イベントラベルとして定義されているラベルへも飛ぶことが出来ます。 結局、GoToコマンドはイベントラベルへの移動特化、Callコマンドは通常ラベルへの移動特化として使い分けたほうが混乱も無くていいですね。 -追記 Date:06/09/21 本来サブルーチンは「呼び出される→Returnコマンドが実行され、呼び出された場所へ戻る」というのが普通の動作だが、適当なラベルを用意し、GoToコマンドでそのラベルへ飛ぶことでどこへでも帰ることができる。 GoToコマンドによる帰還のメリットとして、サブルーチン内で作成されたローカル変数が削除されない、というものがある。 これは確認済みで、ローカル変数はExitコマンド、Returnコマンドの実行と同時に削除されていると思われる。 ただし、SRCでは再帰処理が可能なので、Localコマンド実行直後のExitまたはReturnで削除されるわけではない。 そこらへんにご注意を。 -サンプル例 スタート: local test1 = "テスト1" call テストルーチン スタート2: talk test2:$(test2) end Exit テストルーチン: talk test1:$(test1) end local test2 = "テスト2" GoTo "スタート2" ターン 1 味方: talk test2:$(test2) end Exit