VEAF
    • Site VEAF
    • Catégories
    • Récent
    • Populaire
    • Utilisateurs
    • Groupes
    • calendar
    • S'inscrire
    • Se connecter

    Nouvelle version de CDC2 « Cap et distance cible sur coordonnées bullseye »

    La taverne des oiseaux
    2
    6
    199
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • ?
      Un Ancien Utilisateur
      dernière édition par

      2b1f671d-ac3f-4852-8673-d972d8c6e8c4-image.png
      Pour ceux que cela intéresse, cette nouvelle version se connecte à DCS pour obtenir automatiquement les coordonnées de notre avion. Il ne reste plus qu’à positionner la cible pour connaitre le cap à prendre et sa distance. Cela rend je pense l’utilitaire un peu plus opérationnel, surtout pour les modules ne gérant pas le bullseye.

      A noter que j’aurais pu demander à DCS de fournir les coordonnées de toutes les unités ennemies présentes sur la carte, mais d’une part ce serait tricher et d’autre part cela ne pourrait pas fonctionner sur les serveurs qui activent l’anti-cheat (je n’ai pas vérifié mais cela doit être le cas sur les serveurs VEAF).

      Téléchargement : https://mega.nz/file/u0YkABiY#cKsnvkRya60-TXaTNsadloypOXHq_n9VR7Cqv388-3I

      Nécessite l’ajout de deux lignes dans le fichier « Export.lua » : lire attentivement le chapitre installation dans le manuel.
      Merci d’avance pour d’éventuels commentaires de la part de ceux qui voudront bien tester.

      1 réponse Dernière réponse Répondre Citer 1
      • ZipZ
        Zip Membre VEAF
        dernière édition par

        Salut @Orion !

        Ça a l’air bien chouette comme outil, bravo.

        Je regardais un peu ton manuel, avec comme objectif de distribuer ton logiciel dans un paquet OvGME, sur un de nos repositories VEAF, et le seul point “bloquant” est l’édition du fichier export.lua qui nécessite une action de l’utilisateur.

        Tu sais que le même genre de mécanisme (callback) existe dans une version plus moderne avec les “hooks” ?
        Au départ c’était fait pour les serveurs, mais ça fonctionne aussi en solo, et en tant que client d’un serveur (SRS l’utilise, ainsi que Tacview et le mod Scratchpad).

        Est-ce que ça te tenterait d’essayer de porter ton script lua vers ce mécanisme de “hook” ? Si ça marche, ton code serait totalement isolé et autonome (plus besoin d’éditer un quelconque fichier à la main) et du coup ça serait très facile à utiliser sous forme de mod dans un paquet OvGME.

        Reste à voir si ça fonctionne aussi bien en multi (d’ailleurs, est-ce que tu as testé ta version “export” dans ce mode ?).

        En tout cas chapeau, belle initiative.
        Il ne reste plus qu’à partager le code en open-source et tu auras tout mon respect 😉

        Zip

        ? 2 réponses Dernière réponse Répondre Citer 0
        • ?
          Un Ancien Utilisateur @Zip
          dernière édition par

          @zip merci pour tes encouragements. Je vais regarder de plus près ce que tu me conseilles. Si j’ai des difficultés je te demanderai des éclaircissements.

          1 réponse Dernière réponse Répondre Citer 0
          • ?
            Un Ancien Utilisateur @Zip
            dernière édition par

            Salut @zip.

            Tout d’abord je n’ai pas répondu à deux questions :

            1. Oui, la solution “export” fonctionne parfaitement sur les serveurs VEAF.
            2. Ok pour partager une partie de mon code, en l’occurrence la mise en œuvre des lois sinus et cosinus sur un triangle quelconque et l’astuce que j’ai choisi pour résoudre l’instabilité des équations lorsque l’un des angles à déterminer est obtus. Pour le reste je ne développerai pas ici les raisons de ne pas partager mais je peux te les communiquer par oral.

            Concernant la possibilité d’utiliser un hook, cette solution me semble effectivement séduisante car, outre le fait de ne plus avoir à bidouiller le fichier export.lua, mon processus serait totalement isolé, sans crainte d’interférence avec d’autres mods.

            Toutefois, si j’ai bien compris, je dois fournir à mon script de hook un point d’entrée dans mon programme, en l’occurrence une fonction. Dans l’absolu c’est faisable mais ce serait un coup d’épée dans l’eau car, sauf erreur, Windows ne permet pas d’appeler une fonction exportée à partir d’un EXE.

            Je dois donc transformer mon EXE en DLL. Jusqu’ici c’est faisable. Cependant j’aimerais être sûr de pouvoir récupérer les informations de DCS dont j’ai besoin, à savoir la latitude et la longitude de mon avion. Dans la solution “export” je fais appel à la fonction LoGetSelfData(), est-ce que je pourrai l’invoquer dans mon script de hook ? Soit :

            local status,cdc = pcall(require,'cdc')
            ...
            function cdcCallbacks.onSimulationFrame()
            	local v = Export.LoGetSelfData()
            	cdc.getSelfLatLong(string.format("%f;%f", v.LatLongAlt.Lat, v.LatLongAlt.Long))
            end
            ...
            

            cdc étant ma DLL et getSelfLatLong ma fonction d’entrée.

            Il se peut toutefois que je n’aie pas totalement compris.

            ZipZ 1 réponse Dernière réponse Répondre Citer 0
            • ZipZ
              Zip Membre VEAF @Un Ancien Utilisateur
              dernière édition par

              Salut @orion ; on pourra en parler un peu ensemble si tu veux à l’occasion mais le fait de passer par un hook ne t’oblige pas à changer le fonctionnement de ton script.
              Tu peux toujours avoir une socket qui communique avec ton programme, exactement comme avec l’export.
              La seule différence est le point d’entrée dans ton lua : pour l’export, c’est dans un module dédié à ça (les exports) et pour les hooks dans un autre (dédié aux callbacks sur évènement).
              Pour ce qui est d’utiliser une socket pour communiquer avec un programme, regarde du côté de Perun, c’est exactement ce qu’ils font.

              Pour le partage de tes sources, je te laisse bien sûr libre de faire ce que tu veux.
              Perso, je suis pour l’ouverture et le partage, qui permet (outre de faire profiter de tes lumières à d’autres, comme tu as pu profiter de leur code pour apprendre de ton côté) de bénéficier parfois du travail des autres qui t’aident dans ton projet ou corrigent un souci.

              Zip

              ? 1 réponse Dernière réponse Répondre Citer 1
              • ?
                Un Ancien Utilisateur @Zip
                dernière édition par

                Salut @zip ,
                Effectivement ça marche. Et merci pour tes lumières !
                La solution “hook” est ici :https://mega.nz/file/DgZEUTKT#b7p9vvwDrHcdZTFtXTZ2ZhNPXPh4Wk7fPLJvS-jtJo8

                1 réponse Dernière réponse Répondre Citer 0
                • Premier message
                  Dernier message