Finalization for publishing

This commit is contained in:
FlightControl 2016-06-17 23:27:27 +02:00
parent 34e7015244
commit 8edfb49358
35 changed files with 43432 additions and 87 deletions

View File

@ -13,6 +13,12 @@
--
-- * @{#AIBALANCER.New}: Creates a new AIBALANCER object.
--
-- 1.2) AIBALANCER return AI to Airbases:
-- --------------------------------------
-- You can configure to have the AI to return to:
--
-- * @{#AIBALANCER.ReturnToHomeAirbase}: Returns the AI to the home @{Airbase#AIRBASE}.
-- * @{#AIBALANCER.ReturnToNearestAirbases}: Returns the AI to the nearest friendly @{Airbase#AIRBASE}.
--
-- ===
-- @module AIBalancer
@ -71,6 +77,10 @@ function AIBALANCER:New( SetClient, SpawnAI )
return self
end
--- Returns the AI to the nearest friendly @{Airbase#AIRBASE}.
-- @param #AIBALANCER self
-- @param DCSTypes#Distance ReturnTresholdRange If there is an enemy @{Client#CLIENT} within the ReturnTresholdRange given in meters, the AI will not return to the nearest @{Airbase#AIRBASE}.
-- @param Set#SET_AIRBASE ReturnAirbaseSet The SET of @{Set#SET_AIRBASE}s to evaluate where to return to.
function AIBALANCER:ReturnToNearestAirbases( ReturnTresholdRange, ReturnAirbaseSet )
self.ReturnToAirbase = true
@ -78,6 +88,9 @@ function AIBALANCER:ReturnToNearestAirbases( ReturnTresholdRange, ReturnAirbaseS
self.ReturnAirbaseSet = ReturnAirbaseSet
end
--- Returns the AI to the home @{Airbase#AIRBASE}.
-- @param #AIBALANCER self
-- @param DCSTypes#Distance ReturnTresholdRange If there is an enemy @{Client#CLIENT} within the ReturnTresholdRange given in meters, the AI will not return to the nearest @{Airbase#AIRBASE}.
function AIBALANCER:ReturnToHomeAirbase( ReturnTresholdRange )
self.ReturnToHomeAirbase = true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -48,6 +48,7 @@ COPY /b Moose.lua + %1\Unit.lua Moose.lua
COPY /b Moose.lua + %1\Zone.lua Moose.lua
COPY /b Moose.lua + %1\Client.lua Moose.lua
COPY /b Moose.lua + %1\Static.lua Moose.lua
COPY /b Moose.lua + %1\Airbase.lua Moose.lua
COPY /b Moose.lua + %1\Database.lua Moose.lua
COPY /b Moose.lua + %1\Set.lua Moose.lua
COPY /b Moose.lua + %1\Point.lua Moose.lua

View File

@ -11,5 +11,4 @@ local RU_AIBalancer = AIBALANCER:New( RU_PlanesClientSet, RU_PlanesSpawn )
local RU_AirbasesSet = SET_AIRBASE:New():FilterCoalitions("red"):FilterStart()
RU_AirbasesSet:Flush()
RU_AIBalancer:ReturnToNearestAirbases( 10000, RU_AirbasesSet )
--RU_AIBalancer:ReturnToHomeAirbase( 10000 )

View File

@ -90,6 +90,13 @@ There will be as many AI GROUPS spawned as there at CLIENTS in SET</em>CLIENT no
<li><a href="##(AIBALANCER).New">AIBALANCER.New</a>: Creates a new AIBALANCER object.</li>
</ul>
<h2>1.2) AIBALANCER return AI to Airbases:</h2>
<p>You can configure to have the AI to return to:</p>
<ul>
<li><a href="##(AIBALANCER).ReturnToHomeAirbase">AIBALANCER.ReturnToHomeAirbase</a>: Returns the AI to the home <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</li>
<li><a href="##(AIBALANCER).ReturnToNearestAirbases">AIBALANCER.ReturnToNearestAirbases</a>: Returns the AI to the nearest friendly <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</li>
</ul>
<hr/>
@ -114,6 +121,36 @@ There will be as many AI GROUPS spawned as there at CLIENTS in SET</em>CLIENT no
<td class="name" nowrap="nowrap"><a href="##(AIBALANCER).New">AIBALANCER:New(SetClient, SpawnAI)</a></td>
<td class="summary">
<p>Creates a new AIBALANCER object, building a set of units belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIBALANCER).ReturnAirbaseSet">AIBALANCER.ReturnAirbaseSet</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIBALANCER).ReturnToAirbase">AIBALANCER.ReturnToAirbase</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIBALANCER).ReturnToHomeAirbase">AIBALANCER.ReturnToHomeAirbase</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIBALANCER).ReturnToNearestAirbases">AIBALANCER:ReturnToNearestAirbases(ReturnTresholdRange, ReturnAirbaseSet)</a></td>
<td class="summary">
<p>Returns the AI to the nearest friendly <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIBALANCER).ReturnTresholdRange">AIBALANCER.ReturnTresholdRange</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -203,6 +240,90 @@ A SPAWN object that will spawn the AI units required, balancing the SetClient.</
<p><em><a href="##(AIBALANCER)">#AIBALANCER</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a></em>
<a id="#(AIBALANCER).ReturnAirbaseSet" >
<strong>AIBALANCER.ReturnAirbaseSet</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(AIBALANCER).ReturnToAirbase" >
<strong>AIBALANCER.ReturnToAirbase</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(AIBALANCER).ReturnToHomeAirbase" >
<strong>AIBALANCER.ReturnToHomeAirbase</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AIBALANCER).ReturnToNearestAirbases" >
<strong>AIBALANCER:ReturnToNearestAirbases(ReturnTresholdRange, ReturnAirbaseSet)</strong>
</a>
</dt>
<dd>
<p>Returns the AI to the nearest friendly <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> ReturnTresholdRange </em></code>:
If there is an enemy <a href="Client.html##(CLIENT)">Client#CLIENT</a> within the ReturnTresholdRange given in meters, the AI will not return to the nearest <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</p>
</li>
<li>
<p><code><em><a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> ReturnAirbaseSet </em></code>:
The SET of <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a>s to evaluate where to return to.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a></em>
<a id="#(AIBALANCER).ReturnTresholdRange" >
<strong>AIBALANCER.ReturnTresholdRange</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -73,22 +73,22 @@
<div id="content">
<h1>Module <code>Airbase</code></h1>
<p>AIRBASE Class</p>
<p>This module contains the AIRBASE classes.</p>
<h1><a href="AIRBASE.html">AIRBASE</a> class</h1>
<hr/>
<h1>1) <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="AIRBASE.html">AIRBASE</a> class is a wrapper class to handle the DCS Airbase objects:</p>
<ul>
<li>Support all DCS Airbase APIs.</li>
</ul>
<ul>
<li>Enhance with Airbase specific APIs not in the DCS Airbase API set.</li>
</ul>
<h1>AIRBASE reference methods</h1>
<h2>1.1) AIRBASE reference methods</h2>
<p>For each DCS Airbase object alive within a running mission, a AIRBASE wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object.
This is done at the beginning of the mission (when the mission starts).</p>
@ -108,7 +108,7 @@ If the DCS Airbase object does not exist or is nil, the AIRBASE methods will ret
<p>IMPORTANT: ONE SHOULD NEVER SANATIZE these AIRBASE OBJECT REFERENCES! (make the AIRBASE object references nil).</p>
<h1>DCS AIRBASE APIs</h1>
<h2>1.2) DCS AIRBASE APIs</h2>
<p>The DCS Airbase APIs are used extensively within MOOSE. The AIRBASE class has for each DCS Airbase API a corresponding method.
To be able to distinguish easily in your code the difference between a AIRBASE API call and a DCS Airbase API call,
the first letter of the method is also capitalized. So, by example, the DCS Airbase method <a href="DCSAirbase.html##(Airbase).getName">DCSAirbase#Airbase.getName</a>()
@ -157,6 +157,12 @@ is implemented in the AIRBASE class as <a href="##(AIRBASE).GetName">AIRBASE.Get
<td class="name" nowrap="nowrap"><a href="##(AIRBASE).GetCallSign">AIRBASE:GetCallSign()</a></td>
<td class="summary">
<p>Returns the Airbase's callsign - the localized string.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASE).GetCategory">AIRBASE:GetCategory()</a></td>
<td class="summary">
<p>Returns the DCS Airbase category as defined within the DCS Airbase Descriptor.</p>
</td>
</tr>
<tr>
@ -362,6 +368,24 @@ The DCS Airbase is not existing or alive. </p>
<dl class="function">
<dt>
<a id="#(AIRBASE).GetCategory" >
<strong>AIRBASE:GetCategory()</strong>
</a>
</dt>
<dd>
<p>Returns the DCS Airbase category as defined within the DCS Airbase Descriptor.</p>
<h3>Return value</h3>
<p><em><a href="DCSAirbase.html##(Airbase.Category)">DCSAirbase#Airbase.Category</a>:</em>
The DCS Airbase Category</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AIRBASE).GetCategoryName" >
<strong>AIRBASE:GetCategoryName()</strong>
</a>

View File

@ -73,11 +73,13 @@
<div id="content">
<h1>Module <code>Database</code></h1>
<p>Manage the mission database.</p>
<p>This module contains the DATABASE class, managing the database of mission objects.</p>
<h1><a href="##(DATABASE)">#DATABASE</a> class</h1>
<hr/>
<h1>1) <a href="Database.html##(DATABASE)">Database#DATABASE</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>Mission designers can use the DATABASE class to refer to:</p>
<ul>
@ -94,7 +96,7 @@
<p>Moose will automatically create one instance of the DATABASE class into the <strong>global</strong> object _DATABASE.
Moose refers to _DATABASE within the framework extensively, but you can also refer to the _DATABASE object within your missions if required.</p>
<h1>DATABASE iterators:</h1>
<h2>1.1) DATABASE iterators</h2>
<p>You can iterate the database with the available iterator methods.
The iterator methods will walk the DATABASE set, and call for each element within the set a function that you provide.
The following iterator methods are currently available within the DATABASE:</p>
@ -121,6 +123,18 @@ The following iterator methods are currently available within the DATABASE:</p>
<h2><a id="#(DATABASE)">Type <code>DATABASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AIRBASES">DATABASE.AIRBASES</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddAirbase">DATABASE:AddAirbase(DCSAirbaseName)</a></td>
<td class="summary">
<p>Adds a Airbase based on the Airbase Name in the DATABASE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddClient">DATABASE:AddClient(ClientName)</a></td>
<td class="summary">
<p>Adds a CLIENT based on the ClientName in the DATABASE.</p>
@ -166,6 +180,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ClassName">DATABASE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeleteAirbase">DATABASE:DeleteAirbase(DCSAirbaseName)</a></td>
<td class="summary">
<p>Deletes a Airbase from the DATABASE based on the Airbase Name.</p>
</td>
</tr>
<tr>
@ -184,6 +204,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeleteUnit">DATABASE:DeleteUnit(DCSUnitName)</a></td>
<td class="summary">
<p>Deletes a Unit from the DATABASE based on the Unit Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).FindAirbase">DATABASE:FindAirbase(AirbaseName)</a></td>
<td class="summary">
<p>Finds a AIRBASE based on the AirbaseName.</p>
</td>
</tr>
<tr>
@ -211,7 +237,7 @@ The following iterator methods are currently available within the DATABASE:</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ForEach">DATABASE:ForEach(IteratorFunction, arg, Set)</a></td>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ForEach">DATABASE:ForEach(IteratorFunction, FinalizeFunction, arg, Set)</a></td>
<td class="summary">
<p>Iterate the DATABASE and call an iterator function for the given set, providing the Object for each element within the set and optional parameters.</p>
</td>
@ -247,7 +273,7 @@ The following iterator methods are currently available within the DATABASE:</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ForEachUnit">DATABASE:ForEachUnit(IteratorFunction, ...)</a></td>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).ForEachUnit">DATABASE:ForEachUnit(IteratorFunction, FinalizeFunction, ...)</a></td>
<td class="summary">
<p>Iterate the DATABASE and call an iterator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
</td>
@ -256,12 +282,24 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).GROUPS">DATABASE.GROUPS</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).GetCategoryFromAirbase">DATABASE:GetCategoryFromAirbase(AirbaseName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).GetCategoryFromClientTemplate">DATABASE:GetCategoryFromClientTemplate(ClientName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).GetCoalitionFromAirbase">DATABASE:GetCoalitionFromAirbase(AirbaseName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -358,6 +396,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE)._EventOnPlayerLeaveUnit">DATABASE:_EventOnPlayerLeaveUnit(Event)</a></td>
<td class="summary">
<p>Handles the OnPlayerLeaveUnit event to clean the active players table.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE)._RegisterAirbases">DATABASE:_RegisterAirbases()</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -423,6 +467,41 @@ The following iterator methods are currently available within the DATABASE:</p>
<dl class="function">
<dt>
<em></em>
<a id="#(DATABASE).AIRBASES" >
<strong>DATABASE.AIRBASES</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).AddAirbase" >
<strong>DATABASE:AddAirbase(DCSAirbaseName)</strong>
</a>
</dt>
<dd>
<p>Adds a Airbase based on the Airbase Name in the DATABASE.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> DCSAirbaseName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).AddClient" >
<strong>DATABASE:AddClient(ClientName)</strong>
</a>
@ -570,6 +649,27 @@ The following iterator methods are currently available within the DATABASE:</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).DeleteAirbase" >
<strong>DATABASE:DeleteAirbase(DCSAirbaseName)</strong>
</a>
</dt>
<dd>
<p>Deletes a Airbase from the DATABASE based on the Airbase Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> DCSAirbaseName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
@ -638,6 +738,32 @@ The following iterator methods are currently available within the DATABASE:</p>
<dl class="function">
<dt>
<a id="#(DATABASE).FindAirbase" >
<strong>DATABASE:FindAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
<p>Finds a AIRBASE based on the AirbaseName.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AirbaseName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>:</em>
The found AIRBASE.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).FindClient" >
<strong>DATABASE:FindClient(ClientName)</strong>
</a>
@ -743,7 +869,7 @@ The found Unit.</p>
<dt>
<a id="#(DATABASE).ForEach" >
<strong>DATABASE:ForEach(IteratorFunction, arg, Set)</strong>
<strong>DATABASE:ForEach(IteratorFunction, FinalizeFunction, arg, Set)</strong>
</a>
</dt>
<dd>
@ -760,6 +886,11 @@ The function that will be called when there is an alive player in the database.<
</li>
<li>
<p><code><em> FinalizeFunction </em></code>: </p>
</li>
<li>
<p><code><em> arg </em></code>: </p>
</li>
@ -940,7 +1071,7 @@ self</p>
<dt>
<a id="#(DATABASE).ForEachUnit" >
<strong>DATABASE:ForEachUnit(IteratorFunction, ...)</strong>
<strong>DATABASE:ForEachUnit(IteratorFunction, FinalizeFunction, ...)</strong>
</a>
</dt>
<dd>
@ -957,6 +1088,11 @@ The function that will be called when there is an alive UNIT in the database. Th
</li>
<li>
<p><code><em> FinalizeFunction </em></code>: </p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
@ -980,6 +1116,27 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).GetCategoryFromAirbase" >
<strong>DATABASE:GetCategoryFromAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> AirbaseName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
@ -1006,6 +1163,27 @@ self</p>
<dl class="function">
<dt>
<a id="#(DATABASE).GetCoalitionFromAirbase" >
<strong>DATABASE:GetCoalitionFromAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> AirbaseName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).GetCoalitionFromClientTemplate" >
<strong>DATABASE:GetCoalitionFromClientTemplate(ClientName)</strong>
</a>
@ -1311,6 +1489,19 @@ self</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE)._RegisterAirbases" >
<strong>DATABASE:_RegisterAirbases()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -143,6 +143,7 @@ This is different from the EnRoute tasks, where the targets of the task need to
<li><a href="##(GROUP).TaskRouteToVec2">GROUP.TaskRouteToVec2</a>: (AIR + GROUND) Make the Group move to a given point.</li>
<li><a href="##(GROUP).TaskRouteToVec3">GROUP.TaskRouteToVec3</a>: (AIR + GROUND) Make the Group move to a given point.</li>
<li><a href="##(GROUP).TaskRouteToZone">GROUP.TaskRouteToZone</a>: (AIR + GROUND) Route the group to a given zone.</li>
<li><a href="##(GROUP).TaskReturnToBase">GROUP.TaskReturnToBase</a>: (AIR) Route the group to an airbase.</li>
</ul>
<h3>1.2.2) EnRoute task methods</h3>
@ -281,6 +282,12 @@ Use the following Zone validation methods on the group:</p>
<td class="name" nowrap="nowrap"><a href="##(GROUP).CommandDoScript">GROUP:CommandDoScript(DoScript)</a></td>
<td class="summary">
<p>Do Script command</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).CommandStopRoute">GROUP:CommandStopRoute(StopRoute, Index)</a></td>
<td class="summary">
<p>Perform stop route command</p>
</td>
</tr>
<tr>
@ -493,6 +500,12 @@ Use the following Zone validation methods on the group:</p>
<td class="name" nowrap="nowrap"><a href="##(GROUP).GetTaskRoute">GROUP:GetTaskRoute()</a></td>
<td class="summary">
<p>Return the mission route of the group.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).GetTemplate">GROUP:GetTemplate()</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -727,12 +740,25 @@ Use the following Zone validation methods on the group:</p>
<td class="name" nowrap="nowrap"><a href="##(GROUP).Register">GROUP:Register(GroupName)</a></td>
<td class="summary">
<p>Create a new GROUP from a DCSGroup</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).Respawn">GROUP:Respawn(Template)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).Route">GROUP:Route(GoPoints)</a></td>
<td class="summary">
<p>Make the group to follow a given route.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).RouteReturnToAirbase">GROUP:RouteReturnToAirbase(ReturnAirbase, Speed)</a></td>
<td class="summary">
<p>(AIR) Return the Group to an <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>
A speed can be given in km/h.</p>
</td>
</tr>
<tr>
@ -1070,6 +1096,37 @@ All units on the ground result.</p>
<p><em><a href="##(DCSCommand)">#DCSCommand</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).CommandStopRoute" >
<strong>GROUP:CommandStopRoute(StopRoute, Index)</strong>
</a>
</dt>
<dd>
<p>Perform stop route command</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#boolean StopRoute </em></code>: </p>
</li>
<li>
<p><code><em> Index </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="DCSTask.html##(Task)">DCSTask#Task</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -1973,6 +2030,19 @@ The MissionTemplate</p>
<p><em>#table:</em>
The mission route defined by points.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).GetTemplate" >
<strong>GROUP:GetTemplate()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -2815,6 +2885,27 @@ self</p>
<dl class="function">
<dt>
<a id="#(GROUP).Respawn" >
<strong>GROUP:Respawn(Template)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Template </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).Route" >
<strong>GROUP:Route(GoPoints)</strong>
</a>
@ -2842,6 +2933,43 @@ self</p>
<dl class="function">
<dt>
<a id="#(GROUP).RouteReturnToAirbase" >
<strong>GROUP:RouteReturnToAirbase(ReturnAirbase, Speed)</strong>
</a>
</dt>
<dd>
<p>(AIR) Return the Group to an <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>
A speed can be given in km/h.</p>
<p>A given formation can be given.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> ReturnAirbase </em></code>:
The <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> to return to.</p>
</li>
<li>
<p><code><em>#number Speed </em></code>:
(optional) The speed.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
The route</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).SetCommand" >
<strong>GROUP:SetCommand(DCSCommand)</strong>
</a>

View File

@ -121,12 +121,30 @@
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).ClassName">POINT_VEC2.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).DistanceFromPointVec2">POINT_VEC2:DistanceFromPointVec2(PointVec2Reference)</a></td>
<td class="summary">
<p>Calculate the distance from a reference <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).DistanceFromVec2">POINT_VEC2:DistanceFromVec2(Vec2Reference)</a></td>
<td class="summary">
<p>Calculate the distance from a reference <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).New">POINT_VEC2:New(x, y, LandHeightAdd)</a></td>
<td class="summary">
<p>Create a new POINT_VEC2 object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).PointVec2">POINT_VEC2.PointVec2</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -335,6 +353,60 @@
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC2).DistanceFromPointVec2" >
<strong>POINT_VEC2:DistanceFromPointVec2(PointVec2Reference)</strong>
</a>
</dt>
<dd>
<p>Calculate the distance from a reference <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(POINT_VEC2)">#POINT_VEC2</a> PointVec2Reference </em></code>:
The reference <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a>:</em>
The distance from the reference <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> in meters.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC2).DistanceFromVec2" >
<strong>POINT_VEC2:DistanceFromVec2(Vec2Reference)</strong>
</a>
</dt>
<dd>
<p>Calculate the distance from a reference <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> Vec2Reference </em></code>:
The reference <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a>.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a>:</em>
The distance from the reference <a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a> in meters.</p>
</dd>
</dl>
<dl class="function">
@ -374,6 +446,20 @@ The y coordinate of the Vec3 point, pointing to the Right.</p>
<p><em><a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="DCSTypes.html##(Vec2)">DCSTypes#Vec2</a></em>
<a id="#(POINT_VEC2).PointVec2" >
<strong>POINT_VEC2.PointVec2</strong>
</a>
</dt>
<dd>
</dd>
</dl>

View File

@ -87,7 +87,7 @@
<li><a href="Scheduler.html##(SCHEDULER).New">Scheduler#SCHEDULER.New</a>: Setup a new scheduler and start it with the specified parameters.</li>
</ul>
<h2>SCHEDULER timer stop and start</h2>
<h2>1.2) SCHEDULER timer stop and start</h2>
<p>The SCHEDULER can be stopped and restarted with the following methods:</p>
<ul>

View File

@ -89,7 +89,7 @@ The default <strong>"time interval"</strong> is after 0.001 seconds.</p>
<h2>1.1) Add or remove objects from the SET</h2>
<p>Some key core functions are <a href="Set.html##(SET_BASE).Add">Set#SET_BASE.Add</a> and <a href="Set.html##(SET_BASE).Remove">Set#SET_BASE.Remove</a> to add or remove objects from the SET in your logic.</p>
<h2>1.2) Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong>.</h2>
<h2>1.2) Define the SET iterator <strong>"yield interval"</strong> and the <strong>"time interval"</strong></h2>
<p>Modify the iterator intervals with the <a href="Set.html##(SET_BASE).SetInteratorIntervals">Set#SET_BASE.SetInteratorIntervals</a> method.
You can set the <strong>"yield interval"</strong>, and the <strong>"time interval"</strong>. (See above).</p>
@ -218,6 +218,8 @@ The following iterator methods are currently available within the SET</em>UNIT:<
<li><a href="##(SET_UNIT).ForEachUnitNotInZone">SET_UNIT.ForEachUnitNotInZone</a>: Iterate and call an iterator function for each <strong>alive</strong> UNIT presence not in a <a href="Zone.html">Zone</a>, providing the UNIT and optional parameters to the called function.</li>
</ul>
<hr/>
<h1>4) <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_CLIENT)">Set#SET_CLIENT</a> class to build sets of units belonging to certain:</p>
@ -273,11 +275,60 @@ The following iterator methods are currently available within the SET</em>CLIENT
<li><a href="##(SET_CLIENT).ForEachClient">SET_CLIENT.ForEachClient</a>: Calls a function for each alive client it finds within the SET_CLIENT.</li>
</ul>
<hr/>
<h1>5) <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
<p>Mission designers can use the <a href="Set.html##(SET_AIRBASE)">Set#SET_AIRBASE</a> class to build sets of airbases optionally belonging to certain:</p>
<ul>
<li>Coalitions</li>
</ul>
<h2>5.1) SET_AIRBASE construction</h2>
<p>Create a new SET_AIRBASE object with the <a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a> method:</p>
<ul>
<li><a href="##(SET_AIRBASE).New">SET_AIRBASE.New</a>: Creates a new SET_AIRBASE object.</li>
</ul>
<h2>5.2) Add or Remove AIRBASEs from SET_AIRBASE </h2>
<p>AIRBASEs can be added and removed using the <a href="Set.html##(SET_AIRBASE).AddAirbasesByName">Set#SET_AIRBASE.AddAirbasesByName</a> and <a href="Set.html##(SET_AIRBASE).RemoveAirbasesByName">Set#SET_AIRBASE.RemoveAirbasesByName</a> respectively.
These methods take a single AIRBASE name or an array of AIRBASE names to be added or removed from SET_AIRBASE.</p>
<h2>5.3) SET_AIRBASE filter criteria </h2>
<p>You can set filter criteria to define the set of clients within the SET_AIRBASE.
Filter criteria are defined by:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterCoalitions">SET_AIRBASE.FilterCoalitions</a>: Builds the SET_AIRBASE with the airbases belonging to the coalition(s).</li>
</ul>
<p>Once the filter criteria have been set for the SET_AIRBASE, you can start filtering using:</p>
<ul>
<li><a href="##(SET_AIRBASE).FilterStart">SET_AIRBASE.FilterStart</a>: Starts the filtering of the airbases within the SET_AIRBASE.</li>
</ul>
<h2>5.4) SET_AIRBASE iterators:</h2>
<p>Once the filters have been defined and the SET<em>AIRBASE has been built, you can iterate the SET</em>AIRBASE with the available iterator methods.
The iterator methods will walk the SET<em>AIRBASE set, and call for each airbase within the set a function that you provide.
The following iterator methods are currently available within the SET</em>AIRBASE:</p>
<ul>
<li><a href="##(SET_AIRBASE).ForEachAirbase">SET_AIRBASE.ForEachAirbase</a>: Calls a function for each airbase it finds within the SET_AIRBASE.</li>
</ul>
<hr/>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_AIRBASE">SET_AIRBASE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#SET_BASE">SET_BASE</a></td>
<td class="summary">
@ -303,6 +354,106 @@ The following iterator methods are currently available within the SET</em>CLIENT
</td>
</tr>
</table>
<h2><a id="#(SET_AIRBASE)">Type <code>SET_AIRBASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).AddAirbasesByName">SET_AIRBASE:AddAirbasesByName(AddAirbaseNames)</a></td>
<td class="summary">
<p>Add AIRBASEs to SET_AIRBASE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).AddInDatabase">SET_AIRBASE:AddInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).Airbases">SET_AIRBASE.Airbases</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).ClassName">SET_AIRBASE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).Filter">SET_AIRBASE.Filter</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterCategories">SET_AIRBASE:FilterCategories(Categories)</a></td>
<td class="summary">
<p>Builds a set of airbases out of categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterCoalitions">SET_AIRBASE:FilterCoalitions(Coalitions)</a></td>
<td class="summary">
<p>Builds a set of airbases of coalitions.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterMeta">SET_AIRBASE.FilterMeta</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FilterStart">SET_AIRBASE:FilterStart()</a></td>
<td class="summary">
<p>Starts the filtering.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FindAirbase">SET_AIRBASE:FindAirbase(AirbaseName)</a></td>
<td class="summary">
<p>Finds a Airbase based on the Airbase Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FindInDatabase">SET_AIRBASE:FindInDatabase(Event)</a></td>
<td class="summary">
<p>Handles the Database to check on any event that Object exists in the Database.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).FindNearestAirbaseFromPointVec2">SET_AIRBASE:FindNearestAirbaseFromPointVec2(PointVec2)</a></td>
<td class="summary">
<p>Iterate the SET_AIRBASE while identifying the nearest <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> from a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).ForEachAirbase">SET_AIRBASE:ForEachAirbase(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Iterate the SET_AIRBASE and call an interator function for each AIRBASE, providing the AIRBASE and optional parameters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).IsIncludeObject">SET_AIRBASE:IsIncludeObject(MAirbase)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).New">SET_AIRBASE:New()</a></td>
<td class="summary">
<p>Creates a new SET_AIRBASE object, building a set of airbases belonging to a coalitions and categories.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_AIRBASE).RemoveAirbasesByName">SET_AIRBASE:RemoveAirbasesByName(RemoveAirbaseNames)</a></td>
<td class="summary">
<p>Remove AIRBASEs from SET_AIRBASE.</p>
</td>
</tr>
</table>
<h2><a id="#(SET_BASE)">Type <code>SET_BASE</code></a></h2>
<table class="function_list">
<tr>
@ -315,6 +466,12 @@ The following iterator methods are currently available within the SET</em>CLIENT
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).ClassName">SET_BASE.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_BASE).FindNearestObjectFromPointVec2">SET_BASE:FindNearestObjectFromPointVec2(PointVec2)</a></td>
<td class="summary">
<p>Iterate the SET_BASE while identifying the nearest object from a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
</td>
</tr>
<tr>
@ -486,7 +643,7 @@ The following iterator methods are currently available within the SET</em>CLIENT
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_CLIENT).ForEachClient">SET_CLIENT:ForEachClient(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Interate the SET_CLIENT and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
<p>Iterate the SET_CLIENT and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
</td>
</tr>
<tr>
@ -722,7 +879,7 @@ The following iterator methods are currently available within the SET</em>CLIENT
<tr>
<td class="name" nowrap="nowrap"><a href="##(SET_UNIT).ForEachUnit">SET_UNIT:ForEachUnit(IteratorFunction, ...)</a></td>
<td class="summary">
<p>Interate the SET_UNIT and call an interator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
<p>Iterate the SET_UNIT and call an interator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
</td>
</tr>
<tr>
@ -767,6 +924,20 @@ The following iterator methods are currently available within the SET</em>CLIENT
<dl class="function">
<dt>
<em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a></em>
<a id="SET_AIRBASE" >
<strong>SET_AIRBASE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(SET_BASE)">#SET_BASE</a></em>
<a id="SET_BASE" >
<strong>SET_BASE</strong>
@ -822,6 +993,411 @@ The following iterator methods are currently available within the SET</em>CLIENT
</dl>
<h2><a id="#(Set)" >Type <code>Set</code></a></h2>
<h2><a id="#(SET_AIRBASE)" >Type <code>SET_AIRBASE</code></a></h2>
<p>SET_AIRBASE class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).AddAirbasesByName" >
<strong>SET_AIRBASE:AddAirbasesByName(AddAirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Add AIRBASEs to SET_AIRBASE.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AddAirbaseNames </em></code>:
A single name or an array of AIRBASE names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).AddInDatabase" >
<strong>SET_AIRBASE:AddInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE birth event gets called later than the SET</em>BASE birth event!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Event.html##(EVENTDATA)">Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the AIRBASE</p>
</li>
<li>
<p><em>#table:</em>
The AIRBASE</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_AIRBASE).Airbases" >
<strong>SET_AIRBASE.Airbases</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SET_AIRBASE).ClassName" >
<strong>SET_AIRBASE.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_AIRBASE).Filter" >
<strong>SET_AIRBASE.Filter</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FilterCategories" >
<strong>SET_AIRBASE:FilterCategories(Categories)</strong>
</a>
</dt>
<dd>
<p>Builds a set of airbases out of categories.</p>
<p>Possible current categories are plane, helicopter, ground, ship.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Categories </em></code>:
Can take the following values: "airdrome", "helipad", "ship".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FilterCoalitions" >
<strong>SET_AIRBASE:FilterCoalitions(Coalitions)</strong>
</a>
</dt>
<dd>
<p>Builds a set of airbases of coalitions.</p>
<p>Possible current coalitions are red, blue and neutral.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Coalitions </em></code>:
Can take the following values: "red", "blue", "neutral".</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SET_AIRBASE).FilterMeta" >
<strong>SET_AIRBASE.FilterMeta</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FilterStart" >
<strong>SET_AIRBASE:FilterStart()</strong>
</a>
</dt>
<dd>
<p>Starts the filtering.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FindAirbase" >
<strong>SET_AIRBASE:FindAirbase(AirbaseName)</strong>
</a>
</dt>
<dd>
<p>Finds a Airbase based on the Airbase Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string AirbaseName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>:</em>
The found Airbase.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FindInDatabase" >
<strong>SET_AIRBASE:FindInDatabase(Event)</strong>
</a>
</dt>
<dd>
<p>Handles the Database to check on any event that Object exists in the Database.</p>
<p>This is required, because sometimes the <em>DATABASE event gets called later than the SET</em>BASE event or vise versa!</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Event.html##(EVENTDATA)">Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
<h3>Return values</h3>
<ol>
<li>
<p><em>#string:</em>
The name of the AIRBASE</p>
</li>
<li>
<p><em>#table:</em>
The AIRBASE</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).FindNearestAirbaseFromPointVec2" >
<strong>SET_AIRBASE:FindNearestAirbaseFromPointVec2(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_AIRBASE while identifying the nearest <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> from a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> PointVec2 </em></code>:
A <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object from where to evaluate the closest <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>:</em>
The closest <a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a>.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).ForEachAirbase" >
<strong>SET_AIRBASE:ForEachAirbase(IteratorFunction, ...)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_AIRBASE and call an interator function for each AIRBASE, providing the AIRBASE and optional parameters.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function IteratorFunction </em></code>:
The function that will be called when there is an alive AIRBASE in the SET_AIRBASE. The function needs to accept a AIRBASE parameter.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).IsIncludeObject" >
<strong>SET_AIRBASE:IsIncludeObject(MAirbase)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> MAirbase </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).New" >
<strong>SET_AIRBASE:New()</strong>
</a>
</dt>
<dd>
<p>Creates a new SET_AIRBASE object, building a set of airbases belonging to a coalitions and categories.</p>
<h3>Return value</h3>
<p><em><a href="##(SET_AIRBASE)">#SET_AIRBASE</a>:</em>
self</p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new SET_AIRBASE Object. The DatabaseSet will contain a reference to all Airbases.
DatabaseSet = SET_AIRBASE:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_AIRBASE).RemoveAirbasesByName" >
<strong>SET_AIRBASE:RemoveAirbasesByName(RemoveAirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Remove AIRBASEs from SET_AIRBASE.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Airbase.html##(AIRBASE)">Airbase#AIRBASE</a> RemoveAirbaseNames </em></code>:
A single name or an array of AIRBASE names.</p>
</li>
</ul>
<h3>Return value</h3>
<p>self</p>
</dd>
</dl>
<h2><a id="#(SET_BASE)" >Type <code>SET_BASE</code></a></h2>
<p>SET_BASE class</p>
@ -870,6 +1446,33 @@ The added BASE Object.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SET_BASE).FindNearestObjectFromPointVec2" >
<strong>SET_BASE:FindNearestObjectFromPointVec2(PointVec2)</strong>
</a>
</dt>
<dd>
<p>Iterate the SET_BASE while identifying the nearest object from a <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> PointVec2 </em></code>:
A <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> object from where to evaluate the closest object in the set.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Base.html##(BASE)">Base#BASE</a>:</em>
The closest object.</p>
</dd>
</dl>
<dl class="function">
@ -1548,7 +2151,7 @@ The CLIENT</p>
</dt>
<dd>
<p>Interate the SET_CLIENT and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
<p>Iterate the SET_CLIENT and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
<h3>Parameters</h3>
<ul>
@ -2616,7 +3219,7 @@ The found Unit.</p>
</dt>
<dd>
<p>Interate the SET_UNIT and call an interator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
<p>Iterate the SET_UNIT and call an interator function for each <strong>alive</strong> UNIT, providing the UNIT and optional parameters.</p>
<h3>Parameters</h3>
<ul>

View File

@ -269,6 +269,12 @@ If you want to obtain the complete <strong>3D position</strong> including ori
<td class="name" nowrap="nowrap"><a href="##(UNIT).GetGroup">UNIT:GetGroup()</a></td>
<td class="summary">
<p>Returns the unit's group if it exist and nil otherwise.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).GetHeading">UNIT:GetHeading()</a></td>
<td class="summary">
<p>Returns the DCS Unit heading.</p>
</td>
</tr>
<tr>
@ -974,6 +980,24 @@ The DCS Unit is not existing or alive. </p>
<dl class="function">
<dt>
<a id="#(UNIT).GetHeading" >
<strong>UNIT:GetHeading()</strong>
</a>
</dt>
<dd>
<p>Returns the DCS Unit heading.</p>
<h3>Return value</h3>
<p><em>#number:</em>
The DCS Unit heading</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).GetID" >
<strong>UNIT:GetID()</strong>
</a>

View File

@ -82,14 +82,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="Airbase.html">Airbase</a></td>
<td class="summary">
<p>AIRBASE Class</p>
<h1><a href="AIRBASE.html">AIRBASE</a> class</h1>
<p>The <a href="AIRBASE.html">AIRBASE</a> class is a wrapper class to handle the DCS Airbase objects:</p>
<ul>
<li>Support all DCS Airbase APIs.</li>
</ul>
<p>This module contains the AIRBASE classes.</p>
</td>
</tr>
<tr>
@ -221,7 +214,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="Database.html">Database</a></td>
<td class="summary">
<p>Manage the mission database.</p>
<p>This module contains the DATABASE class, managing the database of mission objects.</p>
</td>
</tr>
<tr>