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