--Spawn a SAM integrated with IADS --Spawn a normal SAM --SAM bubble shields samSim = {} samSim.samSuffix = 1 do -- needs to go early on redIADS = SkynetIADS:create('Red') redIADS:setUpdateInterval(5) redIADS:activate() --redIADS:addRadioMenu() end function samSim.genSAten() --gens an SA 10 as you can imagine, unit = Unit.getByName("Test") local pointVec3Gl = unit:getPosition().p -- this is just to find where my aircraft is and whack an SA10 below it, lazy not relevant local isHiddenCheck = math.random(100) if isHiddenCheck > 10 then isHidden = false else isHidden = true -- fairly obvious hides from F10 and F7 view end mist.dynAdd( { country = 'USSR', category = 'vehicle', name = "SAM " .. samSim.samSuffix, groupName = "SAM " .. samSim.samSuffix, groupId = 10000+samSim.samSuffix, hidden = isHidden, units = { [1] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 40B6MD sr", --search radar needs to be first always for avoiding a skynet bug ["y"] = pointVec3Gl.z + 50, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [1] [2] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 40B6M tr", ["y"] = pointVec3Gl.z, ["x"] = pointVec3Gl.x, ["heading"] = 4.7123889803847, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [2] [3] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 54K6 cp", ["y"] = pointVec3Gl.z + 100, ["x"] = pointVec3Gl.x, ["heading"] = 3.1415926535898, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [3] [4] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 64H6E sr", ["y"] = pointVec3Gl.z - 50, ["x"] = pointVec3Gl.x, ["heading"] = 3.1415926535898, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [4] [5] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 5P85C ln", ["y"] = pointVec3Gl.z +200 , ["x"] = pointVec3Gl.x, ["heading"] = 3.1415926535898, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [5] [6] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 5P85C ln", ["y"] = pointVec3Gl.z -200, ["x"] = pointVec3Gl.x, ["heading"] = 3.3161255787892, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [6] [7] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S-300PS 5P85C ln", ["y"] = pointVec3Gl.z , ["x"] = pointVec3Gl.x + 200, ["heading"] = 2.9670597283904, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [7] [8] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Excellent", ["type"] = "S-300PS 5P85C ln", ["y"] = pointVec3Gl.z, ["x"] = pointVec3Gl.x -200, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [8] [9] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "generator_5i57", ["y"] = pointVec3Gl.z +200, ["x"] = pointVec3Gl.x + 200, ["heading"] = 6.1086523819802, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [9] [10] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "ATZ-5", ["y"] = pointVec3Gl.z -200, ["x"] = pointVec3Gl.x -200, ["heading"] = 0.17453292519943, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [10] [11] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "ATZ-5", ["y"] = pointVec3Gl.z +550, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [11] [12] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "GAZ-66", ["y"] = pointVec3Gl.z +580, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [12] [13] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "ATZ-60_Maz", ["y"] = pointVec3Gl.z +600, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [13] [14] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "KAMAZ Truck", ["y"] = pointVec3Gl.z +500, ["x"] = pointVec3Gl.x + 20, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [14] }, -- end of units } -- end of function ) redIADS:addSAMSite("SAM " .. samSim.samSuffix) --skynet bit local detectChance = math.random(50,90) local goLiveRange = math.random(50,90) local harmStop = math.random(2) if harmStop == 1 then harmStopping = true else harmStopping = false end redIADS:getSAMSiteByGroupName("SAM " .. samSim.samSuffix):setHARMDetectionChance(detectChance) -- doesn't bloody work no idea, don't care want to reinvent this myself redIADS:getSAMSiteByGroupName("SAM " .. samSim.samSuffix):setGoLiveRangeInPercent(goLiveRange) -- doesn't bloody work no idea, don't care want to reinvent this myself redIADS:getSAMSiteByGroupName("SAM " .. samSim.samSuffix):setCanEngageHARM(harmStopping) -- doesn't bloody work no idea, don't care want to reinvent this myself samSim.samSuffix = samSim.samSuffix + 1 end function samSim.genSAtwo() unit = Unit.getByName("Test") local pointVec3Gl = unit:getPosition().p -- this is just to find where my aircraft is and whack an SA10 below it, lazy not relevant local isHiddenCheck = math.random(100) if isHiddenCheck > 50 then isHidden = false else isHidden = true end mist.dynAdd( { country = 'USSR', category = 'vehicle', name = "SAM " .. samSim.samSuffix, groupName = "SAM " .. samSim.samSuffix, groupId = 10000+samSim.samSuffix, hidden = isHidden, units = { [1] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "SNR_75V", ["y"] = pointVec3Gl.z, ["x"] = pointVec3Gl.x, ["heading"] = 4.7123889803847, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [1] [2] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S_75M_Volhov", ["y"] = pointVec3Gl.z + 50, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [2] [3] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S_75M_Volhov", ["y"] = pointVec3Gl.z + 100, ["x"] = pointVec3Gl.x, ["heading"] = 3.1415926535898, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [3] [4] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S_75M_Volhov", ["y"] = pointVec3Gl.z - 50, ["x"] = pointVec3Gl.x, ["heading"] = 3.1415926535898, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [4] [5] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S_75M_Volhov", ["y"] = pointVec3Gl.z +200 , ["x"] = pointVec3Gl.x, ["heading"] = 3.1415926535898, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [5] [6] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "S_75M_Volhov", ["y"] = pointVec3Gl.z -200, ["x"] = pointVec3Gl.x, ["heading"] = 3.3161255787892, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [6] [7] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "SKP-11", ["y"] = pointVec3Gl.z , ["x"] = pointVec3Gl.x + 200, ["heading"] = 2.9670597283904, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [7] [8] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Excellent", ["type"] = "SKP-11", ["y"] = pointVec3Gl.z, ["x"] = pointVec3Gl.x -200, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [8] [9] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "p-19 s-125 sr", ["y"] = pointVec3Gl.z +200, ["x"] = pointVec3Gl.x + 200, ["heading"] = 6.1086523819802, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [9] [10] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "Ural-4320 APA-5D", ["y"] = pointVec3Gl.z -200, ["x"] = pointVec3Gl.x -200, ["heading"] = 0.17453292519943, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [10] [11] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "ATMZ-5", ["y"] = pointVec3Gl.z +550, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [11] [12] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "Ural-4320T", ["y"] = pointVec3Gl.z +580, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [12] [13] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "Ural-4320T", ["y"] = pointVec3Gl.z +600, ["x"] = pointVec3Gl.x, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [13] [14] = { ["transportable"] = { ["randomTransportable"] = false, }, -- end of ["transportable"] ["skill"] = "Random", ["type"] = "ATMZ-5", ["y"] = pointVec3Gl.z +500, ["x"] = pointVec3Gl.x + 20, ["heading"] = 0, ["playerCanDrive"] = true, livery_id = "desert", }, -- end of [14] }, -- end of units } -- end of function ) redIADS:addSAMSite("SAM " .. samSim.samSuffix) local detectChance = math.random(75,100) local goLiveRange = math.random(50,90) redIADS:getSAMSiteByGroupName("SAM " .. samSim.samSuffix):setHARMDetectionChance(detectChance) redIADS:getSAMSiteByGroupName("SAM " .. samSim.samSuffix):setGoLiveRangeInPercent(goLiveRange) samSim.samSuffix = samSim.samSuffix + 1 end function samSim.genCMD() unit = Unit.getByName("Test") local pointVec3Gl = unit:getPosition().p mist.dynAddStatic( { country = 'USSR', category = 'Fortifications', name = "CMD " .. samSim.samSuffix, type = ".Command Center", x = pointVec3Gl.x, y = pointVec3Gl.z, heading = math.pi*3/2, } -- end of function ) nameToAdd = "CMD ".. samSim.samSuffix --.. " " .. "unit1" local commandCenter = StaticObject.getByName(nameToAdd) redIADS:addCommandCenter(commandCenter) redIADS = SkynetIADS:create(nameToAdd) redIADS:activate() samSim.samSuffix = samSim.samSuffix + 1 end function samSim.genEWR() unit = Unit.getByName("Test") local pointVec3Gl = unit:getPosition().p mist.dynAdd( { country = 'USSR', category = 'vehicle', groupName = "EW " .. samSim.samSuffix, name = "EW " .. samSim.samSuffix, groupId = 20000+samSim.samSuffix, units = { [1] = { ["skill"] = "Random", ["type"] = "55G6 EWR", ["y"] = pointVec3Gl.z, ["x"] = pointVec3Gl.x, livery_id = "", ["heading"] = 0, ["playerCanDrive"] = true, }, }, -- end of units } -- end of function ) nameToAdd = "EW ".. samSim.samSuffix .. " " .. "unit1" -- oddly this is the unit name not the group, if you don't use this naming convention change it redIADS:addEarlyWarningRadar(nameToAdd) --redIADS:addEarlyWarningRadarsByPrefix("EW") samSim.samSuffix = samSim.samSuffix + 1 end do samSims = missionCommands.addSubMenu("Sam stuff") missionCommands.addCommand ("Spawn SA 10", samSims, samSim.genSAten) missionCommands.addCommand ("Spawn EWR", samSims, samSim.genEWR) missionCommands.addCommand ("Spawn SA 2", samSims, samSim.genSAtwo) missionCommands.addCommand ("Spawn Command Centre and activate", samSims, samSim.genCMD) end