Execute the following lua to modify all S-400 units of your site (actually, only the SA-21a/b ones... and only the Russian version

Code: Select all
function sensormissing(dbidnr)
local sens = 1
for m,n in pairs(unit.sensors) do
if n.sensor_dbid == dbidnr then sens = nil end
end
return sens
end
function countmag(dbidnr)
local mcount = 0
for u,v in pairs(unit.magazines) do
if v.mag_dbid == dbidnr then mcount = mcount + 1 end
end
return mcount
end
for i,l in pairs(VP_GetSides()) do
if ScenEdit_GetSideIsHuman(l.guid) then side = l.name end
end
local side = VP_GetSide({Side = side})
local u = side:unitsBy('Facility', 6000, 5001)
for i,l in pairs(u) do
unit = ScenEdit_GetUnit({guid=l.guid})
if unit.dbid == 1937 then
for c,d in pairs(unit.mounts) do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='remove_mount',dbid=d.mount_dbid})
end
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=1857, arc_mount={'360'}})
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2362, arc_mount={'360'}})
for i=1,3,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=485, arc_mount={'360'}})
end
for i=1,1,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2284, arc_mount={'360'}})
end
for i=1,2,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=1856, arc_mount={'360'}})
end
for i=1,5,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2412, arc_mount={'360'}})
end
for i=1,1,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2726, arc_mount={'360'}})
end
for i=1,1,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2649, arc_mount={'360'}})
end
if sensormissing(3819) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=3819, arc_detect = {'360'}, arc_track ={'360'}}) end
if sensormissing(5975) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=5975, arc_detect = {'360'}, arc_track ={'360'}}) end
if sensormissing(5568) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=5568, arc_detect = {'360'}, arc_track ={'360'}}) end
if sensormissing(3822) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=3822, arc_detect = {'360'}, arc_track ={'360'}}) end
mnts_n = {}
mnts_guid = {}
mntsi = 1
for u,v in pairs(unit.mounts) do
if v.mount_dbid == 2412 then
mnts_guid[mntsi]=v.mount_guid
mnts_n[mntsi]= u
mntsi=mntsi+1
end
end
for i=1,3,1 do
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'remove_weapon', mountid=mnts_guid[i], weaponid=unit.mounts[mnts_n[i]].mount_weapons[1].wpn_guid})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_weapon', mountid=mnts_guid[i], dbid=6641})
end
for a,b in pairs(unit.magazines) do
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'remove_magazine', dbid=b.mag_dbid})
end
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1371})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1363})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1389})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[1].mag_guid, wpn_dbid = 3220, number = 8, maxcap = 12})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[1].mag_guid, wpn_dbid = 2695, number = 60, maxcap = 60})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[2].mag_guid, wpn_dbid = 2103, number = 8})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[2].mag_guid, wpn_dbid = 2104, number = 28, remove = true})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[3].mag_guid, wpn_dbid = 3220, number = 16, remove = true})
end
if unit.dbid == 2029 then
for c,d in pairs(unit.mounts) do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='remove_mount',dbid=d.mount_dbid})
end
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=1857, arc_mount={'360'}})
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2362, arc_mount={'360'}})
for i=1,3,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=485, arc_mount={'360'}})
end
for i=1,1,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2284, arc_mount={'360'}})
end
for i=1,3,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=1856, arc_mount={'360'}})
end
for i=1,8,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2412, arc_mount={'360'}})
end
for i=1,1,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2726, arc_mount={'360'}})
end
for i=1,1,1 do
ScenEdit_UpdateUnit({guid=unit.guid ,mode='add_mount',dbid=2649, arc_mount={'360'}})
end
if sensormissing(3819) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=3819, arc_detect = {'360'}, arc_track ={'360'}}) end
if sensormissing(5975) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=5975, arc_detect = {'360'}, arc_track ={'360'}}) end
if sensormissing(5568) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=5568, arc_detect = {'360'}, arc_track ={'360'}}) end
if sensormissing(3822) then ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_sensor', dbid=3822, arc_detect = {'360'}, arc_track ={'360'}}) end
mnts_n = {}
mnts_guid = {}
mntsi = 1
for u,v in pairs(unit.mounts) do
if v.mount_dbid == 2412 then
mnts_guid[mntsi]=v.mount_guid
mnts_n[mntsi]= u
mntsi=mntsi+1
end
end
for i=1,4,1 do
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'remove_weapon', mountid=mnts_guid[i], weaponid=unit.mounts[mnts_n[i]].mount_weapons[1].wpn_guid})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_weapon', mountid=mnts_guid[i], dbid=6641})
end
for a,b in pairs(unit.magazines) do
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'remove_magazine', dbid=b.mag_dbid})
end
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1371})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1363})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1389})
ScenEdit_UpdateUnit({guid = unit.guid, mode = 'add_magazine', dbid=1389})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[1].mag_guid, wpn_dbid = 3220, number = 12, maxcap = 12})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[1].mag_guid, wpn_dbid = 2695, number = 72, maxcap = 72})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[2].mag_guid, wpn_dbid = 2103, number = 12})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[2].mag_guid, wpn_dbid = 2104, number = 28, remove = true})
ScenEdit_AddWeaponToUnitMagazine({guid = unit.guid, mag_guid = unit.magazines[4].mag_guid, wpn_dbid = 3220, number = 36, remove = true})
end
end
For additional realism don't forget to place some Pantsirs right next to the battery and at least another S-400 battery within a 20nm radius.
CAUTION: The amount of large missiles with very long range is greatly reduced. They are very expensive. Set WRA for those missiles carefully to only use them effectively against high value targets.
Have fun defending / attacking!
