Jump to content

Recommended Posts

Posted

if we do this mod for adding JTAC, will we have any problems in multiplayer? in other words is it compatible with other players in COOP mode? Thanx

ASUS Strix Z790-H, i9-13900, WartHog HOTAS and MFG Crosswind

G.Skill 64 GB Ram, 2TB SSD

EVGA Nvidia RTX 2080-TI (trying to hang on for a bit longer)

55" Sony OLED TV, Oculus VR

 

  • 1 month later...
  • Replies 381
  • Created
  • Last Reply

Top Posters In This Topic

  • 3 weeks later...
Posted
do I need Combined Arms module for this mod?

 

No

"any failure you meet, is never a defeat; merely a set up for a greater come back",  W Forbes.

"Success is not final, failure is not fatal, it is the courage to continue that counts",
"He who never changes his mind, never changes anything," Winston Churchill.

MSI z690 MPG DDR4 || i9-14900k|| ddr4-64gb PC3200 |zotac RTX 5080|Game max 1300w|Win11| |turtle beach elite pro 5.1|| ViRpiL,T50cm2||MFG Crosswinds|| VT50CM-plus rotor Throttle || Z10 RGB EVGA Keyboard/ G502LogiMouse || PiMax Crystal VR || 32 Asus||

Posted
No

 

thanks for the reply.

 

however, I am still not very clear.

I thought you can only became JTAC by adding CA module?

Is this JTAC mod different than the one in CA module?

Posted

This mod allows Ka-50 client pilot to use the AI JTAC function built, available only for A-10C (and maybe other) planes only. It has nothing to do with being a JTAC as a client. If you want to be a JTAC as client, you need CA.

 

You may want to read the first post to better understand what this mod is about, or at least play the embedded video ;)

ChromiumDis.png

Author of DSMC, mod to enable scenario persistency and save updated miz file

Stable version & site: https://dsmcfordcs.wordpress.com/

Openbeta: https://github.com/Chromium18/DSMC

 

The thing is, helicopters are different from planes. An airplane by it's nature wants to fly, and if not interfered with too strongly by unusual events or by a deliberately incompetent pilot, it will fly. A helicopter does not want to fly. It is maintained in the air by a variety of forces in opposition to each other, and if there is any disturbance in this delicate balance the helicopter stops flying; immediately and disastrously.

Posted

Has anyone been able to get this mod to work in the latest version of DCSW:BS2 (ver 1.2.14)? I installed this mod with a clean version of DCSW but when I check the radio dialog there are no options to talk to AWAC or JTAC...

--Maulkin

 

 

Windows 10 64-bit - AMD Ryzen 9 5900X @ 3.7 GHz - 32 GB DDR4 3600MHz RAM - EVGA FTW3 RTX 3080 - Asus Crosshair VIII Hero motherboard - Samsung EVO Pro 1 TB SSD - TrackIR 4 Pro - Thrustmaster Warthog - Saitek rudder pedals - Lilliput UM-80/C with TM Cougars

Posted
Has anyone been able to get this mod to work in the latest version of DCSW:BS2 (ver 1.2.14)? I installed this mod with a clean version of DCSW but when I check the radio dialog there are no options to talk to AWAC or JTAC...

same here, I think the update may have broke it...

Developer of Kaukasus Insurgency - a customizable Dynamic PvE Campaign with cloud hosting and stats tracking. (Alpha)

 

http://kaukasusinsurgency.com/

Posted

Found the issue:

 

You have to rename one of the folders in the the JTAC folder structure

 

Change: KA-50 JTAC&AWACS 1.5\Mods\aircrafts

To: KA-50 JTAC&AWACS 1.5\Mods\aircraft

 

Noticed when enabling it a new directory would be created inside my dcs mods folder. Should fix the issue :)

  • Like 1

Developer of Kaukasus Insurgency - a customizable Dynamic PvE Campaign with cloud hosting and stats tracking. (Alpha)

 

http://kaukasusinsurgency.com/

Posted

Ah perfect thanks!

--Maulkin

 

 

Windows 10 64-bit - AMD Ryzen 9 5900X @ 3.7 GHz - 32 GB DDR4 3600MHz RAM - EVGA FTW3 RTX 3080 - Asus Crosshair VIII Hero motherboard - Samsung EVO Pro 1 TB SSD - TrackIR 4 Pro - Thrustmaster Warthog - Saitek rudder pedals - Lilliput UM-80/C with TM Cougars

Posted

I dont't get the JTAC menu to show up. I have tried everyting now, but nothing will work. I don't know what I doing wrong. I have version 1.2.8. and I have read the pdf manual, and also read all the 31 pages on this tread to figure it out, but no. I have also install that JSGME v2.60 :Flush:

Posted

No, it don't work.

 

I have try to put your folder DCS JTAC MOD mod in JSGME MODS folder and enable it, then i get an new aircraft folder in JSGME wich I also enable. I disable easy communication in options, and I set the JTAC man to 32 FM. I don,t se the kneepad on the pilot, and I don't se any JTAC when I press AltGr +\. I have set the VHF-1 and tuned on channel 3. I wonder if I must put an AWAC in the mission to?:cry_2:

Posted
I have try to put your folder DCS JTAC MOD mod in JSGME MODS folder and enable it, then i get an new aircraft folder in JSGME wich I also enable. I disable easy communication in options, and I set the JTAC man to 32 FM. I don,t se the kneepad on the pilot, and I don't se any JTAC when I press AltGr +\. I have set the VHF-1 and tuned on channel 3. I wonder if I must put an AWAC in the mission to?:cry_2:

 

Sounds as if you are having some issues with JSGME here - you should not have to enable any "aircraft" folder.

 

Your JSGME mods folder should look something like

 

...\_MODS\TheJTACModFolder\mods\...

...\_MODS\TheJTACModFolder\sounds\...

 

In JSGME you should see then the mod "TheJTACModFolder" which you activate. All you then need is a JTAC in your mission - AWACS has nothing to do with it.

Posted

JSGME place

 

It seems that I have placing the JSGME folder in the wrong place, outside the Eagle Dynamics folder. I read that it should be placed in the game root folder. I can't find such folder in the Eagle Dynamics/DCS World folder. Maybe it is that that is the problem, if someone know which folder I should place it in.

Posted

Work

 

Thanks for the patience pilots. I came across this link by chance http://forums.eagle.ru/showthread.php?t=98607 Thanks to Ebs! and then it started to go up a candle to what I should do. It works in a training mission that went to download from the forum, but I did not work in one of my own older quests, maybe I need to create new projects from scratch.We'll see what happens. :thumbup: :pilotfly:

 

 

 

 

 

 

 

Ångra ändringarna

  • 1 month later...
Posted (edited)

One routine was added to the original NATO.lua in recent versions.

 

Look for lines 896-897, which should read:

wantRR = message.parameters.aircraft_type[4] == base.MI_8MT
wantLL = message.parameters.aircraft_type[4] == base.KA_50

if the next line reads

result = result + self.sub.Digits:make(message.parameters.flight_size) + ' x ' + self.sub.aircraftType:make(message.parameters.aircraft_type[4]) + CR_

Then you will need to insert the following routine between these lines (i.e. before the line displayed above):

           local custom = nil
           if  message.parameters.aircraft_type_name then
               local localized = base.db.localization.types[message.parameters.aircraft_type_name]
               custom = {localized,message.parameters.aircraft_type_name}
           end

For the Mi-8 and Ka-50, due to the addition of sling loads you will also need to make some changes to the comm.lua file in Mods\aircraft\Mi-8MTV2 (or Ka-50). At the end of the file for the Mi-8 or line 384 for the Ka-50, you'll see a section that reads

utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/ATC.lua', getfenv()))(5, {[Airbase.Category.AIRDROME] = true, [Airbase.Category.HELIPAD] = true} )
utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/Cargo.lua', getfenv()))(6)
utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/Ground Crew.lua', getfenv()))(8)

I changed mine to

utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/ATC.lua', getfenv()))(5, {[Airbase.Category.AIRDROME] = true, [Airbase.Category.HELIPAD] = true} )
utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/JTAC.lua', getfenv()))(6)-------------
utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/AWACS.lua', getfenv()))(7, {tanker = true, radar = true})---------------
utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/Ground Crew.lua', getfenv()))(8)
utils.verifyChunk(utils.loadfileIn('Scripts/UI/RadioCommandDialogPanel/Config/Common/Cargo.lua', getfenv()))(9)--modified from 6 to 9 by HF (1.2.14)

This keeps JTAC and AWACS at the normal F6 and F7, keeps Ground Crew at F8, and moves the Cargo menu to F9.

 

Hope this helps

Edited by Home Fries
Posted

After tweaking this for the latest DCS version, I got to thinking that you could integrate my Adjustable Frequencies mod. You would no longer need to create your own presets in the individual radio files, but rather could update them in the mission editor, and as long as everybody flying the mission had the mod installed they would automatically get the right frequency presets.

 

Also, has anybody been able to get the UH-1 working with the JTAC? That would be something!

  • 8 months later...
Posted

Using JSGME this mod still works in DCS 1.5+ however the add radio item in mission editor becomes broken. Disabling the mod returns the ability to add radio item to coalition / group. Been poking around trying to figure it out but no luck yet.

иɪɢнтмдяᴇ

 

http://www.51st.org/

Posted
Using JSGME this mod still works in DCS 1.5+ however the add radio item in mission editor becomes broken. Disabling the mod returns the ability to add radio item to coalition / group. Been poking around trying to figure it out but no luck yet.

 

yes would like to get this working again.

:music_whistling:

  • 4 weeks later...
Posted

Edits for 1.5/2.0 (part 1)

 

Ok, I have some testing to do, but I think this should work for both 1.5 and 2.0. You will still need the sound files from the original JTAC mod, but the following LUA edits should work:

in MissionEditor\modules\me_action_db.lua:

add two dashes in front of every line that reads

verifyGroupCapability = isWesternCountry,

this should be lines 1047, 1303, and 1314

Next, in Sounds\Speech\NATO.lua:

At line 84 (just before the section titled MGRS = { ), add the following lines:

wantRR = true   --Mi-8--added for JTAC mod
wantLL = true   --Ka-50--added for JTAC mod

Next, at line 114 (just after the line that reads local fmt = '%0'..accuracy..'d' ), add the following section:

        ----------------------------added by JTAC mod
       if wantLL then                               --Ka-50
           -- Convert lat/lon to degrees & minutes
           local decimals = 0.001 -- decimals in minutes
           local latDeg = base.math.floor(lat)
           local lonDeg = base.math.floor(lon)
           local latMin = u.round((60*(lat - latDeg)), decimals)
           local lonMin = u.round((60*(lon - lonDeg)), decimals)
           return self.sub.North:make() + self.sub.PhoneticAlphabet:make(latDeg) + self.sub.And:make() + self.sub.PhoneticAlphabet:make(latMin) + comma_space_ + self.sub.East:make() + self.sub.PhoneticAlphabet:make(lonDeg) + self.sub.And:make() + self.sub.PhoneticAlphabet:make(lonMin)
           
       end         
       ----------------------------
       if wantRR then
       ----------------------------
       ----------Координаты
           local num1 = base.coord.LLtoMGRS(lat, lon);
           local east_num_kvadrat, east_coord_ishodn = base.math.modf( num1.Easting/10000);
           local north_num_kvadrat, north_coord_ishodn = base.math.modf( num1.Northing/10000);
           --Улитка начало    1
           local east_coord, east_coord_3 = base.math.modf ( east_coord_ishodn*100);
           local north_coord, north_coord_3 = base.math.modf (north_coord_ishodn*100);
           local ulitka_1 = 0;
           if east_coord <= 33 and north_coord > 66 then ulitka_1 = 1; end
           if east_coord > 33 and east_coord <= 66 and north_coord > 66 then ulitka_1 = 2; end
           if east_coord > 66  and north_coord > 66 then ulitka_1 = 3; end
           if east_coord > 66  and north_coord <= 66 and north_coord > 33 then ulitka_1 = 4; end
           if east_coord > 66 and north_coord <= 33 then ulitka_1 = 5; end
           if east_coord > 33 and east_coord <= 66 and north_coord <= 33 then ulitka_1 = 6; end
           if east_coord <= 33 and north_coord <= 33 then ulitka_1 = 7; end
           if east_coord <= 33 and north_coord <= 66 and north_coord > 33 then ulitka_1 = 8; end
           if east_coord > 33 and east_coord <= 66 and north_coord <= 66 and north_coord > 33 then ulitka_1 = 9; end
           --Улитка конец    1
           --Улитка начало    2                
           local east_coord_2 = east_coord_3*100;
           local north_coord_2 = north_coord_3*100;
           local ulitka_2 = 0;
           if east_coord_2 <= 33 and north_coord_2 > 66 then ulitka_2 = 1; end
           if east_coord_2 > 33 and east_coord_2 <= 66 and north_coord_2 > 66 then ulitka_2 = 2; end
           if east_coord_2 > 66  and north_coord_2 > 66 then ulitka_2 = 3; end
           if east_coord_2 > 66  and north_coord_2 <= 66 and north_coord_2 > 33 then ulitka_2 = 4; end
           if east_coord_2 > 66 and north_coord_2 <= 33 then ulitka_2 = 5; end
           if east_coord_2 > 33 and east_coord_2 <= 66 and north_coord_2 <= 33 then ulitka_2 = 6; end
           if east_coord_2 <= 33 and north_coord_2 <= 33 then ulitka_2 = 7; end
           if east_coord_2 <= 33 and north_coord_2 <= 66 and north_coord_2 > 33 then ulitka_2 = 8; end
           if east_coord_2 > 33 and east_coord_2 <= 66 and north_coord_2 <= 66 and north_coord_2 > 33 then ulitka_2 = 9; end
           --Улитка конец    2    
           star = num1.MGRSDigraph    
           return self.sub.Kvadrat:make() + space_ + self.sub.PhoneticAlphabet:make(star) + self.sub.PhoneticAlphabet:make(east_num_kvadrat) + self.sub.PhoneticAlphabet:make(north_num_kvadrat) + space_ + self.sub.PoUlitke:make() + space_ + self.sub.PhoneticAlphabet:make(ulitka_1) + self.sub.PhoneticAlphabet:make(ulitka_2)
           --return self.sub.PhoneticAlphabet:make(star) + self.sub.PhoneticAlphabet:make(east_num_kvadrat) + self.sub.PhoneticAlphabet:make(north_num_kvadrat) + space_ + self.sub.PhoneticAlphabet:make(ulitka_1) + self.sub.PhoneticAlphabet:make(ulitka_2)
       end
       -----------------------------end adds by JTAC mod

Next, after what was line 117 but should now be line 171 (should read PhoneticAlphabet = PhoneticAlphabet), add the following lines:

        ,Kvadrat = Phrase:new({_('Grid'), 'grid'})    --start adds by JTAC mod
       ,PoUlitke = Phrase:new({_('Cell'), 'cell'})
       --------------------------------
       ,North = Phrase:new({_('N'), 'N'})        --Ka-50--
       ,East = Phrase:new({_('E'), 'E'})         --Ka-50--
       ,And = Phrase:new({'\'', 'and'})        --Ka-50--end adds by JTAC mod

more to follow...

Posted (edited)

Edits for 1.5/2.0 (part 2 / USSR.lua part 1 of 3)

 

Next, in Sounds\Speech\USSR.lua:

After line 16 (should read local _ = gettext.translate), add the following sections:

PhoneticAlphabet = {  --start adds by JTAC mod
   make = function(self, str)
       local length = base.string.len(str)
       local result = p.start()
       for i = 1, length do
           local pos = ''
           if i == length then
               pos = '-end'
           elseif i == 1 then
               pos = '-begin'
           else
               pos = '-continue'
           end        
           local char = base.string.upper(base.string.sub(str, i, i))
           local phrase = self.phrases[char]
           if phrase ~= nil then
               result = result + p._p( { char, 'Alphabet/'..phrase..pos,  phrase} )
           else
               local number = base.tonumber(char)
               if number then
                   result = result + p._p( { char, 'Digits/'..char..pos, char } )
               else
                   result = result + p._p( { char, 'Alphabet/'..char..pos, char } )
               end
           end
       end
       return result
   end,
   phrases = {    ['A'] = 'Alpha',
               ['B'] = 'Bravo',
               ['C'] = 'Charlie',
               ['D'] = 'Delta',
               ['E'] = 'Echo',
               ['F'] = 'Foxtrot',
               ['G'] = 'Golf',
               ['H'] = 'Hotel',
               ['I'] = 'India',
               ['J'] = 'Juliett',
               ['K'] = 'Kilo',
               ['L'] = 'Lima',
               ['M'] = 'Mike',
               ['N'] = 'November',
               ['O'] = 'Oscar',
               ['P'] = 'Papa',
               ['Q'] = 'Quebec',
               ['R'] = 'Romeo',
               ['S'] = 'Sierra',
               ['T'] = 'Tango',
               ['U'] = 'Uniform',
               ['V'] = 'Victor',
               ['W'] = 'Whiskey',
               ['X'] = 'X-ray',
               ['Y'] = 'Yankee',
               ['Z'] = 'Zulu'},
   pos3 = true,
   directory = 'Alphabet'
}

Time = {
   make = function(self, timeSec, zulu)
       local hh, mm, ss = u.getTime(timeSec)
       return self.sub.Number:make(hh) + self.sub.Number:make(mm) + ' '  + (zulu and self.sub.Zulu:make() or self.sub.UTC:make())
   end,
   sub = {    Number    = Number,
           Zulu    = Phrase:new({_('Zulu'),     'Zulu'}),
           UTC        = Phrase:new({_('UTC'),     'UTC'})    }
}

wantRR = true   --Доб Ми-8--
wantLL = true   --Доб Ка-50--
MGRS = {
   make = function(self, point, accuracy, zone, digraph)
       
       if zone == nil then
           zone = false
       end
       if digraph == nil then
           digraph = true
       end
       
       local lat, lon = base.coord.LOtoLL(point)
       local MGRS = base.coord.LLtoMGRS(lat, lon)
       
       if     accuracy and
           accuracy < 5 then
           MGRS.Easting = base.math.floor(MGRS.Easting / 10 ^ (5 - accuracy) + 0.5)
           MGRS.Northing = base.math.floor(MGRS.Northing / 10 ^ (5 - accuracy) + 0.5)
       end
       
       local str = ""
       if zone then
           str = str..MGRS.UTMZone
       end
       if digraph then
           str = str..MGRS.MGRSDigraph
       end
       local fmt = '%0'..accuracy..'d'
       if wantLL then                               --Доб Ка-50
           -- Convert lat/lon to degrees & minutes
           local decimals = 0.1 -- decimals in minutes
           local latDeg = base.math.floor(lat)
           local lonDeg = base.math.floor(lon)
           local latMin = u.round((60*(lat - latDeg)), decimals)
           local lonMin = u.round((60*(lon - lonDeg)), decimals)
           return self.sub.North:make() +  self.sub.PhoneticAlphabet:make(latDeg) + self.sub.And:make() +  self.sub.PhoneticAlphabet:make(latMin) + comma_space_ +  self.sub.East:make() + 0 + self.sub.PhoneticAlphabet:make(lonDeg) +  self.sub.And:make() + self.sub.PhoneticAlphabet:make(lonMin)
           --return self.sub.North:make() +  self.sub.PhoneticAlphabet:make(u.round(lat, 0.001)) + comma_space_ +  self.sub.East:make() + self.sub.PhoneticAlphabet:make(u.round(lon,  0.001))        
       end                                                    --
       ----------------------------
       if wantRR then
       ----------------------------
       ----------Координаты
           local num1 = base.coord.LLtoMGRS(lat, lon);
           local east_num_kvadrat, east_coord_ishodn = base.math.modf( num1.Easting/10000);
           local north_num_kvadrat, north_coord_ishodn = base.math.modf( num1.Northing/10000);
           --Улитка начало    1
           local east_coord, east_coord_3 = base.math.modf ( east_coord_ishodn*100);
           local north_coord, north_coord_3 = base.math.modf (north_coord_ishodn*100);
           local ulitka_1 = 0;
           if east_coord <= 33 and north_coord > 66 then ulitka_1 = 1; end
           if east_coord > 33 and east_coord <= 66 and north_coord > 66 then ulitka_1 = 2; end
           if east_coord > 66  and north_coord > 66 then ulitka_1 = 3; end
           if east_coord > 66  and north_coord <= 66 and north_coord > 33 then ulitka_1 = 4; end
           if east_coord > 66 and north_coord <= 33 then ulitka_1 = 5; end
           if east_coord > 33 and east_coord <= 66 and north_coord <= 33 then ulitka_1 = 6; end
           if east_coord <= 33 and north_coord <= 33 then ulitka_1 = 7; end
           if east_coord <= 33 and north_coord <= 66 and north_coord > 33 then ulitka_1 = 8; end
           if east_coord > 33 and east_coord <= 66 and  north_coord <= 66 and north_coord > 33 then ulitka_1 = 9; end
           --Улитка конец    1
           --Улитка начало    2                
           local east_coord_2 = east_coord_3*100;
           local north_coord_2 = north_coord_3*100;
           local ulitka_2 = 0;
           if east_coord_2 <= 33 and north_coord_2 > 66 then ulitka_2 = 1; end
           if east_coord_2 > 33 and east_coord_2 <= 66 and north_coord_2 > 66 then ulitka_2 = 2; end
           if east_coord_2 > 66  and north_coord_2 > 66 then ulitka_2 = 3; end
           if east_coord_2 > 66  and north_coord_2 <= 66 and north_coord_2 > 33 then ulitka_2 = 4; end
           if east_coord_2 > 66 and north_coord_2 <= 33 then ulitka_2 = 5; end
           if east_coord_2 > 33 and east_coord_2 <= 66 and north_coord_2 <= 33 then ulitka_2 = 6; end
           if east_coord_2 <= 33 and north_coord_2 <= 33 then ulitka_2 = 7; end
           if east_coord_2 <= 33 and north_coord_2 <= 66 and north_coord_2 > 33 then ulitka_2 = 8; end
           if east_coord_2 > 33 and east_coord_2 <= 66 and  north_coord_2 <= 66 and north_coord_2 > 33 then ulitka_2 = 9; end
           --Улитка конец    2    
           star = num1.MGRSDigraph    
           return self.sub.Kvadrat:make() + space_ +  self.sub.PhoneticAlphabet:make(star) +  self.sub.PhoneticAlphabet:make(east_num_kvadrat) +  self.sub.PhoneticAlphabet:make(north_num_kvadrat) + space_ +  self.sub.PoUlitke:make() + space_ +  self.sub.PhoneticAlphabet:make(ulitka_1) +  self.sub.PhoneticAlphabet:make(ulitka_2)
           --return self.sub.PhoneticAlphabet:make(star) +  self.sub.PhoneticAlphabet:make(east_num_kvadrat) +  self.sub.PhoneticAlphabet:make(north_num_kvadrat) + space_ +  self.sub.PhoneticAlphabet:make(ulitka_1) +  self.sub.PhoneticAlphabet:make(ulitka_2)
       end
       -----------------------------
       
       str = str..base.string.format(fmt, MGRS.Easting)..base.string.format(fmt, MGRS.Northing)
       return self.sub.PhoneticAlphabet:make(str)
           
   end,
   sub = {
       PhoneticAlphabet    = PhoneticAlphabet        
       ,North = Phrase:new({_('N'), 'N'})    --Доб Ка-50--
       ,East = Phrase:new({_('E'), 'E'})     --Доб Ка-50--
       ,And = Phrase:new({'\'', 'and'})    --Доб Ка-50--
       ,Kvadrat = Phrase:new({_('Grid'), 'grid'})    --------------------
       ,PoUlitke = Phrase:new({_('Cell'), 'cell'})        ---------------------
       --------------------------------
   }
}  --end adds by JTAC mod

more to follow...

Edited by Home Fries
  • Recently Browsing   0 members

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