Aller au contenu

veafShortcuts — Aliases de marqueurs

Module ID : SHORTCUTS | Fichier : veafShortcuts.lua


Objectif

Fournit des commandes marqueur courtes et faciles à retenir (aliases) qui correspondent à des commandes _spawn ou autres commandes VEAF complètes. Les joueurs tapent -nomAlias dans un marqueur F10 au lieu de mémoriser la syntaxe complète des commandes.


Fonctionnement

  1. Le joueur place un marqueur F10 avec un texte commençant par -
  2. veafShortcuts résout l'alias vers la commande VEAF sous-jacente
  3. La commande résolue est exécutée comme si le joueur l'avait tapée directement

Les aliases peuvent inclure des paramètres aléatoires (ex : -sam choisit un niveau de défense aléatoire à chaque fois).


Activation

veafShortcuts.initialize()

Cela enregistre automatiquement la liste d'aliases par défaut.

Activé par défaut. Les alias intégrés (-shilka, -sa2, …) fonctionnent d'emblée — la liste shortcuts: ci-dessous ne sert qu'à ajouter vos propres alias custom.


Configuration (mission.yaml)

modules:
  SHORTCUTS:
    enabled: true          # défaut : true
    logLevel: info        # surcharge optionnelle du niveau de log
    shortcuts:            # définitions d'aliases personnalisés
      - name: "smoke"                 # nom de l'alias (tapé en -smoke dans les marqueurs)
        description: "Raccourci fumée" # affiché dans l'aide radio
        command: "/_smoke"            # commande VEAF à exécuter
        bypass_security: false        # true = saute le contrôle de niveau de la commande (toujours disponible)
Champ Type Défaut Requis Description
enabled booléen true Non Activer ou désactiver le module
logLevel string (global) Non Surcharge du niveau de log par module
shortcuts objet[] [] Non Aliases personnalisés supplémentaires
shortcuts[].name string — Oui Nom de l'alias — les joueurs tapent -nom dans un marqueur
shortcuts[].description string — Non Description affichée dans l'aide radio
shortcuts[].command string — Oui Commande VEAF complète à exécuter (ex : /_smoke)
shortcuts[].bypass_security booléen false Non Si true, cet alias ignore le système de sécurité

Exemple minimal

modules:
  SHORTCUTS:
    enabled: true
    shortcuts:
      - name: "cas"
        description: "Demander CAS"
        command: "/_spawn group, name CAS-Template"

Les créateurs de missions peuvent également ajouter des aliases personnalisés dans mission-script.lua :


Aliases personnalisés

Ajoutez des aliases spécifiques à votre mission dans mission-script.lua :

veafShortcuts.AddAlias(
  VeafAlias:new()
    :setName("-monalias")
    :setDescription("Mon spawn personnalisé")
    :setVeafCommand("_spawn group, name mon-groupe-custom")
)

Référence des aliases par défaut

Les aliases intégrés les plus courants sont regroupés ci-dessous. Voir la Référence des Alias pour la liste complète de tous les alias intégrés.

Missions aériennes

Alias Description
-cap CAP dynamique (nécessite le nom de l'appareil)
-awacs AWACS en hippodrome depuis le marqueur, dans Skynet et liaison de données allumée ; escort <template> ajoute une escorte
-escort Escorte de chasse pour l'avion ami ou neutre le plus proche du marqueur (template en option)
-airstart Démarrer une mission de combat (nécessite un nom)
-airstop Arrêter une mission de combat (nécessite un nom)
-zonestart Activer une zone de combat (nécessite un nom)
-zonestop Désactiver une zone de combat (nécessite un nom)

Radio

Alias Description
-send Envoyer un message radio (nécessite "MESSAGE")
-play Jouer un fichier son (nécessite "NOMFICHIER")

Mission Master

Alias Description
-flag Lire la valeur d'un flag (nécessite un nom)
-flagon Mettre un flag à ON (nécessite un nom)
-flagoff Mettre un flag à OFF (nécessite un nom)
-run Exécuter un runnable (nécessite un nom)

Commandes utilitaires

Alias Description
-destroy Détruire toute unité dans un rayon de 100 m du marqueur
-ai_set Définir le handler IA d'un groupe terrestre

Sécurité

La plupart des aliases respectent le système de sécurité (veafSecurity). Neuf aliases utilitaires le contournent et restent toujours disponibles pour tous les joueurs : -smoke, -longsmoke, -signal, -light, -point, -tacan, -jtac, -afac, -beacon.

Ce qu'on peut taper après un alias qui contourne la sécurité

Derrière un tel alias, un marqueur de joueur n'admet que les options qui règlent son effet, chacune sous une forme stricte :

Alias Options admises
-smoke, -longsmoke color (red, green, orange, blue, white)
-signal color (red, green, white, yellow)
-light alt, radius (entiers)
-jtac laser (4 chiffres), freq (MHz), mod (am, fm)
-afac laser, freq, mod, alt, speed, hdg / heading (entiers), immortal
-tacan channel (1 à 3 chiffres), band (x, y), code (1 à 4 lettres ou chiffres), radius (0 à 999 m)
-point un nom, sans virgule
-beacon aucune

Tout le reste refuse le marqueur en entier : rien n'est exécuté, et seul l'auteur du marqueur reçoit un message qui dit ce que l'alias accepte. Un mot-clé de commande VEAF (_spawn, _cas…) est refusé partout derrière ces alias. Le texte refusé n'est jamais écrit dans le journal : il peut contenir un mot de passe.

Ne changent pas : l'alias seul, les coordonnées #… et le délai !N, les alias lancés par un script (lots d'alias, zones de combat), et une mission où la sécurité est désactivée.

Un alias de votre mission qui contourne la sécurité n'admet rien derrière lui, sauf s'il le déclare dans mission-script.lua :

veafShortcuts.AddAlias(
  VeafAlias:new()
    :setName("-mafumee")
    :setVeafCommand("_spawn smoke")
    :setBypassSecurity(true)
    :setAllowedOptions({ color = "color", shells = "^[1-3]$" })
)

Une forme est le nom d'une forme de veafShortcuts.OptionForms (color, flareColor, laser, frequency, modulation, integer, tacanChannel, tacanBand, morseCode, radius999, flag), ou un motif Lua ancré. Un alias déclaré dans mission.yaml avec bypass_security: true n'admet rien derrière lui.

Contourner le mot de passe ne veut pas dire se taire. Ces deux notions ont longtemps été le même réglage dans le code, et ça se voyait : un pilote qui posait un marqueur -tacan n'obtenait aucune confirmation — ni canal, ni bande. Le silence ne dépend plus que d'une chose : qui a demandé.

Qui pose l'objet Message au joueur
un pilote, par un marqueur sur la carte F10 toujours, même si l'alias contourne le mot de passe
un script — zone de combat, vague AirWaves, unité pré-placée aucun, sinon une zone de trente groupes afficherait trente messages

Deux exceptions volontaires, parce que leur message n'est pas une notification mais la donnée dont le pilote a besoin pour s'en servir :

  • un JTAC annonce son code laser et sa fréquence même quand c'est un script qui l'a posé ;
  • un TACAN annonce son canal, sa bande et son indicatif — mais seulement au marqueur. Posé par un script, il reste muet : c'est le comportement d'avant, laissé tel quel faute de mission qui en ait besoin.

Voir aussi