Bienvenue invité ( Connexion | Inscription )
Blu3dr4g0n |
26 May 2012, 19:20
Message
#1
|
Messages : 85 Inscrit : 16/03/08 Lieu : Castres Membre n° 2,983 |
Bonjour,
Je cherche à rajouter un petit composant à mon DCS:A10C 1.1.1.1 via un bout de code LUA à savoir la détermination d'une cible amie ou ennemie (un peu le rôle de l'IFF qui n'est pas implémenté). J'ai commencé mon code, mais je me gratte la tête car : 1- Je ne sais pas comment récupérer les infos de la cible que j'ai locké (en la définissant comme SPI pour le CCRP) => je ne sais pas comment faire pour "trapper" le fait que la cible est locké (la fonction LoGetLockedTargetInformation() ne fonctionne pas ...) 2- Je ne sais pas comment récupérer l'état du switch IFF (console de gauche au dessus de la molette de selection des bandes) Avez vous des idées ? En PJ mon code à placer dans "C:\jeux\DCS A-10C\Config\Export\BlueDragonIFF.lua" pour tester et à activer en rajoutant dofile("./Config/Export/BlueDragonIFF.lua"); dans le fichier Export.lua. Merci CODE -- BlueDragon IFF for DCS:A10C -- Copyright (C) 2012 - http://www.3rd-wing.net -- http://www.3rd-wing.net/index.php?showuser=2983 -- Headers dofile("./Config/World/World.lua") -- Required to get mission date dofile("./Scripts/Database/wsTypes.lua") -- Required to get object types definitions BlueDragonIFF= { -- Version Version = 0.1, --Logs LogLevel = 2, --Niveau 0 / 1 / 2 [OFF / Warning / Full] LogFileName = lfs.writedir() .. "Logs\\BlueDragonIFF_"..os.date("!%Y-%m-%d_%H%M%S",now)..".log", --Nom du log au format <nomfichier_date>.log LogFilePtr = nil, -- ___________ --/ LOGSTART()\ ------------------------------------------------------------------------------ -- Fonction d'ouverture et initialisation du log ------------------------------------------------------------------------------ LogStart = function(self) self.LogFilePtr = io.open(self.LogFileName, "w+"); self:LogWrite(0, "BlueDragon IFF for DCS:A10C - V"..self.Version); self:LogWrite(0, "Copyright (C) 2012 - http://www.3rd-wing.net"); self:LogWrite(0, "Version : "..self.Version); self:LogWrite(0, ""); local Player = LoGetObjectById(LoGetPlayerPlaneId()); self:LogWrite(0, "Joueur : "..LoGetPilotName().." | ID : "..LoGetPlayerPlaneId()); self:LogWrite(2, "Country : "..Player.Country); self:LogWrite(2, "Coalition : "..Player.Coalition); end, -- ___________ --/ LOGWRITE()\ ------------------------------------------------------------------------------ --Fonction d'écriture de message dans le log -- DebugLevel : Number -- message : String ------------------------------------------------------------------------------ LogWrite = function(self, DebugLevel, message) if (DebugLevel <= self.LogLevel) then self.LogFilePtr:write("["..os.date("!%H:%M:%SZ",now).."] "..message.."\n"); end end, -- ___________ -- / LOGCLOSE()\ ------------------------------------------------------------------------------ -- Fonction d'ouverture et initialisation du log ------------------------------------------------------------------------------ LogClose=function(self) self:LogWrite(2, "Fermeture du log"); self.LogFilePtr:flush(); self.LogFilePtr:close(); end, -- _______________ -- / TargetUpdate()\ ------------------------------------------------------------------------------ -- Fonction de mise à jour des infos de la cible (IFF) ------------------------------------------------------------------------------ TargetUpdate=function(self) local Target = LoGetObjectById(LoGetLockedTargetInformation()["ID"]); if (Target ~= nil) then self:LogWrite(2, "--LockedTarget"); self:LogWrite(2, "Name : "..Target.Name); self:LogWrite(2, "Country : "..Target.Country); self:LogWrite(2, "Coalition : "..Target.Coalition); end end, } --============================================================= -- (Hook) Appel 1 fois juste avant le démarrage de la mission --============================================================= do local PrevLuaExportStart=LuaExportStart; LuaExportStart=function() BlueDragonIFF:LogStart(); if PrevLuaExportStart then PrevLuaExportStart(); end end end --============================================================= -- (Hook) Appel avant chaque frame de la simulation --============================================================= do local PrevLuaExportBeforeNextFrame=LuaExportBeforeNextFrame; LuaExportBeforeNextFrame=function() if PrevLuaExportBeforeNextFrame then PrevLuaExportBeforeNextFrame(); end end end --============================================================= -- (Hook) Appel apres chaque frame de la simulation --============================================================= do local PrevLuaExportAfterNextFrame=LuaExportAfterNextFrame; LuaExportAfterNextFrame=function() if LoGetLockedTargetInformation() ~= nil then BlueDragonIFF:TargetUpdate(); end if PrevLuaExportAfterNextFrame then PrevLuaExportAfterNextFrame(); end end end --============================================================= -- (Hook) Appel apres la fin de la mission --============================================================= do local PrevLuaExportStop=LuaExportStop; LuaExportStop=function() BlueDragonIFF:LogClose(); if PrevLuaExportStop then PrevLuaExportStop(); end end end --------------------
Knowledge Is Power |
raven |
26 May 2012, 21:16
Message
#2
|
Messages : 201 Inscrit : 6/01/11 Membre n° 3,731 |
juste une question (j'avoue ne pas avoir lu le code) car je n'ai pas compris l'objectif , tu veux implémenter une IFF sur un A-10C , c'est a dire une simulation d'un transpondeur sur le A10C ? ou un interrogateur sur le A10C ? je pense pas que le A10C puisse interroger il peut juste répondre (transpondeur) ... et les switch correspond à celà.... exemple
un F15C interroge un A10C si les codes sont corrects , réponse positive le A10C est vu ami et ne se prend pas un AMRAAM dans la tronche (en réalité IFF + NCTR qui est devenu une obligation en operation OTAN) sinon pour les cibles sol , il 'y a l'elprs mais le principe est différent merci par avance du complément Ce message a été modifié par raven - 26 May 2012, 21:39. --------------------
E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate |
Blu3dr4g0n |
26 May 2012, 21:54
Message
#3
|
Messages : 85 Inscrit : 16/03/08 Lieu : Castres Membre n° 2,983 |
juste une question (j'avoue ne pas avoir lu le code) car je n'ai pas compris l'objectif , tu veux implémenter une IFF sur un A-10C , c'est a dire une simulation d'un transpondeur sur le A10C ? ou un interrogateur sur le A10C ? je pense pas que le A10C puisse interroger il peut juste répondre (transpondeur) ... et les switch correspond à celà.... exemple un F15C interroge un A10C si les codes sont corrects , réponse positive le A10C est vu ami et ne se prend pas un AMRAAM dans la tronche (en réalité IFF + NCTR qui est devenu une obligation en operation OTAN) sinon pour les cibles sol , il 'y a l'elprs mais le principe est différent merci par avance du complément Bonjour Raven, De façon générale, ce que je souhaitais mettre en place était l'obtention de l'information si la target que je ciblais sur mon TGP était amie ou ennemie. Concernant l'IFF, je connais dans les grandes lignes le principe. Je parle de Friend or Foe car c'est plus parlant pour les gens mais ce n'est pas la vrai fonctionnalité du IFF + NCTR que je cherche à simuler. Concernant l'ELPRS, je le vois parfois sur mon TAD, mais jamais sur le TGP (une fois lorsque je m'entraînai au lâché de GBU12, je pouttrais des alliés car je ne prenais pas le temps de les identifier ) En synthèse, et pour faire très simple, quand sur mon TGP je cible, j'aimerais savoir s'il s'agit d'un ami ou ennemi. Si via l'ELPRS c'est possible je veux bien avoir un lien vers la doc qui en parle ^^ --------------------
Knowledge Is Power |
raven |
27 May 2012, 08:41
Message
#4
|
Messages : 201 Inscrit : 6/01/11 Membre n° 3,731 |
ben sur les mission ou j'ai un humvee ou un bradley en jtac, je le vois avec une croix verte sur le TGP quand il est dans le champ de celui ci
je re testerais avec plus d'unité mais il me semblais que cela fonctionnais pas mal SAUF que les fantassins ne peuvent pas être visible (certainement d'autre aussi), mais celà est logique par rapport à la liste des unités le supportant , concernant la fonction LOGETLOCKEDTARGET, que renvoie elle ? est ce que l'ID de la cible lockée est renvoyé ou la table est carement vide CODE _LoGetLockedTargetInformation =LoGetLockedTargetInformation() nb_cibles = #_LoGetLockedTargetInformation --------------------
E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate |
Azrayen' |
27 May 2012, 08:50
Message
#5
|
VALHALLA EXPRESS Indicatif : VK-01 Messages : 7,208 Inscrit : 1/03/05 Lieu : Forteresse de Lug Membre n° 90 |
Blu3dr4g0n,
Ce que tu cherches à faire n'existe pas ou très peu (IRL) pour l'instant. Ça fait partie des travaux du moment d'automatiser (via un D/L) l'acquisition de la position des blue forces, mais c'est loin d'être déployé. L'exemple des JTAC, premiers équipés, est pertinent. L'identification des cibles au sol (ami, ennemi, neutre, civil...) reste l'une des grandes difficultés du métier. Si tu enlèves cette difficulté dans le simu (je pense que c'est possible, puisque le moteur du simu sait quelle unité appartient à quel camp), c'est une sorte d'avantage "indu" par rapport aux autres pilotes. --------------------
|
Blu3dr4g0n |
27 May 2012, 09:54
Message
#6
|
Messages : 85 Inscrit : 16/03/08 Lieu : Castres Membre n° 2,983 |
Bonjour à tous,
Effectivement, après une bonne nuit de sommeil, j'ai bien réfléchi et, comme l'indique Azrayen, mon code ne prendrait pas en compte le fait que des unité ne disposent pas de l'ELPRS, ce qui enlèverait une partie de la tension de fin de mission pour cleaner l'espace des derniers ennemis restant (généralement camions de transports et autre). Comme je suis sur une voie d'apprentissage / perfectinonement sur l'A10C, je souhaitais repousser cette phase "apprentissage des vehicules ennemi" à plus tard, mais finalement, mon code ressemblerait plus à "une triche" et serait peut-être utilisé pour fausser l'utilisation du simu à terme. Grâce au EdModelViewer, je peux me faire une petite encyclopédie avec plusieurs vue du véhicule (des fiches existent déjà, mais pas avec plusieurs vue), y a plus qu'à Je laisse le code, ça donnera les bases à ceux qui veulent s'essayer au LUA sous DCS. Bonne journée à tous Ce message a été modifié par Blu3dr4g0n - 27 May 2012, 09:55. --------------------
Knowledge Is Power |
SandJo |
27 May 2012, 11:41
Message
#7
|
Fratttttttt!!! Messages : 821 Inscrit : 4/05/07 Lieu : RODEZ Membre n° 1,763 |
Salut les gens,
Bon je vais être hors sujets, mais ce qui se dit dans ce post me fait vous demander s'il serait possible d'identifier et afficher une mention de la piste qui est choisie en atéro ILSN sur FC2 et plus tard sur FC3 ? Je demande ça car on a pas cette info sur le F15 en mode ILSN. On ne sait donc pas quel piste est sélectionnée, surtout quand on commence à switcher et qu'on perd le fils. Un petit affichage de l'info momentanée comme les info de kill par exemple serait d'un grand confort. De plus, si FC3 n'est qu'une simple transposition de FC3 dans World, il est à parier que ce sera toujours le cas.. Tchouss SandJo |
raven |
27 May 2012, 11:51
Message
#8
|
Messages : 201 Inscrit : 6/01/11 Membre n° 3,731 |
Bonjour à tous, Effectivement, après une bonne nuit de sommeil, j'ai bien réfléchi et, comme l'indique Azrayen, mon code ne prendrait pas en compte le fait que des unité ne disposent pas de l'ELPRS, ce qui enlèverait une partie de la tension de fin de mission pour cleaner l'espace des derniers ennemis restant (généralement camions de transports et autre). Comme je suis sur une voie d'apprentissage / perfectinonement sur l'A10C, je souhaitais repousser cette phase "apprentissage des vehicules ennemi" à plus tard, mais finalement, mon code ressemblerait plus à "une triche" et serait peut-être utilisé pour fausser l'utilisation du simu à terme. Grâce au EdModelViewer, je peux me faire une petite encyclopédie avec plusieurs vue du véhicule (des fiches existent déjà, mais pas avec plusieurs vue), y a plus qu'à Je laisse le code, ça donnera les bases à ceux qui veulent s'essayer au LUA sous DCS. Bonne journée à tous Ok, c'est ce que je t'avais indiqué/conseillé sur le post sur la recherche et l'identification de cible il y'a quelques temps, ceci étant dit pour la question concernant le LUA, je doit me refaire des exports sur BS2/A10C, je ferais des tests dédiés concernant la cible poursuivie TGP, SHKVAL via LoGetLockedTargetInformation pour voir si on peut les récupérer , j'ai toujours trouvé dommage de ne pas les afficher en plus des informations tacview ... sinon pour FC3, je ne sais pas @+ --------------------
E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate |
Blu3dr4g0n |
27 May 2012, 12:07
Message
#9
|
Messages : 85 Inscrit : 16/03/08 Lieu : Castres Membre n° 2,983 |
je ferais des tests dédiés concernant la cible poursuivie TGP, SHKVAL via LoGetLockedTargetInformation pour voir si on peut les récupérer , j'ai toujours trouvé dommage de ne pas les afficher en plus des informations tacview ... Salut, Bon courage alors, le principal soucis que j'ai c'est justement que le LoGetLockedTargetInformation() ne se déclenche pas lorsque que "lock" (si on peut appeller ça locker) une cible en mode SPI pour le CCRP (peut-être une erreur de ma part). J'ai commencé à me faire un petit book des ennemis basé du edModelViewer (voir ici) : http://www.filehosting.org/file/details/34...ion_ennemie.pdf Si vous avez à dispo un book similaire, ou une liste d'ennemie à connaître (je me base sur mes missions card pour le moment) @+ --------------------
Knowledge Is Power |
raven |
29 May 2012, 08:51
Message
#10
|
Messages : 201 Inscrit : 6/01/11 Membre n° 3,731 |
bonjour
le problème m’intéressant, j'ai fait quelques essais sur BS2 1.1.1.1 il semble que les fonctions suivantes ne renvoient rien (nil): - LoGetRoute() - LoGetSightingSystemInfo() accroché ou non - LoGetLockedTargetInformation() accroché ou non - LoGetTargetInformation() c'est bien sur non exhaustif après recherche sur le site ED ces fonctions sont valides pour FC2 mais pas pour les DCS BS1/2/A10C car le système d'export a évolué avec la complexification de l’avionique , on ne peut utiliser ces fonctions pour savoir ce qui est accroché par contre on peut accéder à certain éléments de l'avionique via les GetDevice , mais malheureusement il semble que l'on ne puisse pas récupérer les données du CDU ni les données du PVI800 (mon cas), notamment les coordonnées affichées .... Par contre, on peut exporter "graphiquement" le PVI .... Conclusion , pour ton idée bluedragon , c'était pas gagné --------------------
E8500 4Go RAM; AMD HD6870 1Go; Win7ultimate |
Haut de page · Retour à l'accueil · Contacter le Webmestre | Nous sommes le : 13/06/24 - 05:41 |