Updated moose.

This commit is contained in:
iTracerFacer 2025-11-28 11:16:39 -06:00
parent 10f8b16b8f
commit aa99111d6f
9 changed files with 2630 additions and 43 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
env.info('*** MOOSE GITHUB Commit Hash ID: 2025-11-22T16:18:28+01:00-9e55118d3e8e9c02e3d8b452a38447009159cf37 ***') env.info('*** MOOSE GITHUB Commit Hash ID: 2025-11-27T18:07:18+01:00-0abb0db2a3e46a509bf3f05ec4960fa84a6fb43c ***')
if not MOOSE_DEVELOPMENT_FOLDER then if not MOOSE_DEVELOPMENT_FOLDER then
MOOSE_DEVELOPMENT_FOLDER='Scripts' MOOSE_DEVELOPMENT_FOLDER='Scripts'
end end
@ -403,7 +403,8 @@ Tornado="Tornado",
Atlas="A400", Atlas="A400",
Lancer="B1-B", Lancer="B1-B",
Stratofortress="B-52H", Stratofortress="B-52H",
Hercules="C-130", Herc="C-130",
Hercules="C-130J-30",
Super_Hercules="Hercules", Super_Hercules="Hercules",
Globemaster="C-17", Globemaster="C-17",
Greyhound="C-2A", Greyhound="C-2A",
@ -3104,6 +3105,18 @@ if string.find(type_name,"SA342")and(unit:getDrawArgumentValue(34)==1)then
BASE:T(unit_name.." front door(s) are open or doors removed") BASE:T(unit_name.." front door(s) are open or doors removed")
return true return true
end end
if type_name=="C-130J-30"and(unit:getDrawArgumentValue(86)==1)then
BASE:T(unit_name.." rear doors are open")
return true
end
if type_name=="C-130J-30"and(unit:getDrawArgumentValue(87)==1)then
BASE:T(unit_name.." Side door(s) are open")
return true
end
if type_name=="C-130J-30"and(unit:getDrawArgumentValue(88)==1)then
BASE:T(unit_name.." Paratroop door(s) are open")
return true
end
if string.find(type_name,"Hercules")and(unit:getDrawArgumentValue(1215)==1 and unit:getDrawArgumentValue(1216)==1)then if string.find(type_name,"Hercules")and(unit:getDrawArgumentValue(1215)==1 and unit:getDrawArgumentValue(1216)==1)then
BASE:T(unit_name.." rear doors are open") BASE:T(unit_name.." rear doors are open")
return true return true
@ -4377,6 +4390,7 @@ end
function UTILS.SpawnFARPAndFunctionalStatics(Name,Coordinate,FARPType,Coalition,Country,CallSign,Frequency,Modulation,ADF,SpawnRadius,VehicleTemplate,Liquids,Equipment,Airframes,F10Text,DynamicSpawns,HotStart,NumberPads,SpacingX,SpacingY) function UTILS.SpawnFARPAndFunctionalStatics(Name,Coordinate,FARPType,Coalition,Country,CallSign,Frequency,Modulation,ADF,SpawnRadius,VehicleTemplate,Liquids,Equipment,Airframes,F10Text,DynamicSpawns,HotStart,NumberPads,SpacingX,SpacingY)
local function PopulateStorage(Name,liquids,equip,airframes) local function PopulateStorage(Name,liquids,equip,airframes)
local newWH=STORAGE:New(Name) local newWH=STORAGE:New(Name)
if newWH then
if liquids and liquids>0 then if liquids and liquids>0 then
newWH:SetLiquid(STORAGE.Liquid.DIESEL,liquids) newWH:SetLiquid(STORAGE.Liquid.DIESEL,liquids)
newWH:SetLiquid(STORAGE.Liquid.GASOLINE,liquids) newWH:SetLiquid(STORAGE.Liquid.GASOLINE,liquids)
@ -4396,6 +4410,7 @@ newWH:SetItem(typename,airframes)
end end
end end
end end
end
local farplocation=Coordinate local farplocation=Coordinate
local farptype=FARPType or ENUMS.FARPType.FARP local farptype=FARPType or ENUMS.FARPType.FARP
local Coalition=Coalition or coalition.side.BLUE local Coalition=Coalition or coalition.side.BLUE
@ -4460,15 +4475,14 @@ time=timer.getTime(),
initiator=Static initiator=Static
} }
world.onEvent(Event) world.onEvent(Event)
PopulateStorage(Name.."-1",liquids,equip,airframes)
else else
local newfarp=SPAWNSTATIC:NewFromType(STypeName,"Heliports",Country) local newfarp=SPAWNSTATIC:NewFromType(STypeName,"Heliports",Country)
newfarp:InitShape(SShapeName) newfarp:InitShape(SShapeName)
newfarp:InitFARP(callsign,freq,mod,DynamicSpawns,HotStart) newfarp:InitFARP(callsign,freq,mod,DynamicSpawns,HotStart)
local spawnedfarp=newfarp:SpawnFromCoordinate(farplocation,0,Name) local spawnedfarp=newfarp:SpawnFromCoordinate(farplocation,0,Name)
table.insert(ReturnObjects,spawnedfarp) table.insert(ReturnObjects,spawnedfarp)
PopulateStorage(Name,liquids,equip,airframes)
end end
PopulateStorage(Name,liquids,equip,airframes)
local FARPStaticObjectsNato={ local FARPStaticObjectsNato={
["FUEL"]={TypeName="FARP Fuel Depot",ShapeName="GSM Rus",Category="Fortifications"}, ["FUEL"]={TypeName="FARP Fuel Depot",ShapeName="GSM Rus",Category="Fortifications"},
["AMMO"]={TypeName="FARP Ammo Dump Coating",ShapeName="SetkaKP",Category="Fortifications"}, ["AMMO"]={TypeName="FARP Ammo Dump Coating",ShapeName="SetkaKP",Category="Fortifications"},
@ -4984,6 +4998,89 @@ end
end end
return nil return nil
end end
function UTILS.CreateAirbaseEnum()
local function _savefile(filename,data)
local file=lfs.writedir()..filename
local f=io.open(file,"wb")
if f then
f:write(data)
f:close()
env.info(string.format("Saving to file %s",tostring(file)))
else
env.info(string.format("ERROR: Could not save results to file %s",tostring(file)))
end
end
local airbases=world.getAirbases()
local mapname=env.mission.theatre
local myab={}
for i,_airbase in pairs(airbases)do
local airbase=_airbase
local cat=airbase:getDesc().category
if cat==Airbase.Category.AIRDROME then
local name=airbase:getName()
local key=name
if name=="Airracing Lubeck"then
key="Airracing_Luebeck"
elseif name=="Bad Durkheim"then
key="Bad_Duerkheim"
elseif name=="Buchel"then
key="Buechel"
elseif name=="Buckeburg"then
key="Bueckeburg"
elseif name=="Dusseldorf"then
key="Duesseldorf"
elseif name=="Gutersloh"then
key="Guetersloh"
elseif name=="Kothen"then
key="Koethen"
elseif name=="Larz"then
key="Laerz"
elseif name=="Lubeck"then
key="Luebeck"
elseif name=="Luneburg"then
key="Lueneburg"
elseif name=="Norvenich"then
key="Noervenich"
elseif name=="Ober-Morlen"then
key="Ober_Moerlen"
elseif name=="Peenemunde"then
key="Peenemuende"
elseif name=="Pottschutthohe"then
key="Pottschutthoehe"
elseif name=="Schonefeld"then
key="Schoenefeld"
elseif name=="Weser Wumme"then
key="Weser_Wuemme"
elseif name=="Zollschen"then
key="Zoellschen"
elseif name=="Zweibrucken"then
key="Zweibruecken"
end
key=key:gsub(" ","_")
key=key:gsub("-","_")
key=key:gsub("'","_")
key=UTILS.ReplaceIllegalCharacters(key,"_")
local entry={}
entry.key=key
entry.name=name
table.insert(myab,entry)
end
end
table.sort(myab,function(a,b)return a.name<b.name end)
local text=string.format("\n--- Airbases of the %s map",mapname)
text=text.."\n--"
for _,ab in pairs(myab)do
text=text..string.format("\n-- * `AIRBASE.%s.%s` %s",mapname,ab.key,ab.name)
end
text=text.."\n--"
text=text..string.format("\n-- @field %s",mapname)
text=text..string.format("\nAIRBASE.%s = {",mapname)
for _,ab in pairs(myab)do
text=text..string.format('\n\t["%s"] = "%s",',ab.key,ab.name)
end
text=text.."\n}"
_savefile(string.format("%s-enums.txt",env.mission.theatre),text)
end
PROFILER={ PROFILER={
ClassName="PROFILER", ClassName="PROFILER",
Counters={}, Counters={},
@ -20609,6 +20706,9 @@ SpawnTemplate.units[UnitID].y=SpawnTemplate.units[UnitID].y+(RandomVec2.y-Curren
end end
end end
if self.SpawnRandomizeUnits then if self.SpawnRandomizeUnits then
if self.SpawnRandomizePosition then
PointVec3=COORDINATE:New(SpawnTemplate.x,SpawnTemplate.route.points[1].alt,SpawnTemplate.y)
end
for UnitID=1,#SpawnTemplate.units do for UnitID=1,#SpawnTemplate.units do
local RandomVec2=PointVec3:GetRandomVec2InRadius(self.SpawnOuterRadius,self.SpawnInnerRadius) local RandomVec2=PointVec3:GetRandomVec2InRadius(self.SpawnOuterRadius,self.SpawnInnerRadius)
if(SpawnZone)then if(SpawnZone)then
@ -31631,6 +31731,7 @@ AIRBASE.Nevada={
} }
AIRBASE.Normandy={ AIRBASE.Normandy={
["Abbeville_Drucat"]="Abbeville Drucat", ["Abbeville_Drucat"]="Abbeville Drucat",
["Alderney"]="Alderney",
["Amiens_Glisy"]="Amiens-Glisy", ["Amiens_Glisy"]="Amiens-Glisy",
["Argentan"]="Argentan", ["Argentan"]="Argentan",
["Avranches_Le_Val_Saint_Pere"]="Avranches Le Val-Saint-Pere", ["Avranches_Le_Val_Saint_Pere"]="Avranches Le Val-Saint-Pere",
@ -31639,6 +31740,7 @@ AIRBASE.Normandy={
["Bazenville"]="Bazenville", ["Bazenville"]="Bazenville",
["Beaumont_le_Roger"]="Beaumont-le-Roger", ["Beaumont_le_Roger"]="Beaumont-le-Roger",
["Beauvais_Tille"]="Beauvais-Tille", ["Beauvais_Tille"]="Beauvais-Tille",
["Bembridg"]="Bembridg",
["Beny_sur_Mer"]="Beny-sur-Mer", ["Beny_sur_Mer"]="Beny-sur-Mer",
["Bernay_Saint_Martin"]="Bernay Saint Martin", ["Bernay_Saint_Martin"]="Bernay Saint Martin",
["Beuzeville"]="Beuzeville", ["Beuzeville"]="Beuzeville",
@ -31661,6 +31763,7 @@ AIRBASE.Normandy={
["Deux_Jumeaux"]="Deux Jumeaux", ["Deux_Jumeaux"]="Deux Jumeaux",
["Dinan_Trelivan"]="Dinan-Trelivan", ["Dinan_Trelivan"]="Dinan-Trelivan",
["Dunkirk_Mardyck"]="Dunkirk-Mardyck", ["Dunkirk_Mardyck"]="Dunkirk-Mardyck",
["Eastchurch"]="Eastchurch",
["Essay"]="Essay", ["Essay"]="Essay",
["Evreux"]="Evreux", ["Evreux"]="Evreux",
["Farnborough"]="Farnborough", ["Farnborough"]="Farnborough",
@ -31671,12 +31774,18 @@ AIRBASE.Normandy={
["Funtington"]="Funtington", ["Funtington"]="Funtington",
["Goulet"]="Goulet", ["Goulet"]="Goulet",
["Gravesend"]="Gravesend", ["Gravesend"]="Gravesend",
["Guernsey"]="Guernsey",
["Guyancourt"]="Guyancourt", ["Guyancourt"]="Guyancourt",
["Hauterive"]="Hauterive", ["Hauterive"]="Hauterive",
["Hawkinge"]="Hawkinge",
["Headcorn"]="Headcorn",
["Heathrow"]="Heathrow", ["Heathrow"]="Heathrow",
["High_Halden"]="High Halden", ["High_Halden"]="High Halden",
["Holmsley_South"]="Holmsley South",
["Jersey"]="Jersey",
["Kenley"]="Kenley", ["Kenley"]="Kenley",
["Lantheuil"]="Lantheuil", ["Lantheuil"]="Lantheuil",
["Lashenden"]="Lashenden",
["Le_Molay"]="Le Molay", ["Le_Molay"]="Le Molay",
["Lessay"]="Lessay", ["Lessay"]="Lessay",
["Lignerolles"]="Lignerolles", ["Lignerolles"]="Lignerolles",
@ -31689,6 +31798,7 @@ AIRBASE.Normandy={
["Meautis"]="Meautis", ["Meautis"]="Meautis",
["Merville_Calonne"]="Merville Calonne", ["Merville_Calonne"]="Merville Calonne",
["Needs_Oar_Point"]="Needs Oar Point", ["Needs_Oar_Point"]="Needs Oar Point",
["Northolt"]="Northolt",
["Odiham"]="Odiham", ["Odiham"]="Odiham",
["Orly"]="Orly", ["Orly"]="Orly",
["Picauville"]="Picauville", ["Picauville"]="Picauville",
@ -31696,10 +31806,11 @@ AIRBASE.Normandy={
["Ronai"]="Ronai", ["Ronai"]="Ronai",
["Rouen_Boos"]="Rouen-Boos", ["Rouen_Boos"]="Rouen-Boos",
["Rucqueville"]="Rucqueville", ["Rucqueville"]="Rucqueville",
["Saint_Pierre_du_Mont"]="Saint Pierre du Mont",
["Saint_Andre_de_lEure"]="Saint-Andre-de-lEure", ["Saint_Andre_de_lEure"]="Saint-Andre-de-lEure",
["Saint_Aubin"]="Saint-Aubin", ["Saint_Aubin"]="Saint-Aubin",
["Saint_Omer_Wizernes"]="Saint-Omer Wizernes", ["Saint_Omer_Wizernes"]="Saint-Omer Wizernes",
["Saint_Pierre_du_Mont"]="Saint Pierre du Mont", ["Saint_Pol_Bryas"]="Saint-Pol-Bryas",
["Sainte_Croix_sur_Mer"]="Sainte-Croix-sur-Mer", ["Sainte_Croix_sur_Mer"]="Sainte-Croix-sur-Mer",
["Sainte_Laurent_sur_Mer"]="Sainte-Laurent-sur-Mer", ["Sainte_Laurent_sur_Mer"]="Sainte-Laurent-sur-Mer",
["Sommervieu"]="Sommervieu", ["Sommervieu"]="Sommervieu",
@ -31709,18 +31820,15 @@ AIRBASE.Normandy={
["Villacoublay"]="Villacoublay", ["Villacoublay"]="Villacoublay",
["Vrigny"]="Vrigny", ["Vrigny"]="Vrigny",
["West_Malling"]="West Malling", ["West_Malling"]="West Malling",
["Eastchurch"]="Eastchurch",
["Headcorn"]="Headcorn",
["Hawkinge"]="Hawkinge",
} }
AIRBASE.PersianGulf={ AIRBASE.PersianGulf={
["Abu_Dhabi_Intl"]="Abu Dhabi Intl", ["Abu_Dhabi_Intl"]="Abu Dhabi Intl",
["Abu_Musa_Island"]="Abu Musa Island", ["Abu_Musa_Island"]="Abu Musa Island",
["Al_Ain_Intl"]="Al Ain Intl", ["Al_Ain_Intl"]="Al Ain Intl",
["Al_Bateen"]="Al-Bateen",
["Al_Dhafra_AFB"]="Al Dhafra AFB", ["Al_Dhafra_AFB"]="Al Dhafra AFB",
["Al_Maktoum_Intl"]="Al Maktoum Intl", ["Al_Maktoum_Intl"]="Al Maktoum Intl",
["Al_Minhad_AFB"]="Al Minhad AFB", ["Al_Minhad_AFB"]="Al Minhad AFB",
["Al_Bateen"]="Al-Bateen",
["Bandar_Abbas_Intl"]="Bandar Abbas Intl", ["Bandar_Abbas_Intl"]="Bandar Abbas Intl",
["Bandar_Lengeh"]="Bandar Lengeh", ["Bandar_Lengeh"]="Bandar Lengeh",
["Bandar_e_Jask"]="Bandar-e-Jask", ["Bandar_e_Jask"]="Bandar-e-Jask",
@ -31763,13 +31871,14 @@ AIRBASE.Syria={
["Abu_al_Duhur"]="Abu al-Duhur", ["Abu_al_Duhur"]="Abu al-Duhur",
["Adana_Sakirpasa"]="Adana Sakirpasa", ["Adana_Sakirpasa"]="Adana Sakirpasa",
["Akrotiri"]="Akrotiri", ["Akrotiri"]="Akrotiri",
["Al_Dumayr"]="Al-Dumayr",
["Al_Qusayr"]="Al Qusayr", ["Al_Qusayr"]="Al Qusayr",
["Al_Dumayr"]="Al-Dumayr",
["Aleppo"]="Aleppo", ["Aleppo"]="Aleppo",
["An_Nasiriyah"]="An Nasiriyah", ["An_Nasiriyah"]="An Nasiriyah",
["At_Tanf"]="At Tanf", ["At_Tanf"]="At Tanf",
["Bassel_Al_Assad"]="Bassel Al-Assad", ["Bassel_Al_Assad"]="Bassel Al-Assad",
["Beirut_Rafic_Hariri"]="Beirut-Rafic Hariri", ["Beirut_Rafic_Hariri"]="Beirut-Rafic Hariri",
["Ben_Gurion"]="Ben Gurion",
["Damascus"]="Damascus", ["Damascus"]="Damascus",
["Deir_ez_Zor"]="Deir ez-Zor", ["Deir_ez_Zor"]="Deir ez-Zor",
["Ercan"]="Ercan", ["Ercan"]="Ercan",
@ -31785,6 +31894,7 @@ AIRBASE.Syria={
["Haifa"]="Haifa", ["Haifa"]="Haifa",
["Hama"]="Hama", ["Hama"]="Hama",
["Hatay"]="Hatay", ["Hatay"]="Hatay",
["Hatzor"]="Hatzor",
["Herzliya"]="Herzliya", ["Herzliya"]="Herzliya",
["Incirlik"]="Incirlik", ["Incirlik"]="Incirlik",
["Jirah"]="Jirah", ["Jirah"]="Jirah",
@ -31797,16 +31907,17 @@ AIRBASE.Syria={
["Kuweires"]="Kuweires", ["Kuweires"]="Kuweires",
["Lakatamia"]="Lakatamia", ["Lakatamia"]="Lakatamia",
["Larnaca"]="Larnaca", ["Larnaca"]="Larnaca",
["Marka"]="Marka",
["Marj_Ruhayyil"]="Marj Ruhayyil", ["Marj_Ruhayyil"]="Marj Ruhayyil",
["Marj_as_Sultan_North"]="Marj as Sultan North", ["Marj_as_Sultan_North"]="Marj as Sultan North",
["Marj_as_Sultan_South"]="Marj as Sultan South", ["Marj_as_Sultan_South"]="Marj as Sultan South",
["Marka"]="Marka",
["Megiddo"]="Megiddo", ["Megiddo"]="Megiddo",
["Mezzeh"]="Mezzeh", ["Mezzeh"]="Mezzeh",
["Minakh"]="Minakh", ["Minakh"]="Minakh",
["Muwaffaq_Salti"]="Muwaffaq Salti", ["Muwaffaq_Salti"]="Muwaffaq Salti",
["Naqoura"]="Naqoura", ["Naqoura"]="Naqoura",
["Nicosia"]="Nicosia", ["Nicosia"]="Nicosia",
["Palmachim"]="Palmachim",
["Palmyra"]="Palmyra", ["Palmyra"]="Palmyra",
["Paphos"]="Paphos", ["Paphos"]="Paphos",
["Pinarbashi"]="Pinarbashi", ["Pinarbashi"]="Pinarbashi",
@ -31823,17 +31934,14 @@ AIRBASE.Syria={
["Tabqa"]="Tabqa", ["Tabqa"]="Tabqa",
["Taftanaz"]="Taftanaz", ["Taftanaz"]="Taftanaz",
["Tal_Siman"]="Tal Siman", ["Tal_Siman"]="Tal Siman",
["Tel_Nof"]="Tel Nof",
["Tha_lah"]="Tha'lah", ["Tha_lah"]="Tha'lah",
["Tiyas"]="Tiyas", ["Tiyas"]="Tiyas",
["Wujah_Al_Hajar"]="Wujah Al Hajar", ["Wujah_Al_Hajar"]="Wujah Al Hajar",
["Ben_Gurion"]="Ben Gurion",
["Hatzor"]="Hatzor",
["Palmachim"]="Palmachim",
["Tel_Nof"]="Tel Nof",
} }
AIRBASE.MarianaIslands={ AIRBASE.MarianaIslands={
["Andersen_AFB"]="Andersen AFB", ["Andersen_AFB"]="Andersen AFB",
["Antonio_B_Won_Pat_Intl"]="Antonio B. Won Pat Intl", ["Antonio_B._Won_Pat_Intl"]="Antonio B. Won Pat Intl",
["North_West_Field"]="North West Field", ["North_West_Field"]="North West Field",
["Olf_Orote"]="Olf Orote", ["Olf_Orote"]="Olf Orote",
["Pagan_Airstrip"]="Pagan Airstrip", ["Pagan_Airstrip"]="Pagan Airstrip",
@ -31841,8 +31949,7 @@ AIRBASE.MarianaIslands={
["Saipan_Intl"]="Saipan Intl", ["Saipan_Intl"]="Saipan Intl",
["Tinian_Intl"]="Tinian Intl", ["Tinian_Intl"]="Tinian Intl",
} }
AIRBASE.MarianaIslandsWWII= AIRBASE.MarianaIslandsWWII={
{
["Agana"]="Agana", ["Agana"]="Agana",
["Airfield_3"]="Airfield 3", ["Airfield_3"]="Airfield 3",
["Charon_Kanoa"]="Charon Kanoa", ["Charon_Kanoa"]="Charon Kanoa",
@ -31905,6 +32012,7 @@ AIRBASE.Sinai={
["Cairo_West"]="Cairo West", ["Cairo_West"]="Cairo West",
["Damascus_Intl"]="Damascus Intl", ["Damascus_Intl"]="Damascus Intl",
["Difarsuwar_Airfield"]="Difarsuwar Airfield", ["Difarsuwar_Airfield"]="Difarsuwar Airfield",
["Ein_Shamer"]="Ein Shamer",
["El_Arish"]="El Arish", ["El_Arish"]="El Arish",
["El_Gora"]="El Gora", ["El_Gora"]="El Gora",
["El_Minya"]="El Minya", ["El_Minya"]="El Minya",
@ -31916,8 +32024,11 @@ AIRBASE.Sinai={
["Inshas_Airbase"]="Inshas Airbase", ["Inshas_Airbase"]="Inshas Airbase",
["Jiyanklis_Air_Base"]="Jiyanklis Air Base", ["Jiyanklis_Air_Base"]="Jiyanklis Air Base",
["Kedem"]="Kedem", ["Kedem"]="Kedem",
["Khalkhalah_Air_Base"]="Khalkhalah Air Base",
["Kibrit_Air_Base"]="Kibrit Air Base", ["Kibrit_Air_Base"]="Kibrit Air Base",
["King_Feisal_Air_Base"]="King Feisal Air Base",
["Kom_Awshim"]="Kom Awshim", ["Kom_Awshim"]="Kom Awshim",
["Megiddo"]="Megiddo",
["Melez"]="Melez", ["Melez"]="Melez",
["Mezzeh_Air_Base"]="Mezzeh Air Base", ["Mezzeh_Air_Base"]="Mezzeh Air Base",
["Nevatim"]="Nevatim", ["Nevatim"]="Nevatim",
@ -31931,45 +32042,50 @@ AIRBASE.Sinai={
["Sde_Dov"]="Sde Dov", ["Sde_Dov"]="Sde Dov",
["Sharm_El_Sheikh_International_Airport"]="Sharm El Sheikh International Airport", ["Sharm_El_Sheikh_International_Airport"]="Sharm El Sheikh International Airport",
["St_Catherine"]="St Catherine", ["St_Catherine"]="St Catherine",
["Taba_International_Airport"]="Taba International Airport",
["Tabuk"]="Tabuk", ["Tabuk"]="Tabuk",
["TabukHeliBase"]="TabukHeliBase",
["Tel_Nof"]="Tel Nof", ["Tel_Nof"]="Tel Nof",
["Wadi_Abu_Rish"]="Wadi Abu Rish", ["Wadi_Abu_Rish"]="Wadi Abu Rish",
["Wadi_al_Jandali"]="Wadi al Jandali", ["Wadi_al_Jandali"]="Wadi al Jandali",
} }
AIRBASE.Kola={ AIRBASE.Kola={
["Afrikanda"]="Afrikanda",
["Alakurtti"]="Alakurtti",
["Alta"]="Alta",
["Andoya"]="Andoya",
["Arvidsjaur"]="Arvidsjaur",
["Banak"]="Banak", ["Banak"]="Banak",
["Bardufoss"]="Bardufoss",
["Boden_Heli_Base"]="Boden Heli Base",
["Bodo"]="Bodo", ["Bodo"]="Bodo",
["Enontekio"]="Enontekio",
["Evenes"]="Evenes",
["Hemavan"]="Hemavan",
["Hosio"]="Hosio",
["Ivalo"]="Ivalo", ["Ivalo"]="Ivalo",
["Jokkmokk"]="Jokkmokk", ["Jokkmokk"]="Jokkmokk",
["Kalevala"]="Kalevala",
["Kalixfors"]="Kalixfors", ["Kalixfors"]="Kalixfors",
["Kallax"]="Kallax", ["Kallax"]="Kallax",
["Kemi_Tornio"]="Kemi Tornio", ["Kemi_Tornio"]="Kemi Tornio",
["Kilpyavr"]="Kilpyavr",
["Kirkenes"]="Kirkenes", ["Kirkenes"]="Kirkenes",
["Kiruna"]="Kiruna", ["Kiruna"]="Kiruna",
["Kittila"]="Kittila",
["Koshka_Yavr"]="Koshka Yavr",
["Kuusamo"]="Kuusamo", ["Kuusamo"]="Kuusamo",
["Luostari_Pechenga"]="Luostari Pechenga",
["Monchegorsk"]="Monchegorsk", ["Monchegorsk"]="Monchegorsk",
["Murmansk_International"]="Murmansk International", ["Murmansk_International"]="Murmansk International",
["Olenya"]="Olenya", ["Olenya"]="Olenya",
["Poduzhemye"]="Poduzhemye",
["Rovaniemi"]="Rovaniemi", ["Rovaniemi"]="Rovaniemi",
["Severomorsk_1"]="Severomorsk-1", ["Severomorsk_1"]="Severomorsk-1",
["Severomorsk_3"]="Severomorsk-3", ["Severomorsk_3"]="Severomorsk-3",
["Sodankyla"]="Sodankyla",
["Vidsel"]="Vidsel", ["Vidsel"]="Vidsel",
["Vuojarvi"]="Vuojarvi", ["Vuojarvi"]="Vuojarvi",
["Andoya"]="Andoya",
["Alakurtti"]="Alakurtti",
["Kittila"]="Kittila",
["Bardufoss"]="Bardufoss",
["Alta"]="Alta",
["Sodankyla"]="Sodankyla",
["Enontekio"]="Enontekio",
["Evenes"]="Evenes",
["Hosio"]="Hosio",
["Kilpyavr"]="Kilpyavr",
["Afrikanda"]="Afrikanda",
["Kalevala"]="Kalevala",
["Koshka_Yavr"]="Koshka Yavr",
["Poduzhemye"]="Poduzhemye",
["Luostari_Pechenga"]="Luostari Pechenga",
} }
AIRBASE.Afghanistan={ AIRBASE.Afghanistan={
["Bagram"]="Bagram", ["Bagram"]="Bagram",
@ -31979,6 +32095,10 @@ AIRBASE.Afghanistan={
["Camp_Bastion_Heliport"]="Camp Bastion Heliport", ["Camp_Bastion_Heliport"]="Camp Bastion Heliport",
["Chaghcharan"]="Chaghcharan", ["Chaghcharan"]="Chaghcharan",
["Dwyer"]="Dwyer", ["Dwyer"]="Dwyer",
["FOB_Camp_Dubs"]="FOB Camp Dubs",
["FOB_Clark"]="FOB Clark",
["FOB_Salerno"]="FOB Salerno",
["FOB_Thunder"]="FOB Thunder",
["Farah"]="Farah", ["Farah"]="Farah",
["Gardez"]="Gardez", ["Gardez"]="Gardez",
["Ghazni_Heliport"]="Ghazni Heliport", ["Ghazni_Heliport"]="Ghazni Heliport",
@ -31988,7 +32108,6 @@ AIRBASE.Afghanistan={
["Kandahar"]="Kandahar", ["Kandahar"]="Kandahar",
["Kandahar_Heliport"]="Kandahar Heliport", ["Kandahar_Heliport"]="Kandahar Heliport",
["Khost"]="Khost", ["Khost"]="Khost",
["Khost_Heliport"]="Khost Heliport",
["Maymana_Zahiraddin_Faryabi"]="Maymana Zahiraddin Faryabi", ["Maymana_Zahiraddin_Faryabi"]="Maymana Zahiraddin Faryabi",
["Nimroz"]="Nimroz", ["Nimroz"]="Nimroz",
["Qala_i_Naw"]="Qala i Naw", ["Qala_i_Naw"]="Qala i Naw",
@ -32009,10 +32128,10 @@ AIRBASE.Iraq={
["Balad_Airbase"]="Balad Airbase", ["Balad_Airbase"]="Balad Airbase",
["Bashur_Airport"]="Bashur Airport", ["Bashur_Airport"]="Bashur Airport",
["Erbil_International_Airport"]="Erbil International Airport", ["Erbil_International_Airport"]="Erbil International Airport",
["H2_Airbase"]="H-2 Airbase", ["H_2_Airbase"]="H-2 Airbase",
["H3_Main_Airbase"]="H-3 Main Airbase", ["H_3_Main_Airbase"]="H-3 Main Airbase",
["H3_Northwest_Airbase"]="H-3 Northwest Airbase", ["H_3_Northwest_Airbase"]="H-3 Northwest Airbase",
["H3_Southwest_Airbase"]="H-3 Southwest Airbase", ["H_3_Southwest_Airbase"]="H-3 Southwest Airbase",
["K1_Base"]="K1 Base", ["K1_Base"]="K1 Base",
["Kirkuk_International_Airport"]="Kirkuk International Airport", ["Kirkuk_International_Airport"]="Kirkuk International Airport",
["Mosul_International_Airport"]="Mosul International Airport", ["Mosul_International_Airport"]="Mosul International Airport",
@ -32020,6 +32139,7 @@ AIRBASE.Iraq={
["Sulaimaniyah_International_Airport"]="Sulaimaniyah International Airport", ["Sulaimaniyah_International_Airport"]="Sulaimaniyah International Airport",
} }
AIRBASE.GermanyCW={ AIRBASE.GermanyCW={
["Adelsheim"]="Adelsheim",
["Airracing_Frankfurt"]="Airracing Frankfurt", ["Airracing_Frankfurt"]="Airracing Frankfurt",
["Airracing_Koblenz"]="Airracing Koblenz", ["Airracing_Koblenz"]="Airracing Koblenz",
["Airracing_Luebeck"]="Airracing Lubeck", ["Airracing_Luebeck"]="Airracing Lubeck",
@ -32030,16 +32150,23 @@ AIRBASE.GermanyCW={
["Bienenfarm"]="Bienenfarm", ["Bienenfarm"]="Bienenfarm",
["Bindersleben"]="Bindersleben", ["Bindersleben"]="Bindersleben",
["Bitburg"]="Bitburg", ["Bitburg"]="Bitburg",
["Bornholm"]="Bornholm",
["Brand"]="Brand",
["Brandis"]="Brandis",
["Braunschweig"]="Braunschweig", ["Braunschweig"]="Braunschweig",
["Bremen"]="Bremen", ["Bremen"]="Bremen",
["Briest"]="Briest", ["Briest"]="Briest",
["Buechel"]="Buchel", ["Buechel"]="Buchel",
["Bueckeburg"]="Buckeburg", ["Bueckeburg"]="Buckeburg",
["Celle"]="Celle", ["Celle"]="Celle",
["Chojna"]="Chojna",
["Cochstedt"]="Cochstedt", ["Cochstedt"]="Cochstedt",
["Cologne"]="Cologne",
["Damgarten"]="Damgarten", ["Damgarten"]="Damgarten",
["Dedelow"]="Dedelow", ["Dedelow"]="Dedelow",
["Dessau"]="Dessau", ["Dessau"]="Dessau",
["Duesseldorf"]="Dusseldorf",
["Falkenberg"]="Falkenberg",
["Fassberg"]="Fassberg", ["Fassberg"]="Fassberg",
["Finow"]="Finow", ["Finow"]="Finow",
["Frankfurt"]="Frankfurt", ["Frankfurt"]="Frankfurt",
@ -32050,7 +32177,7 @@ AIRBASE.GermanyCW={
["Gatow"]="Gatow", ["Gatow"]="Gatow",
["Gelnhausen"]="Gelnhausen", ["Gelnhausen"]="Gelnhausen",
["Giebelstadt"]="Giebelstadt", ["Giebelstadt"]="Giebelstadt",
["Glindbruchkippe"]="Glindbruchkippe ", ["Glindbruchkippe"]="Glindbruchkippe",
["Gross_Mohrdorf"]="Gross Mohrdorf", ["Gross_Mohrdorf"]="Gross Mohrdorf",
["Grosse_Wiese"]="Grosse Wiese", ["Grosse_Wiese"]="Grosse Wiese",
["Guetersloh"]="Gutersloh", ["Guetersloh"]="Gutersloh",
@ -32168,43 +32295,60 @@ AIRBASE.GermanyCW={
["Hamburg_Finkenwerder"]="Hamburg Finkenwerder", ["Hamburg_Finkenwerder"]="Hamburg Finkenwerder",
["Hannover"]="Hannover", ["Hannover"]="Hannover",
["Hasselfelde"]="Hasselfelde", ["Hasselfelde"]="Hasselfelde",
["Heidelberg"]="Heidelberg",
["Herrenteich"]="Herrenteich", ["Herrenteich"]="Herrenteich",
["Hildesheim"]="Hildesheim", ["Hildesheim"]="Hildesheim",
["Hockenheim"]="Hockenheim", ["Hockenheim"]="Hockenheim",
["Holzdorf"]="Holzdorf", ["Holzdorf"]="Holzdorf",
["Kammermark"]="Kammermark", ["Kammermark"]="Kammermark",
["Kastrup"]="Kastrup",
["Kiel"]="Kiel",
["Koethen"]="Kothen", ["Koethen"]="Kothen",
["Laage"]="Laage", ["Laage"]="Laage",
["Landstuhl"]="Landstuhl",
["Langenselbold"]="Langenselbold", ["Langenselbold"]="Langenselbold",
["Laerz"]="Larz", ["Laerz"]="Larz",
["Leipzig_Halle"]="Leipzig Halle",
["Leipzig_Mockau"]="Leipzig Mockau", ["Leipzig_Mockau"]="Leipzig Mockau",
["Luebeck"]="Lubeck", ["Luebeck"]="Lubeck",
["Lueneburg"]="Luneburg", ["Lueneburg"]="Luneburg",
["Mahlwinkel"]="Mahlwinkel", ["Mahlwinkel"]="Mahlwinkel",
["Mainz_Finthen"]="Mainz Finthen",
["Marxwalde"]="Marxwalde",
["Mendig"]="Mendig", ["Mendig"]="Mendig",
["Merseburg"]="Merseburg", ["Merseburg"]="Merseburg",
["Neubrandenburg"]="Neubrandenburg", ["Neubrandenburg"]="Neubrandenburg",
["Neuruppin"]="Neuruppin", ["Neuruppin"]="Neuruppin",
["Nordholz"]="Nordholz",
["Northeim"]="Northeim", ["Northeim"]="Northeim",
["Noervenich"]="Norvenich",
["Ober_Moerlen"]="Ober-Morlen", ["Ober_Moerlen"]="Ober-Morlen",
["Obermehler_Schlotheim"]="Obermehler Schlotheim", ["Obermehler_Schlotheim"]="Obermehler Schlotheim",
["Oranienburg"]="Oranienburg",
["Parchim"]="Parchim", ["Parchim"]="Parchim",
["Peenemuende"]="Peenemunde", ["Peenemuende"]="Peenemunde",
["Perwenitz"]="Perwenitz",
["Pferdsfeld"]="Pferdsfeld", ["Pferdsfeld"]="Pferdsfeld",
["Pinnow"]="Pinnow", ["Pinnow"]="Pinnow",
["Pottschutthoehe"]="Pottschutthohe", ["Pottschutthoehe"]="Pottschutthohe",
["Ramstein"]="Ramstein", ["Ramstein"]="Ramstein",
["Revinge"]="Revinge",
["Rinteln"]="Rinteln", ["Rinteln"]="Rinteln",
["Schkeuditz"]="Schkeuditz",
["Schoenefeld"]="Schonefeld", ["Schoenefeld"]="Schonefeld",
["Schweinfurt"]="Schweinfurt", ["Schweinfurt"]="Schweinfurt",
["Sembach"]="Sembach", ["Sembach"]="Sembach",
["Sittensen"]="Sittensen",
["Spangdahlem"]="Spangdahlem", ["Spangdahlem"]="Spangdahlem",
["Sperenberg"]="Sperenberg", ["Sperenberg"]="Sperenberg",
["Sprendlingen"]="Sprendlingen",
["Stendal"]="Stendal", ["Stendal"]="Stendal",
["Sturup"]="Sturup",
["Szczecin_Goleniow"]="Szczecin-Goleniow",
["Tagra"]="Tagra",
["Tegel"]="Tegel", ["Tegel"]="Tegel",
["Tempelhof"]="Tempelhof", ["Tempelhof"]="Tempelhof",
["Templin"]="Templin", ["Templin"]="Templin",
["Thurland"]="Thurland",
["Tutow"]="Tutow", ["Tutow"]="Tutow",
["Uelzen"]="Uelzen", ["Uelzen"]="Uelzen",
["Uetersen"]="Uetersen", ["Uetersen"]="Uetersen",
@ -32220,6 +32364,7 @@ AIRBASE.GermanyCW={
["Worms"]="Worms", ["Worms"]="Worms",
["Wunstorf"]="Wunstorf", ["Wunstorf"]="Wunstorf",
["Zerbst"]="Zerbst", ["Zerbst"]="Zerbst",
["Zoellschen"]="Zollschen",
["Zweibruecken"]="Zweibrucken", ["Zweibruecken"]="Zweibrucken",
} }
AIRBASE.TerminalType={ AIRBASE.TerminalType={
@ -33252,6 +33397,12 @@ self.Vec3=SceneryZone:GetVec3()
self.Vec2=SceneryZone:GetVec2() self.Vec2=SceneryZone:GetVec2()
self.Vector=(self.Vec3 and VECTOR)and VECTOR:NewFromVec(self.Vec3)or nil self.Vector=(self.Vec3 and VECTOR)and VECTOR:NewFromVec(self.Vec3)or nil
end end
if SceneryObject then
local vec3=SceneryObject:getPoint()
self.Vec3={x=vec3.x,y=vec3.y,z=vec3.z}
self.Vec2={x=vec3.x,y=vec3.z}
self.Vector=(self.Vec3 and VECTOR)and VECTOR:NewFromVec(self.Vec3)or nil
end
if self.SceneryObject and self.SceneryObject.getLife then if self.SceneryObject and self.SceneryObject.getLife then
self.Life0=self.SceneryObject:getLife()or 1 self.Life0=self.SceneryObject:getLife()or 1
else else
@ -34306,7 +34457,7 @@ function NET:GetPlayerIDByName(Name)
if not Name then return nil end if not Name then return nil end
local playerList=net.get_player_list() local playerList=net.get_player_list()
for i=1,#playerList do for i=1,#playerList do
local playerName=net.get_name(i) local playerName=net.get_name(playerList[i])
if playerName==Name then if playerName==Name then
return playerList[i] return playerList[i]
end end
@ -45949,12 +46100,18 @@ self.controlmsrs:SetPort(Port or MSRS.port)
self.controlmsrs:SetCoalition(Coalition or coalition.side.BLUE) self.controlmsrs:SetCoalition(Coalition or coalition.side.BLUE)
self.controlmsrs:SetLabel("RANGEC") self.controlmsrs:SetLabel("RANGEC")
self.controlmsrs:SetVolume(Volume or 1.0) self.controlmsrs:SetVolume(Volume or 1.0)
if self.rangezone then
self.controlmsrs:SetCoordinate(self.rangezone:GetCoordinate())
end
self.controlsrsQ=MSRSQUEUE:New("CONTROL") self.controlsrsQ=MSRSQUEUE:New("CONTROL")
self.instructmsrs=MSRS:New(PathToSRS or MSRS.path,Frequency or 305,Modulation or radio.modulation.AM) self.instructmsrs=MSRS:New(PathToSRS or MSRS.path,Frequency or 305,Modulation or radio.modulation.AM)
self.instructmsrs:SetPort(Port or MSRS.port) self.instructmsrs:SetPort(Port or MSRS.port)
self.instructmsrs:SetCoalition(Coalition or coalition.side.BLUE) self.instructmsrs:SetCoalition(Coalition or coalition.side.BLUE)
self.instructmsrs:SetLabel("RANGEI") self.instructmsrs:SetLabel("RANGEI")
self.instructmsrs:SetVolume(Volume or 1.0) self.instructmsrs:SetVolume(Volume or 1.0)
if self.rangezone then
self.instructmsrs:SetCoordinate(self.rangezone:GetCoordinate())
end
self.instructsrsQ=MSRSQUEUE:New("INSTRUCT") self.instructsrsQ=MSRSQUEUE:New("INSTRUCT")
if PathToGoogleKey then if PathToGoogleKey then
self.controlmsrs:SetProviderOptionsGoogle(PathToGoogleKey,PathToGoogleKey) self.controlmsrs:SetProviderOptionsGoogle(PathToGoogleKey,PathToGoogleKey)
@ -45981,8 +46138,13 @@ self.controlmsrs:SetGender(gender or"female")
self.rangecontrol=true self.rangecontrol=true
if relayunitname then if relayunitname then
local unit=UNIT:FindByName(relayunitname) local unit=UNIT:FindByName(relayunitname)
if unit then
local Coordinate=unit:GetCoordinate() local Coordinate=unit:GetCoordinate()
self.rangecontrolrelayname=relayunitname self.rangecontrolrelayname=relayunitname
self.controlmsrs:SetCoordinate(Coordinate)
else
MESSAGE:New("RANGE: Control Relay Unit "..relayunitname.." not found!",15,"ERROR"):ToAllIf(self.Debug):ToLog()
end
end end
return self return self
end end
@ -46000,9 +46162,13 @@ self.instructmsrs:SetGender(gender or"male")
self.instructor=true self.instructor=true
if relayunitname then if relayunitname then
local unit=UNIT:FindByName(relayunitname) local unit=UNIT:FindByName(relayunitname)
if unit then
local Coordinate=unit:GetCoordinate() local Coordinate=unit:GetCoordinate()
self.instructmsrs:SetCoordinate(Coordinate) self.instructmsrs:SetCoordinate(Coordinate)
self.instructorrelayname=relayunitname self.instructorrelayname=relayunitname
else
MESSAGE:New("RANGE: Instructor Relay Unit "..relayunitname.." not found!",15,"ERROR"):ToAllIf(self.Debug):ToLog()
end
end end
return self return self
end end
@ -48194,7 +48360,7 @@ maxrange=7000,
reloadtime=nil, reloadtime=nil,
}, },
} }
ARTY.version="1.3.3" ARTY.version="1.3.4"
function ARTY:New(group,alias) function ARTY:New(group,alias)
local self=BASE:Inherit(self,FSM_CONTROLLABLE:New()) local self=BASE:Inherit(self,FSM_CONTROLLABLE:New())
if type(group)=="string"then if type(group)=="string"then
@ -48874,7 +49040,7 @@ _destroyweapon=true
end end
elseif target.weapontype==ARTY.WeaponType.SmokeShells then elseif target.weapontype==ARTY.WeaponType.SmokeShells then
if _dist<target.radius then if _dist<target.radius then
local _cr=_coord:GetRandomCoordinateInRadius(_data.target.radius) local _cr=_coord:GetRandomCoordinateInRadius(target.radius)
_cr:Smoke(self.smokeColor) _cr:Smoke(self.smokeColor)
_destroyweapon=true _destroyweapon=true
end end