mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Fix for Offensive Jamming when object has been destroyed (#591)
* Fix Offensive Jamming when object has been destroyed
This commit is contained in:
parent
f82fc3a930
commit
96ee73dd50
@ -376,21 +376,45 @@ getRadars()
|
|||||||
|
|
||||||
|
|
||||||
function startEWjamm(jammer)
|
function startEWjamm(jammer)
|
||||||
-- local jammerName = jammer
|
trigger.action.outText("OFFENSIVE COUNTER MEASURES POD ON "..jammer, 5)
|
||||||
trigger.action.outText("OFFENSIVE COUNTER MEASURES POD ON "..jammer,5)
|
env.info("[DEBUG] Start Offensive Jamming: " .. jammer)
|
||||||
env.info("[DEBUG] Start Offensive Jamming: " ..jammer)
|
|
||||||
|
|
||||||
-- mark jammer active for multi-jammer logic
|
-- mark jammer active for multi-jammer logic
|
||||||
ActiveJammers[jammer] = true
|
ActiveJammers[jammer] = true
|
||||||
|
|
||||||
for k,v in pairs ( radarList)do
|
-- clean radar list and process live units only
|
||||||
if Unit.getByName(radarList[k]):getCoalition()~= Unit.getByName(jammer):getCoalition() then
|
local validRadarList = {}
|
||||||
check(jammer, radarList[k])
|
for k, radarName in pairs(radarList) do
|
||||||
-- trigger.action.outText(radarList[k],5)
|
local radarUnit = Unit.getByName(radarName)
|
||||||
|
if radarUnit and Unit.isExist(radarUnit) then
|
||||||
|
table.insert(validRadarList, radarName)
|
||||||
|
else
|
||||||
|
-- env.info("[DEBUG EW] Removing destroyed or missing radar: " .. tostring(radarName))
|
||||||
|
end
|
||||||
|
-- env.info(radarList[k])
|
||||||
|
end
|
||||||
|
radarList = validRadarList -- update the global list safely
|
||||||
|
|
||||||
|
-- now run checks for remaining valid radars
|
||||||
|
for _, radarName in pairs(radarList) do
|
||||||
|
local radarUnit = Unit.getByName(radarName)
|
||||||
|
local jammerUnit = Unit.getByName(jammer)
|
||||||
|
|
||||||
|
if radarUnit and jammerUnit and radarUnit:isExist() and jammerUnit:isExist() then
|
||||||
|
if radarUnit:getCoalition() ~= jammerUnit:getCoalition() then
|
||||||
|
check(jammer, radarName)
|
||||||
|
-- env.info("[DEBUG EW] Checking radar: " .. radarName)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if not radarUnit or not radarUnit:isExist() then
|
||||||
|
-- env.info("[DEBUG] Skipping destroyed radar: " .. tostring(radarName))
|
||||||
|
elseif not jammerUnit or not jammerUnit:isExist() then
|
||||||
|
-- env.info("[DEBUG EW] Jammer destroyed or missing: " .. tostring(jammer))
|
||||||
|
return -- stop processing if jammer gone
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end -- startEWjamm('Prowler1')
|
||||||
-- startEWjamm('Prowler1')
|
|
||||||
|
|
||||||
function stopEWjamm(jammer)
|
function stopEWjamm(jammer)
|
||||||
ActiveJammers[jammer] = nil
|
ActiveJammers[jammer] = nil
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user