veafMissileGuardian — Interception de missiles¶
Module ID: MISSILEGUARDIAN | Fichier: veafMissileGuardian.lua
Module expérimental / incomplet. Ce module est à l'état de squelette (version
0.0.2). Les classes décrites ci-dessous existent mais la logique de protection n'est pas encore implémentée (veafMissileGuardian.getLargeScaleProtector()et le watchdog du protecteur sont des ébauches). À utiliser uniquement à des fins exploratoires.
Objectif¶
Vise à intercepter et détruire les missiles entrants pour protéger des ressources désignées. Un VeafMG_Guardian observe des unités et réagit lorsqu'un tir vise l'une d'elles dans une zone protégée, en avertissant la cible.
Dépendances¶
Activation¶
veafMissileGuardian.initialize()
initialize() construit le menu radio « GUARDIAN ». Puis définir un gardien :
local guardian = VeafMG_Guardian:new()
:setName("carrier-defense")
:setFriendlyName("Carrier Defense")
:addProtectedUnit("CVN-73") -- nom d'unité DCS à protéger (appeler plusieurs fois pour plusieurs unités)
:setProtectedZone(polygon) -- polygone (liste de points) où la protection s'applique
guardian:start() -- enregistrer le gestionnaire d'événements
guardian:stop() désenregistre le gestionnaire d'événements.
Méthodes du builder (VeafMG_Guardian)¶
Le gardien est construit avec VeafMG_Guardian:new(). Chaque setter retourne le gardien, ce qui permet le chaînage.
| Méthode | Description |
|---|---|
:setName(value) |
Identifiant interne |
:setFriendlyName(value) |
Nom lisible affiché aux joueurs |
:addProtectedUnit(value) |
Ajouter une unité DCS à protéger (nom ou objet unité) |
:setProtectedZone(value) |
Polygone (liste de points) délimitant la zone de protection |
:start() |
Enregistrer le gestionnaire d'événements |
:stop() |
Désenregistrer le gestionnaire d'événements |
Ce qui marche, et ce qui ne marche pas¶
Établi en lisant le code le 2026-08-24, plutôt que déduit :
| Ce que vous pouvez faire | État |
|---|---|
Construire un gardien, lui donner des unités et une zone, l'attacher avec start() |
fonctionne |
| Être averti quand un tir vise une unité protégée dans la zone | fonctionne |
| Faire détruire le missile en vol | pas implémenté — il n'y a aucun watchdog, et veafMissileGuardian.getLargeScaleProtector() est une ébauche qui renvoie nil |
veafMissileGuardian.AddGuardian / ActivateGuardian / DesactivateGuardian |
refusent : le module n'a pas de stockage de gardiens, et la classe n'a ni activate ni desactivate. Elles écrivent un avertissement dans le journal DCS au lieu de planter |
| Lister les gardiens depuis le menu radio | pas implémenté : le menu « GUARDIAN » ne contient qu'une entrée d'aide |
Jusqu'à la 6.15.36, l'avertissement au pilote était suivi d'une erreur Lua à chaque tir (le protecteur manquant), et les trois verbes ci-dessus plantaient sur une fonction qui n'avait jamais été écrite. Le comportement que cette page décrit — avertir la cible — est donc désormais complet ; le reste est explicitement refusé plutôt que silencieusement cassé.
Notes¶
- Un gardien n'avertit que les cibles présentes dans sa zone protégée lorsqu'un tir est détecté
- Classes internes :
VeafMG_Weapon(arme en vol),VeafMG_Guardian(observateur),VeafMG_Protector(protecteur, ébauche : ses méthodesstart()etstop()ont un corps vide)
Voir aussi¶
- veafSanctuary — protection contre les intrusions d'unités
- Référence API Lua — API complète de
veafMissileGuardian