Matrix Games Forums

Forums  Register  Login  Photo Gallery  Member List  Search  Calendars  FAQ 

My Profile  Inbox  Address Book  My Subscription  My Forums  Log Out

Blinking SAM Search Radars

 
View related threads: (in this forum | in all forums)

Logged in as: Guest
Users viewing this topic: none
  Printable Version
All Forums >> [New Releases from Matrix Games] >> Command: Modern Operations series >> Mods and Scenarios >> Lua Legion >> Blinking SAM Search Radars Page: [1]
Login
Message << Older Topic   Newer Topic >>
Blinking SAM Search Radars - 7/5/2018 9:28:40 PM   
SeaQueen


Posts: 1451
Joined: 4/14/2007
From: Washington D.C.
Status: offline
Hi Guys! I wrote some code for causing SAMS to "blink" their search radars randomly according to fixed intervals (e.g. 15 of the last 45 minutes).

First I created a "Scenario Start" event with a "Scenario Load" trigger, and a LUA action called, "Set Scenario Variables"

-- these variables control the fraction of the time a SAM site will emit

ScenEdit_SetKeyValue('TimeToEmit', '15')    -- minutes
ScenEdit_SetKeyValue('TotalTimeInterval', '30')  -- minutes

-- e.g. "15 of the last 30 minutes"

Next I created another LUA action to be fired at the scenario start called "Initialize SAM Emitting Times" This creates two tables which will be used later; samSiteList and timeEmitting. It then initializes the "timeEmitting" table with random values keyed to the guids stored in samSiteList.

-- contains the guid of each SAM site

samSiteList = {'4346229a-6bdd-4328-9e96-9243be190055',  '11de0af6-3989-4e80-bdbc-ff4b1015c6b7',  '2fd972c5-fa9c-47eb-ba92-5302bb4487eb'}  -- list of all SAM sites in the scenario which will "blink" their search radars

-- each SAM site will start in a different state of having emitted for 'm' minutes, this table will store that state
timeEmitting = {}

--gets  total time interval  
local t_max = tonumber(ScenEdit_GetKeyValue('TotalTimeInterval'))

for i, s in ipairs(samSiteList) do   
      timeEmitting[s]=  math.random(0, t_max)   -- randomizes the starting state of each SAM site
end 


Finally, I created an "Every Minute" trigger with another LUA action. That event determines which SAM sites need to be active and passive. The code which goes in the action is:

local emit_max = tonumber(ScenEdit_GetKeyValue('TimeToEmit'))   --- gets maximum emission time from the scenario variables
local t_max = tonumber(ScenEdit_GetKeyValue('TotalTimeInterval'))  -- gets maximum total time interval from the scenario variables


-- loops over the sites on the samSiteList (see Initialize SAM Emitting Times action)
-- determines if a SAM site has emitted for more than it's allocated emission time
-- if it has then it turns the site off
-- checks to see if the total interval has bee exceeded
-- if it has, it resets the interval to zero

for i, s in ipairs(samSiteList) do
    timeEmitting[s] = timeEmitting[s] + 1
    if ( timeEmitting[s] >=  emit_max) then
           ScenEdit_SetEMCON('Unit', s, 'Radar=Passive')
    else 
           ScenEdit_SetEMCON('Unit', s, 'Radar=Active')
    end

   if( timeEmitting[s]  >= t_max) then
           timeEmitting[s] = 0
   end 
end




< Message edited by SeaQueen -- 7/5/2018 9:49:02 PM >
Post #: 1
RE: Blinking SAM Search Radars - 7/24/2018 1:56:25 PM   
tjhkkr


Posts: 2428
Joined: 6/3/2010
Status: offline
Thank you for this script!

_____________________________

Remember that the evil which is now in the world will become yet more powerful, and that it is not evil which conquers evil, but only love -- Olga Romanov.

(in reply to SeaQueen)
Post #: 2
RE: Blinking SAM Search Radars - 6/11/2019 5:06:57 PM   
ddural

 

Posts: 21
Joined: 4/7/2011
Status: offline
I just ran this script through LUA. I didn't get any errors. When I hit start the radars do not come on.

ScenEdit_SetKeyValue('TimeToEmit', '1') -- minutes
ScenEdit_SetKeyValue('TotalTimeInterval', '2') -- minutes

samSiteList = {'4939521c-9fe9-46ce-9699-36e6de0664e9', 'ca804685-1715-4f6f-8852-e808a10fcc53', 'bcd1f243-0256-49ab-aa70-b85d4c459219'} -- list of all SAM sites in the scenario which will "blink" their search radars

-- each SAM site will start in a different state of having emitted for 'm' minutes, this table will store that state
timeEmitting = {}

--gets total time interval
local t_max = tonumber(ScenEdit_GetKeyValue('TotalTimeInterval'))

for i, s in ipairs(samSiteList) do
timeEmitting= math.random(0, t_max) -- randomizes the starting state of each SAM site
end
local emit_max = tonumber(ScenEdit_GetKeyValue('TimeToEmit')) --- gets maximum emission time from the scenario variables
local t_max = tonumber(ScenEdit_GetKeyValue('TotalTimeInterval')) -- gets maximum total time interval from the scenario variables


-- loops over the sites on the samSiteList (see Initialize SAM Emitting Times action)
-- determines if a SAM site has emitted for more than it's allocated emission time
-- if it has then it turns the site off
-- checks to see if the total interval has bee exceeded
-- if it has, it resets the interval to zero

for i, s in ipairs(samSiteList) do
timeEmitting = timeEmitting + 1
if ( timeEmitting >= emit_max) then
ScenEdit_SetEMCON('Unit', s, 'Radar=Passive')
else
ScenEdit_SetEMCON('Unit', s, 'Radar=Active')
end

if( timeEmitting >= t_max) then
timeEmitting = 0
end
end


(in reply to tjhkkr)
Post #: 3
RE: Blinking SAM Search Radars - 6/12/2019 3:46:25 PM   
SeaQueen


Posts: 1451
Joined: 4/14/2007
From: Washington D.C.
Status: offline
How did you set it up? Was there an initialization action at scenario start and an "every minute" action?

Did you add the guids of the SAMs you want to blink to the samSiteList array?

(in reply to ddural)
Post #: 4
RE: Blinking SAM Search Radars - 7/18/2019 12:23:01 PM   
sarjen

 

Posts: 111
Joined: 7/14/2004
Status: offline
I tried it too and it worked for me.

(in reply to SeaQueen)
Post #: 5
Page:   [1]
All Forums >> [New Releases from Matrix Games] >> Command: Modern Operations series >> Mods and Scenarios >> Lua Legion >> Blinking SAM Search Radars Page: [1]
Jump to:





New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts


Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI

2.922