Trigger bloqué?

Missions, campagnes et éditeur.
Avatar de l’utilisateur

Topic author
OBT~Miguel21
Pilote Confirmé
Pilote Confirmé
Messages : 2127
Inscription : 24 mai 2005

Trigger bloqué?

#1

Message par OBT~Miguel21 »

Vous faites des triggers via l'éditeur de mission: ça fonctionne

Mais si en plus vous ajoutez du script perso dans le fichier .cs: cela ne marche plus.

La solution est d'ajouter ceci dans le fichier.cs:

Code : Tout sélectionner

using System; using System.Collections; using System.Collections.Generic; using maddox.game; using maddox.game.world; public class Mission : AMission { public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); AiAction Action = GamePlay.gpGetAction(shortName); if (Action != null) Action.Do(); GamePlay.gpGetTrigger(shortName).Enable = false; } }

Par exemple, les triggers se présente comme cela dans le .mis:

Code : Tout sélectionner

[Trigger] 109_plumetot TPassThrough 1 BoB_LW_KuFlGr_706.07 136989 26778 7850 [Action] 109_plumetot ASpawnGroup 1 BoB_LW_JG2_I.01
Vous devez donc ajouter ceci dans le fichier .cs:

Code : Tout sélectionner

public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); if ("109_plumetot".Equals(shortName) && active) { AiAction Action = GamePlay.gpGetAction("109_plumetot"); SendScreenMessageTo(Blue(), "rdv 109 + jU87 A Plumetot. "); if (Action != null) Action.Do(); GamePlay.gpGetTrigger("109_plumetot").Enable = false;// désactivation du trigger pour un fonctionnement unique. }
Astuce:
si vous mettez "false":
GamePlay.gpGetTrigger("109_plumetot").Enable = false

Le trigger ne s'effectuera qu'une seule fois, utile, sinon vous pourriez créer autant de groupe d'avion que de nombre de fois où le déclencheur passe dans la zone...

si vous mettez "true":
GamePlay.gpGetTrigger("havre").Enable = true

Utile pour afficher un message, par exemple un intrus qui survole une zone

Code : Tout sélectionner

if ("havre".Equals(shortName) && active) { AiAction Action = GamePlay.gpGetAction("havre"); Timeout(10, () => // 10s { SendScreenMessageTo(Blue(), "Achtung der englischen Bomber über Le Havre. "); }); GamePlay.gpGetTrigger("havre").Enable = true;// désactivation du trigger pour un fonctionnement unique. }

Question? ;)

Miguel
Dernière modification par OBT~Miguel21 le jeu. oct. 30, 2014 6:26 pm, modifié 1 fois.

GeaR
Nouvelle Recrue
Nouvelle Recrue
Messages : 37
Inscription : 03 juin 2009

Re: Trigger bloqué?

#2

Message par GeaR »

Ouah wonderrfulllll si ce post avait existé il y 2 mois je n aurais pas autant galeré avec mes triggers qui ne fonctionnaient pas, ou les 200 avions en énemis qui apparaissaient parce-que je suis passé 10 fois sur le même trigger :Jumpy:


Milles merci je vais tester tout ça , mais ceci va déjà être la base de toutes mes missions!!! :cheer:
Avatar de l’utilisateur

Topic author
OBT~Miguel21
Pilote Confirmé
Pilote Confirmé
Messages : 2127
Inscription : 24 mai 2005

Re: Trigger bloqué?

#3

Message par OBT~Miguel21 »

Il suffisait de demander GeaR ;)
Répondre

Revenir à « Missions, campagnes et éditeur. »