5.2■ コマンド
5.2.01■ Adv_Keys コマンド
5.2.02■ Assignmentステートメント: 変数 = 値
5.2.03■ Baro_Pressureコマンド
5.2.04■ Clouds コマンド
5.2.05■ Clouds, Delete コマンド
5.2.06■ Debug_Window コマンド
5.2.07■ Debug_Print コマンド
5.2.08■ Declare コマンド
5.2.09■ Description コマンド
5.2.10■ East_Longitude コマンド
5.2.11■ Else Command コマンド
5.2.12■ ElseIf...[Then] コマンド
5.2.13■ End コマンド
5.2.14■ EndIf コマンド
5.2.15■ EndWhile コマンド
5.2.16■ For...To コマンド
5.2.17■ GoSub コマンド
5.2.18■ GoTo コマンド
5.2.19■ If...[Then] コマンド
5.2.20■ Label コマンド
5.2.21■ Load_Situation コマンド
5.2.22■ Next コマンド
5.2.23■ North_Latitude コマンド
5.2.24■ On...GoSub コマンド
5.2.25■ On...GoTo コマンド
5.2.26■ OnCrash コマンド
5.2.27■ Onexp_Bool_Change...GoSub コマンド
5.2.28■ Onexp_Change...GoSub Command コマンド
5.2.29■ Onexp_Clear コマンド
5.2.30■ Onexp_True...GoSub コマンド

5.2.01■ Adv_Keys コマンド
Adv_Keysコマンドはアドベンチャーによって使用されるキーリストを制御します。リスト
にあるキーはアドベンチャー内で使用できますが、フライトシミュレータでは有効ではあ
りません。リストにないキーはアドベンチャー内で有効ではありません。
OnKeyコマンドで使用するつもりのキーはAdv_Keysコマンドで登録しておく必要があります。
構文
Adv_Keys Add, key, ...
キーリストに追加するキーを指定します。(複数指定も可)すでにリストにあるキーは無視さ
れます。
Adv_Keys Delete, key, ...
キーリストから削除するキーを指定します。(複数指定も可)リストにないキーに対する指定
は無視されます。
Adv_Keys Clear
キーリストから全てのキーを削除します。
使用例
ADV_KEYS ADD, KV(CTRL "r")
ADV_KEYS DELETE, KV(CTRL "r")
ADV_KEYS CLEAR
次の例の中でkeyと書かれている部分はKey値になります。構文上オプションは括弧[ ]で示さ
れています。
KV([CTRL] [SHIFT] "")
上記の例で以下の値がsingle characterの替わりに使用できます。
KEYPAD0, KEYPAD1, KEYPAD2, KEYPAD3, KEYPAD4, KEYPAD5, KEYPAD6, KEYPAD7, KEYPAD8, KEYPAD9, KEYPADPERIOD, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12
5.2.02■ Assignmentステートメント: 変数 = 値
変数に特定の値を入れる。
使用例
DECLARE TargetAltitude
TargetAltitude = 500
5.2.03■ Baro_Pressureコマンド
最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアに気圧(バ
ロメータ)をセットします。
構文
Baro_Pressure pressure , drift
引数
pressure 水銀柱での気圧をインチで指定します。
drift 変化を指定します。driftが真(ゼロでない場合), 値は変化します。driftが
偽(0)の場合は値は固定になります。
使用例
BARO_PRESSURE 29.92,0
5.2.04■ Clouds コマンド
最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアに雲の層
(レイヤー)を作成、変更します。また、雲の層にその特徴を与えることができます。雲の層
は三つまで指定することができます。
構文
Clouds layer , base , top , type , coverage , turbulence , deviation , icing
引数
layer レイヤーの番号を指定します。
base 雲の底の高度(MSL)をフィート単位で指定します。
top 雲の頂上の高度(MSL)をフィート単位で指定します。
type 雲のタイプをキーワードで指定します。
coverage 雲のカバレッジをキーワードで指定します。
turbulence タービュランスの度合いを0〜255までの数値で指定します。
deviation 偏差をフィート単位で指定します。
icing アイシング条件を指定するフラグです。0の場合はアイシングなし、
1でアイシング有りになります。
Note: TYPEパラメータの値によって、他のパラメータの値に制約がでます。
使用例
CLOUDS 1, 10000, 25000, userdefined, scattered1, 0, 0, 0
5.2.05■ Clouds, Delete コマンド
最新のWeatherコマンドによって定義されたフライトシミュレータの天候エリアの雲の層
(レイヤー)を削除します。
構文
Clouds layer , Delete
引数
layer 削除する雲の層の番号を指定します。
使用例
CLOUDS 1, DELETE
5.2.06■ Debug_Window コマンド
デバッグウインドウのオン、オフを行います。
構文
Debug_Window on | off
on パラメータによりデバッグウインドウが開かれ、off パラメターにより閉じられます。
使用例
DEBUG_WINDOW ON
5.2.07■ Debug_Print コマンド
デバッグウインドウへプリント出力する。
構文
Debug_Print print-list
引数
print-list は0又はそれ以上の項目で各々の項目はコンマで区切られた文字列または数値で表
します。コマンドの最後がコンマで終った場合はそのテキストは次のPrintコマンドにコンカ
チされます。(メッセージウインドウ上、改行は行われず、最後の行の続きに表示されます。)
詳しい説明はPrint コマンドを参照して下さい。
使用例
'飛行機の高度をデバッグウインドウに出力する
DEBUG_PRINT PLANE_ALT
5.2.08■ Declare コマンド
後続で使用する特定の名前の新しい変数を一つまたは複数作成します。
構文
Declare variable, variable, ...
引数
variableの名前は文字で始まり文字、数字、アンダースコアが使用できます。
使用例
DECLARE TargetAltitude, actual_alt, Current_Alt1
5.2.09■ Description コマンド
アドベンチャーファイルのヘダーに記入するアドベンチャーの内容説明を指定します。この
内容説明はアドベンチャーとレッスンダイアログボックスに表示されます。
構文
Description string
引数
stringはファイルヘダーに含まれることになる内容説明で、最大で255文字までです。複数行
の内容説明の場合にコンパイラーが各行に付加するスペースを含みます。
参考
Descriptionコマンドは制限文字数に達するまで、何回でも使用できます。
複数のDescriptionコマンドが使用された場合、各文字列の最後にスペースが自動的に追加さ
れます。このスペースも最大文字数にカウントされます。
使用例
DESCRIPTION "This is line one."
DESCRIPTION "This is the second line."
結果: This is line one. This is the second line.
5.2.10■ East_Longitude コマンド
経度を東経で指定する宣言です。負で指定した時は西経となります。
構文
East_Longitude
使用例
'Turkey
NORTH_LATITUDE
EAST_LONGITUDE
'Australia
SOUTH_LATITUDE
EAST_LONGITUDE
5.2.11■ Else Command コマンド
条件による実行です。Ifコマンドとマッチし、以前のElseIfコマンドが条件を満たさず、IFコ
マンドの引数が0でない場合は、次にマッチするElseIf、 Else、 EndIfまで Elseの後続のコマ
ンドが実行されます。
構文
ElseIf 条件 [Then]
キーワードThenはオプションです。
使用例
IF PLANE_ALT > 3000 THEN
PRINT "Altitude is greater than 3,000."
ELSEIF PLANE_ALT > 2000 THEN
PRINT "Altitude is greater than 2,000."
ELSEIF PLANE_ALT > 1000
PRINT "Altitude is greater than 1,000."
ELSE
PRINT "Altitude is less than 1,001."
ENDIF
5.2.12■ ElseIf...[Then] コマンド
後続の命令を条件付きで実行します。Ifコマンドとマッチし、以前のElseIfコマンドが条件
を満たさず、IFコマンドの引数が0でない場合は、次にマッチするElseIf、 Else、 EndIf
まで Elseの後続のコマンドが実行されます。
構文
ElseIf 条件 [Then]
キーワードThenはオプションです。
使用例
IF PLANE_ALT > 3000 THEN
PRINT "Altitude is greater than 3,000."
ELSEIF PLANE_ALT > 2000 THEN
PRINT "Altitude is greater than 2,000."
ELSEIF PLANE_ALT > 1000
PRINT "Altitude is greater than 1,000."
ELSE
PRINT "Altitude is less than 1,001."
ENDIF
5.2.13■ End コマンド
アドベンチャーの論理的な終了マークです。Endコマンドが実行された時にはアドベンチャー
ドライバーはプログラムの最終に達した時と同様、実行を終了します。
構文
End
使用例
IF PLANE_ALT > 4000 THEN
END
ELSE
PRINT "Altitude is less than 4,001."
ENDIF
5.2.14■ EndIf コマンド
If構造の終了マークです。
構文
EndIf
使用例
IF PLANE_ALT > 3000
PRINT "Altitude is greater than 3,000."
ENDIF
5.2.15■ EndWhile コマンド
一般ループです。EndWhileコマンドはマッチするWhileに対し無条件で戻ります。
構文
EndWhile
使用例
WHILE PLANE_BANK > 5
PRINT "Turning left."
ENDWHILE
5.2.16■ For...To コマンド
繰り返しループです。For...To commandコマンドが含まれる行に続く行がマッチするNext
コマンドまで実行されます。 繰り替えし実行される回数は変数がexpression1から
expression2までの間でexpression3は増分です.
構文
For variable = expression1 To expression2 [By expression3]
引数
expression1 ループが開始される時の数を指定します。
expression2 ループが終了する時の数を指定します。
expression3 増分を指定します。これはオプションで指定されない時はデフォルトの
増分は1になります。
参考
もし、expression1がexpression2より大きく、且つexpression3が負でない場合、
For...To.....Nextの間のコードは実行されません。ループが始まった時、expression2
とexpression3は一度だけ評価され、ループ中の変数の値の変更はループそれ自身
には影響を与えません。
BASICの場合Byの替わりにStepが使われます。
使用例
DECLARE Test_Value
'This example will print 2, 3, 4, 5, 6, 7, 8, 9, 10.
FOR Test_Value = 2 TO 10
PRINT "Test value = ",Test_Value
NEXT Test_Value
'This example will print 2, 4, 6, 8, 10.
FOR Test_Value = 2 TO 10 BY 2
PRINT "Test value = ",Test_Value
NEXT Test_Value
'This example will print 5, 4, 3, 2, 1.
FOR Test_Value = 5 TO 1 BY -1
PRINT "Test value = ",Test_Value
NEXT Test_Value
5.2.17■ GoSub コマンド
サブルーチンをコールします。GoSubコマンドが使用された時には、特定のラベルのついた
部分まで飛び、Returnコマンドがでてくるまで、それが実行されます。 Returnコマンドが出
てきた所で、Gosubに続く所に実行ポイントが戻ります。
構文
GoSub label
引数
labelはLabelコマンドによって定義されます。
参考
サブルーチンは50段階までのネストが認められます。
使用例
'もし、飛行機の高度が5000以上の時にはprint文が実行され、その後、END文が実行される。
IF PLANE_ALT > 5000 THEN
GOSUB subAlt_5K
ENDIF
END
subAlt_5K:
PRINT "Altitude is greater than 5,000."
RETURN
5.2.18■ GoTo コマンド
特定のラベルへの即時分岐コマンドです。
構文
GoTo label
引数
labelはLabelコマンドによって定義されます。
参考
Goto以外の制御構造が望ましいですが、いくつかのタスクはGotoコマンドでないと実現で
きません。例えば、大きなエラーが発生した時、アドベンチャーを終了させるのに
GoTo MAIN_ENDコマンドを使用することができます。しかしながら、複数のGotoコマンド
を使用するとコードをトレースすることが困難になります。
使用例
'もし、飛行機の高度が5000以上であれば、END文をスキップしてPRINT文を実行し6000かど
うかをチェックします。
IF PLANE_ALT > 5000 THEN
GOTO subAlt_5K
ENDIF
END
subAlt_5K:
PRINT "Altitude is greater than 5,000."
IF PLANE_ALT = 6000 THEN
PRINT "Aircraft altitude equals 6,000."
ENDIF
5.2.19■ If...[Then] コマンド
後続の命令を条件付きで実行します。条件文が0でなければ、If...[Then] コマンドは後続の
コマンドをマッチするElseIf, Else, EndIfがある部分まで実行します。
構文
If expression [ Then ]
キーワードThenはオプションです。
使用例
'この二つは同じ内容になります。
IF PLANE_ALT = 6000 THEN
PRINT "Aircraft altitude equals 6,000."
ENDIF
IF PLANE_ALT = 6000
PRINT "Aircraft altitude equals 6,000."
ENDIF
5.2.20■ Label コマンド
GoTo, GoSub, OnCrash GoSub等のコマンドが分岐すべきコード中のマーカーを指定します。
GoSubのないOnCrashコマンドはlabelを使用する必要はありません。コマンドによっては
ラベル名の後の内容が異なっていても、一種類のラベル名しか許容しないものがあります。
構文
Label :
参考
・ラベル名は文字で始まり文字、数字、アンダースコアが使用できます。
・ラベル名はユニークでなければなりません。但し、ラベル名と変数名は同じ名前が使用で
きます。
・ラベルはGoto命令の前でも後でもどこにでも置くことができます。
使用例
'MAIN_ENDというラベルをGotoコマンドの後ろに置いたケース。
GOTO MAIN_END
MAIN_END:
END
'GOTO命令をMAIN_ENDというラベルの後に置いたケース
MAIN_END:
END
GOTO MAIN_END
5.2.21■ Load_Situation コマンド
stringによって指定されたシチュエーションファイルをロードします。ドライバーは最初に
カレントディレクトリーをサーチし、その後Situationディレクトリーをサーチし、その後、
Pilotsディレクトリーをサーチします。
構文
Load_Situation string
引数
stringにシチュエーションファイルを指定します。
使用例
'FS98のデフォルトシチュエーションをロードします。
LOAD_SITUATION "FS98"
5.2.22■ Next コマンド
Forループの終了マークです。
構文
Next variable
引数
variableはオプションです。指定した場合はForコマンドで指定した変数と同じでないといけ
ません。
使用例
DECLARE Test_Value
'This example will print 1, 2, 3, 4, 5.
FOR Test_Value = 1 TO 5
PRINT "Test value = ",Test_Value
NEXT Test_Value
5.2.23■ North_Latitude コマンド
緯度を北緯で指定する宣言です。負で指定した時は南緯となります。
構文
North_Latitude
Example
'Canada
NORTH_LATITUDE
WEST_LONGITUDE
'Turkey
NORTH_LATITUDE
EAST_LONGITUDE
5.2.24■ On...GoSub コマンド
条件文を評価し、整数に置き換えます。結果が0であればGoSubでlabel0を実行し、1であれば
label1を実行するという具合です。
構文
On expression GoSub label0, label1, ...
引数
labelパラメータはLabelコマンドによって定義します。
参考
もし、値が0より小さいかラベルの数と等しいか大きい場合、サブルーチンコールは行われず、
後続の命令が実行されます。この場合はエラーにはなりません。
使用例
DECLARE iSeg
FOR iSeg = 1 TO 4
ON iSeg GOSUB subSeg1, subSeg2, subSeg3, subSeg4
NEXT iSeg
SubSeg1:
'Some code...
RETURN
SubSeg2:
'Some code...
RETURN
SubSeg3:
'Some code...
RETURN
SubSeg4:
'Some code...
RETURN
5.2.25■ On...GoTo コマンド
条件文を評価し、整数に置き換えます。結果が0であればlabel0に分岐し、1であればlabel1に
分岐するという具合です。
構文
On expression GoTo label0, label1, ...
引数
labelパラメータはLabelコマンドによって定義します。
参考
もし、値が0より小さいかラベルの数と等しいか大きい場合、分岐は行われず、後続の命令
が実行されます。この場合はエラーにはなりません。
使用例
DECLARE iSeg
FOR iSeg = 1 TO 4
ON iSeg GOTO subSeg1, subSeg2, subSeg3, subSeg4
NEXT iSeg
SubSeg1:
'Some code...
SubSeg2:
'Some code...
SubSeg3:
'Some code...
SubSeg4:
'Some code...
5.2.26■ OnCrash コマンド
ユーザーの機体がクラッシュした時にフライトシミュレータの通常のクラッシュ時の扱いと
異なる特別の取り扱いを行いたい場合に、特別のサブルーチンコールのラベル名を指定します。
構文
OnCrash [GoSub label]
引数
label名はLabelコマンドによって定義します。
参考
GoSub labelを指定しなかった場合はOnCrashコマンドは取り消され、フライトシミュレータ
の通常のクラッシュ時の扱いとなります。
使用例
ONCRASH GOSUB subBent
SubBent:
PRINT "You really bent the airplane this time."
RETURN
5.2.27■ Onexp_Bool_Change...GoSub コマンド
イベントリストに後続のイベントを追加します。また、条件が偽から真に変わった時に
label1がコールされます。label2が指定された時には条件が真から偽に変わった時にコール
されます。イベント起動コマンドとどれだけ頻繁にインタープリターが条件判断を行うか
はイベント起動プログラミングの項目を参照して下さい。
構文
Onexp_Bool_Change expression GoSub label1, [label2]
使用例
ONEXP_BOOL_CHANGE ON_GROUND GOSUB subON_GRND, subAirborne
subON_GRND:
PRINT "Nice landing."
RETURN
SubAirborne:
PRINT "Now you are flying."
RETURN
5.2.28■ Onexp_Change...GoSub Command コマンド
イベントリストに後続のイベントを追加します。また、条件が新しい値に変わった時に
labelがコールされます。イベント起動コマンドとどれだけ頻繁にインタープリターが条件
判断を行うかはイベント起動プログラミングの項目を参照して下さい。
構文
Onexp_Change expression GoSub label
使用例
ONEXP_CHANGE ADF_FREQ GOSUB subADF_Chng
subADF_Chng:
ONEXP_CLEAR subADF_Chng
PRINT "Tune the ADF to 362 for the LOM."
RETURN
5.2.29■ Onexp_Clear コマンド
イベントリストからそのlabelを参照するイベントを削除します。labelが指定されない場合は
全てのイベントをイベントリストから削除します。
構文
Onexp_Clear [label]
使用例
ONEXP_TRUE ON_GROUND GOSUB subON_GRND
subON_GRND:
'Clears the event so it only is triggered once.
ONEXP_CLEAR subON_GRND
PRINT "Nice landing."
RETURN
5.2.30■ Onexp_True...GoSub コマンド
イベントリストに後続のイベントを追加します。また、条件が偽でない場合、label1がコール
されます。label2が指定されている場合、条件が偽の場合にコールされます。イベント起動コ
マンドとどれだけ頻繁にインタープリターが条件判断を行うかはイベント起動プログラミング
の項目を参照して下さい。
構文
Onexp_True expression GoSub label1, [label2]
使用例
DECLARE iAlt_Time
ONEXP_TRUE NOT INRANGE(PLANE_ALT, 4800, 5200) GOSUB subAlt_Msg, subAlt_Reset
subAlt_Msg:
IF ELAPSED_TIME > iAlt_Time
PRINT "Check your altitude."
iAlt_Time = ELAPSED_TIME + 15
ENDIF
RETURN
subAlt_Reset:
IF INRANGE(PLANE_ALT, 4900, 5100) THEN
iAlt_Time = 0
ENDIF
RETURN
Last Update 1999/1/7