Jump to content

Advanced Tools for Mission Editor - ATME


sunski34

Recommended Posts

Salut,

 

j'espère qu'ATME t'apportera ce que tu attends. Son principal objectif est d'offrir une base logicielle pour les missions multijoueurs et monojoueurs. Les deux types de missions sont alors compatibles en terme de scripting.

 

Par ailleurs, ATME se base sur une approche modulaire, un module pouvant être générique et donc réutilisé dans plusieurs missions ou dédié à une mission.

 

Comme l'a dit snow,les exemples te montreront les bases et la doc est essentielle pour comprendre le concept (même s'il reste encore quelques coquilles !)

 

Je travaille actuellement sur la V1.2.1 qui amènera son lot de corrections de bug et d'améliorations :

 

  • Ajout d'une gestion de tags pour les noms ou chaines de caractères. Ceci permet d'avoir par exemple des noms de groupes ou d'unité formattés genre "M2000C GBU #001" et de récupérer ou comparer chaque tag ici "M2000C", "GBU" et "#001". Il est ainsi aisé d'ajouter un avion de nom "M2000C GBU #002" qui aura le même traitement que l'avion #001.
  • Ajout du verrouillage d'une fréquence radio pour éviter la superposition d'émission radio. La fréquence est verrouillée pour une durée donnée par une unité.
  • Amélioration de la gestion du spot laser et IR avec une gestion de la perte de visée, la possibilité de cibler à partir d'un drône, un choix des priorités et une possibilité d'ignorer une cible proposée. De nouveaux événements core ont été créés pour celà.
  • Ajout d'une possibilité de tracking à partir des senseurs réels d'une unité. Exemple : pour un radar, il est possible de suivre les targets détectées. De nouveaux événements core ont été implémentés pour ce faire.

 

et d'autres fonctions à suivre.

 

Par ailleurs certaines fonctions existantes ont été renommées afin d'être plus cohérent :

ATME.rotateH (un peu bizarre en V1.2.0) est renommée en coordLocalToDCS et corrigée. Sa fonction inverse a été créée. Les fonctions liées aux spots débutent par spot donc par exemple activateLaserSpot et activateIRSpot de la classe ATME.C_AIUnit ont été renommées en spotActivate. La fonction startAircrafts de la classe ATME.C_Group a été renommée en start avec la possibilité de démarrer des véhicules, dans ce cas, l'AI est activée et si le groupe de véhicules dispose d'une route avec des waypoints alors il débutera son parcours.

 

Voici quelques éléments à venir, une liste plus complète sera donnée ultérieurement. J'espère pouvoir publier cette version d'ici fin octobre.

 

A bientot

Sunski


Edited by sunski34
Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,

 

j'ai pris un peu de retard, notamment sur les tests et la mise à jour de la documentation. Cette nouvelle version sera finalement la V1.3.0 au regard du nombre d'évolutions apportées. En effet, la gestion de son a été modifée. Plus simple d'utilisation, elle offre maintenant bien plus de fonctionnalités. La gestion des sons touche :

  • les sons diffusés à un joueur ou à un groupe de joueurs (en fonction de sa coalition ou de sa nation).
  • les sons transmis au travers d'un canal radio : Il sera désormais possible de simuler l'occupation d'un canal radio. Si deux transmissions radios ont lieu sur le même canal simultanément, plusieurs possibilités sont offertes par ATME : La nouvelle transmission remplace l'ancienne, la nouvelle transmission est perdue car le canal est occupé par l'ancienne, la nouvelle transmission est mémorisée et sera diffusée quand la transmission en cours sera terminée.

 

Il sera également possible de faire un mini TTS (text to speach) avec une gestion possible de plusieurs voix. De même, des pauses peuvent être incluses ainsi que la possibilité de décomposer un nombre en chiffre, un mot en lettres, d'énoncer des coordonnées en longitude/latitude.

 

Enfin, des événements DCS complémentaires sont pris en compte comme le tir, l'impact d'un tir, la prise d'une base.

 

En conséquence, j'espère publier cette nouvelle version d'ici fin du mois.

 

Sunski


Edited by sunski34
Link to comment
Share on other sites

  • 4 weeks later...

Bonjour à tous,

 

la version ATME V1.3.0 a été publiée avec son manuel de référence. Les exemples du manuel antérieur ont été mis à jour. Je travaille actuellement sur le guide utilisateur et les exemples complémentaires.

Attention, il y a eu pas mal de modifications sur les fonctions. Ne pas hésiter à me solliciter si besoin. Un test a été fait sur la V2.2.0, OK.

 

Je reste disponible pour toute question.

 

lien pour le téléchargement ici : https://forums.eagle.ru/showpost.php?p=3001633&postcount=1

 

Sunski.


Edited by sunski34
Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

une nouvelle version d'ATME a été publiée, V1.3.1. Elle corrige quelques bug. Par ailleurs deux nouveaux exemples ont été ajoutés sur :

 

  • La gestion des séquences sonores et Text To Speach
  • La gestion des tags et du spot laser.

 

Je reste disponible pour toute question.

 

lien :https://forums.eagle.ru/showpost.php?p=3001633&postcount=1

 

Sunski

Link to comment
Share on other sites

Hello !

 

Tout d'abord, merci pour le taf mis à disposition. :thumbup:

 

Sagement orienté sur C6, je tente d'utiliser tout cela...

Comme je l'ai dis là-bas, même si la simple évocation des mots "SCRIPT" et "VARIABLE" me fait saigner du nez biggrin.gif , les choses avancent...

 

Voilà l'idée de départ : créer une sorte de Mach Loop, ç-à-d une

, mais pas limitée au Hawk.

 

J'ai donc utilisé ATME_module5b.lua (même si "utilisé" est un bien grand mot ! music_whistling.gif )

 

Ce qui est déjà fait :

  • Mission SOLO
  • Mission dispo pour DCS 1.5.8
  • Le parcours dispose d'un point d'entrée très précis
  • Le parcours dispose d'un point de sortie très précis
  • Le parcours est jalonné de check points obligatoires
  • Pour chaque appareil s'engageant, le chrono se déclenche au franchissement du point d'entrée

Ce que j'aimerai faire :

  • Une altitude ASFC maxi est imposée (en cas de dépassement, voir ci-dessous. J'ai bien vu que dans le script, il était possible de régler l'altitude au franchissement des portes par "setMaxAltitudeRule(200, 10)" mais 1°) est-ce que cela s'applique à toutes les portes ? et 2°) peut-on imposer une altitude ASFC également en dehors des portes ?)

  • Le chrono indique un temps intermédiaire au franchissement de certains check-points (actuellement, seul le CP4 donne l'indication. J'ai essayé de recopier la section "setLapAtDoor(4)" et de changer le numéro, mais ça marche pô)

  • le chrono s'arrête au franchissement du point de sortie (voir ci-dessous)

  • en cas de dépassement de l'altitude autorisée, une pénalité est ajoutée (j'ai bien vu qu'il était question de "RACE_PLAYER_TOO_HIGH" et qu'il y avait même la sanction "Altitude is too high : 10s penalty", mais là aussi, je patauge lamentablement)

Ce qui ne marche pas :

  • après un premier parcours, quand on enchaine une seconde boucle, le chrono s'arrête à l'avant dernier CP. Le temps et les infos affichés correspondent à une fin de parcours alors qu'en réalité, il reste un CP à atteindre.

Est-ce dû au fait que la ligne d'arrivée et la ligne de départ sont en réalité le même CP ? Si oui, comment faire ?

Désolé de poser ces questions d'éléphant, mais je me dis que je ne dois pas être le seul à trembler devant ce genre de choses, alors que ça ne doit pas être aussi terrible que çà !

Merci d'avance ! :smilewink:

 

349342DCS20171221181529206.jpg


Edited by Coyotte
Link to comment
Share on other sites

Salut et merci

 

J'ai testé la gestion des courses et celà marche à priori mais je retesterai celà en fin d'après midi ou demain.

 

Ce qu'il faut savoir pour la course du module 5b :

  • La pénalité d'altitude est paramétrable et ne s'applique effectivement qu'au passage d'une porte. Ce choix a été fait car en fonction de la typologie du terrain (genre en montagne), ca devient compliqué. Il est cependant possible via le onUpdatePlayer de vérifier l'altitude de chaque joueur mais là il faudra que tu gère toi même les pénalités, donc il faut du code même si pour une course assez plate c'est pas très compliqué.
  • Toutes les portes doivent être franchies, les unes après les autres, si une n'est pas franchie, le chrono continue donc autopénalisation car il faut revenir dessus et la passer dans le bon sens
  • Pour le temps intermédiaire c'est bizarre, ca doit marcher pour la 5, je regarderai. Attention cependant, la 3 est supprimée donc bien là....
  • Enfin une course a plusieurs tours possibles, ici 2 tours. Donc tu as un lap au départ de la deuxième boucle c'est normal.

 

A+

Sunski


Edited by sunski34
Link to comment
Share on other sites

Effectivement, il faut impérativement un point de sortie différent du point de départ, si tu enchaine les tours, les tours débutent tous au point de départ et le dernier tour s'arrête au point d'arrivée, donc s'il y a plusieurs tours alors le tronçon point d'arrivée point de départ fait partie de la course. Le lap tour se fait au point de départ dès la fin du premier tour.

 

Si maintenant tu n'as qu'un tour, tu peux mettre la dernière porte juste avant la première.

Link to comment
Share on other sites

Re,

 

j'ai remis le fichier module5b d'origine, pour moi ca fonctionne de base. Donc tu n'as rien à changer pour 2 tours. Voici le fichier ajusté avec des commentaires si tu ne veux qu'un tour. De plus j'ai fait une boucle pour que toutes les portes aient un temps intermédiaire de la deuxième à l'avant dernière. J'ai pas testé si je mettais la dernière mais ca devrait fonctionné. Tu verras que les laps fonctionnent. Bien sur il faut passer dans la porte, c'est très précis, si tu passes au raz à l'extérieur c'est loupé. Pour aider le joueur, tu pourras agrémenter le passage de la porte par un "hourra" de foule.

 

Voici le fichier, chez moi ca fonctionne donc.

 

Si tu veux de l'aide pour mettre un fichier son ou modifier les commentaires, fais moi signe.

 

A+

Sunski

ATME_module5b.lua

Link to comment
Share on other sites

Encore merci : ça marche ! :thumbup:

Maintenant, est-ce que j'abuse si j'en demande un peu plus ?:helpsmilie:

J'ai commencé la version du Mach Loop pour DCS 2.2.

En l'état, tout fonctionne. C'est un copier/ coller de 1.5.8 avec un circuit beaucoup plus long (une cinquantaine de portes), à un seul tour (ouvert : on part de Nellis et on passe la ligne d'arrivée à Lincoln County).

J'ai suivi tes instructions : c'est tout bon !

 

Maintenant, j'aimerai savoir s'il est possible qu'à chaque passage de porte le concurrent puisse disposer de son temps intermédiaire (et éventuellement de son classement en multi, mais je ne sais pas si c'est faisable).

Ça permettrait 1°) d'avoir confirmation que la porte a été franchi correctement et 2°) de "muscler" un peu la course.

 

Encore merci de ton aide !

 

700837DCS20171226151408052.jpg

Link to comment
Share on other sites

Salut,

 

Tant mieux si ca fonctionne, :)

 

pour l'aspect Multi, oui avec le code que tu as, d'office, tous les joueurs ont leur temps intermédiaire au franchissement, avec pour une porte donnée une indication du record à cette porte (le meilleur temps de passage). Le meilleur temps est celui de toutes les courses réalisées sur un parcours.

 

Le but même d'ATME c'est de permettre de créer des missions compatibles MP et SP sans rien changer.

 

Mais par contre, pour l'instant pas de classement donné lors du passage d'une porte pour une course donnée. C'est vrai que ce serait sympa. Je regarderai ce qu'il est possible de faire.

A+

Sunski


Edited by sunski34
Link to comment
Share on other sites

En fait, le classement donné à l'arrivée est là aussi le meilleur classement de toutes les courses engagées sur ce parcours. En effet, un joueur peut faire plusieurs fois le même parcours, même si la course elle meme fait 1 tour. Son classement général sera le temps de sa meilleure course réalisée (meilleur tour réalisé si la course ne fait qu'un tour).

 

La philosophie est donc un peu différente de la tienne je pense.

Link to comment
Share on other sites

Ok. Pour les MP, j'ai vu et je t'ai répondu. Merci

 

Sinon pour en revenir à la course...

 

Dans ATME une course est un parcours chronométré. Les joueurs doivent être inscrits pour etre pris en compte, tu verras dans l'exemple, dans la fonction createPlayer il y a

race:addPlayer(player)

 

Il n'y a pas de départ en ligne en tant que tel. Chaque joueur débute sa course dès qu'il franchit la première porte. Il la finit après franchissement dans la dernière. Ne sont conservés que les meilleurs temps des joueurs comme dans l'exemple du module 5b. Un joueur peut retenter la course tant qu'il est inscrit, dans le module 5b les joueurs sont toujours inscrits. S'il retente et qu'il améliore alors ce temps sera conservé.

 

L'objectif de la course est donc d'être le plus rapide sur une session, en fonction des contraintes de la mission (possibilité ou non de recommencer).

 

Ce n'est donc par réellement une course en ligne, il est donc difficile de donner un classement aux points intermédiaires sauf à mettre le même type de classement qu'à l'arrivée c'est à dire les meilleurs temps de passage de chaque joueur à ce point intermédiaire, le tout classé. On notera que si la course a plusieurs tours, alors les temps intermédiaires sont évalués sur le tour en cour, en gros, c'est le temps mis depuis le piquet départ et ce pour chaque tour.

Link to comment
Share on other sites

Bonjour,

 

la version 1.3.2 d'ATME est publiée ce jour apportant des corrections pour le spawn à partir de données directement mises dans le script. Des fonctions complémentaires ont été ajoutée ainsi que les dernières nations ajoutées dans DCS. La gestion des marqueurs dans la vue F10 est également présente.

 

Pour le détail et les téléchargements : https://forums.eagle.ru/showpost.php?p=3001633&postcount=1

 

Je reste dispo pour toute question.

Sunski

Link to comment
Share on other sites

  • 5 weeks later...

Slt,

 

Tout d'abord merci pour ton travail :p.

 

Je m’intéresse au script de mission depuis un moment et je ne suis pas vraiment très doué pour en comprendre le fonctionnement. J'aurais donc aimé savoir si tu pouvais me renseigner sur la méthode à appliquer pour certaines fonction de script pour une mission?

 

Merci à toi

Link to comment
Share on other sites

Salut,

 

Tout dépend de ce que tu veux faire et de ta volonté car c'est très chronophage.

 

En fait, partir des fonctions de base de DCS "Scripting Functions" permet rapidement de faire de petites choses, mais tu verras rapidement qu'entre les bugs et la complexité de certains traitement ce ne sera pas si simple. Par exemple, associer une nouvelle route pour un véhicule peut ne donner aucun résultat si c'est fait "trop vite" c'est à dire avant que DCS n'ait pris en charge le groupe.... soit un délai de 1 à 2 s qu'il te faut gérer.

 

Tu as plusieurs types de framework comme MOOSE ou mist, et bien sur mon préféré, le mien ATME... je suis partial ;)

 

MIST est en fait très proche des "Scripting functions". J'ai appris pas mal en analysant le code de MIST. MOOSE est bien plus complexe, et s'adresse aux codeurs invétérés. ATME est entre les deux, avec trois exigences ... cibler la création rapide de mission en premier objectif, apporter une grande richesse fonctionnelle dans un deuxième temps, et, enfin, être modulable, c'est à dire pouvoir empiler différents modules ATME dans une même mission.

 

ATME apporte donc beaucoup de fonctionnalités mais seules quelques unes suffisent pour débuter. Il te faut comprendre les événements ca c'est essentiel. ATME simplifie la gestion des missions multi de manière considérable par rapport aux triggers de base et aux "Scripting functions". Ainsi il est possible de balancer le rapport de force d'une mission en fonction du nombre de joueurs par exemple. Enfin, le côté modulable permet de créer ses propres modules de script de base reutilisables pour certains types de mission, exemple l'emport de troupes en hélico pour les joueurs (en attendant une version DCS opérationnelle).

 

De plus, pour mettre une ambiance sonore relativement complexe, gérer des communications radio poussées, gérer les franchissements de frontières et d'une manière plus générale les franchissements de zones spécifiques définies par des polygones, des rectangles, des cercles etc, gérer les détections d'ennemis pour engager des actions particulières (exemple : surveillance d'espace aérien par un radar sol couplé au franchissement de frontière, qui engagerait une interception par des chasseurs ennemis)... là ATME est idéal, celà se fait en quelques lignes de lua. Ceci ouvre beaucoup de possibilités pour notamment des missions d'attaques au sol, très basse altitude en montagne/vallées, en restant sous les zones de détection radar ennemies histoire de ne pas se faire engager par la chasse ennemie. Là l'objectif est d'être détecté le plus tard possible pour se barrer pleine PC après l'attaque afin de revenir en zone amie et donc sous couverture SAM amie.

 

Je vais commencer à tester ATME sur la 2.5 et la version qui va sortir, la V1.4.0, va amener la gestion des tâches pour les groupes. Des missions plus complexes vont bientot être publiées puisque ATME est presque prêt à passer de sa version beta à une version release.

 

Maintenant pour débuter, tu peux partir des exemples en attendant la doc qui va bien, et en te basant en parallèle sur le manuel de référence. Prends des exemples simples au début.

 

Je reste dispo si tu as besoin d'infos bien sur.

 

Bon courage

A+


Edited by sunski34
Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,

 

la nouvelle version d'ATME vient d'être publiée : https://forums.eagle.ru/showpost.php?p=3001633&postcount=1

 

Cette version intègre la gestion des tâches affectées aux groupes et apporte de la souplesse et de la robustesse. De nombreux tests ont été faits pour stabiliser ATME sur la DCS 2.5 open beta. Le spawn complet est maintenant complètement opérationnel. Une mission est jointe pour créer dynamiquement des SU-27 afin de les combattre en M2000C, il est possible de les spawner en face à face hot ou cold, avec différentes configuration de groupe ou d'armements. Ceci résume bien les possibilités d'ATME, tant en action sur les troupes au sol, transport et engagement, rescue, qu'en combat ou en entrainement. Tout celà se fait en peu de lignes de code même si j'en conviens lua n'est pas toujours facile à débugger.

 

Vous trouverez de nombreux exemples, comme le bombardement ou le tir d'artillerie, la dépose automatique de troupes etc..., tous testés.

 

Je reste disponible si besoin.

Enjoy ATME ;)

 

 

Sunski


Edited by sunski34
Link to comment
Share on other sites

Salut et merci pour ton encouragement ;)

 

Sinon, ci-joint la version V1.4.1 qui ajoute une option que j'ai oubliée dans la V1.4.0. Corrige aussi un bugsur le setTask pour les tâches FAC_ATTACK_GROUP et FAC_ENGAGE_GROUP.

 

le lien : https://forums.eagle.ru/showpost.php?p=3001633&postcount=1

 

Enjoy ATME ;)

A bientot

Sunski


Edited by sunski34
Link to comment
Share on other sites

  • 3 weeks later...

Ce jour, je publie la V1.4.2 qui améliore certains traitements et apporte quelques modifications. Une fonctionnalité importante est apportée aux tâches, notamment JTAC. Il est possible dorénavant de demander à un JTAC de nettoyer une zone. Le traitement se fera en commencant par les cibles les plus dangereuses vue d'ATME. La même fonction existe pour la tache "ATTACK_GROUP".

 

Dans le fichier ZIP "Other Examples" vous trouverez deux exemples (un pour chaque cas).

 

Le lien : https://forums.eagle.ru/showpost.php?p=3001633&postcount=1

 

Enjoy ATME ;)

A bientot.

Sunski

Link to comment
Share on other sites

Attention, la version 1.4.2 d'hier n'était pas la bonne. La mise à jour a été faite ce matin.

Pas de changement sur les éléments annoncés et la documentation.

 

Les différents exemples restent fonctionnels en remplaçant l'ancienne version par celle ci dans les missions associées.

 

Désolé pour ce contretemps.

 

 

Enjoy ATME ;)

Sunski

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...