@jtff/miztemplate-lib 3.8.6 → 3.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lua/lib/Moose_.lua +271 -46
- package/lua/lib/Splash_Damage_main.lua +7697 -4268
- package/lua/src/020-mission_functions.lua +1 -1
- package/lua/src/130-airboss.lua +1 -1
- package/lua/src/160-atis.lua +83 -1
- package/package.json +1 -1
package/lua/lib/Moose_.lua
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
env.info('*** MOOSE GITHUB Commit Hash ID: 2025-
|
|
1
|
+
env.info('*** MOOSE GITHUB Commit Hash ID: 2025-07-03T16:39:24+02:00-727cb3276cb69412b50ae7f277b0d6228b410359 ***')
|
|
2
2
|
if not MOOSE_DEVELOPMENT_FOLDER then
|
|
3
3
|
MOOSE_DEVELOPMENT_FOLDER='Scripts'
|
|
4
4
|
end
|
|
@@ -2378,6 +2378,11 @@ end
|
|
|
2378
2378
|
end
|
|
2379
2379
|
function UTILS.GetReportingName(Typename)
|
|
2380
2380
|
local typename=string.lower(Typename)
|
|
2381
|
+
if string.find(typename,"ka-50",1,true)then
|
|
2382
|
+
return"Shark"
|
|
2383
|
+
elseif string.find(typename,"a-50",1,true)then
|
|
2384
|
+
return"Mainstay"
|
|
2385
|
+
end
|
|
2381
2386
|
for name,value in pairs(ENUMS.ReportingName.NATO)do
|
|
2382
2387
|
local svalue=string.lower(value)
|
|
2383
2388
|
if string.find(typename,svalue,1,true)then
|
|
@@ -4044,6 +4049,34 @@ end
|
|
|
4044
4049
|
function UTILS.Weather.StopFogAnimation()
|
|
4045
4050
|
return world.weather.setFogAnimation({})
|
|
4046
4051
|
end
|
|
4052
|
+
function UTILS.GetEnvZone(name)
|
|
4053
|
+
for _,v in ipairs(env.mission.triggers.zones)do
|
|
4054
|
+
if v.name==name then
|
|
4055
|
+
return v
|
|
4056
|
+
end
|
|
4057
|
+
end
|
|
4058
|
+
end
|
|
4059
|
+
function UTILS.ShowHelperGate(pos,heading)
|
|
4060
|
+
net.dostring_in("mission",string.format("a_show_helper_gate(%s, %s, %s, %f)",pos.x,pos.y,pos.z,math.rad(heading)))
|
|
4061
|
+
end
|
|
4062
|
+
function UTILS.ShellZone(name,power,count)
|
|
4063
|
+
local z=UTILS.GetEnvZone(name)
|
|
4064
|
+
if z then
|
|
4065
|
+
net.dostring_in("mission",string.format("a_shelling_zone(%d, %d, %d)",z.zoneId,power,count))
|
|
4066
|
+
end
|
|
4067
|
+
end
|
|
4068
|
+
function UTILS.RemoveObjects(name,type)
|
|
4069
|
+
local z=UTILS.GetEnvZone(name)
|
|
4070
|
+
if z then
|
|
4071
|
+
net.dostring_in("mission",string.format("a_remove_scene_objects(%d, %d)",z.zoneId,type))
|
|
4072
|
+
end
|
|
4073
|
+
end
|
|
4074
|
+
function UTILS.DestroyScenery(name,level)
|
|
4075
|
+
local z=UTILS.GetEnvZone(name)
|
|
4076
|
+
if z then
|
|
4077
|
+
net.dostring_in("mission",string.format("a_scenery_destruction_zone(%d, %d)",z.zoneId,level))
|
|
4078
|
+
end
|
|
4079
|
+
end
|
|
4047
4080
|
PROFILER={
|
|
4048
4081
|
ClassName="PROFILER",
|
|
4049
4082
|
Counters={},
|
|
@@ -6412,7 +6445,7 @@ function SCHEDULEDISPATCHER:Stop(Scheduler,CallID)
|
|
|
6412
6445
|
self:F2({Stop=CallID,Scheduler=Scheduler})
|
|
6413
6446
|
if CallID then
|
|
6414
6447
|
local Schedule=self.Schedule[Scheduler][CallID]
|
|
6415
|
-
if Schedule.ScheduleID then
|
|
6448
|
+
if Schedule and Schedule.ScheduleID then
|
|
6416
6449
|
self:T(string.format("SCHEDULEDISPATCHER stopping scheduler CallID=%s, ScheduleID=%s",tostring(CallID),tostring(Schedule.ScheduleID)))
|
|
6417
6450
|
timer.removeFunction(Schedule.ScheduleID)
|
|
6418
6451
|
Schedule.ScheduleID=nil
|
|
@@ -10189,11 +10222,7 @@ self.ScanData.Scenery={}
|
|
|
10189
10222
|
self.ScanData.SceneryTable={}
|
|
10190
10223
|
self.ScanData.Units={}
|
|
10191
10224
|
local vectors=self:GetBoundingSquare()
|
|
10192
|
-
local
|
|
10193
|
-
local maxVec3={x=vectors.x2,y=0,z=vectors.y2}
|
|
10194
|
-
local minmarkcoord=COORDINATE:NewFromVec3(minVec3)
|
|
10195
|
-
local maxmarkcoord=COORDINATE:NewFromVec3(maxVec3)
|
|
10196
|
-
local ZoneRadius=minmarkcoord:Get2DDistance(maxmarkcoord)/2
|
|
10225
|
+
local ZoneRadius=UTILS.VecDist2D({x=vectors.x1,y=vectors.y1},{x=vectors.x2,y=vectors.y2})/2
|
|
10197
10226
|
local CenterVec3=self:GetCoordinate():GetVec3()
|
|
10198
10227
|
local SphereSearch={
|
|
10199
10228
|
id=world.VolumeType.SPHERE,
|
|
@@ -11613,7 +11642,7 @@ if client then
|
|
|
11613
11642
|
end
|
|
11614
11643
|
local PlayerName=Event.IniUnit:GetPlayerName()
|
|
11615
11644
|
if PlayerName then
|
|
11616
|
-
self:I(string.format("Player '%s' joined unit '%s' of group '%s'",tostring(PlayerName),tostring(Event.IniDCSUnitName),tostring(Event.IniDCSGroupName)))
|
|
11645
|
+
self:I(string.format("Player '%s' joined unit '%s' (%s) of group '%s'",tostring(PlayerName),tostring(Event.IniDCSUnitName),tostring(Event.IniTypeName),tostring(Event.IniDCSGroupName)))
|
|
11617
11646
|
if client==nil or(client and client:CountPlayers()==0)then
|
|
11618
11647
|
client=self:AddClient(Event.IniDCSUnitName,true)
|
|
11619
11648
|
end
|
|
@@ -12361,6 +12390,17 @@ ObjectNames=ObjectNames..ObjectName..", "
|
|
|
12361
12390
|
end
|
|
12362
12391
|
return ObjectNames
|
|
12363
12392
|
end
|
|
12393
|
+
function SET_BASE:GetAliveSet()
|
|
12394
|
+
local AliveSet={}
|
|
12395
|
+
for ObjectName,Object in pairs(self.Set)do
|
|
12396
|
+
if Object then
|
|
12397
|
+
if Object:IsAlive()then
|
|
12398
|
+
AliveSet[#AliveSet+1]=Object
|
|
12399
|
+
end
|
|
12400
|
+
end
|
|
12401
|
+
end
|
|
12402
|
+
return AliveSet or{}
|
|
12403
|
+
end
|
|
12364
12404
|
end
|
|
12365
12405
|
do
|
|
12366
12406
|
SET_GROUP={
|
|
@@ -12395,16 +12435,16 @@ self:FilterActive(false)
|
|
|
12395
12435
|
return self
|
|
12396
12436
|
end
|
|
12397
12437
|
function SET_GROUP:GetAliveSet()
|
|
12398
|
-
local AliveSet=
|
|
12438
|
+
local AliveSet={}
|
|
12399
12439
|
for GroupName,GroupObject in pairs(self.Set)do
|
|
12400
12440
|
local GroupObject=GroupObject
|
|
12401
12441
|
if GroupObject then
|
|
12402
12442
|
if GroupObject:IsAlive()then
|
|
12403
|
-
AliveSet
|
|
12443
|
+
AliveSet[GroupName]=GroupObject
|
|
12404
12444
|
end
|
|
12405
12445
|
end
|
|
12406
12446
|
end
|
|
12407
|
-
return AliveSet
|
|
12447
|
+
return AliveSet or{}
|
|
12408
12448
|
end
|
|
12409
12449
|
function SET_GROUP:GetUnitTypeNames()
|
|
12410
12450
|
local MT={}
|
|
@@ -13103,9 +13143,8 @@ end
|
|
|
13103
13143
|
function SET_UNIT:GetAliveSet()
|
|
13104
13144
|
local AliveSet=SET_UNIT:New()
|
|
13105
13145
|
for GroupName,GroupObject in pairs(self.Set)do
|
|
13106
|
-
local GroupObject=GroupObject
|
|
13107
13146
|
if GroupObject and GroupObject:IsAlive()then
|
|
13108
|
-
AliveSet
|
|
13147
|
+
AliveSet[GroupName]=GroupObject
|
|
13109
13148
|
end
|
|
13110
13149
|
end
|
|
13111
13150
|
return AliveSet.Set or{},AliveSet
|
|
@@ -14284,14 +14323,13 @@ end
|
|
|
14284
14323
|
return CountU
|
|
14285
14324
|
end
|
|
14286
14325
|
function SET_CLIENT:GetAliveSet()
|
|
14287
|
-
local AliveSet=
|
|
14326
|
+
local AliveSet={}
|
|
14288
14327
|
for GroupName,GroupObject in pairs(self.Set)do
|
|
14289
|
-
local GroupObject=GroupObject
|
|
14290
14328
|
if GroupObject and GroupObject:IsAlive()then
|
|
14291
|
-
AliveSet
|
|
14329
|
+
AliveSet[GroupName]=GroupObject
|
|
14292
14330
|
end
|
|
14293
14331
|
end
|
|
14294
|
-
return AliveSet
|
|
14332
|
+
return AliveSet or{}
|
|
14295
14333
|
end
|
|
14296
14334
|
function SET_CLIENT:IsIncludeObject(MClient)
|
|
14297
14335
|
local MClientInclude=true
|
|
@@ -17415,20 +17453,68 @@ trigger.action.illuminationBomb(self:GetVec3(),Power)
|
|
|
17415
17453
|
end
|
|
17416
17454
|
return self
|
|
17417
17455
|
end
|
|
17418
|
-
function COORDINATE:Smoke(SmokeColor,Duration,Delay,Name)
|
|
17419
|
-
self:F2({SmokeColor,Name,Duration,Delay})
|
|
17456
|
+
function COORDINATE:Smoke(SmokeColor,Duration,Delay,Name,Offset,Direction,Distance)
|
|
17457
|
+
self:F2({SmokeColor,Name,Duration,Delay,Offset})
|
|
17420
17458
|
SmokeColor=SmokeColor or SMOKECOLOR.Green
|
|
17421
17459
|
if Delay and Delay>0 then
|
|
17422
|
-
self:ScheduleOnce(Delay,COORDINATE.Smoke,self,SmokeColor,Duration,0,Name)
|
|
17460
|
+
self:ScheduleOnce(Delay,COORDINATE.Smoke,self,SmokeColor,Duration,0,Name,Direction,Distance)
|
|
17423
17461
|
else
|
|
17424
17462
|
self.firename=Name or"Smoke-"..math.random(1,100000)
|
|
17463
|
+
if Offset or self.SmokeOffset then
|
|
17464
|
+
local Angle=Direction or self:GetSmokeOffsetDirection()
|
|
17465
|
+
local Distance=Distance or self:GetSmokeOffsetDistance()
|
|
17466
|
+
local newpos=self:Translate(Distance,Angle,true,false)
|
|
17467
|
+
local newvec3=newpos:GetVec3()
|
|
17468
|
+
trigger.action.smoke(newvec3,SmokeColor,self.firename)
|
|
17469
|
+
else
|
|
17425
17470
|
trigger.action.smoke(self:GetVec3(),SmokeColor,self.firename)
|
|
17471
|
+
end
|
|
17426
17472
|
if Duration and Duration>0 then
|
|
17427
17473
|
self:ScheduleOnce(Duration,COORDINATE.StopSmoke,self,self.firename)
|
|
17428
17474
|
end
|
|
17429
17475
|
end
|
|
17430
17476
|
return self
|
|
17431
17477
|
end
|
|
17478
|
+
function COORDINATE:GetSmokeOffsetDirection()
|
|
17479
|
+
local direction=self.SmokeOffsetDirection or math.random(1,359)
|
|
17480
|
+
return direction
|
|
17481
|
+
end
|
|
17482
|
+
function COORDINATE:SetSmokeOffsetDirection(Direction)
|
|
17483
|
+
if self then
|
|
17484
|
+
self.SmokeOffsetDirection=Direction or math.random(1,359)
|
|
17485
|
+
return self
|
|
17486
|
+
else
|
|
17487
|
+
COORDINATE.SmokeOffsetDirection=Direction or math.random(1,359)
|
|
17488
|
+
end
|
|
17489
|
+
end
|
|
17490
|
+
function COORDINATE:GetSmokeOffsetDistance()
|
|
17491
|
+
local distance=self.SmokeOffsetDistance or math.random(10,20)
|
|
17492
|
+
return distance
|
|
17493
|
+
end
|
|
17494
|
+
function COORDINATE:SetSmokeOffsetDistance(Distance)
|
|
17495
|
+
if self then
|
|
17496
|
+
self.SmokeOffsetDistance=Distance or math.random(10,20)
|
|
17497
|
+
return self
|
|
17498
|
+
else
|
|
17499
|
+
COORDINATE.SmokeOffsetDistance=Distance or math.random(10,20)
|
|
17500
|
+
end
|
|
17501
|
+
end
|
|
17502
|
+
function COORDINATE:SwitchSmokeOffsetOn()
|
|
17503
|
+
if self then
|
|
17504
|
+
self.SmokeOffset=true
|
|
17505
|
+
return self
|
|
17506
|
+
else
|
|
17507
|
+
COORDINATE.SmokeOffset=true
|
|
17508
|
+
end
|
|
17509
|
+
end
|
|
17510
|
+
function COORDINATE:SwitchSmokeOffsetOff()
|
|
17511
|
+
if self then
|
|
17512
|
+
self.SmokeOffset=false
|
|
17513
|
+
return self
|
|
17514
|
+
else
|
|
17515
|
+
COORDINATE.SmokeOffset=false
|
|
17516
|
+
end
|
|
17517
|
+
end
|
|
17432
17518
|
function COORDINATE:StopSmoke(name)
|
|
17433
17519
|
self:StopBigSmokeAndFire(name)
|
|
17434
17520
|
end
|
|
@@ -21086,7 +21172,7 @@ end
|
|
|
21086
21172
|
return self:_SpawnStatic(self.TemplateStaticUnit,self.CountryID)
|
|
21087
21173
|
end
|
|
21088
21174
|
function SPAWNSTATIC:SpawnFromZone(Zone,Heading,NewName)
|
|
21089
|
-
local Static=self:
|
|
21175
|
+
local Static=self:SpawnFromCoordinate(Zone:GetCoordinate(),Heading,NewName)
|
|
21090
21176
|
return Static
|
|
21091
21177
|
end
|
|
21092
21178
|
function SPAWNSTATIC:_SpawnStatic(Template,CountryID)
|
|
@@ -21418,7 +21504,7 @@ MARKEROPS_BASE={
|
|
|
21418
21504
|
ClassName="MARKEROPS",
|
|
21419
21505
|
Tag="mytag",
|
|
21420
21506
|
Keywords={},
|
|
21421
|
-
version="0.1.
|
|
21507
|
+
version="0.1.4",
|
|
21422
21508
|
debug=false,
|
|
21423
21509
|
Casesensitive=true,
|
|
21424
21510
|
}
|
|
@@ -21451,19 +21537,18 @@ if Event==nil or Event.idx==nil then
|
|
|
21451
21537
|
self:E("Skipping onEvent. Event or Event.idx unknown.")
|
|
21452
21538
|
return true
|
|
21453
21539
|
end
|
|
21454
|
-
local vec3={y=Event.pos.y,x=Event.pos.x,z=Event.pos.z}
|
|
21455
|
-
local coord=COORDINATE:NewFromVec3(vec3)
|
|
21456
|
-
if self.debug then
|
|
21457
|
-
local coordtext=coord:ToStringLLDDM()
|
|
21458
|
-
local text=tostring(Event.text)
|
|
21459
|
-
local m=MESSAGE:New(string.format("Mark added at %s with text: %s",coordtext,text),10,"Info",false):ToAll()
|
|
21460
|
-
end
|
|
21461
21540
|
local coalition=Event.MarkCoalition
|
|
21462
21541
|
if Event.id==world.event.S_EVENT_MARK_ADDED then
|
|
21463
21542
|
self:T({event="S_EVENT_MARK_ADDED",carrier=Event.IniGroupName,vec3=Event.pos})
|
|
21464
21543
|
local Eventtext=tostring(Event.text)
|
|
21465
21544
|
if Eventtext~=nil then
|
|
21466
21545
|
if self:_MatchTag(Eventtext)then
|
|
21546
|
+
local coord=COORDINATE:NewFromVec3({y=Event.pos.y,x=Event.pos.x,z=Event.pos.z})
|
|
21547
|
+
if self.debug then
|
|
21548
|
+
local coordtext=coord:ToStringLLDDM()
|
|
21549
|
+
local text=tostring(Event.text)
|
|
21550
|
+
local m=MESSAGE:New(string.format("Mark added at %s with text: %s",coordtext,text),10,"Info",false):ToAll()
|
|
21551
|
+
end
|
|
21467
21552
|
local matchtable=self:_MatchKeywords(Eventtext)
|
|
21468
21553
|
self:MarkAdded(Eventtext,matchtable,coord,Event.idx,coalition,Event.PlayerName,Event)
|
|
21469
21554
|
end
|
|
@@ -21473,6 +21558,12 @@ self:T({event="S_EVENT_MARK_CHANGE",carrier=Event.IniGroupName,vec3=Event.pos})
|
|
|
21473
21558
|
local Eventtext=tostring(Event.text)
|
|
21474
21559
|
if Eventtext~=nil then
|
|
21475
21560
|
if self:_MatchTag(Eventtext)then
|
|
21561
|
+
local coord=COORDINATE:NewFromVec3({y=Event.pos.y,x=Event.pos.x,z=Event.pos.z})
|
|
21562
|
+
if self.debug then
|
|
21563
|
+
local coordtext=coord:ToStringLLDDM()
|
|
21564
|
+
local text=tostring(Event.text)
|
|
21565
|
+
local m=MESSAGE:New(string.format("Mark changed at %s with text: %s",coordtext,text),10,"Info",false):ToAll()
|
|
21566
|
+
end
|
|
21476
21567
|
local matchtable=self:_MatchKeywords(Eventtext)
|
|
21477
21568
|
self:MarkChanged(Eventtext,matchtable,coord,Event.idx,coalition,Event.PlayerName,Event)
|
|
21478
21569
|
end
|
|
@@ -22022,6 +22113,14 @@ function POSITIONABLE:GetVec3()
|
|
|
22022
22113
|
local DCSPositionable=self:GetDCSObject()
|
|
22023
22114
|
if DCSPositionable then
|
|
22024
22115
|
local vec3=DCSPositionable:getPoint()
|
|
22116
|
+
if not vec3 then
|
|
22117
|
+
local pos=DCSPositionable:getPosition()
|
|
22118
|
+
if pos and pos.p then
|
|
22119
|
+
vec3=pos.p
|
|
22120
|
+
else
|
|
22121
|
+
self:E({"Cannot get the position from DCS Object for GetVec3",Positionable=self,Alive=self:IsAlive()})
|
|
22122
|
+
end
|
|
22123
|
+
end
|
|
22025
22124
|
return vec3
|
|
22026
22125
|
end
|
|
22027
22126
|
self:E({"Cannot get the Positionable DCS Object for GetVec3",Positionable=self,Alive=self:IsAlive()})
|
|
@@ -22081,11 +22180,13 @@ function POSITIONABLE:GetCoordinate()
|
|
|
22081
22180
|
local DCSPositionable=self:GetDCSObject()
|
|
22082
22181
|
if DCSPositionable then
|
|
22083
22182
|
local PositionableVec3=self:GetVec3()
|
|
22183
|
+
if PositionableVec3 then
|
|
22084
22184
|
local coord=COORDINATE:NewFromVec3(PositionableVec3)
|
|
22085
22185
|
local heading=self:GetHeading()
|
|
22086
22186
|
coord.Heading=heading
|
|
22087
22187
|
return coord
|
|
22088
22188
|
end
|
|
22189
|
+
end
|
|
22089
22190
|
self:E({"Cannot GetCoordinate",Positionable=self,Alive=self:IsAlive()})
|
|
22090
22191
|
return nil
|
|
22091
22192
|
end
|
|
@@ -28774,6 +28875,9 @@ return true
|
|
|
28774
28875
|
end
|
|
28775
28876
|
return false
|
|
28776
28877
|
end
|
|
28878
|
+
function UNIT:SetLife(Percent)
|
|
28879
|
+
net.dostring_in("mission",string.format("a_unit_set_life_percentage(%d, %f)",self:GetID(),Percent))
|
|
28880
|
+
end
|
|
28777
28881
|
CLIENT={
|
|
28778
28882
|
ClassName="CLIENT",
|
|
28779
28883
|
ClientName=nil,
|
|
@@ -29401,7 +29505,6 @@ AIRBASE.Syria={
|
|
|
29401
29505
|
["Al_Dumayr"]="Al-Dumayr",
|
|
29402
29506
|
["Al_Qusayr"]="Al Qusayr",
|
|
29403
29507
|
["Aleppo"]="Aleppo",
|
|
29404
|
-
["Amman"]="Amman",
|
|
29405
29508
|
["An_Nasiriyah"]="An Nasiriyah",
|
|
29406
29509
|
["At_Tanf"]="At Tanf",
|
|
29407
29510
|
["Bassel_Al_Assad"]="Bassel Al-Assad",
|
|
@@ -29433,6 +29536,7 @@ AIRBASE.Syria={
|
|
|
29433
29536
|
["Kuweires"]="Kuweires",
|
|
29434
29537
|
["Lakatamia"]="Lakatamia",
|
|
29435
29538
|
["Larnaca"]="Larnaca",
|
|
29539
|
+
["Marka"]="Marka",
|
|
29436
29540
|
["Marj_Ruhayyil"]="Marj Ruhayyil",
|
|
29437
29541
|
["Marj_as_Sultan_North"]="Marj as Sultan North",
|
|
29438
29542
|
["Marj_as_Sultan_South"]="Marj as Sultan South",
|
|
@@ -29463,9 +29567,8 @@ AIRBASE.Syria={
|
|
|
29463
29567
|
["Wujah_Al_Hajar"]="Wujah Al Hajar",
|
|
29464
29568
|
["Ben_Gurion"]="Ben Gurion",
|
|
29465
29569
|
["Hatzor"]="Hatzor",
|
|
29466
|
-
["
|
|
29570
|
+
["Palmachim"]="Palmachim",
|
|
29467
29571
|
["Tel_Nof"]="Tel Nof",
|
|
29468
|
-
["Marka"]="Marka",
|
|
29469
29572
|
}
|
|
29470
29573
|
AIRBASE.MarianaIslands={
|
|
29471
29574
|
["Andersen_AFB"]="Andersen AFB",
|
|
@@ -29477,6 +29580,20 @@ AIRBASE.MarianaIslands={
|
|
|
29477
29580
|
["Saipan_Intl"]="Saipan Intl",
|
|
29478
29581
|
["Tinian_Intl"]="Tinian Intl",
|
|
29479
29582
|
}
|
|
29583
|
+
AIRBASE.MarianaIslandsWWII=
|
|
29584
|
+
{
|
|
29585
|
+
["Agana"]="Agana",
|
|
29586
|
+
["Airfield_3"]="Airfield 3",
|
|
29587
|
+
["Charon_Kanoa"]="Charon Kanoa",
|
|
29588
|
+
["Gurguan_Point"]="Gurguan Point",
|
|
29589
|
+
["Isley"]="Isley",
|
|
29590
|
+
["Kagman"]="Kagman",
|
|
29591
|
+
["Marpi"]="Marpi",
|
|
29592
|
+
["Orote"]="Orote",
|
|
29593
|
+
["Pagan"]="Pagan",
|
|
29594
|
+
["Rota"]="Rota",
|
|
29595
|
+
["Ushi"]="Ushi",
|
|
29596
|
+
}
|
|
29480
29597
|
AIRBASE.SouthAtlantic={
|
|
29481
29598
|
["Almirante_Schroeders"]="Almirante Schroeders",
|
|
29482
29599
|
["Comandante_Luis_Piedrabuena"]="Comandante Luis Piedrabuena",
|
|
@@ -29522,7 +29639,7 @@ AIRBASE.Sinai={
|
|
|
29522
29639
|
["Bilbeis_Air_Base"]="Bilbeis Air Base",
|
|
29523
29640
|
["Bir_Hasanah"]="Bir Hasanah",
|
|
29524
29641
|
["Birma_Air_Base"]="Birma Air Base",
|
|
29525
|
-
["
|
|
29642
|
+
["Borg_El_Arab_International_Airport"]="Borg El Arab International Airport",
|
|
29526
29643
|
["Cairo_International_Airport"]="Cairo International Airport",
|
|
29527
29644
|
["Cairo_West"]="Cairo West",
|
|
29528
29645
|
["Difarsuwar_Airfield"]="Difarsuwar Airfield",
|
|
@@ -29581,6 +29698,12 @@ AIRBASE.Kola={
|
|
|
29581
29698
|
["Enontekio"]="Enontekio",
|
|
29582
29699
|
["Evenes"]="Evenes",
|
|
29583
29700
|
["Hosio"]="Hosio",
|
|
29701
|
+
["Kilpyavr"]="Kilpyavr",
|
|
29702
|
+
["Afrikanda"]="Afrikanda",
|
|
29703
|
+
["Kalevala"]="Kalevala",
|
|
29704
|
+
["Koshka_Yavr"]="Koshka Yavr",
|
|
29705
|
+
["Poduzhemye"]="Poduzhemye",
|
|
29706
|
+
["Luostari_Pechenga"]="Luostari Pechenga",
|
|
29584
29707
|
}
|
|
29585
29708
|
AIRBASE.Afghanistan={
|
|
29586
29709
|
["Bagram"]="Bagram",
|
|
@@ -49708,7 +49831,7 @@ return _nstock
|
|
|
49708
49831
|
end
|
|
49709
49832
|
end
|
|
49710
49833
|
function WAREHOUSE:GetCoordinate()
|
|
49711
|
-
return self.warehouse:
|
|
49834
|
+
return self.warehouse:GetCoord()
|
|
49712
49835
|
end
|
|
49713
49836
|
function WAREHOUSE:GetVec3()
|
|
49714
49837
|
local vec3=self.warehouse:GetVec3()
|
|
@@ -51551,7 +51674,7 @@ local CountryNeutral=nil
|
|
|
51551
51674
|
if gotunits then
|
|
51552
51675
|
for _,_unit in pairs(units)do
|
|
51553
51676
|
local unit=_unit
|
|
51554
|
-
local distance=coord:Get2DDistance(unit:
|
|
51677
|
+
local distance=coord:Get2DDistance(unit:GetCoord())
|
|
51555
51678
|
if unit:IsGround()and unit:IsAlive()and distance<=radius then
|
|
51556
51679
|
local _coalition=unit:GetCoalition()
|
|
51557
51680
|
local _country=unit:GetCountry()
|
|
@@ -56015,6 +56138,8 @@ C2A="C2A_Greyhound",
|
|
|
56015
56138
|
RHINOE="FA-18E",
|
|
56016
56139
|
RHINOF="FA-18F",
|
|
56017
56140
|
GROWLER="EA-18G",
|
|
56141
|
+
CORSAIR="F4U-1D",
|
|
56142
|
+
CORSAIR_CW="F4U-1D CW",
|
|
56018
56143
|
}
|
|
56019
56144
|
AIRBOSS.CarrierType={
|
|
56020
56145
|
ROOSEVELT="CVN_71",
|
|
@@ -56024,6 +56149,7 @@ TRUMAN="CVN_75",
|
|
|
56024
56149
|
STENNIS="Stennis",
|
|
56025
56150
|
FORRESTAL="Forrestal",
|
|
56026
56151
|
VINSON="VINSON",
|
|
56152
|
+
ESSEX="Essex",
|
|
56027
56153
|
HERMES="HERMES81",
|
|
56028
56154
|
INVINCIBLE="hms_invincible",
|
|
56029
56155
|
TARAWA="LHA_Tarawa",
|
|
@@ -56080,7 +56206,7 @@ HARD="TOPGUN Graduate",
|
|
|
56080
56206
|
}
|
|
56081
56207
|
AIRBOSS.MenuF10={}
|
|
56082
56208
|
AIRBOSS.MenuF10Root=nil
|
|
56083
|
-
AIRBOSS.version="1.
|
|
56209
|
+
AIRBOSS.version="1.4.0"
|
|
56084
56210
|
function AIRBOSS:New(carriername,alias)
|
|
56085
56211
|
local self=BASE:Inherit(self,FSM:New())
|
|
56086
56212
|
self:F2({carriername=carriername,alias=alias})
|
|
@@ -56161,6 +56287,8 @@ elseif self.carriertype==AIRBOSS.CarrierType.FORRESTAL then
|
|
|
56161
56287
|
self:_InitForrestal()
|
|
56162
56288
|
elseif self.carriertype==AIRBOSS.CarrierType.VINSON then
|
|
56163
56289
|
self:_InitStennis()
|
|
56290
|
+
elseif self.carriertype==AIRBOSS.CarrierType.ESSEX then
|
|
56291
|
+
self:_InitEssex()
|
|
56164
56292
|
elseif self.carriertype==AIRBOSS.CarrierType.HERMES then
|
|
56165
56293
|
self:_InitHermes()
|
|
56166
56294
|
elseif self.carriertype==AIRBOSS.CarrierType.INVINCIBLE then
|
|
@@ -56486,7 +56614,12 @@ self.Tmessage=Duration or 10
|
|
|
56486
56614
|
return self
|
|
56487
56615
|
end
|
|
56488
56616
|
function AIRBOSS:SetGlideslopeErrorThresholds(_max,_min,High,HIGH,Low,LOW)
|
|
56489
|
-
if self.carriertype==AIRBOSS.CarrierType.INVINCIBLE or
|
|
56617
|
+
if self.carriertype==AIRBOSS.CarrierType.INVINCIBLE or
|
|
56618
|
+
self.carriertype==AIRBOSS.CarrierType.HERMES or
|
|
56619
|
+
self.carriertype==AIRBOSS.CarrierType.TARAWA or
|
|
56620
|
+
self.carriertype==AIRBOSS.CarrierType.AMERICA or
|
|
56621
|
+
self.carriertype==AIRBOSS.CarrierType.JCARLOS or
|
|
56622
|
+
self.carriertype==AIRBOSS.CarrierType.CANBERRA then
|
|
56490
56623
|
self.gle._max=_max or 0.7
|
|
56491
56624
|
self.gle.High=High or 1.4
|
|
56492
56625
|
self.gle.HIGH=HIGH or 1.9
|
|
@@ -57384,6 +57517,33 @@ self.carrierparam.wire3=64
|
|
|
57384
57517
|
self.carrierparam.wire4=74
|
|
57385
57518
|
self.carrierparam.landingdist=self.carrierparam.sterndist+self.carrierparam.wire3
|
|
57386
57519
|
end
|
|
57520
|
+
function AIRBOSS:_InitEssex()
|
|
57521
|
+
self:_InitNimitz()
|
|
57522
|
+
self.carrierparam.sterndist=-126
|
|
57523
|
+
self.carrierparam.deckheight=19.27
|
|
57524
|
+
self.carrierparam.totlength=268
|
|
57525
|
+
self.carrierparam.totwidthport=23
|
|
57526
|
+
self.carrierparam.totwidthstarboard=23
|
|
57527
|
+
self.carrierparam.rwyangle=0.0
|
|
57528
|
+
self.carrierparam.rwylength=265
|
|
57529
|
+
self.carrierparam.rwywidth=20
|
|
57530
|
+
self.carrierparam.wire1=21.9
|
|
57531
|
+
self.carrierparam.wire2=28.3
|
|
57532
|
+
self.carrierparam.wire3=34.7
|
|
57533
|
+
self.carrierparam.wire4=41.1
|
|
57534
|
+
self.carrierparam.wire5=47.4
|
|
57535
|
+
self.carrierparam.wire6=53.7
|
|
57536
|
+
self.carrierparam.wire7=59.0
|
|
57537
|
+
self.carrierparam.wire8=64.1
|
|
57538
|
+
self.carrierparam.wire9=72.7
|
|
57539
|
+
self.carrierparam.wire10=78.0
|
|
57540
|
+
self.carrierparam.wire11=85.5
|
|
57541
|
+
self.carrierparam.wire12=105.9
|
|
57542
|
+
self.carrierparam.wire13=113.3
|
|
57543
|
+
self.carrierparam.wire14=121.0
|
|
57544
|
+
self.carrierparam.wire15=128.5
|
|
57545
|
+
self.carrierparam.landingdist=self.carrierparam.sterndist+self.carrierparam.wire3
|
|
57546
|
+
end
|
|
57387
57547
|
function AIRBOSS:_InitHermes()
|
|
57388
57548
|
self:_InitStennis()
|
|
57389
57549
|
self.carrierparam.sterndist=-105
|
|
@@ -57888,6 +58048,7 @@ local goshawk=playerData.actype==AIRBOSS.AircraftCarrier.T45C
|
|
|
57888
58048
|
local skyhawk=playerData.actype==AIRBOSS.AircraftCarrier.A4EC
|
|
57889
58049
|
local harrier=playerData.actype==AIRBOSS.AircraftCarrier.AV8B
|
|
57890
58050
|
local tomcat=playerData.actype==AIRBOSS.AircraftCarrier.F14A or playerData.actype==AIRBOSS.AircraftCarrier.F14B
|
|
58051
|
+
local corsair=playerData.actype==AIRBOSS.AircraftCarrier.CORSAIR or playerData.actype==AIRBOSS.AircraftCarrier.CORSAIR_CW
|
|
57891
58052
|
local aoa={}
|
|
57892
58053
|
if hornet then
|
|
57893
58054
|
aoa.SLOW=9.8
|
|
@@ -57929,6 +58090,14 @@ aoa.OnSpeed=10.0
|
|
|
57929
58090
|
aoa.OnSpeedMin=9.5
|
|
57930
58091
|
aoa.Fast=8.0
|
|
57931
58092
|
aoa.FAST=7.5
|
|
58093
|
+
elseif corsair then
|
|
58094
|
+
aoa.SLOW=16.0
|
|
58095
|
+
aoa.Slow=13.5
|
|
58096
|
+
aoa.OnSpeedMax=12.5
|
|
58097
|
+
aoa.OnSpeed=10.0
|
|
58098
|
+
aoa.OnSpeedMin=9.5
|
|
58099
|
+
aoa.Fast=8.0
|
|
58100
|
+
aoa.FAST=7.5
|
|
57932
58101
|
end
|
|
57933
58102
|
return aoa
|
|
57934
58103
|
end
|
|
@@ -57962,6 +58131,7 @@ local skyhawk=playerData.actype==AIRBOSS.AircraftCarrier.A4EC
|
|
|
57962
58131
|
local tomcat=playerData.actype==AIRBOSS.AircraftCarrier.F14A or playerData.actype==AIRBOSS.AircraftCarrier.F14B
|
|
57963
58132
|
local harrier=playerData.actype==AIRBOSS.AircraftCarrier.AV8B
|
|
57964
58133
|
local goshawk=playerData.actype==AIRBOSS.AircraftCarrier.T45C
|
|
58134
|
+
local corsair=playerData.actype==AIRBOSS.AircraftCarrier.CORSAIR or playerData.actype==AIRBOSS.AircraftCarrier.CORSAIR_CW
|
|
57965
58135
|
local alt
|
|
57966
58136
|
local aoa
|
|
57967
58137
|
local dist
|
|
@@ -57998,6 +58168,9 @@ speed=UTILS.KnotsToMps(250)
|
|
|
57998
58168
|
elseif goshawk then
|
|
57999
58169
|
alt=UTILS.FeetToMeters(800)
|
|
58000
58170
|
speed=UTILS.KnotsToMps(300)
|
|
58171
|
+
elseif corsair then
|
|
58172
|
+
alt=UTILS.FeetToMeters(300)
|
|
58173
|
+
speed=UTILS.KnotsToMps(120)
|
|
58001
58174
|
end
|
|
58002
58175
|
elseif step==AIRBOSS.PatternStep.BREAKENTRY then
|
|
58003
58176
|
if hornet or tomcat or harrier then
|
|
@@ -58009,24 +58182,36 @@ speed=UTILS.KnotsToMps(250)
|
|
|
58009
58182
|
elseif goshawk then
|
|
58010
58183
|
alt=UTILS.FeetToMeters(800)
|
|
58011
58184
|
speed=UTILS.KnotsToMps(300)
|
|
58185
|
+
elseif corsair then
|
|
58186
|
+
alt=UTILS.FeetToMeters(200)
|
|
58187
|
+
speed=UTILS.KnotsToMps(110)
|
|
58012
58188
|
end
|
|
58013
58189
|
elseif step==AIRBOSS.PatternStep.EARLYBREAK then
|
|
58014
58190
|
if hornet or tomcat or harrier or goshawk then
|
|
58015
58191
|
alt=UTILS.FeetToMeters(800)
|
|
58016
58192
|
elseif skyhawk then
|
|
58017
58193
|
alt=UTILS.FeetToMeters(600)
|
|
58194
|
+
elseif corsair then
|
|
58195
|
+
alt=UTILS.FeetToMeters(200)
|
|
58196
|
+
speed=UTILS.KnotsToMps(100)
|
|
58018
58197
|
end
|
|
58019
58198
|
elseif step==AIRBOSS.PatternStep.LATEBREAK then
|
|
58020
58199
|
if hornet or tomcat or harrier or goshawk then
|
|
58021
58200
|
alt=UTILS.FeetToMeters(800)
|
|
58022
58201
|
elseif skyhawk then
|
|
58023
58202
|
alt=UTILS.FeetToMeters(600)
|
|
58203
|
+
elseif corsair then
|
|
58204
|
+
alt=UTILS.FeetToMeters(150)
|
|
58205
|
+
speed=UTILS.KnotsToMps(100)
|
|
58024
58206
|
end
|
|
58025
58207
|
elseif step==AIRBOSS.PatternStep.ABEAM then
|
|
58026
58208
|
if hornet or tomcat or harrier or goshawk then
|
|
58027
58209
|
alt=UTILS.FeetToMeters(600)
|
|
58028
58210
|
elseif skyhawk then
|
|
58029
58211
|
alt=UTILS.FeetToMeters(500)
|
|
58212
|
+
elseif corsair then
|
|
58213
|
+
alt=UTILS.FeetToMeters(150)
|
|
58214
|
+
speed=UTILS.KnotsToMps(90)
|
|
58030
58215
|
end
|
|
58031
58216
|
aoa=aoaac.OnSpeed
|
|
58032
58217
|
if goshawk then
|
|
@@ -58045,6 +58230,9 @@ elseif skyhawk then
|
|
|
58045
58230
|
alt=UTILS.FeetToMeters(500)
|
|
58046
58231
|
elseif harrier then
|
|
58047
58232
|
alt=UTILS.FeetToMeters(425)
|
|
58233
|
+
elseif corsair then
|
|
58234
|
+
alt=UTILS.FeetToMeters(90)
|
|
58235
|
+
speed=UTILS.KnotsToMps(90)
|
|
58048
58236
|
end
|
|
58049
58237
|
aoa=aoaac.OnSpeed
|
|
58050
58238
|
elseif step==AIRBOSS.PatternStep.WAKE then
|
|
@@ -58054,6 +58242,8 @@ elseif tomcat then
|
|
|
58054
58242
|
alt=UTILS.FeetToMeters(430)
|
|
58055
58243
|
elseif skyhawk then
|
|
58056
58244
|
alt=UTILS.FeetToMeters(370)
|
|
58245
|
+
elseif corsair then
|
|
58246
|
+
alt=UTILS.FeetToMeters(80)
|
|
58057
58247
|
end
|
|
58058
58248
|
aoa=aoaac.OnSpeed
|
|
58059
58249
|
elseif step==AIRBOSS.PatternStep.FINAL then
|
|
@@ -58065,6 +58255,8 @@ elseif skyhawk then
|
|
|
58065
58255
|
alt=UTILS.FeetToMeters(300)
|
|
58066
58256
|
elseif harrier then
|
|
58067
58257
|
alt=UTILS.FeetToMeters(312)
|
|
58258
|
+
elseif corsair then
|
|
58259
|
+
alt=UTILS.FeetToMeters(80)
|
|
58068
58260
|
end
|
|
58069
58261
|
aoa=aoaac.OnSpeed
|
|
58070
58262
|
end
|
|
@@ -58455,6 +58647,8 @@ elseif flight.actype==AIRBOSS.AircraftCarrier.F14A_AI or flight.actype==AIRBOSS.
|
|
|
58455
58647
|
Speed=UTILS.KnotsToKmph(175)
|
|
58456
58648
|
elseif flight.actype==AIRBOSS.AircraftCarrier.S3B or flight.actype==AIRBOSS.AircraftCarrier.S3BTANKER then
|
|
58457
58649
|
Speed=UTILS.KnotsToKmph(140)
|
|
58650
|
+
elseif flight.actype==AIRBOSS.AircraftCarrier.CORSAIR or flight.actype==AIRBOSS.AircraftCarrier.CORSAIR_CW then
|
|
58651
|
+
Speed=UTILS.KnotsToKmph(100)
|
|
58458
58652
|
end
|
|
58459
58653
|
local Carrier=self:GetCoordinate()
|
|
58460
58654
|
local hdg=self:GetHeading()
|
|
@@ -59562,13 +59756,13 @@ end
|
|
|
59562
59756
|
function AIRBOSS:OnEventRemoveUnit(EventData)
|
|
59563
59757
|
self:F3({eventland=EventData})
|
|
59564
59758
|
if EventData==nil then
|
|
59565
|
-
self:
|
|
59566
|
-
self:
|
|
59759
|
+
self:T(self.lid.."ERROR: EventData=nil in event REMOVEUNIT!")
|
|
59760
|
+
self:T(EventData)
|
|
59567
59761
|
return
|
|
59568
59762
|
end
|
|
59569
59763
|
if EventData.IniUnit==nil then
|
|
59570
|
-
self:
|
|
59571
|
-
self:
|
|
59764
|
+
self:T(self.lid.."ERROR: EventData.IniUnit=nil in event REMOVEUNIT!")
|
|
59765
|
+
self:T(EventData)
|
|
59572
59766
|
return
|
|
59573
59767
|
end
|
|
59574
59768
|
local _unitName=EventData.IniUnitName
|
|
@@ -60339,6 +60533,8 @@ elseif self.carriertype==AIRBOSS.CarrierType.STENNIS then
|
|
|
60339
60533
|
self.sterncoord:Translate(self.carrierparam.sterndist,hdg,true,true):Translate(7,FB+90,true,true)
|
|
60340
60534
|
elseif self.carriertype==AIRBOSS.CarrierType.FORRESTAL then
|
|
60341
60535
|
self.sterncoord:Translate(self.carrierparam.sterndist,hdg,true,true):Translate(7.5,FB+90,true,true)
|
|
60536
|
+
elseif self.carriertype==AIRBOSS.CarrierType.ESSEX then
|
|
60537
|
+
self.sterncoord:Translate(self.carrierparam.sterndist,hdg,true,true):Translate(-1,FB+90,true,true)
|
|
60342
60538
|
else
|
|
60343
60539
|
self.sterncoord:Translate(self.carrierparam.sterndist,hdg,true,true):Translate(9.5,FB+90,true,true)
|
|
60344
60540
|
end
|
|
@@ -67909,7 +68105,7 @@ CTLD.FixedWingTypes={
|
|
|
67909
68105
|
["Bronco"]="Bronco",
|
|
67910
68106
|
["Mosquito"]="Mosquito",
|
|
67911
68107
|
}
|
|
67912
|
-
CTLD.version="1.3.
|
|
68108
|
+
CTLD.version="1.3.35"
|
|
67913
68109
|
function CTLD:New(Coalition,Prefixes,Alias)
|
|
67914
68110
|
local self=BASE:Inherit(self,FSM:New())
|
|
67915
68111
|
BASE:T({Coalition,Prefixes,Alias})
|
|
@@ -68149,6 +68345,9 @@ if self.CtldUnits[unitname]then
|
|
|
68149
68345
|
local _group=event.IniGroup
|
|
68150
68346
|
local _unit=event.IniUnit
|
|
68151
68347
|
self:_RefreshLoadCratesMenu(_group,_unit)
|
|
68348
|
+
if self:IsFixedWing(_unit)and self.enableFixedWing then
|
|
68349
|
+
self:_RefreshDropCratesMenu(_group,_unit)
|
|
68350
|
+
end
|
|
68152
68351
|
end
|
|
68153
68352
|
elseif event.id==EVENTS.PlayerLeaveUnit or event.id==EVENTS.UnitLost then
|
|
68154
68353
|
local unitname=event.IniUnitName or"none"
|
|
@@ -68719,7 +68918,11 @@ local cratealias=string.format("%s-%s-%d",cratename,cratetemplate,math.random(1,
|
|
|
68719
68918
|
if not self.placeCratesAhead or drop==true then
|
|
68720
68919
|
cratedistance=(i-1)*2.5+capabilities.length
|
|
68721
68920
|
if cratedistance>self.CrateDistance then cratedistance=self.CrateDistance end
|
|
68921
|
+
if self:IsUnitInAir(Unit)and self:IsFixedWing(Unit)then
|
|
68922
|
+
rheading=math.random(20,60)
|
|
68923
|
+
else
|
|
68722
68924
|
rheading=UTILS.RandomGaussian(0,30,-90,90,100)
|
|
68925
|
+
end
|
|
68723
68926
|
rheading=math.fmod((heading+rheading),360)
|
|
68724
68927
|
cratecoord=position:Translate(cratedistance,rheading)
|
|
68725
68928
|
else
|
|
@@ -69662,7 +69865,7 @@ if self.buildtime and self.buildtime>0 then
|
|
|
69662
69865
|
local buildtimer=TIMER:New(self._BuildObjectFromCrates,self,Group,Unit,build,false,Group:GetCoordinate(),MultiDrop)
|
|
69663
69866
|
buildtimer:Start(self.buildtime)
|
|
69664
69867
|
self:_SendMessage(string.format("Build started, ready in %d seconds!",self.buildtime),15,false,Group)
|
|
69665
|
-
self:__CratesBuildStarted(1,Group,Unit)
|
|
69868
|
+
self:__CratesBuildStarted(1,Group,Unit,build.Name)
|
|
69666
69869
|
self:_RefreshDropTroopsMenu(Group,Unit)
|
|
69667
69870
|
else
|
|
69668
69871
|
self:_BuildObjectFromCrates(Group,Unit,build,false,nil,MultiDrop)
|
|
@@ -70398,6 +70601,17 @@ for _,cObj in ipairs(chunk)do
|
|
|
70398
70601
|
cObj:SetWasDropped(true)
|
|
70399
70602
|
cObj:SetHasMoved(true)
|
|
70400
70603
|
end
|
|
70604
|
+
local cname=crateObj:GetName()or"Unknown"
|
|
70605
|
+
local count=#chunk
|
|
70606
|
+
if needed>1 then
|
|
70607
|
+
if count==needed then
|
|
70608
|
+
self:_SendMessage(string.format("Dropped %d %s.",1,cname),10,false,Group)
|
|
70609
|
+
else
|
|
70610
|
+
self:_SendMessage(string.format("Dropped %d/%d crate(s) of %s.",count,needed,cname),15,false,Group)
|
|
70611
|
+
end
|
|
70612
|
+
else
|
|
70613
|
+
self:_SendMessage(string.format("Dropped %d %s(s).",count,cname),10,false,Group)
|
|
70614
|
+
end
|
|
70401
70615
|
local loadedData=self.Loaded_Cargo[unitName]
|
|
70402
70616
|
if loadedData and loadedData.Cargo then
|
|
70403
70617
|
local newList={}
|
|
@@ -70490,7 +70704,9 @@ end
|
|
|
70490
70704
|
else
|
|
70491
70705
|
local mAll=MENU_GROUP:New(Group,"Drop ALL crates",dropCratesMenu)
|
|
70492
70706
|
MENU_GROUP_COMMAND:New(Group,"Drop",mAll,self._UnloadCrates,self,Group,Unit)
|
|
70707
|
+
if not(self:IsUnitInAir(Unit)and self:IsFixedWing(Unit))then
|
|
70493
70708
|
MENU_GROUP_COMMAND:New(Group,"Drop and build",mAll,self._DropAndBuild,self,Group,Unit)
|
|
70709
|
+
end
|
|
70494
70710
|
self.CrateGroupList=self.CrateGroupList or{}
|
|
70495
70711
|
self.CrateGroupList[Unit:GetName()]={}
|
|
70496
70712
|
local lineIndex=1
|
|
@@ -70510,7 +70726,9 @@ table.insert(self.CrateGroupList[Unit:GetName()],chunk)
|
|
|
70510
70726
|
local setIndex=#self.CrateGroupList[Unit:GetName()]
|
|
70511
70727
|
local mSet=MENU_GROUP:New(Group,label,dropCratesMenu)
|
|
70512
70728
|
MENU_GROUP_COMMAND:New(Group,"Drop",mSet,self._UnloadSingleCrateSet,self,Group,Unit,setIndex)
|
|
70729
|
+
if not(self:IsUnitInAir(Unit)and self:IsFixedWing(Unit))then
|
|
70513
70730
|
MENU_GROUP_COMMAND:New(Group,"Drop and build",mSet,self._DropSingleAndBuild,self,Group,Unit,setIndex)
|
|
70731
|
+
end
|
|
70514
70732
|
i=i+needed
|
|
70515
70733
|
else
|
|
70516
70734
|
local chunk={}
|
|
@@ -70619,6 +70837,8 @@ end
|
|
|
70619
70837
|
foundCargo:SetWasDropped(true)
|
|
70620
70838
|
if cType==CTLD_CARGO.Enum.ENGINEERS then
|
|
70621
70839
|
self.Engineers=self.Engineers+1
|
|
70840
|
+
local grpname=self.DroppedTroops[self.TroopCounter]:GetName()
|
|
70841
|
+
self.EngineersInField[self.Engineers]=CTLD_ENGINEERING:New(name,grpname)
|
|
70622
70842
|
self:_SendMessage(string.format("Dropped Engineers %s into action!",name),10,false,Group)
|
|
70623
70843
|
else
|
|
70624
70844
|
self:_SendMessage(string.format("Dropped Troops %s into action!",name),10,false,Group)
|
|
@@ -71194,15 +71414,20 @@ for index,cargozone in pairs(zones[i])do
|
|
|
71194
71414
|
local CZone=cargozone
|
|
71195
71415
|
local zonename=CZone.name
|
|
71196
71416
|
local zone=nil
|
|
71417
|
+
local airbasezone=false
|
|
71197
71418
|
if i==4 then
|
|
71198
71419
|
zone=UNIT:FindByName(zonename)
|
|
71199
71420
|
else
|
|
71200
71421
|
zone=ZONE:FindByName(zonename)
|
|
71201
71422
|
if not zone then
|
|
71202
71423
|
zone=AIRBASE:FindByName(zonename):GetZone()
|
|
71424
|
+
airbasezone=true
|
|
71203
71425
|
end
|
|
71204
71426
|
end
|
|
71205
71427
|
local zonecoord=zone:GetCoordinate()
|
|
71428
|
+
if(i==1 or 1==3)and airbasezone==true and zone:IsInstanceOf("ZONE_BASE")then
|
|
71429
|
+
zonecoord=zone:GetRandomCoordinate(inner,outer,{land.SurfaceType.LAND})
|
|
71430
|
+
end
|
|
71206
71431
|
if zonecoord then
|
|
71207
71432
|
local active=CZone.active
|
|
71208
71433
|
local color=CZone.color
|
|
@@ -74363,8 +74588,8 @@ else
|
|
|
74363
74588
|
self.allheligroupset=SET_GROUP:New():FilterCoalitions(self.coalitiontxt):FilterCategoryHelicopter():FilterStart()
|
|
74364
74589
|
end
|
|
74365
74590
|
self.mash=SET_GROUP:New():FilterCoalitions(self.coalitiontxt):FilterPrefixes(self.mashprefix):FilterStart()
|
|
74366
|
-
self.staticmashes=SET_STATIC:New():FilterCoalitions(self.coalitiontxt):FilterPrefixes(self.mashprefix):
|
|
74367
|
-
self.zonemashes=SET_ZONE:New():FilterPrefixes(self.mashprefix):
|
|
74591
|
+
self.staticmashes=SET_STATIC:New():FilterCoalitions(self.coalitiontxt):FilterPrefixes(self.mashprefix):FilterStart()
|
|
74592
|
+
self.zonemashes=SET_ZONE:New():FilterPrefixes(self.mashprefix):FilterStart()
|
|
74368
74593
|
if not self.coordinate then
|
|
74369
74594
|
local csarhq=self.mash:GetRandom()
|
|
74370
74595
|
if csarhq then
|
|
@@ -85323,7 +85548,7 @@ Wavenet={
|
|
|
85323
85548
|
["en_GB_Wavenet_F"]='en-GB-Wavenet-N',
|
|
85324
85549
|
["en_GB_Wavenet_O"]='en-GB-Wavenet-O',
|
|
85325
85550
|
["en_GB_Wavenet_N"]='en-GB-Wavenet-N',
|
|
85326
|
-
["en_US_Wavenet_A"]='en-US-Wavenet-
|
|
85551
|
+
["en_US_Wavenet_A"]='en-US-Wavenet-A',
|
|
85327
85552
|
["en_US_Wavenet_B"]='en-US-Wavenet-B',
|
|
85328
85553
|
["en_US_Wavenet_C"]='en-US-Wavenet-C',
|
|
85329
85554
|
["en_US_Wavenet_D"]='en-US-Wavenet-D',
|