ESAc_matador Posted March 16, 2016 Posted March 16, 2016 (edited) C4ISR Script. Command, Control, Communications, Computers, Intelligence, Surveillance, Reconnaissance Starting from the EWRS script made by Steggles (http://forums.eagle.ru/showthread.php?t=158076) that can be used as GCI or AWACS, I thought we can develop something for the ground warfare. EWRS script philosophy is: You put some EWR units, AWACS or even some type of Ships in the Mission editor. Then when the game is launched, the script gives you written information via F10 menú about air units detected by radar systems listed above. You receive a message with a table of contacts, bearing, heading, distance and speed. The reference point can be you, or a bullseye, in metric or imperial, you can configure some parameters… What I thought is, for ground warfare there could be an analogue script that gives you information for enemy GROUPS spotted by your own side. The information needed, I think, should be represented by some code letters. Group Type : A = Artillery B = Armored vehicles C = Unarmed vehicles D1 = Anti aircraft AAA D2 = SAM I = Infantry So, a group can be defined by this letters. Example “D1C” would be a group with unarmed vehicles and AAA. The size, would be nice just a rough approximation… Code: 1 = from 1 to 4 units in the group 5 = from 5 to 9 units in the group 10 = from 10 to 14 units in the group Then, the table should be like this. Group Distance km Pos Size Moving BC 25 50 312 5 yes ID1 27 51 312 15 no The first example is, Armored and Unarmed vehicles are moving in bullseye 50km 312, the size is small (from 1 to 4 units in the group) Second example is, Infantry and AAA are stoped at bullseye 51 km 312. The size is around 15 to 19 units. How to do it? What I would do is, if an enemy group is in LOS of a friendly group, you can display the information of the enemy group based in the parameters mentioned above. The position of the group you can get the leader position. In order to not to saturate the screen, you can display the information just under request through F10 so the CAS planes can take notes or even the CA or Helicopters. What do you think?? EDIT: I got it!! I finnaly learn some lua and I did my own script. --[[reconscript v1.0: THanks to Grimes, Ciribob, Chromium, Steggles, and so many others, that have fullfilled the forums with examples or even direct help!!! Require MIST. 4.3.72 or further. To install just, make do script after Mist is installed. Works only for Red coalition at the moment... waiting for a more elegant solution. This script is to help aircrafts, (Planes, or Helos) to have a more entertaining experience, and probably more realistic. One of the issues in DCS, when plying in single, or even in multiplayer is the lack of a Ground Command that reports to you what is going on... or even the ground units, asking for help, Situational awarness, etc. With this script you will be able to have a clearer picture of what is going on. It is in early stages and probably is everything but "elegant" in terms of scripting. I have never, ever programmed until today. So, feel free to improve, or to add things. This is CTLD compatible, as far as I have tested. I want you to help me to improve and to find out any problems you find. The script works through F10 menu, and has two possibilities. A) Mark enemy groups that are Line of Sight and inside a zone of any ground friendly troops the zone is 1800m. THis is because is a range where you can shoot in most of Commando 60mm mortars. Many Commandos, or Special Forces uses them, also many infantry platoons. Feell free to look for greater distances, if you want to simulate that you have a 155mm/52 caliber guns. B) Report position Lat Long of enemy groups, this is awesome script. With this, you will have many information: - Position Lat Long of any enemy group that is Line of Sight and 5 km of our troops (feel free to change the radius) - Ammount of enemy units in that group. - Entity of the group... it will not give you numbers, but it will give you the unit type inside the group... for instance "Ground Command reporting: 15 Enemies AT 43º34,34N 42º02,23E Entitiy: Soldier M4, Stinger Manpad, Soldier M242" you see its a lot of information!!! So, feel free to test!!!!! ]]reconscriptv1.0.luarecontest.miz Edited June 9, 2016 by ESAc_matador
ESAc_matador Posted March 16, 2016 Author Posted March 16, 2016 (edited) Another thing that comes to my mind is, the call for support. When a group is damaged, they can send a message, saying. Group is under fire at bull 060 25km. Or something like that. Edited March 16, 2016 by ESAc_matador
Flagrum Posted March 16, 2016 Posted March 16, 2016 Interesting idea! While I can not provide much usefull thoughts right now, but one thing popped into my mind right away: Wouldn't it be more realistic if any coordinates of ground units would be given in either Lat/Long or MGRS (perhaps depending on client aircraft type - think Ka-50 and A-10C)?
ESAc_matador Posted March 16, 2016 Author Posted March 16, 2016 (edited) That is a possible option. I dont think there is a big deal doing this, even in the menú you can configure this. Not all planes have CDU or similar. Also, this will give a nice inmersion also deploying commandos and recon units with helicopters. Edited March 16, 2016 by ESAc_matador
Shaman Posted June 2, 2016 Posted June 2, 2016 I wish to change values to two respective flags, for blue and red, depending on unit detection then add a timer for cool off period before it can be 'detected' again. I wish to limit table of units (air clients or ground) that have capability to detect/recon. 51PVO Founding member (DEC2007-) 100KIAP Founding member (DEC2018-) :: Shaman aka [100☭] Shamansky tail# 44 or 444 [sIGPIC][/sIGPIC] 100KIAP Regiment Early Warning & Control officer
ESAc_matador Posted June 2, 2016 Author Posted June 2, 2016 I dont really understand what you mean... I am doing some steps ang getting things to make this script to work, but still working on it.
ESAc_matador Posted June 9, 2016 Author Posted June 9, 2016 i did it!!!!!! --[[reconscript v1.0: THanks to Grimes, Ciribob, Chromium, Steggles, and so many others, that have fullfilled the forums with examples or even direct help!!! Require MIST. 4.3.72 or further. To install just, make do script after Mist is installed. This script is to help aircrafts, (Planes, or Helos) to have a more entertaining experience, and probably more realistic. One of the issues in DCS, when plying in single, or even in multiplayer is the lack of a Ground Command that reports to you what is going on... or even the ground units, asking for help, Situational awarness, etc. With this script you will be able to have a clearer picture of what is going on. It is in early stages and probably is everything but "elegant" in terms of scripting. I have never, ever programmed until today. So, feel free to improve, or to add things. This is CTLD compatible, as far as I have tested. I want you to help me to improve and to find out any problems you find. The script works through F10 menu, and has two possibilities. A) Mark enemy groups that are Line of Sight and inside a zone of any ground friendly troops the zone is 1800m. THis is because is a range where you can shoot in most of Commando 60mm mortars. Many Commandos, or Special Forces uses them, also many infantry platoons. Feell free to look for greater distances, if you want to simulate that you have a 155mm/52 caliber guns. B) Report position Lat Long of enemy groups, this is awesome script. With this, you will have many information: - Position Lat Long of any enemy group that is Line of Sight and 5 km of our troops (feel free to change the radius) - Ammount of enemy units in that group. - Entity of the group... it will not give you numbers, but it will give you the unit type inside the group... for instance "Ground Command reporting: 15 Enemies AT 43º34,34N 42º02,23E Entitiy: Soldier M4, Stinger Manpad, Soldier M242" you see its a lot of information!!! So, feel free to test!!!!! ]] function reconmarkerred() function table_count(tt, item) local count count = 0 for ii,xx in pairs(tt) do if item == xx then count = count + 1 end end return count end function table_unique(tt) local newtable newtable = {} for ii,xx in ipairs(tt) do if(table_count(newtable, xx) == 0) then newtable[#newtable+1] = xx end end return newtable end local redunits = mist.makeUnitTable({'[red][vehicle]'}) local blueunits = mist.makeUnitTable({'[blue][vehicle]'}) LOSData = mist.getUnitsLOS(redunits,2,blueunits,2,1800) local targets = {} for k, v in pairs (LOSData) do local tabledata = LOSData[k] for j, w in pairs (tabledata.vis)do local targetinLOS = tabledata.vis[j] targets[#targets+1] = targetinLOS end end --trigger.action.outText(mist.utils.tableShow(targets),20) local targetgrouptable = {} -- table with all units-groups for k, v in pairs(targets) do local unit = targets[k] local unitname = unit:getGroup() targetgrouptable[#targetgrouptable+1] = unitname end --trigger.action.outText(mist.utils.tableShow(targetgrouptable),20) tabletarget = table_unique(targetgrouptable) for k, v in pairs(tabletarget) do local group = tabletarget[k] local groupname = group:getName() trigger.action.smoke(mist.getAvgPos(mist.makeUnitTable{tostring('[g]'.. groupname)}), trigger.smokeColor.Blue) trigger.action.outText("Roger, marking with blue smoke", 20) end end function reconadvisered() function table_count(tt, item) local count count = 0 for ii,xx in pairs(tt) do if item == xx then count = count + 1 end end return count end function table_unique(tt) local newtable newtable = {} for ii,xx in ipairs(tt) do if(table_count(newtable, xx) == 0) then newtable[#newtable+1] = xx end end return newtable end local redunits = mist.makeUnitTable({'[red][vehicle]'}) local blueunits = mist.makeUnitTable({'[blue][vehicle]'}) LOSData = mist.getUnitsLOS(redunits,2,blueunits,2,5000) local targets = {} for k, v in pairs (LOSData) do local tabledata = LOSData[k] for j, w in pairs (tabledata.vis)do local targetinLOS = tabledata.vis[j] targets[#targets+1] = targetinLOS end end --trigger.action.outText(mist.utils.tableShow(targets),20) local targetgrouptable = {} -- table with all units-groups for k, v in pairs(targets) do local unit = targets[k] local unitname = unit:getGroup() targetgrouptable[#targetgrouptable+1] = unitname end --trigger.action.outText(mist.utils.tableShow(targetgrouptable),20) tabletarget = table_unique(targetgrouptable) -- all duplicated groups removed local tabletypes ={} for k, v in pairs(tabletarget) do local group = tabletarget[k] local groupname = group:getName() local targetgrouppos = mist.getLLString({units = mist.makeUnitTable{tostring('[g]'.. groupname)} , acc = 3,}) local unitsingroups = group:getUnits() local tabletypes ={} for i, j in pairs(unitsingroups) do -- To see what is the higher threat... I local unit=unitsingroups[i] local unitnames = unit:getTypeName(unit) tabletypes[#tabletypes+1] = unitnames tablesingletype = table_unique(tabletypes) end do trigger.action.outText("Ground Command reporting: "..#unitsingroups.." Enemies AT "..targetgrouppos.." :Entity " ..table.concat(tablesingletype, ", "), 20) end end end function adviseenemies() local redunits = mist.makeUnitTable({'[red][vehicle]'}) local blueunits = mist.makeUnitTable({'[blue][vehicle]'}) mist.flagFunc.units_LOS{ unitset1 = blueunits, altoffset1 = 2, unitset2 = redunits, altoffset2 = 2, flag = 'enemiesblue', radius = 5000, req_num = 3, interval = 20, toggle = true, } if trigger.misc.getUserFlag('enemiesblue')== 1 then trigger.action.outTextForCoalition(coalition.side.RED, "Ground troops, to all flights,"..#blueunits.. " enemies detected (further info in F10)", 30) end timer.scheduleFunction(adviseenemies, {}, timer.getTime() + 300) end do adviseenemies() local _path1 = missionCommands.addSubMenuForCoalition(coalition.side.RED,"Ground units", nil) local _path2 = missionCommands.addSubMenuForCoalition(coalition.side.RED,"All groups", _path1) missionCommands.addCommandForCoalition(coalition.side.RED, "Mark enemy troops with blue smoke",_path2, function ()reconmarkerred ()end, nil) missionCommands.addCommandForCoalition(coalition.side.RED, "Report enemy situation",_path2, function ()reconadvisered ()end, nil) end -- trigger.action.outText(mist.utils.tableShow(tabletarget),20)
Shaman Posted June 11, 2016 Posted June 11, 2016 I dont really understand what you mean... I am doing some steps ang getting things to make this script to work, but still working on it. I do not really know how to rephrase. Maybe if you like drop on my TeamSpeak and we talk and you get a better idea what I am trying to achieve for clients flying RECON in scenario I am developing? 51PVO Founding member (DEC2007-) 100KIAP Founding member (DEC2018-) :: Shaman aka [100☭] Shamansky tail# 44 or 444 [sIGPIC][/sIGPIC] 100KIAP Regiment Early Warning & Control officer
ESAc_matador Posted June 12, 2016 Author Posted June 12, 2016 I am quite buisy this week but script is really advanced! Now, the list of gtoups foundef appears into the F10 menu and you can Send fligths to attack! I eill update soon. I need to solve some problems.
Home Fries Posted June 29, 2016 Posted June 29, 2016 (edited) Awesome idea, matador! I have a couple of recommendations for the script (if they haven't yet been implemented). On the flip side of marking targets in contact, have the script immediately announce when a ground unit is hit by friendly fire. A simulated radio call on guard and nearby units (if armor) deploying self-preservation smoke would be a very nice touch. Until there is JSTARS in DCS, add a flag to the script to allow AWACS to simulate JSTARS as well. This could be done globally or by naming a unit to be "JSTARS capable", which would see all ground units in range of its SAR radar. Also, I haven't looked at the script yet, but can FAC(A) platforms like the Predator contribute to the picture? Edited June 29, 2016 by Home Fries -Home Fries My DCS Files and Skins My DCS TARGET Profile for Cougar or Warthog and MFDs F-14B LANTIRN Guide
ESAc_matador Posted June 29, 2016 Author Posted June 29, 2016 Awesome idea, matador! I have a couple of recommendations for the script (if they haven't yet been implemented). On the flip side of marking targets in contact, have the script immediately announce when a ground unit is hit by friendly fire. A simulated radio call on guard and nearby units (if armor) deploying self-preservation smoke would be a very nice touch. Until there is JSTARS in DCS, add a flag to the script to allow AWACS to simulate JSTARS as well. This could be done globally or by naming a unit to be "JSTARS capable", which would see all ground units in range of its SAR radar. Also, I haven't looked at the script yet, but can FAC(A) platforms like the Predator contribute to the picture? Cool ideas!
ESAc_matador Posted June 30, 2016 Author Posted June 30, 2016 to answer with smoke, it is using eventhandler... I have never done that, but... should not be difficult. The JSTARS its not difficult we can use this script, just modifying the radius of the LOS. There will be a list of groups and its coordenates... I will try to expand the script soon.
ESAc_matador Posted June 30, 2016 Author Posted June 30, 2016 (edited) here we go.. an example mission and the scripts. It needs MIST and MOOSE to work properly, its an easy thing. It works only for BLUE SIDE as friendly. It has three features. Through F10 menu you can acces to Ground Units and CAS. 1) Ground Units/ All units: a) Mark enemy units with smoke. With this script, you can mark all enemy units that are inside a friendly ground unit 1800 radius and are also Line of Sight. b) Report enemy situation. With this script you can ask for enemy situation that are LOS of our friendly units and less than 5 km. You can tweak this. The position is the average position of the group, and it is given in Lat Long. Also, they report the number of units and the type of units inside group i.e.: THe message is " 15 enemy units at N43°40,44' E44°44.32 with: T 72, Shilka" " 13 enemy units at N43°40,44' E44°44.32 with: Infantry Ak47, Igla Manpad" THe script is only for ground units, but, if you want to put an UAV, just put the name of the unit UAV in the list. 2) CAS support. The script is made up to four flights that need to be called 'CAS1', 'CAS2', 'CAS3' and 'CAS4'. First you put a flight called CAS1 in the ME, and very important, REMOVE THE "CAS" TASK IN ADVANCED TASKS!!!. Then you put a route for them, and preferebly to orbit so you call them when they are in orbit. When goind through F10 you have two options. a) Load Targets: Once our ground units have enemies LOS and are identified, by pressing this, the targets will be loaded into the F10 menú. b) Reset Targets: This is to remove the loaded F10 targets... to clean the screen. so, once the targets are loaded, you just go the same path, and you will find now a new option called "CAS1" (or CAS2, CAS3, etc) If you press this option, there will be a full of diferent targets, described only for the Lat Long... you need to remember, or to copy, what the infantry report was. Now, you just press one of the targets and that is all. The group- of aircrafts will attack, until we cancel the attack, they run out of ammo, or they killed the group. In case the defenses are too high for them, they will not attack (unless in the ME you select, ignore threats). Once the attack is over for any given reasons, the aircraft will come back to its previous task, Orbit, or whatever. PS: it is really a begginers script, I have just learned to program just a little bit of lua, and many things are out of may skill, but it works, and it is awesome for flying AFAC or Helos... actually I did it for the Gazelle. Also works very well with humans CA, since you now dont need to be jumping from one side to the other!!! you have a written report of what is going on. Even for Artillery, its really nice.... using full fog of war, now you can be the observer, to correct the firing. PSS: I am so open to suggestions, but i would prefer help to improve!!!. PSSS> I am in touch with Flight Contro and the Moose, but I am just starting, I belive we (all) willk make a better scripts in the future, but i need to study!!!recontest1.0.mizCAS operations.lua Edited June 30, 2016 by ESAc_matador
Cobb Posted August 28, 2020 Posted August 28, 2020 Is this still a thing? It’s an old thread, I know. I retired out of JSTARs, would love to see what this is.. Cobb
ESAc_matador Posted August 28, 2020 Author Posted August 28, 2020 Yea, it works for the blue side only. Please read instrucctions and ask if need something
Recommended Posts