Script Trigger avec Altitude pris en compte
Publié : mar. mars 25, 2014 7:47 pm
Un code fait à l'arrache pour voir vérifier la faisabilité: ça fonctionne (bon, le code n'est pas beau, on s'en fou, c'est du Miguel...)
Avec ceci, on aurait pu avoir l'altitude d'annoncé des meuchants avions rouge sur les quelques point d'observation aérienne
Avec ceci, on aurait pu avoir l'altitude d'annoncé des meuchants avions rouge sur les quelques point d'observation aérienne
Code : Tout sélectionner
if ("target_attacked".Equals(shortName) && active)
{
AiAction Action = GamePlay.gpGetAction("target_attacked");
Timeout(3, () => // xs
{
int nt = 0;
double resAltiMini = 15000.00;
double resAltiMaxi = 0.00;
int camp = 1; // 1 = rouge, 2 = blue
AiAirGroup[] TriggerAirgroups = base.GamePlay.gpAirGroups(camp) ;
if (TriggerAirgroups != null)
{
foreach (AiAirGroup aag in TriggerAirgroups)
{
AiAircraft aircraft = aag.GetItems()[0] as AiAircraft;
bool isairborne = ( aag.GetItems()[0] as AiAircraft).IsAirborne();
Point3d StartPos = new Point3d(306361.00 , 160650.00, 0.00); //information à récupérer sur le fichier .mis, possible via parser...
if ((aag.Pos().distance(ref StartPos) < 8000) && isairborne && aag.Pos().z > 0)
{
if(resAltiMini > aag.Pos().z) { resAltiMini = aag.Pos().z;} // Alti Angel
if(resAltiMaxi < aag.Pos().z) { resAltiMaxi = aag.Pos().z; }
nt = aag.NOfAirc + nt; // additionne les items et les nb d'avion par groupe
}
}
}
Timeout(6, () =>
{
SendScreenMessageTo(Blue(), nt + " Avions ennemi sur Tramecourt ! ( P10) entre : " + Math.Round(resAltiMini, 0) + " et " + Math.Round(resAltiMaxi, 0) +"m");
});
});
GamePlay.gpGetTrigger("target_attacked").Enable = true;
}