NGLE講座
■#FIRST_ID
サンプルレベル
特にありません。
構文
#FIRST_ID CommandName=FirstId
記述場所
[Title]または[Level]セクションで使用します。
インスタンスの最大値
特にありません。
使用例
;TriggerGroupの最初のIDとして40番を設定する。 #FIRST_ID TriggerGroup=40
機能概要
インクルードファイルでコマンドの最初のIDを設定します。
インクルードファイルを使用する唯一の欠点は、IDの競合の問題です。
多くのスクリプトコマンドは、最初の引数としてIDを持ち、これらのIDは同じタイプのコマンドでは一意でなければなりません。
NG_Centerはこれらの競合を検出してコンパイル後にエラーとして扱うことができますが、インクルードファイルでは常にメインスクリプトや他のインクルードファイルで使用されている値と競合するおそれがあります。
その問題を解決するため、#FIRST_ID命令を使います。
インクルードファイルを作成するときは、次のように1つ以上の命令文を最初の行に入力する必要があります。
#FIRST_ID TriggerGroup=40 #FIRST_ID GlobalTrigger=30
上記の命令のおかげで、新しいスクリプトコマンドを入力してF1キーを押してそのコマンドの最初の利用可能なIDを発見すると、NG_Centerは特定のFIRST_ID命令で入力した値を数え上げ、最初の利用可能なIDを計算します。
したがって、上記の例を見ると、最初のTriggerGroupコマンドをこのインクルードファイルに入力すると(ただし、メインスクリプトや他のインクルードファイルに存在する可能性がある)、NG_CenterはTriggerGroupの最初のIDとして40という値を与えます。
2番目のTriggerGroupをタイプすると、最初のIDは「41」になります。
このようにして、インクルードファイル内のすべてのスクリプトコマンドをどのIDから開始するかを決めることができ、異なるインクルードファイルやメインスクリプトファイル間の競合のリスクを軽減できます。
さらに、インクルードファイルの先頭にあるFIRST_ID命令は、将来新しい機能を使用する際、古いインクルードファイルで使用されていたID範囲をすぐに発見することができます。
記述時の注意点・備考
#DEFINE BS_TG 30 #FIRST_ID TriggerGroup=BS_TG+10
これは間違いです。
#FIRST_ID TriggerGroup=BS_TG+ 10
各フィールドの説明
- CommandName
- このフィールドには、スクリプトコマンドのコマンド名を入力します。
- FirstId
- このフィールドには、CommandNameフィールドのコマンドの最初のIDを入力します。