Trigger bloqué?
Publié : jeu. oct. 30, 2014 11:35 am
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:
Par exemple, les triggers se présente comme cela dans le .mis:
Vous devez donc ajouter ceci dans le fichier .cs:
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
Question?
Miguel
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
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.
}
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