merge master

This commit is contained in:
funkyfranky 2017-09-15 14:09:31 +02:00
commit 5f8bc4f3bd
11 changed files with 170 additions and 93 deletions

View File

@ -338,7 +338,7 @@ do -- COORDINATE
-- @return #string -- @return #string
function COORDINATE:GetMovingText( Settings ) function COORDINATE:GetMovingText( Settings )
return self:GetVelocityText( Settings ) .. self:GetHeadingText( Settings ) return self:GetVelocityText( Settings ) .. ", " .. self:GetHeadingText( Settings )
end end
@ -350,6 +350,7 @@ do -- COORDINATE
return { x = TargetCoordinate.x - self.x, y = TargetCoordinate.y - self.y, z = TargetCoordinate.z - self.z } return { x = TargetCoordinate.x - self.x, y = TargetCoordinate.y - self.y, z = TargetCoordinate.z - self.z }
end end
--- Get a correction in radians of the real magnetic north of the COORDINATE. --- Get a correction in radians of the real magnetic north of the COORDINATE.
-- @param #COORDINATE self -- @param #COORDINATE self
-- @return #number CorrectionRadians The correction in radians. -- @return #number CorrectionRadians The correction in radians.

View File

@ -200,6 +200,7 @@
-- * @{#SPAWN.SpawnFromStatic}(): Spawn a new group from a structure, taking the position of a @{Static}. -- * @{#SPAWN.SpawnFromStatic}(): Spawn a new group from a structure, taking the position of a @{Static}.
-- * @{#SPAWN.SpawnFromUnit}(): Spawn a new group taking the position of a @{Unit}. -- * @{#SPAWN.SpawnFromUnit}(): Spawn a new group taking the position of a @{Unit}.
-- * @{#SPAWN.SpawnInZone}(): Spawn a new group in a @{Zone}. -- * @{#SPAWN.SpawnInZone}(): Spawn a new group in a @{Zone}.
-- * @{#SPAWN.SpawnAtAirbase}(): Spawn a new group at an @{Airbase}, which can be an airdrome, ship or helipad.
-- --
-- Note that @{#SPAWN.Spawn} and @{#SPAWN.ReSpawn} return a @{GROUP#GROUP.New} object, that contains a reference to the DCSGroup object. -- Note that @{#SPAWN.Spawn} and @{#SPAWN.ReSpawn} return a @{GROUP#GROUP.New} object, that contains a reference to the DCSGroup object.
-- You can use the @{GROUP} object to do further actions with the DCSGroup. -- You can use the @{GROUP} object to do further actions with the DCSGroup.
@ -982,16 +983,49 @@ function SPAWN:OnSpawnGroup( SpawnCallBackFunction, ... )
return self return self
end end
--- Will spawn a group at an airbase. --- Will spawn a group at an @{Airbase}.
-- This method is mostly advisable to be used if you want to simulate spawning units at an airbase. -- This method is mostly advisable to be used if you want to simulate spawning units at an airbase.
-- Note that each point in the route assigned to the spawning group is reset to the point of the spawn. -- Note that each point in the route assigned to the spawning group is reset to the point of the spawn.
-- You can use the returned group to further define the route to be followed. -- You can use the returned group to further define the route to be followed.
--
-- The @{Airbase#AIRBASE} object must refer to a valid airbase known in the sim.
-- You can use the following enumerations to search for the pre-defined airbases on the current known maps of DCS:
--
-- * @{Airbase#AIRBASE.Caucasus}: The airbases on the Caucasus map.
-- * @{Airbase#AIRBASE.Nevada}: The airbases on the Nevada (NTTR) map.
-- * @{Airbase#AIRBASE.Normandy}: The airbases on the Normandy map.
--
-- Use the method @{Airbase#AIRBASE.FindByName}() to retrieve the airbase object.
-- The known AIRBASE objects are automatically imported at mission start by MOOSE.
-- Therefore, there isn't any New() constructor defined for AIRBASE objects.
--
-- Ships and Farps are added within the mission, and are therefore not known.
-- For these AIRBASE objects, there isn't an @{Airbase#AIRBASE} enumeration defined.
-- You need to provide the **exact name** of the airbase as the parameter to the @{Airbase#AIRBASE.FindByName}() method!
--
-- @param #SPAWN self -- @param #SPAWN self
-- @param Wrapper.Airbase#AIRBASE SpawnAirbase The @{Airbase} where to spawn the group. -- @param Wrapper.Airbase#AIRBASE SpawnAirbase The @{Airbase} where to spawn the group.
-- @param #SPAWN.Takeoff Takeoff (optional) The location and takeoff method. Default is Hot. -- @param #SPAWN.Takeoff Takeoff (optional) The location and takeoff method. Default is Hot.
-- @param #number TakeoffAltitude (optional) The altitude above the ground. -- @param #number TakeoffAltitude (optional) The altitude above the ground.
-- @return Wrapper.Group#GROUP that was spawned. -- @return Wrapper.Group#GROUP that was spawned.
-- @return #nil Nothing was spawned. -- @return #nil Nothing was spawned.
-- @usage
-- Spawn_Plane = SPAWN:New( "Plane" )
-- Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( AIRBASE.Caucasus.Krymsk ), SPAWN.Takeoff.Cold )
-- Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( AIRBASE.Caucasus.Krymsk ), SPAWN.Takeoff.Hot )
-- Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( AIRBASE.Caucasus.Krymsk ), SPAWN.Takeoff.Runway )
--
-- Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( "Carrier" ), SPAWN.Takeoff.Cold )
--
-- Spawn_Heli = SPAWN:New( "Heli")
--
-- Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Cold" ), SPAWN.Takeoff.Cold )
-- Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Hot" ), SPAWN.Takeoff.Hot )
-- Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Runway" ), SPAWN.Takeoff.Runway )
-- Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Air" ), SPAWN.Takeoff.Air )
--
-- Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "Carrier" ), SPAWN.Takeoff.Cold )
--
function SPAWN:SpawnAtAirbase( SpawnAirbase, Takeoff, TakeoffAltitude ) -- R2.2 function SPAWN:SpawnAtAirbase( SpawnAirbase, Takeoff, TakeoffAltitude ) -- R2.2
self:E( { self.SpawnTemplatePrefix, SpawnAirbase, Takeoff, TakeoffAltitude } ) self:E( { self.SpawnTemplatePrefix, SpawnAirbase, Takeoff, TakeoffAltitude } )
@ -1008,55 +1042,74 @@ function SPAWN:SpawnAtAirbase( SpawnAirbase, Takeoff, TakeoffAltitude ) -- R2.2
self:T( { "Current point of ", self.SpawnTemplatePrefix, SpawnAirbase } ) self:T( { "Current point of ", self.SpawnTemplatePrefix, SpawnAirbase } )
local SpawnPoint = SpawnTemplate.route.points[1]
-- These are only for ships.
SpawnPoint.linkUnit = nil
SpawnPoint.helipadId = nil
SpawnPoint.airdromeId = nil
local AirbaseID = SpawnAirbase:GetID()
local AirbaseCategory = SpawnAirbase:GetDesc().category
self:F( { AirbaseCategory = AirbaseCategory } )
if AirbaseCategory == Airbase.Category.SHIP then
SpawnPoint.linkUnit = AirbaseID
SpawnPoint.helipadId = AirbaseID
elseif AirbaseCategory == Airbase.Category.HELIPAD then
SpawnPoint.linkUnit = AirbaseID
SpawnPoint.helipadId = AirbaseID
elseif AirbaseCategory == Airbase.Category.AIRDROME then
SpawnPoint.airdromeId = AirbaseID
end
SpawnPoint.alt = 0
SpawnPoint.type = GROUPTEMPLATE.Takeoff[Takeoff][1] -- type
SpawnPoint.action = GROUPTEMPLATE.Takeoff[Takeoff][2] -- action
-- Translate the position of the Group Template to the Vec3. -- Translate the position of the Group Template to the Vec3.
for UnitID = 1, #SpawnTemplate.units do for UnitID = 1, #SpawnTemplate.units do
self:T( 'Before Translation SpawnTemplate.units['..UnitID..'].x = ' .. SpawnTemplate.units[UnitID].x .. ', SpawnTemplate.units['..UnitID..'].y = ' .. SpawnTemplate.units[UnitID].y ) self:T( 'Before Translation SpawnTemplate.units['..UnitID..'].x = ' .. SpawnTemplate.units[UnitID].x .. ', SpawnTemplate.units['..UnitID..'].y = ' .. SpawnTemplate.units[UnitID].y )
-- These cause a lot of confusion.
local UnitTemplate = SpawnTemplate.units[UnitID] local UnitTemplate = SpawnTemplate.units[UnitID]
UnitTemplate.parking = nil
UnitTemplate.parking_id = nil
UnitTemplate.alt = 0
local SX = UnitTemplate.x local SX = UnitTemplate.x
local SY = UnitTemplate.y local SY = UnitTemplate.y
local BX = SpawnTemplate.route.points[1].x local BX = SpawnPoint.x
local BY = SpawnTemplate.route.points[1].y local BY = SpawnPoint.y
local TX = PointVec3.x + ( SX - BX ) local TX = PointVec3.x + ( SX - BX )
local TY = PointVec3.z + ( SY - BY ) local TY = PointVec3.z + ( SY - BY )
SpawnTemplate.units[UnitID].x = TX
SpawnTemplate.units[UnitID].y = TY UnitTemplate.x = TX
UnitTemplate.y = TY
if Takeoff == GROUP.Takeoff.Air then if Takeoff == GROUP.Takeoff.Air then
SpawnTemplate.units[UnitID].alt = PointVec3.y + ( TakeoffAltitude or 200 ) UnitTemplate.alt = PointVec3.y + ( TakeoffAltitude or 200 )
else --else
SpawnTemplate.units[UnitID].alt = PointVec3.y + 10 -- UnitTemplate.alt = PointVec3.y + 10
end end
SpawnTemplate.units[UnitID].parking = nil self:T( 'After Translation SpawnTemplate.units['..UnitID..'].x = ' .. UnitTemplate.x .. ', SpawnTemplate.units['..UnitID..'].y = ' .. UnitTemplate.y )
SpawnTemplate.units[UnitID].parking_id = nil
self:T( 'After Translation SpawnTemplate.units['..UnitID..'].x = ' .. SpawnTemplate.units[UnitID].x .. ', SpawnTemplate.units['..UnitID..'].y = ' .. SpawnTemplate.units[UnitID].y )
end end
SpawnTemplate.route.points[1].x = PointVec3.x SpawnPoint.x = PointVec3.x
SpawnTemplate.route.points[1].y = PointVec3.z SpawnPoint.y = PointVec3.z
if Takeoff == GROUP.Takeoff.Air then if Takeoff == GROUP.Takeoff.Air then
SpawnTemplate.route.points[1].alt = PointVec3.y + ( TakeoffAltitude or 200 ) SpawnPoint.alt = PointVec3.y + ( TakeoffAltitude or 200 )
else --else
SpawnTemplate.route.points[1].alt = PointVec3.y + 10 -- SpawnPoint.alt = PointVec3.y + 10
SpawnTemplate.route.points[1].airdromeId = SpawnAirbase:GetID()
end end
SpawnTemplate.route.points[1].type = GROUPTEMPLATE.Takeoff[Takeoff][1] -- type
SpawnTemplate.route.points[1].action = GROUPTEMPLATE.Takeoff[Takeoff][2] -- action
SpawnTemplate.x = PointVec3.x SpawnTemplate.x = PointVec3.x
SpawnTemplate.y = PointVec3.z SpawnTemplate.y = PointVec3.z
-- test if the airbase is a ship
self:F( { AirbaseDesc = SpawnAirbase:GetDesc() } )
if SpawnAirbase:GetDesc().category == Airbase.Category.SHIP then
SpawnTemplate.route.points[1].linkUnit = SpawnAirbase:GetID()
SpawnTemplate.route.points[1].helipadId = SpawnAirbase:GetID()
SpawnTemplate.route.points[1].alt = 0
SpawnTemplate.units[1].alt = 0
SpawnTemplate.route.points[1].airdromeId = nil
self:F( { linkUnit = SpawnTemplate.route.points[1].linkUnit, helipadId = SpawnTemplate.route.points[1].helipadId } )
end
return self:SpawnWithIndex( self.SpawnIndex ) return self:SpawnWithIndex( self.SpawnIndex )
end end
end end

View File

@ -879,19 +879,20 @@ function TASK:MenuMarkToGroup( TaskGroup )
local TaskInfoIDText = "" --string.format( "%s: ", TaskInfoID ) local TaskInfoIDText = "" --string.format( "%s: ", TaskInfoID )
if type( TaskInfo.TaskInfoText ) == "string" then if type( TaskInfo.TaskInfoText ) == "string" then
Report:Add( TaskInfoIDText .. TaskInfo.TaskInfoText ) if TaskInfoID == "Targets" then
elseif type(TaskInfo) == "table" then else
Report:Add( TaskInfoIDText .. TaskInfo.TaskInfoText )
end
elseif type( TaskInfo ) == "table" then
if TaskInfoID == "Coordinates" then if TaskInfoID == "Coordinates" then
local ToCoordinate = TaskInfo.TaskInfoText -- Core.Point#COORDINATE --local ToCoordinate = TaskInfo.TaskInfoText -- Core.Point#COORDINATE
Report:Add( TaskInfoIDText .. ToCoordinate:ToString() ) --Report:Add( TaskInfoIDText .. ToCoordinate:ToString() )
else else
end end
end end
end end
self:E("ok5")
local Coordinate = self:GetInfo( "Coordinates" ) -- Core.Point#COORDINATE local Coordinate = self:GetInfo( "Coordinates" ) -- Core.Point#COORDINATE
local Velocity = self.TargetSetUnit:GetVelocity() local Velocity = self.TargetSetUnit:GetVelocity()
@ -1564,6 +1565,8 @@ function TASK:ReportDetails( ReportGroup )
-- Determine the status of the Task. -- Determine the status of the Task.
local Status = "<" .. self:GetState() .. ">" local Status = "<" .. self:GetState() .. ">"
Report:Add( "Task: " .. Name .. " - " .. Status .. " - Detailed Report" )
-- Loop each Unit active in the Task, and find Player Names. -- Loop each Unit active in the Task, and find Player Names.
local PlayerNames = self:GetPlayerNames() local PlayerNames = self:GetPlayerNames()
@ -1573,9 +1576,10 @@ function TASK:ReportDetails( ReportGroup )
end end
local Players = PlayerReport:Text() local Players = PlayerReport:Text()
Report:Add( "Task: " .. Name .. " - " .. Status .. " - Detailed Report" ) if Players ~= "" then
Report:Add( " - Players:" ) Report:Add( " - Players assigned:" )
Report:AddIndent( Players ) Report:AddIndent( Players )
end
for TaskInfoID, TaskInfo in pairs( self.TaskInfo, function( t, a, b ) return t[a].TaskInfoOrder < t[b].TaskInfoOrder end ) do for TaskInfoID, TaskInfo in pairs( self.TaskInfo, function( t, a, b ) return t[a].TaskInfoOrder < t[b].TaskInfoOrder end ) do
@ -1585,17 +1589,24 @@ function TASK:ReportDetails( ReportGroup )
Report:Add( TaskInfoIDText .. TaskInfo.TaskInfoText ) Report:Add( TaskInfoIDText .. TaskInfo.TaskInfoText )
elseif type(TaskInfo) == "table" then elseif type(TaskInfo) == "table" then
if TaskInfoID == "Coordinates" then if TaskInfoID == "Coordinates" then
local FromCoordinate = ReportGroup:GetUnit(1):GetCoordinate()
local ToCoordinate = TaskInfo.TaskInfoText -- Core.Point#COORDINATE local ToCoordinate = TaskInfo.TaskInfoText -- Core.Point#COORDINATE
Report:Add( TaskInfoIDText ) Report:Add( TaskInfoIDText .. ToCoordinate:ToString() )
Report:AddIndent( ToCoordinate:ToStringBRA( FromCoordinate ) .. ", " .. TaskInfo.TaskInfoText:ToStringAspect( FromCoordinate ) )
Report:AddIndent( ToCoordinate:ToStringBULLS( ReportGroup:GetCoalition() ) )
else else
end end
end end
end end
local Coordinate = self:GetInfo( "Coordinates" ) -- Core.Point#COORDINATE
local Velocity = self.TargetSetUnit:GetVelocity()
local Heading = self.TargetSetUnit:GetHeading()
Coordinate:SetHeading( Heading )
Coordinate:SetVelocity( Velocity )
Report:Add( "Targets are" .. Coordinate:GetMovingText() .. "." )
return Report:Text() return Report:Text()
end end

View File

@ -927,6 +927,9 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
<p> This table contains the targets detected during patrol.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">

View File

@ -2460,6 +2460,7 @@ The index of the DetectedItem.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(DETECTION_BASE).DetectedItemCount" > <a id="#(DETECTION_BASE).DetectedItemCount" >
<strong>DETECTION_BASE.DetectedItemCount</strong> <strong>DETECTION_BASE.DetectedItemCount</strong>
</a> </a>

View File

@ -1599,7 +1599,7 @@ A string defining the start state.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#string</em> <em></em>
<a id="#(FSM)._StartState" > <a id="#(FSM)._StartState" >
<strong>FSM._StartState</strong> <strong>FSM._StartState</strong>
</a> </a>
@ -1898,6 +1898,7 @@ A string defining the start state.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(FSM).current" > <a id="#(FSM).current" >
<strong>FSM.current</strong> <strong>FSM.current</strong>
</a> </a>

View File

@ -228,6 +228,7 @@ on defined intervals (currently every minute).</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" > <a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong> <strong>MOVEMENT.AliveUnits</strong>
</a> </a>
@ -236,6 +237,9 @@ on defined intervals (currently every minute).</p>
<p> Contains the counter how many units are currently alive</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">

View File

@ -1241,11 +1241,7 @@ true if metric.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<<<<<<< HEAD
<em>#boolean</em> <em>#boolean</em>
=======
<em></em>
>>>>>>> master
<a id="#(SETTINGS).Metric" > <a id="#(SETTINGS).Metric" >
<strong>SETTINGS.Metric</strong> <strong>SETTINGS.Metric</strong>
</a> </a>

View File

@ -424,9 +424,9 @@ and any spaces before and after the resulting name are removed.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnAtAirbase">SPAWN:SpawnAtAirbase(Airbase, Takeoff, TakeoffAltitude)</a></td> <td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnAtAirbase">SPAWN:SpawnAtAirbase(SpawnAirbase, Takeoff, TakeoffAltitude)</a></td>
<td class="summary"> <td class="summary">
<p>Will spawn a group at an airbase.</p> <p>Will spawn a group at an <a href="Airbase.html">Airbase</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -823,16 +823,6 @@ and any spaces before and after the resulting name are removed.</p>
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td> <td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
</table>
<h2><a id="#(SPAWN.Takeoff)">Type <code>SPAWN.Takeoff</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN.Takeoff).type">SPAWN.Takeoff.type</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
</table> </table>
@ -1028,6 +1018,7 @@ So in principle, the group list will contain all parameters and configurations a
<li><a href="##(SPAWN).SpawnFromStatic">SPAWN.SpawnFromStatic</a>(): Spawn a new group from a structure, taking the position of a <a href="Static.html">Static</a>.</li> <li><a href="##(SPAWN).SpawnFromStatic">SPAWN.SpawnFromStatic</a>(): Spawn a new group from a structure, taking the position of a <a href="Static.html">Static</a>.</li>
<li><a href="##(SPAWN).SpawnFromUnit">SPAWN.SpawnFromUnit</a>(): Spawn a new group taking the position of a <a href="Unit.html">Unit</a>.</li> <li><a href="##(SPAWN).SpawnFromUnit">SPAWN.SpawnFromUnit</a>(): Spawn a new group taking the position of a <a href="Unit.html">Unit</a>.</li>
<li><a href="##(SPAWN).SpawnInZone">SPAWN.SpawnInZone</a>(): Spawn a new group in a <a href="Zone.html">Zone</a>.</li> <li><a href="##(SPAWN).SpawnInZone">SPAWN.SpawnInZone</a>(): Spawn a new group in a <a href="Zone.html">Zone</a>.</li>
<li><a href="##(SPAWN).SpawnAtAirbase">SPAWN.SpawnAtAirbase</a>(): Spawn a new group at an <a href="Airbase.html">Airbase</a>, which can be an airdrome, ship or helipad.</li>
</ul> </ul>
<p>Note that <a href="##(SPAWN).Spawn">SPAWN.Spawn</a> and <a href="##(SPAWN).ReSpawn">SPAWN.ReSpawn</a> return a <a href="GROUP.html##(GROUP).New">GROUP#GROUP.New</a> object, that contains a reference to the DCSGroup object. <p>Note that <a href="##(SPAWN).Spawn">SPAWN.Spawn</a> and <a href="##(SPAWN).ReSpawn">SPAWN.ReSpawn</a> return a <a href="GROUP.html##(GROUP).New">GROUP#GROUP.New</a> object, that contains a reference to the DCSGroup object.
@ -2195,9 +2186,6 @@ The group that was spawned. You can use this group for further actions.</p>
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -2267,23 +2255,41 @@ The group that was spawned. You can use this group for further actions.</p>
<dt> <dt>
<a id="#(SPAWN).SpawnAtAirbase" > <a id="#(SPAWN).SpawnAtAirbase" >
<strong>SPAWN:SpawnAtAirbase(Airbase, Takeoff, TakeoffAltitude)</strong> <strong>SPAWN:SpawnAtAirbase(SpawnAirbase, Takeoff, TakeoffAltitude)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Will spawn a group at an airbase.</p> <p>Will spawn a group at an <a href="Airbase.html">Airbase</a>.</p>
<p>This method is mostly advisable to be used if you want to simulate spawning units at an airbase. <p>This method is mostly advisable to be used if you want to simulate spawning units at an airbase.
Note that each point in the route assigned to the spawning group is reset to the point of the spawn. Note that each point in the route assigned to the spawning group is reset to the point of the spawn.
You can use the returned group to further define the route to be followed.</p> You can use the returned group to further define the route to be followed.</p>
<p>The <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> object must refer to a valid airbase known in the sim.
You can use the following enumerations to search for the pre-defined airbases on the current known maps of DCS:</p>
<ul>
<li><a href="Airbase.html##(AIRBASE).Caucasus">Airbase#AIRBASE.Caucasus</a>: The airbases on the Caucasus map. </li>
<li><a href="Airbase.html##(AIRBASE).Nevada">Airbase#AIRBASE.Nevada</a>: The airbases on the Nevada (NTTR) map. </li>
<li><a href="Airbase.html##(AIRBASE).Normandy">Airbase#AIRBASE.Normandy</a>: The airbases on the Normandy map. </li>
</ul>
<p>Use the method <a href="Airbase.html##(AIRBASE).FindByName">Airbase#AIRBASE.FindByName</a>() to retrieve the airbase object.
The known AIRBASE objects are automatically imported at mission start by MOOSE.
Therefore, there isn't any New() constructor defined for AIRBASE objects.</p>
<p>Ships and Farps are added within the mission, and are therefore not known.
For these AIRBASE objects, there isn't an <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> enumeration defined.
You need to provide the <strong>exact name</strong> of the airbase as the parameter to the <a href="Airbase.html##(AIRBASE).FindByName">Airbase#AIRBASE.FindByName</a>() method!</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
<li> <li>
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>: <p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> SpawnAirbase </em></code>:
The <a href="Airbase.html">Airbase</a> where to spawn the group.</p> The <a href="Airbase.html">Airbase</a> where to spawn the group.</p>
</li> </li>
@ -2315,6 +2321,24 @@ Nothing was spawned.</p>
</li> </li>
</ol> </ol>
<h3>Usage:</h3>
<pre class="example"><code> Spawn_Plane = SPAWN:New( "Plane" )
Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( AIRBASE.Caucasus.Krymsk ), SPAWN.Takeoff.Cold )
Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( AIRBASE.Caucasus.Krymsk ), SPAWN.Takeoff.Hot )
Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( AIRBASE.Caucasus.Krymsk ), SPAWN.Takeoff.Runway )
Spawn_Plane:SpawnAtAirbase( AIRBASE:FindByName( "Carrier" ), SPAWN.Takeoff.Cold )
Spawn_Heli = SPAWN:New( "Heli")
Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Cold" ), SPAWN.Takeoff.Cold )
Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Hot" ), SPAWN.Takeoff.Hot )
Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Runway" ), SPAWN.Takeoff.Runway )
Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "FARP Air" ), SPAWN.Takeoff.Air )
Spawn_Heli:SpawnAtAirbase( AIRBASE:FindByName( "Carrier" ), SPAWN.Takeoff.Cold )
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -2750,9 +2774,6 @@ when nothing was spawned.</p>
<p> By default, no InitLimit</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -2788,7 +2809,7 @@ when nothing was spawned.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em> <em></em>
<a id="#(SPAWN).SpawnMaxGroups" > <a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong> <strong>SPAWN.SpawnMaxGroups</strong>
</a> </a>
@ -2805,7 +2826,7 @@ when nothing was spawned.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em> <em></em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" > <a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong> <strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a> </a>
@ -3133,7 +3154,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#boolean</em> <em></em>
<a id="#(SPAWN).SpawnUnControlled" > <a id="#(SPAWN).SpawnUnControlled" >
<strong>SPAWN.SpawnUnControlled</strong> <strong>SPAWN.SpawnUnControlled</strong>
</a> </a>
@ -3157,7 +3178,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p> <p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
</dd> </dd>
</dl> </dl>
@ -3746,20 +3767,6 @@ True = Continue Scheduler</p>
<p>Enumerator for spawns at airbases</p> <p>Enumerator for spawns at airbases</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SPAWN.Takeoff).type" >
<strong>SPAWN.Takeoff.type</strong>
</a>
</dt>
<dd>
</dd>
</dl>
</div> </div>

View File

@ -437,7 +437,6 @@ ptional) The name of the new static.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(SPAWNSTATIC).SpawnIndex" > <a id="#(SPAWNSTATIC).SpawnIndex" >
<strong>SPAWNSTATIC.SpawnIndex</strong> <strong>SPAWNSTATIC.SpawnIndex</strong>
</a> </a>

View File

@ -567,6 +567,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em>
<a id="#(FSM_PROCESS).DeployZone" > <a id="#(FSM_PROCESS).DeployZone" >
<strong>FSM_PROCESS.DeployZone</strong> <strong>FSM_PROCESS.DeployZone</strong>
</a> </a>