Utilisation des "Trigger Events".
Encore une fois, soyez sur que toutes les actions que vous
souhaitez que le déclencheur (trigger) mette en place sont envoyées à la cible
spécifique via AssignCommand…car sinon vous demandez au déclencheur de faire
quelque chose par lui même, et il ne peut pas faire grand chose.
Liste des événement des déclencheurs (Trigger Event)
Evènement: OnClick, déclencheur: Si vous voulez que le déclencheur
cause en effet quand le joueur clique dessus, un script doit être entré dans la
zone. Beaucoup de sorte de transitions de zones (area transition) utilisent cet
événement (bien qu’un déclencheur qui est paramêtré comme une zone de transition
peut utiliser le wizard pour faire cela.
Qu’est ce qui l’a déclenché?
Utilisez GetClickingObject()
pour renvoyer "l’objet" joueur qui a cliqué dessus.
Evènement: OnEnter, déclencheur: tout objet traversant la limite
de la zone du déclencheur.
Qu’est ce qui l’a déclenché?
Utilisez GetEnteringObject().
Exemple: Le script OnEnter suivant ferra "sauter" tous
les membres de la partie qui sont dans la même zone jusqu’au waypoint avec
le tag "JUMP_HERE".
void main()
{
object oWP = GetObjectByTag("JUMP_HERE");
object oParty = GetFirstFactionMember(GetEnteringObject(), TRUE);
// cicle qui passe en revue tous les membres de la partie.
while (GetIsObjectValid(oParty))
{
// si ils sont dans la même zone
if (GetArea(oParty) == GetArea(GetEnteringObject()))
{
// jump the party member to the waypoint
AssignCommand(oParty, JumpToObject(oWP));
}
// va jusqu’au prochain membre de la party
oParty = GetNextFactionMember(GetEnteringObject(), TRUE);
}
oParty = GetFirstFactionMember(GetEnteringObject(), FALSE);
// maintenant, passe en revu tous les membres non-joueurs de la partie(comme les familiers)
while (GetIsObjectValid(oParty))
{
// et si ils sont dans la même zone
if (GetArea(oParty) == GetArea(GetEnteringObject()))
{
// faites "sauter" les membres de la partie jusqu’au waypoint
AssignCommand(oParty, JumpToObject(oWP));
}
// aller au prochain membre de la partie
oParty = GetNextFactionMember(GetEnteringObject(), FALSE);
}
// maintenant, fait sauter le PC entrant jusqu’au Waypoint
// cette ligne n’est pas nécessaire…l’inclure
// permet juste d’être certain de déplacer aussi le PC qui a activé le déclencheur
AssignCommand(GetEnteringObject(), JumpToObject(oWP));
}
Evènement: OnExit, déclencheur: à chaque fois qu’un ennemi
traverse la limite de la zone du déclencheur pour la quitter.
Qu’est ce qui l’a déclenché?
Utilisez GetExitingObject()
pour renvoyer l’objet sortant.
Exemple: Ce script OnExit pour le déclencheur envoie une commande
à n’importe quel géant sortant pour retourner à un waypoint.
void main()
{
object oWP = GetObjectByTag("RETURN_HERE");
object oCreature = GetExitingObject();
// si la créature sortante est un géant
if (GetRacialType(oCreature) == RACIAL_TYPE_GIANT)
{
// lui demande d’arrêter ce qu’il fait
AssignCommand(oCreature, ClearAllActions());
// et de bouger au waypoint
AssignCommand(oCreature, ActionMoveToObject(oWP));
}
}
Evènement: OnHeartbeat, déclencheur: comme les autres heartbeat,
Le Heartbeat du déclencheur est activé toutes les 6 secondes. Un déclencheur n’est
cependant pas comme tous les autres objets…il est seulement activé quand
quelque chose est à l’intérieur de ces limites ou qu’on clique dessus.
Vous ne pouvez placer un déclencheur et lui donner un script pour constamment
commander un ordre…si vous voulez faire ça, utilisez à la place un objet
invisible.
Evènement: OnUserDefined, déclencheur: encore, cet événement
se lancera uniquement si un UserDefinedEvent a été spécifiquement envoyé au déclencheur
par la commande SignalEvent.
__________________
Théranthil, Mage Elfe prêtre de Mystra Membre des GdE
Parti Elmotiste pour un parler jowilien: Ministre
supérieur de la corruption
"Les langues vont toujours bon train. Les pieds ont du mal à suivre."
(les bourses aussi NdT )
Mespert de la porte de Baldur