Script DCS

Salle centrale dédiée à DCS World et ses modules -Questions, addon et support

Topic author
Cougar FFW04
Chef de patrouille
Chef de patrouille
Messages : 5689
Inscription : 20 janvier 2002

Script DCS

#1

Message par Cougar FFW04 »

Salut tout le monde,

L’éditeur de mission DCS, bien que complexe est quand même très performant,
Avec en plus la possibilité des scripts on peut vraiment faire des trucs de "ouf " que je n'ai jamais vu faire dans quelques autres éditeur de mission.

Je m'amuse pas mal en ce moment pour explorer les possibilités offertes et je me demandais si il y en a d'autres ici qui s'amusent avec les script DCS et la programmation Lua ? Ca pourrait être sympa de s'aider et de mettre en commun des recettes de cuisine...

Donc j’aimerais savoir s'il y en a d'autres ici qui font de la cuisine :exit:

++
Avatar de l’utilisateur

C6_Hellcat
Webmaster
Webmaster
Messages : 1869
Inscription : 27 juillet 2002

Re: Script DCS

#2

Message par C6_Hellcat »

J'ai quelques recettes dans mon livre de cuisine.

J'ai un script de détection, deux autres qui me servent à compter les unités, les objets statique et les objets du décor détruits. Plus un autre qui tourne avec mist, qui j'utilise pour faire une zone mobile à unité multiple.

Dans le détail :

Le script de détection : En gros il active un marqueur si une ou plusieurs unité sont détectés par d'autres. Le script est multi compatible, si des joueurs sortent ou rentrent dans la partie, le script s'adapte. Idem si l'une des unités qui détecte est détruite, le script continu de fonctionner. La détection peu être de différent type ( radar, rwr, ir, visuel etc ... ). Le gros avantage, par rapport à une simple zone, c'est que ce cacher derrière une montagne et l'on est plus détecté.

Le script de comptage : La partie objets du décor fonctionne grâce à mist. En gros je mets une zone sur chaque bâtiments que je veux checker, dès qu'il est détruit un marqueur s'active. Pour les unités et les objets statique, le principe est le même je vais checker si l'unité ou l'objet existe.
Ensuite je cumule le tout et je calcule puis affiche un pourcentage dans le jeu.

La zone mobile : Dans le jeu la zone mobile ne fonctionne qu'avec une seule unité ( pas de groupe ), dans le cas du multi c'est ingérable. Si tu veux que deux avions soient dans une zone mobile et que tu es seul dans la partie, c'est mort. Pour ce cas, j'utilise la fonction mist.flagfunc.units_LOS ( line of sight ) de mist. Qui permet d'activer un marqueur si un nombre défini d'unité se trouve dans un rayon prédéfini d'une autre unité. Ensuite il ne me reste qu'a vérifier le nombre d'unité active sur une liste prédéfini, pour gérer le nombre d'unités qui doivent activer le marqueur.

Topic author
Cougar FFW04
Chef de patrouille
Chef de patrouille
Messages : 5689
Inscription : 20 janvier 2002

Re: Script DCS

#3

Message par Cougar FFW04 »

Salut C6_Hellcat,

Bon je vois que je ne suis pas seul à faire de la cuisine :yes: :banana:
Merci pour tes recettes :notworthy
D'ici quelques temps j'espère pouvoir en ajouter quelques une de mon cru...
mais pour l'instant je suis toujours en phase exploratoire.

++

Topic author
Cougar FFW04
Chef de patrouille
Chef de patrouille
Messages : 5689
Inscription : 20 janvier 2002

Re: Script DCS

#4

Message par Cougar FFW04 »

Pas d'autres cuisiniers ?
Y a pas foule on dirait.
Avatar de l’utilisateur

diditopgun
Pilote Philanthrope
Pilote Philanthrope
Messages : 7762
Inscription : 09 janvier 2004

Re: Script DCS

#5

Message par diditopgun »

J'aime bien manger mais pas trop cuisiner… :biggrin:
Image Intel I7 8700K / RTX 3080 / 32Go DDR4 PC21300 G.Skill Ripjaws V / MSI Z370 Gaming Pro Carbon / Cooler Master Silent Pro Gold - 1000W / Noctua NH-D14 / Acer XB270HUDbmiprz 27" G-synch 144Hz / SSD Samsung 860EVO 250Go + 1To / Cooler Master HAF X / Warthog+VPC WarBRD / Thrustmaster TPR / Track-IR v5 / Windows 11 64bits.
Avatar de l’utilisateur

white-sky
Pilote Confirmé
Pilote Confirmé
Messages : 3220
Inscription : 21 août 2012

Re: Script DCS

#6

Message par white-sky »

Disons que les scripts sont des outils très puissants mais il vaut mieux les utiliser avec parcimonie. Sur les grosses missions multi l'activation d'un script, mettons un trajet aléatoire pour une unité, entraîne souvent un lag. J'ai pas mal trafiqué MIST et compagnie, y'avait des trucs très stylés à faire, exemple :

Mission de nuit, un hélicoptère arrive à proximité d'une zone adverse, tire un missile : Hop un missile de nuit ça se remarque, les unités de "garde" se précipitent sur la dernière position connue de l'hélicoptère et y'a un tir d'artillerie dessus également. Le problème c'est que comme ça crée un WP qui n'existe pas de base dans le .miz, ça fait un petit "clac", qui devient vite emmerdant. Même chose pour faire apparaître des manpads d'un camion ou ce genre de ptit truc qui est super sur le papier mais vite gênant au final. (Et faisable par trigger)

la fiabilité en général est correcte, le problème principal étant que le jeu charge tout le script MIST, pas seulement ce dont on a besoin, ce qui augmente nettement le risque d'erreur en cas de maj DCS qui aurait cassé quelque chose.

Bref, maintenant je m'abstiens au maximum. La dernière miz que j'ai faite faisait certes 800 triggers, mais les triggers sont fiables d'une maj à l'autre ^^

Nicolas
Image Amour sacré de la Patrie
Conduis, soutiens nos bras vengeurs !
Liberté ! Liberté chérie,
Combats avec tes défenseurs !
Sous nos drapeaux que la Victoire
Accoure à tes mâles accents !
Que tes ennemis expirants
Voient ton triomphe et notre gloire !
Avatar de l’utilisateur

Nexter
Nouvelle Recrue
Nouvelle Recrue
Messages : 4
Inscription : 04 octobre 2018

Re: Script DCS

#7

Message par Nexter »

Bonsoir Bonsoir !

Je reviens un peu sur ce topic parce que j'aurais aimé savoir si l'un d'entre vous connaitrait un script qui permet d'assigner un ordre à un groupe d'avion pour qu'il se déplace vers un point genre A puis une fois là bas ben je voudrais qu'il aille sur le D et une fois là-bas sur le B admettons etc etc....Je sais pas si c'est très clair

Merci d'avance
Config : MSI B450 GTX 1080 32GB DDR4 AMD Ryzen5 3600XT
Jeux : DCS, Falcon BMS, X-Plane 11, IL-2 Great Battles
Avatar de l’utilisateur

cerealk
Jeune Pilote
Jeune Pilote
Messages : 1213
Inscription : 07 mai 2010

Re: Script DCS

#8

Message par cerealk »

Ben si c'est un avion IA tu lui mets des waypoint non!?
I5 13600KF , 32Go DDR5 6400 CL32 , MSI Z790 Tomahawk, MSI 4070TI, W11 pro ,track IR 4 , Hotas Warthog, MFDx2, Clavier k95 RGB
Saitek Rudders, Écran: ACER XB281HK, Philips 244E

Mon Panel Desktop

Topic author
Cougar FFW04
Chef de patrouille
Chef de patrouille
Messages : 5689
Inscription : 20 janvier 2002

Re: Script DCS

#9

Message par Cougar FFW04 »

cerealk a écrit :Ben si c'est un avion IA tu lui mets des waypoint non!?
Si je comprends bien sa question, il veut décider lui même via un ordre aux IA de les envoyer a différents endroits.
Dans le principe ca ne me semble pas trop difficile a faire. Il suffirait effectivement de placer des WPTS sur les différents points voulus et de les faire orbiter sur un WPT prédéfini jusqu'a leur donner un ordre (par exemple en incrémentant un compteur pour les switcher sur le WPT x).

Mais bon j'ai pas essayer et peut-être je n'ai pas compris exactement ce qu'il veut.

Voyons s'il précise sa pensée...

++

jef32
Jeune Pilote
Jeune Pilote
Messages : 1299
Inscription : 20 octobre 2001

Re: Script DCS

#10

Message par jef32 »

J'ai jamais compris comment en créer et s'en servir. Pas plus que déclencher des actions en fonction des paramètres d'un ou plusieurs instruments.
CPU: I7-12700K, GC: nVidia RTX 3090TI ASUS 24Go VRAM, RAM: 32 Go DDR5 Kingston Fury, Motherboard: Gigabytes Z690-GamingX 3. OS: W10-64 Famille, 2 HD WD BLACK SN750 M2 NVME GEN 3, 2TO (pour les simus)+ 1 HD WD BLACK SN850 M2 NVME GEN 4 2TO (Système) +1 HD SSD CRUCIAL M.2 NVME 1TO (Données diverses). Casque VR: HP Reverb G2.

Harfang2956
Nouvelle Recrue
Nouvelle Recrue
Messages : 70
Inscription : 05 septembre 2020

Re: Script DCS

#11

Message par Harfang2956 »

C6_Hellcat a écrit :
ven. août 17, 2018 6:28 pm
J'ai quelques recettes dans mon livre de cuisine.

J'ai un script de détection, deux autres qui me servent à compter les unités, les objets statique et les objets du décor détruits. Plus un autre qui tourne avec mist, qui j'utilise pour faire une zone mobile à unité multiple.

Dans le détail :

Le script de détection : En gros il active un marqueur si une ou plusieurs unité sont détectés par d'autres. Le script est multi compatible, si des joueurs sortent ou rentrent dans la partie, le script s'adapte. Idem si l'une des unités qui détecte est détruite, le script continu de fonctionner. La détection peu être de différent type ( radar, rwr, ir, visuel etc ... ). Le gros avantage, par rapport à une simple zone, c'est que ce cacher derrière une montagne et l'on est plus détecté.

Le script de comptage : La partie objets du décor fonctionne grâce à mist. En gros je mets une zone sur chaque bâtiments que je veux checker, dès qu'il est détruit un marqueur s'active. Pour les unités et les objets statique, le principe est le même je vais checker si l'unité ou l'objet existe.
Ensuite je cumule le tout et je calcule puis affiche un pourcentage dans le jeu.

La zone mobile : Dans le jeu la zone mobile ne fonctionne qu'avec une seule unité ( pas de groupe ), dans le cas du multi c'est ingérable. Si tu veux que deux avions soient dans une zone mobile et que tu es seul dans la partie, c'est mort. Pour ce cas, j'utilise la fonction mist.flagfunc.units_LOS ( line of sight ) de mist. Qui permet d'activer un marqueur si un nombre défini d'unité se trouve dans un rayon prédéfini d'une autre unité. Ensuite il ne me reste qu'a vérifier le nombre d'unité active sur une liste prédéfini, pour gérer le nombre d'unités qui doivent activer le marqueur.
Bonjour C6-Hellcat, je n'utilise que très très peu les scripts. Je cherche à activer un marqueur lors d'une détection d'avions par un EWR. Apparemment tu as ça en soute. Est-ce que ça te dérangerait de partager ce script?
Ryzen 5 3600 / Sapphire PULSE RX 5600 XT / MSI B550 gaming /
Ventirad Be Quiet dark rock 4 pro / Alim Be Quiet pure power 11 600W plus /
SSD Crucial MX500 / Corsair Vengeance 32Go 3200 / HDD Barracuda 1 To
Avatar de l’utilisateur

C6_Hellcat
Webmaster
Webmaster
Messages : 1869
Inscription : 27 juillet 2002

Re: Script DCS

#12

Message par C6_Hellcat »

Salut Harfang. Pas de soucis, je le mets ce soir. Je serais sur TS C6, section AVM ce soir a 21h, si tu as besoin d infos ou d explication en live.

Harfang2956
Nouvelle Recrue
Nouvelle Recrue
Messages : 70
Inscription : 05 septembre 2020

Re: Script DCS

#13

Message par Harfang2956 »

Merci d'avance. Pas sûr de pouvoir me libérer (les rentrées scolaires, surtout pour les grands, sont un peu chronophages). mais si j'ai des questions je te recontacterai en DM peut-être semaine pro. Encore merci
Ryzen 5 3600 / Sapphire PULSE RX 5600 XT / MSI B550 gaming /
Ventirad Be Quiet dark rock 4 pro / Alim Be Quiet pure power 11 600W plus /
SSD Crucial MX500 / Corsair Vengeance 32Go 3200 / HDD Barracuda 1 To
Avatar de l’utilisateur

C6_Hellcat
Webmaster
Webmaster
Messages : 1869
Inscription : 27 juillet 2002

Re: Script DCS

#14

Message par C6_Hellcat »

Le script va activer un marqueur si une ou plusieurs unités détecté des unités dans une liste.
Les unités détectrices peuvent être tout types d'unités (radar, navires, avions) disposant du capteur adéquat.

Ces capteurs de détections peuvent être : le radar, un capteur infrarouge (IRST), le RWR, le datalink ou une détection visuel.

C'est modifiable dans le script à la ligne :

if Unit.getByName(minor[y]):getController():isTargetDetected(Unit.getByName(major[x]), 'RADAR') == true then

en remplaçant ou en ajoutant les différents capteurs.

Les unités cibles à détectés peuvent être de type IA ou client/joueur. Une routine vérifiera la présence de l'unité, puis si elle existe (humain ou IA) fera la vérification de détection.
Le script prévoit la possible déstruction d'une unité cible ou détectrice.

En gros le script va vérifier pour chaque unité détectrice, si celle ci détecte l'une des unités cibles. Si l'une des unités détectrices a une détection positive, un marqueur est alors activé.

La mission d'exemple, t'indiquera comment activer le script.

Dans la mission j'ai utiliser le marqueur n°10 pour n'activer le script que toutes les x secondes, c'est modifiable directement dans la mission en modifiant la valeur en seconde de la condition "temps depuis marqueur". En général je le règle à 120 secondes pour ne pas utiliser trop de ressources.

Toujours dans la mission, il y a un marqueur 99 régler à 1. Celui ci fait office de "mode debug" et permet de vérifier le fonctionnement du script. Pour le désactiver il faut régler le marqueur 99 à 0.
Le debug affichera le résultat des détections en texte dans le jeu.

Le préchargement du script se fait avec l'action "exécuter fichier script" de la première ligne des déclencheurs.
L'utilisation du script se fait avec l'action "exécuter script de la seconde ligne des déclencheurs. Cette sur cette ligne que l'on renseignera la liste des unités à détectés et des unités détectrices.

Dans l'action "exécuter script" on écrira :
DetectRadar() entre les parenthèses on renseigne en premier la liste des unités à détectés, puis la liste des unités détectrices.
en lua une liste s'écrit de cette manière :
{'unité1','unité2','unité3'}

On renseigne le nom de l'unité. Et non le nom du groupe.
il est possible de ne renseigné qu'une seule unité.

{'unité1'}

Donc on aura quelque chose qui ressemble à cela.

DetectRadar({'unité1','unité2','unité3'},{'Radar1','Radar2'})

Dans le script même il est possible de modifier le marqueur qui est utilisé en cas de détection positive. Par défaut c'est le marqueur 500.

En modifiant la ligne :
trigger.action.setUserFlag(500, 0)

et la ligne

trigger.action.setUserFlag(500, 1)

En changeant le chiffre 500 par un autre.

On peut donc par exemple conditionner le décollage d'une CAP ennemie avec la variable 500 = 1. Il est aussi possible pour une utilisation un peu différente de remplacer la valeur du marqueur 0 ou 1, par false ou true.

Si tu as des questions n'hésites pas :)
Pièces jointes

[L’extension « zip » a été désactivée et ne peut plus être affichée.]


Harfang2956
Nouvelle Recrue
Nouvelle Recrue
Messages : 70
Inscription : 05 septembre 2020

Re: Script DCS

#15

Message par Harfang2956 »

Petit retour : ça marche nickel. Un grand merci pour ton partage, ça apporte un peu de piquant dans les missions
Ryzen 5 3600 / Sapphire PULSE RX 5600 XT / MSI B550 gaming /
Ventirad Be Quiet dark rock 4 pro / Alim Be Quiet pure power 11 600W plus /
SSD Crucial MX500 / Corsair Vengeance 32Go 3200 / HDD Barracuda 1 To
Avatar de l’utilisateur

C6_Hellcat
Webmaster
Webmaster
Messages : 1869
Inscription : 27 juillet 2002

Re: Script DCS

#16

Message par C6_Hellcat »

Cool :)
Avatar de l’utilisateur

Yohann
Nouvelle Recrue
Nouvelle Recrue
Messages : 91
Inscription : 01 mars 2005

Re: Script DCS

#17

Message par Yohann »

Hello,

J'avais fait un tuto pour la mise en place d'un script ici: https://www.checksix-forums.com/viewtop ... 2&t=213143

Harfang2956
Nouvelle Recrue
Nouvelle Recrue
Messages : 70
Inscription : 05 septembre 2020

Re: Script DCS

#18

Message par Harfang2956 »

Merci pour ce partage également. Par curiosité comment peut-on accéder à la liste des commandes utilisables. Si je prend le script de Hellcat, au-delà des boucles de programmation classique et des déclarations des variables, les commandes ne peuvent pas se deviner.
Ryzen 5 3600 / Sapphire PULSE RX 5600 XT / MSI B550 gaming /
Ventirad Be Quiet dark rock 4 pro / Alim Be Quiet pure power 11 600W plus /
SSD Crucial MX500 / Corsair Vengeance 32Go 3200 / HDD Barracuda 1 To
Avatar de l’utilisateur

Yohann
Nouvelle Recrue
Nouvelle Recrue
Messages : 91
Inscription : 01 mars 2005

Re: Script DCS

#19

Message par Yohann »

Par simplicité, je n'ai pas tout mis dans le tuto.
Sinon il faut aller dans le fichier .lua et regarder, c'est le plus fiable.

En général chacun fait un peu sa sauce, l'idéal c'est quand le script est commenté , mais c'est pas toujours fait.

Le mien utilise aussi moose, qui à a sa propre doc.

Harfang2956
Nouvelle Recrue
Nouvelle Recrue
Messages : 70
Inscription : 05 septembre 2020

Re: Script DCS

#20

Message par Harfang2956 »

Nickel ça marche super bien. Ça permet d'adapter la situation si la résistance a été sous dimensionnée, mettre en place une 'tite surprise de dernière minute,....
Ryzen 5 3600 / Sapphire PULSE RX 5600 XT / MSI B550 gaming /
Ventirad Be Quiet dark rock 4 pro / Alim Be Quiet pure power 11 600W plus /
SSD Crucial MX500 / Corsair Vengeance 32Go 3200 / HDD Barracuda 1 To
Avatar de l’utilisateur

C6_Hellcat
Webmaster
Webmaster
Messages : 1869
Inscription : 27 juillet 2002

Re: Script DCS

#21

Message par C6_Hellcat »

Je commenterai le script lorsque j aurais du temps. Pas avant octobre 😴. Mais en gros une bonne partie des lignes sont liées au mode debug.

Autre precision. Comme le script va checker la detection meme. La portee de detection varie en fonction du radar utilisé, de l altitude. Il est possi ble de se cacher dans le relief pour eviter une detection.

Harfang2956
Nouvelle Recrue
Nouvelle Recrue
Messages : 70
Inscription : 05 septembre 2020

Re: Script DCS

#22

Message par Harfang2956 »

[quote=C6_Hellcat post_id=1859480 time=1630525030 user_id=31784

Autre precision. Comme le script va checker la detection meme. La portee de detection varie en fonction du radar utilisé, de l altitude. Il est possi ble de se cacher dans le relief pour eviter une detection.
[/quote]
C'est exactement pour cette raison que je cherchais un tel script, que les joueurs puissent jouer avec le relief afin éviter par exemple le déclenchement du décollage d'une patrouille d'interception. Et en effet ça manque dans DCS l'accès à la donnée "détecté / pas détecté" via l'éditeur "basique" poir servir de trigger
Après même sans commentaire ton script est compréhensible
Ryzen 5 3600 / Sapphire PULSE RX 5600 XT / MSI B550 gaming /
Ventirad Be Quiet dark rock 4 pro / Alim Be Quiet pure power 11 600W plus /
SSD Crucial MX500 / Corsair Vengeance 32Go 3200 / HDD Barracuda 1 To

Marcstrasb
Nouvelle Recrue
Nouvelle Recrue
Messages : 7
Inscription : 25 juillet 2010

Re: Script DCS

#23

Message par Marcstrasb »

Bonjour,

Y a-t-il possibilité de faire un démarrage moteur comme sur les autres Simulateurs (FSX / P3D / MSFS 2020) ?

Bien que je sais que c'est bon d'apprendre à faire la manip, j'aimerai pouvoir trouver un Ctrl + E :yes:

Cordialement,
Marc
Avatar de l’utilisateur

Morpheus
Pilote Philanthrope
Pilote Philanthrope
Messages : 5766
Inscription : 09 mai 2008

Re: Script DCS

#24

Message par Morpheus »

Marcstrasb a écrit :
sam. nov. 20, 2021 3:53 pm
Bonjour,

Y a-t-il possibilité de faire un démarrage moteur comme sur les autres Simulateurs (FSX / P3D / MSFS 2020) ?

Bien que je sais que c'est bon d'apprendre à faire la manip, j'aimerai pouvoir trouver un Ctrl + E :yes:

Cordialement,
Marc
Voir dans les options, en général Ctrl+début, dans mes souvenirs, à vérifier quand même
Image
Répondre

Revenir à « DCS World : Salle principale »