NGLE講座
■GlobalTrigger=
サンプルレベル
http://www.trlevelmanager.eu/download/harpoon.zip
この他にも多くのサンプルレベルで使用されています。
構文
GlobalTrigger=IdGlobalTrigger, Flags Global Trigger(FGT_...), Global Trigger(GT_..), Parameter, IdConditionTriggerGroup, IdPerformTriggerGroup, IdOnFalseTriggerGroup
記述場所
[Level]セクションで使用します。
インスタンスの最大値
レベルセクションの最大インスタンス数:499
使用例
;GlobalTrigger1番に、インデックス2番の敵を倒した時に、 ;TriggerGroup1番を1度だけ実行するを設定する。 GlobalTrigger=1, FGT_SINGLE_SHOT, GT_ENEMY_KILLED, 2, IGNORE, 1
機能概要
グローバルイベントが発生したときにトリガを有効にします。
グローバルトリガの意味を理解するため、ローカルトリガの説明から始めましょう。
ローカルトリガは、マップに配置して使用するトリガです。これらのトリガは、それらが配置されている場所、つまりそれらが配置されているセクターでのみ機能するローカルなものです。
一方グローバルトリガは全レベルで機能し、グローバルイベントが発生すると有効になります。
そのためレベル開始から終了までグローバルトリガは機能し続け、セーブデータをロードしても、その機能は維持されます。
混乱するかもしれませんが、このトリガをマップに配置することはできません。トリガという名前のスクリプトコマンドです。
記述時の注意点・備考
特にありません。
各フィールドの説明
- IdGlobalTrigger
- このフィールドには、このコマンドのIDを入力します。
このIDはトリガや他のスクリプトコマンドを実行するときに使用します。同じ[Level]セクションにあるこのコマンドの最初には「1」を使用し、2番目のコマンドには「2」を使用します。
これは、FLIPEFFECTトリガ109、374、375番を使ってGlobalTriggerを有効/無効にした時、そのGlobalTriggerを識別するためだけに使用されます。
IDの有効範囲は1から4999です。 - Flags Global Trigger(FGT_...)
- このフィールドには、このコマンドの動作についてオプションを入力します。
現在のところ、FGT_フラグしかありません。
FGT_DISABLED
このフラグは、現在のGlobalTriggerを指定したタイミングで実行するように設定します。通常のローカルトリガと同じようにレベルの一部のみで機能させたい場合は、FLIPEFFECT109、374、375番を使って有効/無効を切り替えます。
FGT_SINGLE_SHOT
このフラグは、現在のGlobalTriggerを1回実行するように設定します。GlobalTriggerが実行されると、それ以降の実行を避けるために無効になります。
IGNOREと入力すると、FGT_フラグを省略できます。 - Global Trigger(GT_..)
- このフィールドには、GT_コンスタンツを入力します。
NG_Center【Reference】タブのGT_コンスタンツも参照してください。
混乱するかもしれませんが、GlobalTriggerコマンドの中にGlobal Triggerフィールドがあります。
現在、次のコンスタンツがあります。
GT_ALWAYS
このコンスタンツは、条件が常にtrueであることを意味し、GlobalTriggerは、常に機能しつづけます。
GT_ENEMY_KILLED
このコンスタンツは、Parameterフィールドで指定したMoveableが倒されると、GlobalTriggerを開始します。
ParameterフィールドにMoveableインデックスを指定する必要があります。
インデックスとはマップでオブジェクトを選択し、黄色の枠の中にある数字です。
備考:
敵が死亡したときにローカル(共通)SWITCHトリガでも、トリガを起動させることができます。SWITCHトリガに敵を関連づけ、そのトリガにドアや敵を有効にするために共通のトリガを追加した場合、敵が死ぬとトリガがアクティブになります。この方法を使う上で問題となるのは、敵が死ぬときにSWITCHトリガを持ったセクターにララがいなければならないため、広い面積をトリガで覆わなければならないということです。GT_ENEMY_KILLEDコンスタンツはそれとは違って、トリガはララの位置とは無関係に起動されます。
GT_SCREEN_TIMER_REACHED
このコンスタンツは、スクリーンタイマーが指定された秒数に達した時に、GlobalTriggerを開始します。
Parameterフィールドに秒数を指定する必要があります。
例えば、タイマー画面が240秒(4分)に達したときにトリガを開始するには、
GlobalTrigger=1, IGNORE, GT_SCREEN_TIMER_REACHED, 240,...
と入力します。
GT_USED_INVENTORY_ITEM
このコンスタンツは、プレイヤーがインベントリーから特定のアイテムを選択したとき時に、GlobalTriggerを開始します。ParameterフィールドにスロットIDを指定する必要があります。
例えば、プレイヤーがスロットID=253のQUEST_ITEM2を選択したときにGlobalTriggerを有効にするには、
GlobalTrigger=1, IGNORE, GT_USED_INVENTORY_ITEM, 253,...
と入力します。
備考:
GlobalTriggerが使用されているときにインベントリーから選択したアイテムを削除したい場合は、TriggerGroupを挿入して特定のFLIPEFFECTトリガ47番を挿入する必要があります。このFLIPEFFECTトリガを使用しない場合、選択されたアイテムはインベントリーに残ります。 QUEST_ITEM1は既にDetectorに使用されているため、GlobalTriggerにはQUEST_ITEM1を使用しないでください。 - Parameter
- このフィールドには、Global Triggerフィールドに入力されたGT_コンスタンツによって異なる値を入力します。
このフィールドに入力する値についてはGlobal Triggerフィールドの説明を読んでください。 - IdConditionTriggerGroup
- このフィールドには、条件付きTriggerGroupのIDを入力します。
このフィールドはオプションです。
デフォルトでは、グローバル条件を設定するためのGlobal Triggerフィールドだけです。最後のIdPerformTriggerGroupを実行する場合は、条件がtrueの時のみ、条件付きTriggerGroupコマンドを作成し、他の条件を実行するための条件付きTriggerGroupのIDをこのフィールドに設定します。
条件付きTriggerGroupを使用すると、条件付きTriggerGroupがtrueで、最終条件がtrueの場合のみGlobalTriggerで設定されたイベントが発生します。
IGNOREと入力すると、追加の条件を設定しません。 - IdPerformTriggerGroup
- このフィールドには、Global Triggerフィールドのグローバル条件がtrueとなったときに実行されるTriggerGroupコマンドのID(最初の値)を入力します。
理論上TriggerGroupの実行ではCONDITIONトリガも配置できますが、とにかくこれらのさらなるCONDITIONトリガはGlobal Triggerフィールドがtrueである場合にのみ検証されます。 - IdOnFalseTriggerGroup
- このフィールドには、グローバル条件がfalseのときに実行したいTriggerGroupのIDを入力します。