Manuel NGLE
Global triggers
par Cook
Un GlobalTrigger fonctionne comme un trigger
CONDITION. Il se déclenche lorsqu'un certain événement se
produit dans le jeu. C'est une façon de déclencher un
TriggerGroup sans placer de carré déclencheur dans votre
niveau, sous NGLE.
Les TriggerGroups sont expliqués dans ce tutoriel :
Triggers "Script" et
Commandes "TriggerGroup"
Cela signifie que votre TriggerGroup peut être activé
n'importe où dans le niveau lorsqu'un événement particulier
se produit. C'est comme si vous aviez placé un trigger
CONDITION et les triggers de votre TriggerGroup sur chaque
carré, dans votre niveau. Vous pouvez désactiver un
GlobalTrigger par un trigger FLIPEFFECT si vous ne voulez
pas le voir s'appliquer dans une certaine partie de votre
niveau. Le même trigger FLIPEFFECT peut être utilsé pour
l'activer de nouveau.
Vous pouvez comprendre davantage ce que sont les
GlobalTriggers en regardant les noms des différents types.
Il y a les constantes, commençant par GT_ dans la liste des
constantes mnémoniques de l'onglet "Reference" du NGCenter.
Voici les constantes actuelles disponibles avec la version
TRNGdll 1.2.0.1. :
GT_COLLIDE_CREATURE
GT_COLLIDE_ITEM
GT_COLLIDE_SLOT
GT_COLLIDE_STATIC_SLOT
GT_CONDITION_GROUP
GT_DAMAGE_BAR_LESS_THAN
GT_DISTANCE_FROM_ITEM
GT_DISTANCE_FROM_STATIC
GT_ENEMY_KILLED
GT_GAME_KEY1_COMMAND
GT_GAME_KEY2_COMMAND
GT_KEYBOARD_CODE
GT_LARA_HOLDS_ITEM
GT_LARA_HP_HIGHER_THAN
GT_LARA_HP_LESS_THAN
GT_LARA_POISONED
GT_LOADED_SAVEGAME
GT_SAVED_SAVEGAME
GT_SCREEN_TIMER_REACHED
GT_USED_BIG_MEDIPACK
GT_USED_INVENTORY_ITEM
GT_USED_LITTLE_MEDIPACK
GT_USING_BINOCULAR
GT_VSCROLL_COMPLETE
GT_VSCROLL_LAST_VISIBLE
Pour copier la syntaxe de la commande (càd quelles
valeurs utilser et dans quel ordre), sous l'onglet
"Reference" du NGCenter, sélectionnez "new script commands"
dans le menu déroulant, repérez GlobalTrigger dans la liste
et pressez "expand info".
Syntax: GlobalTrigger=IdGlobalTrigger, Flags Global
Trigger (FGT_...), Global Trigger (GT_..), Parameter,
IdConditionTriggerGroup, IdPerformTriggerGroup
A utiliser dans la partie [Level]
Que cela vous indique-t-il ?
Tout d'abord, cela vous indique où saisir la commande dans
le script. La ligne commençant par "Scope: " indique que la
commande doit être saisie dans la partie [Level].
Ainsi, pour créer un GlobalTrigger sous NGCenter, ajoutez
GlobalTrigger dans la partie [Level] de votre script.
Ensuite, cela vous indique que la commande doit avoir six
valeurs (sur une ligne) séparées par des virgules "," après
le signe égale "=".
Les six endroits où saisir les valeurs sont désignées comme
des champs. Pour chaque commande, vous ne devez pas avoir de
champs vides (,,).
La première valeur est juste un nombre que vous donnez au
GlobalTrigger pour l'identifier. Chaque GlobalTrigger dans
la même partie [Level] doit avoir un numéro différent.
Le champ suivant peut contenir une valeur d'indicateur
commençant par FGT_.
Changez la sélection du menu déroulant de "new script
commands" à "mnemonic constants" et retrouvez dans la liste
toutes les valeurs commençant par FGT_ et lisez l'info. Par
exemple, FGT_SINGLE_SHOT. Si vous tapez cette valeur, votre
GlobalTrigger ne sera déclenché qu'une fois. Si vous ne
voulez pas de cela, que devez-vous saisir ? Vous devez taper
quelque chose car les champs vides ne sont pas autorisés.
Chaque vous qu'un champ doit rester vide, tapez IGNORE.
La valeur pour FGT_SINGLE_SHOT doit être utilisée avec
beaucoup de GlobalTriggers. Chaque unité de temps (frame) du
jeu, 1/30è de seconde, votre GlobalTrigger "demande" à
tomb4.exe si un événement s'est produit. Ainsi, lorsqu'un
événement se produit, pour chaque frame, le GlobalTrigger va
déclencher votre TriggerGroup.
Cela peut être observé en créant un TriggerGroup forçant
Lara à s'animer et un GlobalTrigger sans la valeur
FGT_SINGLE_SHOT qui se déclenche lorsque Lara tient une
torche (GT_HOLDS_ITEM).
Si vous utilisez le GlobalTrigger GT_ENEMY_KILLED sans
valeur pour FGT_SINGLE_SHOT, votre TriggerGroup se
déclenchera tous les trentièmes de seconde jusqu'à la fin du
niveau une fois l'ennemi tué, car l'ennemi "continuera"
d'être tué à chaque frame.
Le troisième champ est celui où vous choisissez quel type de
GlobalTrigger vous utilisez. Vous devez choisir l'une des
valeurs GT_ des constantes mnémoniques. Voir la liste
ci-dessus.
La valeur que vous saisissez dans le champ suivant dépend du
GT_value que vous aurez choisi. Vous devez lire
l'information dans les constantes mnémoniques du NGCenter
correspondant à cette valeur GT_ .
Le cinquième champ est un numéro d'identification (ID) d'un
TriggerGroup, ou bien IGNORE. Le TriggerGroup doit contenir
uniquement des triggers CONDITION exportés. Voir ce tutoriel
:
Triggers à Conditions Multiples. Vous n'utiliserez un
numéro ID que si vous voulez imposer davantage de
restrictions sur le GlobalTrigger. Par exemple, si vous
voulez déclencher quelque chose lorsque Lara tient une
torche (GT_HOLDS_ITEM) et qu'elle est en train de courir.
Le dernier champ est celui où vous devez taper le numéro
d'identification du TriggerGroup que vous souhaitez
déclencher.
Notes
Vous devez faire attention à la façon dont vous paramétrez
un GlobalTrigger et également, veiller à avoir un design
adéquat pour la plupart d'entre eux. La façon dont vous les
paramétrez dépend de ce que vous souhaitez qu'ils
déclenchent.
Par exemple, disons que vous utilisez un GlobalTrigger
GT_HOLDS_ITEM pour déclencher un TriggerGroup qui fera se
déplacer Lara très rapidement vers le haut d'un poteau
vertical. Si vous n'utilisez pas FGT_SINGLE_SHOT, Lara ne
pourra pas descendre du poteau et si elle s'y accroche en
haut, elle pourrait monter dans le plafond. Si
effectivement, vous utilisez FGT_SINGLE_SHOT, que se
passe-t-il si Lara tombe du poteau avant d'atteindre le
sommet ? Pour contourner ces problèmes, vous devrez
paramétrer des triggers près du poteau, lesquels activent et
désactivent le GlobalTrigger.
Nowid a utilisé des GlobalTriggers pour rendre possible
l'utilisation de la torche allumée depuis l'inventaire,
quelque chose à laquelle je n'aurais jamais pensé. On peut
trouver un autre exemple de GlobalTriggers dans le projet
Quicksand de Paolone où l'un d'eux est utilisé pour terminer
le niveau une fois que Lara a collecté six urnes.
GT_CONDITION_GROUP
C'est ce que vous devez utiliser si vous souhaitez créer
votre propre GlobalTrigger personnalisé. Exportez simplement
tous les triggers CONDITION que vous souhaitez appliquer et
créez un TriggerGroup pour eux. Ce sera un TriggerGroup
CONDITION puisqu'il ne contient que des triggers script
CONDITION. Ces triggers commencent par $9000 ou $8000.
Lorsque toutes les conditions du TriggerGroup CONDITION sont
vraies, votre GlobalTrigger activera le TriggerGroup que
vous avez désigné dans le champ IDPerformTriggerGroup.