TRLE Level BOX
This Site is an unofficial site by NGLE fan.

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
#FIRST_ID命令はローカルです。つまり、同じソースファイル内でのみ動作します。
ID範囲のスワッピングを強化するには、#DEFINE命令の説明も参照してください。

各フィールドの説明

CommandName
このフィールドには、スクリプトコマンドのコマンド名を入力します。
FirstId
このフィールドには、CommandNameフィールドのコマンドの最初のIDを入力します。

関連項目

#DEFINE#INCLUDE