Merge remote-tracking branch 'refs/remotes/origin/master' into Escort

This commit is contained in:
FlightControl 2016-04-15 05:46:45 +02:00
commit c4d559ea9c
58 changed files with 3357 additions and 599 deletions

4
.gitignore vendored
View File

@ -220,3 +220,7 @@ pip-log.txt
#Goodsync
_gsdata_/
#GITHUB
.gitattributes
.gitignore

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -204,6 +205,24 @@
<td class="name" nowrap="nowrap"><a href="##(BASE).T3">BASE:T3(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic level 3.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceClass">BASE:TraceClass(Class)</a></td>
<td class="summary">
<p>Set tracing for a class</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceClassMethod">BASE:TraceClassMethod(Class, Method)</a></td>
<td class="summary">
<p>Set tracing for a specific method of class</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceLevel">BASE:TraceLevel(Level)</a></td>
<td class="summary">
<p>Set trace level</p>
</td>
</tr>
<tr>
@ -747,6 +766,74 @@ A #table or any field.</p>
<dl class="function">
<dt>
<a id="#(BASE).TraceClass" >
<strong>BASE:TraceClass(Class)</strong>
</a>
</dt>
<dd>
<p>Set tracing for a class</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Class </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceClassMethod" >
<strong>BASE:TraceClassMethod(Class, Method)</strong>
</a>
</dt>
<dd>
<p>Set tracing for a specific method of class</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Class </em></code>: </p>
</li>
<li>
<p><code><em>#string Method </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceLevel" >
<strong>BASE:TraceLevel(Level)</strong>
</a>
</dt>
<dd>
<p>Set trace level</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Level </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).onEvent" >
<strong>BASE:onEvent(event)</strong>
</a>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li>Client</li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -229,9 +230,15 @@ Note that clients are NOT the same as groups, they are NOT necessarily alive. </
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).IsAlive">CLIENT:IsAlive(Returns)</a></td>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).IsAlive">CLIENT:IsAlive()</a></td>
<td class="summary">
<p>Checks if client is alive and returns true or false.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLIENT).IsMultiSeated">CLIENT:IsMultiSeated()</a></td>
<td class="summary">
<p>Checks if the CLIENT is a multi-seated UNIT.</p>
</td>
</tr>
<tr>
@ -764,22 +771,31 @@ Function.</p>
<dt>
<a id="#(CLIENT).IsAlive" >
<strong>CLIENT:IsAlive(Returns)</strong>
<strong>CLIENT:IsAlive()</strong>
</a>
</dt>
<dd>
<p>Checks if client is alive and returns true or false.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean Returns </em></code>:
true if client is alive.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(CLIENT).IsMultiSeated" >
<strong>CLIENT:IsMultiSeated()</strong>
</a>
</dt>
<dd>
<p>Checks if the CLIENT is a multi-seated UNIT.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
true if multi-seated.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li>DCSAirbase</li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li>DCSCoalitionObject</li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li>DCSCommand</li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="MISSION.html">MISSION</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>DCSCommand</code></h1>
<h2><a id="#(Command)">Type <code>Command</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(Command).id">Command.id</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(Command).params">Command.params</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(DCSCommand)" >Type <code>DCSCommand</code></a></h2>
<h2><a id="#(Command)" >Type <code>Command</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(Command).id" >
<strong>Command.id</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(Command.params)">#Command.params</a></em>
<a id="#(Command).params" >
<strong>Command.params</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Command.params)" >Type <code>Command.params</code></a></h2>
</div>
</div>
</body>
</html>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li>DCSController</li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li>DCSGroup</li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li>DCSObject</li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -63,16 +64,16 @@
<h2><a id="#(DCSTask)" >Type <code>DCSTask</code></a></h2>
<table class="function_list">
<h2><a id="#(Task)">Type <code>Task</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(DCSTask).id">DCSTask.id</a></td>
<td class="name" nowrap="nowrap"><a href="##(Task).id">Task.id</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DCSTask).param">DCSTask.param</a></td>
<td class="name" nowrap="nowrap"><a href="##(Task).param">Task.param</a></td>
<td class="summary">
</td>
@ -80,13 +81,15 @@
</table>
<h2><a id="#(DCSTask)" >Type <code>DCSTask</code></a></h2>
<h3>Field(s)</h3>
<h2><a id="#(Task)" >Type <code>Task</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(DCSTask).id" >
<strong>DCSTask.id</strong>
<a id="#(Task).id" >
<strong>Task.id</strong>
</a>
</dt>
<dd>
@ -98,9 +101,9 @@
<dl class="function">
<dt>
<em><a href="##(DCSTask.param)">#DCSTask.param</a></em>
<a id="#(DCSTask).param" >
<strong>DCSTask.param</strong>
<em><a href="##(Task.param)">#Task.param</a></em>
<a id="#(Task).param" >
<strong>Task.param</strong>
</a>
</dt>
<dd>
@ -110,7 +113,7 @@
</dd>
</dl>
<h2><a id="#(DCSTask.param)" >Type <code>DCSTask.param</code></a></h2>
<h2><a id="#(Task.param)" >Type <code>Task.param</code></a></h2>
</div>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -64,7 +65,81 @@
<p>Taking the lead of AI escorting your flight.</p>
<p>The ESCORT class allows you to interact with escoring AI on your flight and take the lead.</p>
<p>The ESCORT class allows you to interact with escorting AI on your flight and take the lead.
Each escorting group can be commanded with a whole set of radio commands (radio menu in your flight, and then F10).</p>
<p>The radio commands will vary according the category of the group. The richest set of commands are with Helicopters and AirPlanes.
Ships and Ground troops will have a more limited set, but they can provide support through the bombing of targets designated by the other escorts.</p>
<p>Find a summary below of the current available commands:</p>
<p><strong>1. Navigation ...:</strong> Escort group navigation functions:</p>
<ul>
<li><strong>"Hold Position and Stay Low":</strong> Stops the escort group and they will hover 30 meters above the ground at the position they stopped.</li>
<li><strong>"Join-Up and Hold Position NearBy":</strong> The escort group will stop nearby you, and then the group will hover.</li>
<li><strong>"Join-Up and Follow at 100":</strong> The escort group fill follow you at about 100 meters, and they will follow you.</li>
<li><strong>"Join-Up and Follow at 200":</strong> The escort group fill follow you at about 200 meters, and they will follow you.</li>
<li><strong>"Join-Up and Follow at 400":</strong> The escort group fill follow you at about 400 meters, and they will follow you.</li>
<li><strong>"Join-Up and Follow at 800":</strong> The escort group fill follow you at about 800 meters, and they will follow you.</li>
<li><strong>"Flare":</strong> Provides menu commands to let the escort group shoot a flare in the air in a color.</li>
<li><strong>"Smoke":</strong> Provides menu commands to let the escort group smoke the air in a color. Note that smoking is only available for ground and naval troops.</li>
</ul>
<p><strong>2. Report targets ...:</strong> Report targets will make the escort group to report any target that it identifies within a 8km range. Any detected target can be attacked using the 4. Attack nearby targets function. (see below).</p>
<ul>
<li><strong>"Report now":</strong> Will report the current detected targets.</li>
<li><strong>"Report targets on":</strong> Will make the escort group to report detected targets and will fill the "Attack nearby targets" menu list.</li>
<li><strong>"Report targets off":</strong> Will stop detecting targets.</li>
</ul>
<p><strong>3. Scan targets ...:</strong> Menu items to pop-up the escort group for target scanning. After scanning, the escort group will resume with the mission or defined task.</p>
<ul>
<li><strong>"Scan targets 30 seconds":</strong> Scan 30 seconds for targets.</li>
<li><strong>"Scan targets 60 seconds":</strong> Scan 60 seconds for targets.</li>
</ul>
<p><strong>4. Attack targets ...:</strong> This menu item will list all detected targets within a 15km range. Depending on the level of detection (known/unknown) and visuality, the targets type will also be listed.</p>
<p><strong>5. Request assistance from ...:</strong> This menu item will list all detected targets within a 15km range, as with the menu item <strong>Attack Targets</strong>.
This menu item allows to request attack support from other escorts supporting the current client group.
eg. the function allows a player to request support from the Ship escort to attack a target identified by the Plane escort with its Tomahawk missiles.
eg. the function allows a player to request support from other Planes escorting to bomb the unit with illumination missiles or bombs, so that the main plane escort can attack the area.</p>
<p><strong>6. ROE ...:</strong> Defines the Rules of Engagement of the escort group when in flight.</p>
<ul>
<li><strong>"Hold Fire":</strong> The escort group will hold fire.</li>
<li><strong>"Return Fire":</strong> The escort group will return fire.</li>
<li><strong>"Open Fire":</strong> The escort group will open fire on designated targets.</li>
<li><strong>"Weapon Free":</strong> The escort group will engage with any target.</li>
</ul>
<p><strong>7. Evasion ...:</strong> Will define the evasion techniques that the escort group will perform during flight or combat.</p>
<ul>
<li><strong>"Fight until death":</strong> The escort group will have no reaction to threats.</li>
<li><strong>"Use flares, chaff and jammers":</strong> The escort group will use passive defense using flares and jammers. No evasive manoeuvres are executed.</li>
<li><strong>"Evade enemy fire":</strong> The rescort group will evade enemy fire before firing.</li>
<li><strong>"Go below radar and evade fire":</strong> The escort group will perform evasive vertical manoeuvres.</li>
</ul>
<p><strong>8. Resume Mission ...:</strong> Escort groups can have their own mission. This menu item will allow the escort group to resume their Mission from a given waypoint.
Note that this is really fantastic, as you now have the dynamic of taking control of the escort groups, and allowing them to resume their path or mission.</p>
<p><strong>9. Abort Current Task:</strong> Cancel the current task and rejoin formation.</p>
<ol>
<li><h2>ESCORT object construction methods.</h2>
<p>Create a new SPAWN object with the <a href="##(ESCORT).New">ESCORT.New</a> method:</p></li>
<li><p><a href="##(ESCORT).New">ESCORT.New</a>: Creates a new ESCORT object from a <a href="Group.html##(GROUP)">Group#GROUP</a> for a <a href="Client.html##(CLIENT)">Client#CLIENT</a>, with an optional briefing text.</p></li>
<li><h2>ESCORT object initialization methods.</h2>
<p>None.</p></li>
</ol>
<h2>Global(s)</h2>
<table class="function_list">
@ -93,6 +168,12 @@
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortGroup">ESCORT.EscortGroup</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortMenuResumeMission">ESCORT.EscortMenuResumeMission</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -108,7 +189,13 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).New">ESCORT:New(EscortClient, EscortGroup, EscortName)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).JoinUpAndFollow">ESCORT:JoinUpAndFollow(EscortGroup, EscortClient, Distance)</a></td>
<td class="summary">
<p>JoinsUp and Follows a CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).New">ESCORT:New(EscortClient, EscortGroup, EscortName, EscortBriefing)</a></td>
<td class="summary">
<p>ESCORT class constructor for an AI group</p>
</td>
@ -128,25 +215,49 @@
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).RegisterRoute">ESCORT:RegisterRoute()</a></td>
<td class="summary">
<p>Registers the waypoints</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).ReportTargets">ESCORT.ReportTargets</a></td>
<td class="summary">
<p>If true, nearby targets are reported.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).ReportTargetsScheduler">ESCORT.ReportTargetsScheduler</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).Targets">ESCORT.Targets</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).TaskPoints">ESCORT.TaskPoints</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._AssistTarget">ESCORT._AssistTarget(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._AttackTarget">ESCORT._AttackTarget(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._Flare">ESCORT._Flare(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -174,55 +285,19 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._OptionROTEvadeFire">ESCORT._OptionROTEvadeFire(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROE">ESCORT._ROE(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._OptionROTNoReaction">ESCORT._OptionROTNoReaction(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROT">ESCORT._ROT(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._OptionROTPassiveDefense">ESCORT._OptionROTPassiveDefense(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._OptionROTVertical">ESCORT._OptionROTVertical(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROEHoldFire">ESCORT._ROEHoldFire(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROEOpenFire">ESCORT._ROEOpenFire(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROEReturnFire">ESCORT._ROEReturnFire(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROEWeaponFree">ESCORT._ROEWeaponFree(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ReportNearbyTargets">ESCORT._ReportNearbyTargets(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ReportNearbyTargetsNow">ESCORT._ReportNearbyTargetsNow(MenuParam)</a></td>
<td class="summary">
</td>
@ -230,7 +305,7 @@
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ReportTargetsScheduler">ESCORT:_ReportTargetsScheduler()</a></td>
<td class="summary">
<p>Report Targets Scheduler.</p>
</td>
</tr>
<tr>
@ -240,13 +315,19 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ScanTargets30Seconds">ESCORT._ScanTargets30Seconds(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ScanTargets">ESCORT._ScanTargets(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ScanTargets60Seconds">ESCORT._ScanTargets60Seconds(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._Smoke">ESCORT._Smoke(MenuParam)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._SwitchReportNearbyTargets">ESCORT._SwitchReportNearbyTargets(MenuParam)</a></td>
<td class="summary">
</td>
@ -259,6 +340,18 @@
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamDistance">MENUPARAM.ParamDistance</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamFunction">MENUPARAM.ParamFunction</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamMessage">MENUPARAM.ParamMessage</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -333,6 +426,20 @@
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Menu.html##(MENU_CLIENT)">Menu#MENU_CLIENT</a></em>
<a id="#(ESCORT).EscortMenuResumeMission" >
<strong>ESCORT.EscortMenuResumeMission</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -366,8 +473,39 @@
<dl class="function">
<dt>
<a id="#(ESCORT).JoinUpAndFollow" >
<strong>ESCORT:JoinUpAndFollow(EscortGroup, EscortClient, Distance)</strong>
</a>
</dt>
<dd>
<p>JoinsUp and Follows a CLIENT.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Group.html##(GROUP)">Group#GROUP</a> EscortGroup </em></code>: </p>
</li>
<li>
<p><code><em><a href="Client.html##(CLIENT)">Client#CLIENT</a> EscortClient </em></code>: </p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> Distance </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT).New" >
<strong>ESCORT:New(EscortClient, EscortGroup, EscortName)</strong>
<strong>ESCORT:New(EscortClient, EscortGroup, EscortName, EscortBriefing)</strong>
</a>
</dt>
<dd>
@ -393,6 +531,11 @@ The group AI escorting the EscortClient.</p>
<p><code><em>#string EscortName </em></code>:
Name of the escort.</p>
</li>
<li>
<p><code><em> EscortBriefing </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
@ -439,6 +582,11 @@ self</p>
</dt>
<dd>
<p>Registers the waypoints</p>
<h3>Return value</h3>
<p><em>#table:</em></p>
</dd>
@ -455,6 +603,19 @@ self</p>
<p>If true, nearby targets are reported.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT).ReportTargetsScheduler" >
<strong>ESCORT.ReportTargetsScheduler</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -469,6 +630,41 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ESCORT).TaskPoints" >
<strong>ESCORT.TaskPoints</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._AssistTarget" >
<strong>ESCORT._AssistTarget(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
@ -482,6 +678,27 @@ self</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._Flare" >
<strong>ESCORT._Flare(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
@ -579,8 +796,8 @@ self</p>
<dl class="function">
<dt>
<a id="#(ESCORT)._OptionROTEvadeFire" >
<strong>ESCORT._OptionROTEvadeFire(MenuParam)</strong>
<a id="#(ESCORT)._ROE" >
<strong>ESCORT._ROE(MenuParam)</strong>
</a>
</dt>
<dd>
@ -600,8 +817,8 @@ self</p>
<dl class="function">
<dt>
<a id="#(ESCORT)._OptionROTNoReaction" >
<strong>ESCORT._OptionROTNoReaction(MenuParam)</strong>
<a id="#(ESCORT)._ROT" >
<strong>ESCORT._ROT(MenuParam)</strong>
</a>
</dt>
<dd>
@ -621,8 +838,8 @@ self</p>
<dl class="function">
<dt>
<a id="#(ESCORT)._OptionROTPassiveDefense" >
<strong>ESCORT._OptionROTPassiveDefense(MenuParam)</strong>
<a id="#(ESCORT)._ReportNearbyTargetsNow" >
<strong>ESCORT._ReportNearbyTargetsNow(MenuParam)</strong>
</a>
</dt>
<dd>
@ -642,139 +859,13 @@ self</p>
<dl class="function">
<dt>
<a id="#(ESCORT)._OptionROTVertical" >
<strong>ESCORT._OptionROTVertical(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._ROEHoldFire" >
<strong>ESCORT._ROEHoldFire(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._ROEOpenFire" >
<strong>ESCORT._ROEOpenFire(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._ROEReturnFire" >
<strong>ESCORT._ROEReturnFire(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._ROEWeaponFree" >
<strong>ESCORT._ROEWeaponFree(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._ReportNearbyTargets" >
<strong>ESCORT._ReportNearbyTargets(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._ReportTargetsScheduler" >
<strong>ESCORT:_ReportTargetsScheduler()</strong>
</a>
</dt>
<dd>
<p>Report Targets Scheduler.</p>
</dd>
</dl>
@ -802,8 +893,8 @@ self</p>
<dl class="function">
<dt>
<a id="#(ESCORT)._ScanTargets30Seconds" >
<strong>ESCORT._ScanTargets30Seconds(MenuParam)</strong>
<a id="#(ESCORT)._ScanTargets" >
<strong>ESCORT._ScanTargets(MenuParam)</strong>
</a>
</dt>
<dd>
@ -823,8 +914,8 @@ self</p>
<dl class="function">
<dt>
<a id="#(ESCORT)._ScanTargets60Seconds" >
<strong>ESCORT._ScanTargets60Seconds(MenuParam)</strong>
<a id="#(ESCORT)._Smoke" >
<strong>ESCORT._Smoke(MenuParam)</strong>
</a>
</dt>
<dd>
@ -840,6 +931,27 @@ self</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT)._SwitchReportNearbyTargets" >
<strong>ESCORT._SwitchReportNearbyTargets(MenuParam)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> MenuParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<h2><a id="#(MENUPARAM)" >Type <code>MENUPARAM</code></a></h2>
@ -859,6 +971,34 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#function</em>
<a id="#(MENUPARAM).ParamFunction" >
<strong>MENUPARAM.ParamFunction</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(MENUPARAM).ParamMessage" >
<strong>MENUPARAM.ParamMessage</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -170,6 +171,18 @@
<td class="name" nowrap="nowrap"><a href="##(MENU_CLIENT).New">MENU_CLIENT:New(MenuClient, MenuText, ParentMenu)</a></td>
<td class="summary">
<p>Creates a new menu item for a group</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_CLIENT).Remove">MENU_CLIENT:Remove()</a></td>
<td class="summary">
<p>Removes the sub menus recursively of this MENU_CLIENT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENU_CLIENT).RemoveSubMenus">MENU_CLIENT:RemoveSubMenus()</a></td>
<td class="summary">
<p>Removes the sub menus recursively of this MENU_CLIENT.</p>
</td>
</tr>
</table>
@ -509,6 +522,42 @@ The parent menu.</p>
<p><em><a href="##(MENU_CLIENT)">#MENU_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_CLIENT).Remove" >
<strong>MENU_CLIENT:Remove()</strong>
</a>
</dt>
<dd>
<p>Removes the sub menus recursively of this MENU_CLIENT.</p>
<h3>Return value</h3>
<p><em><a href="##(MENU_CLIENT)">#MENU_CLIENT</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MENU_CLIENT).RemoveSubMenus" >
<strong>MENU_CLIENT:RemoveSubMenus()</strong>
</a>
</dt>
<dd>
<p>Removes the sub menus recursively of this MENU_CLIENT.</p>
<h3>Return value</h3>
<p><em><a href="##(MENU_CLIENT)">#MENU_CLIENT</a>:</em>
self</p>
</dd>
</dl>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -800,6 +801,14 @@
</dd>
</dl>
<h2><a id="#(STAGEARRIVE)" >Type <code>STAGEARRIVE</code></a></h2>
<h2><a id="#(STAGELANDING)" >Type <code>STAGELANDING</code></a></h2>
<h2><a id="#(STAGEROUTE)" >Type <code>STAGEROUTE</code></a></h2>
<h2><a id="#(STAGEUNLOAD)" >Type <code>STAGEUNLOAD</code></a></h2>
</div>
</div>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -145,6 +146,12 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
<h2><a id="#(SPAWN)">Type <code>SPAWN</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).AliveFactor">SPAWN.AliveFactor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).Array">SPAWN:Array(SpawnAngle, SpawnWidth, SpawnDeltaX, SpawnDeltaY)</a></td>
<td class="summary">
<p>Makes the groups visible before start (like a batallion).</p>
@ -160,6 +167,12 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
<td class="name" nowrap="nowrap"><a href="##(SPAWN).CleanUp">SPAWN:CleanUp(SpawnCleanUpInterval)</a></td>
<td class="summary">
<p>CleanUp groups when they are still alive, but inactive.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).CleanUpFunction">SPAWN.CleanUpFunction</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -235,13 +248,13 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).RepeatOnEngineShutDown">SPAWN:RepeatOnEngineShutDown()</a></td>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).RepeatOnEngineShutDown">SPAWN.RepeatOnEngineShutDown</a></td>
<td class="summary">
<p>Same as the @{#SPAWN.Repeat) method, but now the Group will respawn after its engines have shut down.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).RepeatOnLanding">SPAWN:RepeatOnLanding()</a></td>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).RepeatOnLanding">SPAWN.RepeatOnLanding</a></td>
<td class="summary">
</td>
@ -249,25 +262,127 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).Spawn">SPAWN:Spawn()</a></td>
<td class="summary">
<p>Will re-spawn a group based on a given index.</p>
<p>Will spawn a group based on the internal index.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnAliasPrefix">SPAWN.SpawnAliasPrefix</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnCleanUpInterval">SPAWN.SpawnCleanUpInterval</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnCleanUpTimeStamps">SPAWN.SpawnCleanUpTimeStamps</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnCurrentTimer">SPAWN.SpawnCurrentTimer</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnFromUnit">SPAWN:SpawnFromUnit(HostUnit, OuterRadius, InnerRadius, SpawnIndex)</a></td>
<td class="summary">
<p>Will spawn a group from a hosting unit.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnFunction">SPAWN:SpawnFunction(SpawnFunctionHook, SpawnFunctionArguments, ...)</a></td>
<td class="summary">
<p>Allows to place a CallFunction hook when a new group spawns.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnFunctionArguments">SPAWN.SpawnFunctionArguments</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnFunctionHook">SPAWN.SpawnFunctionHook</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnGroupName">SPAWN:SpawnGroupName(SpawnIndex)</a></td>
<td class="summary">
<p>Will return the SpawnGroupName either with with a specific count number or without any count.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnHighTimer">SPAWN.SpawnHighTimer</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnInZone">SPAWN:SpawnInZone(Zone, SpawnIndex)</a></td>
<td class="summary">
<p>Will spawn a Group within a given <a href="ZONE.html">ZONE</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnLowTimer">SPAWN.SpawnLowTimer</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnMaxGroups">SPAWN.SpawnMaxGroups</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnMaxUnitsAlive">SPAWN.SpawnMaxUnitsAlive</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnRandomizeRoute">SPAWN.SpawnRandomizeRoute</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnRandomizeRouteEndPoint">SPAWN.SpawnRandomizeRouteEndPoint</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnRandomizeRouteRadius">SPAWN.SpawnRandomizeRouteRadius</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnRandomizeRouteStartPoint">SPAWN.SpawnRandomizeRouteStartPoint</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnRandomizeTemplate">SPAWN.SpawnRandomizeTemplate</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnRepeat">SPAWN.SpawnRepeat</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -286,6 +401,30 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnScheduled">SPAWN:SpawnScheduled(SpawnTime, SpawnTimeVariation)</a></td>
<td class="summary">
<p>Spawns new groups at varying time intervals.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnSetTimer">SPAWN.SpawnSetTimer</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnTemplatePrefix">SPAWN.SpawnTemplatePrefix</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnTemplatePrefixTable">SPAWN.SpawnTemplatePrefixTable</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN).SpawnVisible">SPAWN.SpawnVisible</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -370,6 +509,12 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._OnDeadOrCrash">SPAWN:_OnDeadOrCrash(event)</a></td>
<td class="summary">
<p>Obscolete</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._OnEngineShutDown">SPAWN:_OnEngineShutDown(event)</a></td>
<td class="summary">
<p>Will detect AIR Units shutting down their engines ...</p>
</td>
</tr>
<tr>
@ -447,6 +592,20 @@ You can use the <a href="GROUP.html">GROUP</a> object to do further actions with
<dl class="function">
<dt>
<em>#number</em>
<a id="#(SPAWN).AliveFactor" >
<strong>SPAWN.AliveFactor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SPAWN).Array" >
<strong>SPAWN:Array(SpawnAngle, SpawnWidth, SpawnDeltaX, SpawnDeltaY)</strong>
</a>
@ -544,6 +703,20 @@ self</p>
<h3>Usage:</h3>
<pre class="example"><code>Spawn_Helicopter:CleanUp( 20 ) -- CleanUp the spawning of the helicopters every 20 seconds when they become inactive.</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).CleanUpFunction" >
<strong>SPAWN.CleanUpFunction</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -570,7 +743,7 @@ A number holding the index from where to find the first group from.</p>
<ol>
<li>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>, #number:</em>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>, #number:</em>
The group found, the new index where the group was found.</p>
</li>
@ -609,7 +782,7 @@ The index of the group to return.</p>
</ul>
<h3>Return value</h3>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>:</em></p>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>:</em></p>
</dd>
@ -651,7 +824,7 @@ A number holding the last found previous index.</p>
<ol>
<li>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>, #number:</em>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>, #number:</em>
The group found, the new index where the group was found.</p>
</li>
@ -930,7 +1103,7 @@ The index of the group to be spawned.</p>
</ul>
<h3>Return value</h3>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>:</em>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>:</em>
The group that was spawned. You can use this group for further actions.</p>
</dd>
@ -967,26 +1140,23 @@ SpawnRU_SU34 = SPAWN:New( 'TF1 RU Su-34 Krymsk@AI - Attack Ships' ):Schedule( 2,
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(SPAWN).RepeatOnEngineShutDown" >
<strong>SPAWN:RepeatOnEngineShutDown()</strong>
<strong>SPAWN.RepeatOnEngineShutDown</strong>
</a>
</dt>
<dd>
<p>Same as the @{#SPAWN.Repeat) method, but now the Group will respawn after its engines have shut down.</p>
<h3>Return value</h3>
<p>SPAWN</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(SPAWN).RepeatOnLanding" >
<strong>SPAWN:RepeatOnLanding()</strong>
<strong>SPAWN.RepeatOnLanding</strong>
</a>
</dt>
<dd>
@ -1004,16 +1174,75 @@ SpawnRU_SU34 = SPAWN:New( 'TF1 RU Su-34 Krymsk@AI - Attack Ships' ):Schedule( 2,
</dt>
<dd>
<p>Will re-spawn a group based on a given index.</p>
<p>Will spawn a group based on the internal index.</p>
<p>Note: Uses <a href="DATABASE.html">DATABASE</a> module defined in MOOSE.</p>
<h3>Return value</h3>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>:</em>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>:</em>
The group that was spawned. You can use this group for further actions.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SPAWN).SpawnAliasPrefix" >
<strong>SPAWN.SpawnAliasPrefix</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnCleanUpInterval" >
<strong>SPAWN.SpawnCleanUpInterval</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnCleanUpTimeStamps" >
<strong>SPAWN.SpawnCleanUpTimeStamps</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(SPAWN).SpawnCurrentTimer" >
<strong>SPAWN.SpawnCurrentTimer</strong>
</a>
</dt>
<dd>
<p> The internal timer counter to trigger a scheduled spawning of SpawnTemplatePrefix.</p>
</dd>
</dl>
<dl class="function">
@ -1074,6 +1303,76 @@ Nothing was spawned.</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SPAWN).SpawnFunction" >
<strong>SPAWN:SpawnFunction(SpawnFunctionHook, SpawnFunctionArguments, ...)</strong>
</a>
</dt>
<dd>
<p>Allows to place a CallFunction hook when a new group spawns.</p>
<p>The provided function will be called when a new group is spawned, including its given parameters.
The first parameter of the SpawnFunction is the <a href="Group.html##(GROUP)">Group#GROUP</a> that was spawned.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#function SpawnFunctionHook </em></code>:
The function to be called when a group spawns.</p>
</li>
<li>
<p><code><em> SpawnFunctionArguments </em></code>:
A random amount of arguments to be provided to the function when the group spawns.</p>
</li>
<li>
<p><code><em> ... </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(SPAWN)">#SPAWN</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnFunctionArguments" >
<strong>SPAWN.SpawnFunctionArguments</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnFunctionHook" >
<strong>SPAWN.SpawnFunctionHook</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1098,8 +1397,22 @@ Is the number of the Group that is to be spawned.</p>
</ul>
<h3>Return value</h3>
<p><em>#string:</em>
SpawnGroupName</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(SPAWN).SpawnHighTimer" >
<strong>SPAWN.SpawnHighTimer</strong>
</a>
</dt>
<dd>
<p>string SpawnGroupName</p>
</dd>
</dl>
@ -1133,7 +1446,7 @@ The zone where the group is to be spawned.</p>
<ol>
<li>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>:</em>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>:</em>
that was spawned.</p>
</li>
@ -1144,6 +1457,138 @@ when nothing was spawned.</p>
</li>
</ol>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(SPAWN).SpawnLowTimer" >
<strong>SPAWN.SpawnLowTimer</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong>
</a>
</dt>
<dd>
<p> The maximum amount of groups that can be spawned.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a>
</dt>
<dd>
<p> The maximum amount of groups that can be alive of SpawnTemplatePrefix at the same time.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(SPAWN).SpawnRandomizeRoute" >
<strong>SPAWN.SpawnRandomizeRoute</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnRandomizeRouteEndPoint" >
<strong>SPAWN.SpawnRandomizeRouteEndPoint</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnRandomizeRouteRadius" >
<strong>SPAWN.SpawnRandomizeRouteRadius</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnRandomizeRouteStartPoint" >
<strong>SPAWN.SpawnRandomizeRouteStartPoint</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(SPAWN).SpawnRandomizeTemplate" >
<strong>SPAWN.SpawnRandomizeTemplate</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(SPAWN).SpawnRepeat" >
<strong>SPAWN.SpawnRepeat</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1220,6 +1665,68 @@ self</p>
-- Between these two values, a random amount of seconds will be choosen for each new spawn of the helicopters.
Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(SPAWN).SpawnSetTimer" >
<strong>SPAWN.SpawnSetTimer</strong>
</a>
</dt>
<dd>
<p> The internal timer value when a scheduled spawning of SpawnTemplatePrefix occurs.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SPAWN).SpawnTemplatePrefix" >
<strong>SPAWN.SpawnTemplatePrefix</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(SPAWN).SpawnTemplatePrefixTable" >
<strong>SPAWN.SpawnTemplatePrefixTable</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#boolean</em>
<a id="#(SPAWN).SpawnVisible" >
<strong>SPAWN.SpawnVisible</strong>
</a>
</dt>
<dd>
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
</dd>
</dl>
<dl class="function">
@ -1246,7 +1753,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
</ul>
<h3>Return value</h3>
<p><em><a href="GROUP.html##(GROUP)">GROUP#GROUP</a>:</em>
<p><em><a href="Group.html##(GROUP)">Group#GROUP</a>:</em>
The group that was spawned. You can use this group for further actions.</p>
</dd>
@ -1568,6 +2075,31 @@ Nothing found</p>
<dl class="function">
<dt>
<a id="#(SPAWN)._OnEngineShutDown" >
<strong>SPAWN:_OnEngineShutDown(event)</strong>
</a>
</dt>
<dd>
<p>Will detect AIR Units shutting down their engines ...</p>
<p>When the event takes place, and the method <a href="RepeatOnEngineShutDown.html">RepeatOnEngineShutDown</a> was called, the spawned Group will Re-SPAWN.
But only when the Unit was registered to have landed.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SPAWN)._OnLand" >
<strong>SPAWN:_OnLand(event)</strong>
</a>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -84,6 +85,42 @@
<td class="name" nowrap="nowrap"><a href="##(UNIT).ClassName">UNIT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).Flare">UNIT:Flare(FlareColor)</a></td>
<td class="summary">
<p>Signal a flare at the position of the UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).FlareColor">UNIT.FlareColor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).FlareGreen">UNIT:FlareGreen()</a></td>
<td class="summary">
<p>Signal a green flare at the position of the UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).FlareRed">UNIT:FlareRed()</a></td>
<td class="summary">
<p>Signal a red flare at the position of the UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).FlareWhite">UNIT:FlareWhite()</a></td>
<td class="summary">
<p>Signal a white flare at the position of the UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).FlareYellow">UNIT:FlareYellow()</a></td>
<td class="summary">
<p>Signal a yellow flare at the position of the UNIT.</p>
</td>
</tr>
<tr>
@ -138,6 +175,12 @@
<td class="name" nowrap="nowrap"><a href="##(UNIT).GetTypeName">UNIT:GetTypeName()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).IsAir">UNIT:IsAir()</a></td>
<td class="summary">
<p>Returns if the unit is of an air category.</p>
</td>
</tr>
<tr>
@ -149,13 +192,117 @@
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).New">UNIT:New(DCSUnit)</a></td>
<td class="summary">
<p>Create a new UNIT from DCSUnit.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).OtherUnitInRadius">UNIT:OtherUnitInRadius(AwaitUnit, Radius)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).Smoke">UNIT:Smoke(SmokeColor)</a></td>
<td class="summary">
<p>Smoke the UNIT.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).SmokeBlue">UNIT:SmokeBlue()</a></td>
<td class="summary">
<p>Smoke the UNIT Blue.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).SmokeColor">UNIT.SmokeColor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).SmokeGreen">UNIT:SmokeGreen()</a></td>
<td class="summary">
<p>Smoke the UNIT Green.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).SmokeOrange">UNIT:SmokeOrange()</a></td>
<td class="summary">
<p>Smoke the UNIT Orange.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).SmokeRed">UNIT:SmokeRed()</a></td>
<td class="summary">
<p>Smoke the UNIT Red.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).SmokeWhite">UNIT:SmokeWhite()</a></td>
<td class="summary">
<p>Smoke the UNIT White.</p>
</td>
</tr>
</table>
<h2><a id="#(UNIT.FlareColor)">Type <code>UNIT.FlareColor</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.FlareColor).Green">UNIT.FlareColor.Green</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.FlareColor).Red">UNIT.FlareColor.Red</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.FlareColor).White">UNIT.FlareColor.White</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.FlareColor).Yellow">UNIT.FlareColor.Yellow</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(UNIT.SmokeColor)">Type <code>UNIT.SmokeColor</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.SmokeColor).Blue">UNIT.SmokeColor.Blue</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.SmokeColor).Green">UNIT.SmokeColor.Green</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.SmokeColor).Orange">UNIT.SmokeColor.Orange</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.SmokeColor).Red">UNIT.SmokeColor.Red</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT.SmokeColor).White">UNIT.SmokeColor.White</a></td>
<td class="summary">
</td>
</tr>
</table>
@ -208,6 +355,93 @@
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).Flare" >
<strong>UNIT:Flare(FlareColor)</strong>
</a>
</dt>
<dd>
<p>Signal a flare at the position of the UNIT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> FlareColor </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(UNIT.FlareColor)">#UNIT.FlareColor</a></em>
<a id="#(UNIT).FlareColor" >
<strong>UNIT.FlareColor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).FlareGreen" >
<strong>UNIT:FlareGreen()</strong>
</a>
</dt>
<dd>
<p>Signal a green flare at the position of the UNIT.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).FlareRed" >
<strong>UNIT:FlareRed()</strong>
</a>
</dt>
<dd>
<p>Signal a red flare at the position of the UNIT.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).FlareWhite" >
<strong>UNIT:FlareWhite()</strong>
</a>
</dt>
<dd>
<p>Signal a white flare at the position of the UNIT.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).FlareYellow" >
<strong>UNIT:FlareYellow()</strong>
</a>
</dt>
<dd>
<p>Signal a yellow flare at the position of the UNIT.</p>
</dd>
</dl>
<dl class="function">
@ -325,6 +559,27 @@
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).IsAir" >
<strong>UNIT:IsAir()</strong>
</a>
</dt>
<dd>
<p>Returns if the unit is of an air category.</p>
<p>If the unit is a helicopter or a plane, then this method will return true, otherwise false.</p>
<h3>Return value</h3>
<p><em>#boolean:</em>
Air category evaluation result.</p>
</dd>
</dl>
<dl class="function">
@ -349,16 +604,21 @@
</dt>
<dd>
<p>Create a new UNIT from DCSUnit.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> DCSUnit </em></code>: </p>
<p><code><em><a href="DCSUnit.html##(Unit)">DCSUnit#Unit</a> DCSUnit </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Unit.html##(UNIT)">Unit#UNIT</a>:</em></p>
</dd>
</dl>
<dl class="function">
@ -385,6 +645,235 @@
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).Smoke" >
<strong>UNIT:Smoke(SmokeColor)</strong>
</a>
</dt>
<dd>
<p>Smoke the UNIT.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> SmokeColor </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).SmokeBlue" >
<strong>UNIT:SmokeBlue()</strong>
</a>
</dt>
<dd>
<p>Smoke the UNIT Blue.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(UNIT.SmokeColor)">#UNIT.SmokeColor</a></em>
<a id="#(UNIT).SmokeColor" >
<strong>UNIT.SmokeColor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).SmokeGreen" >
<strong>UNIT:SmokeGreen()</strong>
</a>
</dt>
<dd>
<p>Smoke the UNIT Green.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).SmokeOrange" >
<strong>UNIT:SmokeOrange()</strong>
</a>
</dt>
<dd>
<p>Smoke the UNIT Orange.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).SmokeRed" >
<strong>UNIT:SmokeRed()</strong>
</a>
</dt>
<dd>
<p>Smoke the UNIT Red.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).SmokeWhite" >
<strong>UNIT:SmokeWhite()</strong>
</a>
</dt>
<dd>
<p>Smoke the UNIT White.</p>
</dd>
</dl>
<h2><a id="#(UNIT.FlareColor)" >Type <code>UNIT.FlareColor</code></a></h2>
<p>FlareColor</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(UNIT.FlareColor).Green" >
<strong>UNIT.FlareColor.Green</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.FlareColor).Red" >
<strong>UNIT.FlareColor.Red</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.FlareColor).White" >
<strong>UNIT.FlareColor.White</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.FlareColor).Yellow" >
<strong>UNIT.FlareColor.Yellow</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(UNIT.SmokeColor)" >Type <code>UNIT.SmokeColor</code></a></h2>
<p>SmokeColor</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(UNIT.SmokeColor).Blue" >
<strong>UNIT.SmokeColor.Blue</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.SmokeColor).Green" >
<strong>UNIT.SmokeColor.Green</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.SmokeColor).Orange" >
<strong>UNIT.SmokeColor.Orange</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.SmokeColor).Red" >
<strong>UNIT.SmokeColor.Red</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT.SmokeColor).White" >
<strong>UNIT.SmokeColor.White</strong>
</a>
</dt>
<dd>
</dd>
</dl>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -93,7 +94,7 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ZONE).GetRandomPoint">ZONE:GetRandomPoint()</a></td>
<td class="name" nowrap="nowrap"><a href="##(ZONE).GetRandomPointVec2">ZONE:GetRandomPointVec2()</a></td>
<td class="summary">
</td>
@ -171,8 +172,8 @@
<dl class="function">
<dt>
<a id="#(ZONE).GetRandomPoint" >
<strong>ZONE:GetRandomPoint()</strong>
<a id="#(ZONE).GetRandomPointVec2" >
<strong>ZONE:GetRandomPointVec2()</strong>
</a>
</dt>
<dd>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -95,6 +96,12 @@
<td class="name" nowrap="nowrap"><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="DCSCommand.html">DCSCommand</a></td>
<td class="summary">
</td>
</tr>
<tr>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>

View File

@ -23,6 +23,7 @@
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
@ -1193,6 +1194,8 @@
</dl>
<h2><a id="#(routines)" >Type <code>routines</code></a></h2>
<h2><a id="#(Time)" >Type <code>Time</code></a></h2>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -331,7 +331,7 @@ function BASE:F( Arguments )
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s\(%s\)" , LineCurrent, LineFrom, "F", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
env.info( string.format( "%6d(%6d)/%1s:%20s%05d.%s(%s)" , LineCurrent, LineFrom, "F", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end
end
end
@ -379,7 +379,7 @@ function BASE:T( Arguments )
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s" , LineCurrent, LineFrom, "T", self.ClassName, self.ClassID, routines.utils.oneLineSerialize( Arguments ) ) )
env.info( string.format( "%6d(%6d)/%1s:%20s%05d.%s" , LineCurrent, LineFrom, "T", self.ClassName, self.ClassID, routines.utils.oneLineSerialize( Arguments ) ) )
end
end
end
@ -422,7 +422,7 @@ function BASE:E( Arguments )
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = DebugInfoFrom.currentline
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s\(%s\)" , LineCurrent, LineFrom, "E", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
env.info( string.format( "%6d(%6d)/%1s:%20s%05d.%s(%s)" , LineCurrent, LineFrom, "E", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end

View File

@ -863,7 +863,7 @@ function DATABASE:ScoreOpen()
if not self.StatFile then
error( "Error: Cannot open 'Player Scores.csv' file in " .. lfs.writedir() )
end
self.StatFile:write( '"RunID";"Time";"PlayerName";"ScoreType";"PlayerUnitCoaltion";"PlayerUnitCategory";"PlayerUnitType";"PlayerUnitName";"TargetUnitCoalition";"TargetUnitCategory";"TargetUnitType";"TargetUnitName";"Times";"Score"\n' )
self.StatFile:write( '"RunID","Time","PlayerName","ScoreType","PlayerUnitCoaltion","PlayerUnitCategory","PlayerUnitType","PlayerUnitName","TargetUnitCoalition","TargetUnitCategory","TargetUnitType","TargetUnitName","Times","Score"\n' )
self.RunID = os.date("%y-%m-%d_%H-%M-%S")
end
@ -921,10 +921,23 @@ function DATABASE:ScoreAdd( PlayerName, ScoreType, ScoreTimes, ScoreAmount, Play
end
if lfs then
self.StatFile:write( '"' .. self.RunID .. '";' .. ScoreTime .. ';"' .. PlayerName .. '";"' .. ScoreType .. '";"' ..
PlayerUnitCoalition .. '";"' .. PlayerUnitCategory .. '";"' .. PlayerUnitType .. '";"' .. PlayerUnitName .. '";"' ..
TargetUnitCoalition .. '";"' .. TargetUnitCategory .. '";"' .. TargetUnitType .. '";"' .. TargetUnitName .. '";' ..
ScoreTimes .. ';' .. ScoreAmount )
self.StatFile:write(
'"' .. self.RunID .. '"' .. ',' ..
'' .. ScoreTime .. '' .. ',' ..
'"' .. PlayerName .. '"' .. ',' ..
'"' .. ScoreType .. '"' .. ',' ..
'"' .. PlayerUnitCoalition .. '"' .. ',' ..
'"' .. PlayerUnitCategory .. '"' .. ',' ..
'"' .. PlayerUnitType .. '"' .. ',' ..
'"' .. PlayerUnitName .. '"' .. ',' ..
'"' .. TargetUnitCoalition .. '"' .. ',' ..
'"' .. TargetUnitCategory .. '"' .. ',' ..
'"' .. TargetUnitType .. '"' .. ',' ..
'"' .. TargetUnitName .. '"' .. ',' ..
'' .. ScoreTimes .. '' .. ',' ..
'' .. ScoreAmount
)
self.StatFile:write( "\n" )
end
end

View File

@ -96,7 +96,8 @@ ESCORT = {
FollowScheduler = nil,
ReportTargets = true,
OptionROE = AI.Option.Air.val.ROE.OPEN_FIRE,
OptionReactionOnThreat = AI.Option.Air.val.REACTION_ON_THREAT.ALLOW_ABORT_MISSION
OptionReactionOnThreat = AI.Option.Air.val.REACTION_ON_THREAT.ALLOW_ABORT_MISSION,
TaskPoints = {}
}
--- MENUPARAM type
@ -222,10 +223,11 @@ function ESCORT:New( EscortClient, EscortGroup, EscortName, EscortBriefing )
-- Initialize the EscortGroup
EscortGroup:OptionROTVertical()
EscortGroup:OptionROEOpenFire()
self.EscortGroup:WayPointInitialize(1)
self.EscortGroup:OptionROTVertical()
self.EscortGroup:OptionROEOpenFire()
EscortGroup:SetTask( EscortGroup:TaskRoute( TaskPoints ) )
self.ReportTargetsScheduler = routines.scheduleFunction( self._ReportTargetsScheduler, { self }, timer.getTime() + 1, 30 )
@ -312,7 +314,7 @@ function ESCORT:JoinUpAndFollow( EscortGroup, EscortClient, Distance )
end
EscortGroup:OptionROEHoldFire()
EscortGroup:OptionROTVertical()
EscortGroup:OptionROTPassiveDefense()
self.CT1 = 0
self.GT1 = 0
@ -568,21 +570,13 @@ end
--- Registers the waypoints
-- @param #ESCORT self
-- @return #table
function ESCORT:RegisterRoute()
self:F()
local EscortGroup = self.EscortGroup -- Group#GROUP
local TaskPoints = EscortGroup:GetTaskRoute()
self:T( TaskPoints )
for TaskPointID, TaskPoint in pairs( TaskPoints ) do
self:T( { "TaskPoint:", TaskPointID, #TaskPoint.task.params.tasks+1, TaskPoint } )
if TaskPointID > 1 then
TaskPoint.task.params.tasks[#TaskPoint.task.params.tasks+1] = EscortGroup:TaskRegisterWayPoint( TaskPointID )
end
self:T( TaskPoint )
end
self:T( TaskPoints )

View File

@ -20,6 +20,7 @@ GROUP = {
GroupID = 0,
Controller = nil,
DCSGroup = nil,
WayPointFunctions = {},
}
--- A DCSGroup
@ -91,6 +92,85 @@ function GROUP:NewFromDCSUnit( DCSUnit )
return self
end
--- Retrieve the group mission and allow to place function hooks within the mission waypoint plan.
-- Use the method @{Group#GROUP:WayPointFunction} to define the hook functions for specific waypoints.
-- Use the method @{Group@GROUP:WayPointExecute) to start the execution of the new mission plan.
-- Note that when WayPointInitialize is called, the Mission of the group is RESTARTED!
-- @param #GROUP self
-- @param #number WayPoint
-- @return #GROUP
function GROUP:WayPointInitialize()
self.WayPoints = self:GetTaskRoute()
return self
end
--- Registers a waypoint function that will be executed when the group moves over the WayPoint.
-- @param #GROUP self
-- @param #number WayPoint The waypoint number. Note that the start waypoint on the route is WayPoint 1!
-- @param #number WayPointIndex When defining multiple WayPoint functions for one WayPoint, use WayPointIndex to set the sequence of actions.
-- @param #function WayPointFunction The waypoint function to be called when the group moves over the waypoint. The waypoint function takes variable parameters.
-- @return #GROUP
function GROUP:WayPointFunction( WayPoint, WayPointIndex, WayPointFunction, ... )
self:F( { WayPoint, WayPointIndex, WayPointFunction } )
table.insert( self.WayPoints[WayPoint].task.params.tasks, WayPointIndex )
self.WayPoints[WayPoint].task.params.tasks[WayPointIndex] = self:TaskFunction( WayPoint, WayPointIndex, WayPointFunction, arg )
return self
end
function GROUP:TaskFunction( WayPoint, WayPointIndex, FunctionString, FunctionArguments )
local DCSTask
local DCSScript = {}
DCSScript[#DCSScript+1] = "local MissionGroup = GROUP.FindGroup( ... ) "
DCSScript[#DCSScript+1] = FunctionString .. "( MissionGroup, " .. table.concat( FunctionArguments, "," ) .. ")"
DCSTask = self:TaskWrappedAction(
self:CommandDoScript(
table.concat( DCSScript )
), WayPointIndex
)
self:T( DCSTask )
return DCSTask
end
--- Executes the WayPoint plan.
-- The function gets a WayPoint parameter, that you can use to restart the mission at a specific WayPoint.
-- Note that when the WayPoint parameter is used, the new start mission waypoint of the group will be 1!
-- @param #GROUP self
-- @param #number WayPoint The WayPoint from where to execute the mission.
-- @param #WaitTime The amount seconds to wait before initiating the mission.
-- @return #GROUP
function GROUP:WayPointExecute( WayPoint, WaitTime )
if not WayPoint then
WayPoint = 1
end
-- When starting the mission from a certain point, the TaskPoints need to be deleted before the given WayPoint.
for TaskPointID = 1, WayPoint - 1 do
table.remove( self.WayPoints, 1 )
end
self:T( self.WayPoints )
self:SetTask( self:TaskRoute( self.WayPoints ), WaitTime )
return self
end
--- Gets the DCSGroup of the GROUP.
-- @param #GROUP self
-- @return DCSGroup#Group The DCSGroup.
@ -201,7 +281,7 @@ function GROUP:Destroy()
self:F( self.GroupName )
for Index, UnitData in pairs( self.DCSGroup:getUnits() ) do
self:CreateEventDead( timer.getTime(), UnitData )
self:CreateEventCrash( timer.getTime(), UnitData )
end
self.DCSGroup:destroy()
@ -386,12 +466,20 @@ end
--- Pushing Task on the queue from the group.
-- @param #GROUP self
-- @return Group#GROUP self
function GROUP:PushTask( DCSTask )
function GROUP:PushTask( DCSTask, WaitTime )
self:F()
local Controller = self:_GetController()
Controller:pushTask( DCSTask )
-- When a group SPAWNs, it takes about a second to get the group in the simulator. Setting tasks to unspawned groups provides unexpected results.
-- Therefore we schedule the functions to set the mission and options for the Group.
-- Controller:pushTask( DCSTask )
if not WaitTime then
Controller:pushTask( DCSTask )
else
routines.scheduleFunction( Controller.pushTask, { Controller, DCSTask }, timer.getTime() + WaitTime )
end
return self
end
@ -399,13 +487,20 @@ end
--- Clearing the Task Queue and Setting the Task on the queue from the group.
-- @param #GROUP self
-- @return Group#GROUP self
function GROUP:SetTask( DCSTask )
function GROUP:SetTask( DCSTask, WaitTime )
self:F( { DCSTask } )
local Controller = self:_GetController()
Controller:setTask( DCSTask )
-- When a group SPAWNs, it takes about a second to get the group in the simulator. Setting tasks to unspawned groups provides unexpected results.
-- Therefore we schedule the functions to set the mission and options for the Group.
-- Controller.setTask( Controller, DCSTask )
if not WaitTime then
WaitTime = 1
end
routines.scheduleFunction( Controller.setTask, { Controller, DCSTask }, timer.getTime() + WaitTime )
return self
end
@ -480,7 +575,7 @@ end
-- @param #GROUP self
-- @param DCSCommand#Command DCSCommand
-- @return DCSTask#Task
function GROUP:TaskWrappedAction( DCSCommand )
function GROUP:TaskWrappedAction( DCSCommand, Index )
self:F( { DCSCommand } )
local DCSTaskWrappedAction
@ -488,9 +583,11 @@ function GROUP:TaskWrappedAction( DCSCommand )
DCSTaskWrappedAction = {
id = "WrappedAction",
enabled = true,
number = Index,
auto = false,
params = {
action = DCSCommand
}
action = DCSCommand,
},
}
self:T( { DCSTaskWrappedAction } )
@ -593,10 +690,15 @@ end
-- @param Zone#ZONE Zone The zone where to land.
-- @param #number Duration The duration in seconds to stay on the ground.
-- @return #GROUP self
function GROUP:TaskLandAtZone( Zone, Duration )
self:F( { self.GroupName, Zone, Duration } )
function GROUP:TaskLandAtZone( Zone, Duration, RandomPoint )
self:F( { self.GroupName, Zone, Duration, RandomPoint } )
local Point = Zone:GetPointVec2()
local Point
if RandomPoint then
Point = Zone:GetRandomPointVec2()
else
Point = Zone:GetPointVec2()
end
local DCSTask = self:TaskLandAtVec2( Point, Duration )
@ -813,26 +915,7 @@ function GROUP:Route( GoPoints )
return self
end
--- Registers a Task to be executed at a waypoint.
-- @param #GROUP self
-- @param #number WayPoint The waypoint where to execute the task.
-- @return #string The task.
function GROUP:TaskRegisterWayPoint( WayPoint )
local DCSTask
DCSTask = self:TaskWrappedAction(
self:CommandDoScript(
"local MissionGroup = GROUP:New( ... ) " ..
"env.info( MissionGroup:GetName() ) " ..
"MissionGroup:RegisterWayPoint ( " .. WayPoint .. " )"
)
)
self:T( DCSTask )
return DCSTask
end
--- Route the group to a given zone.
-- The group final destination point can be randomized.
@ -860,7 +943,7 @@ function GROUP:TaskRouteToZone( Zone, Randomize, Speed, Formation )
local ZonePoint
if Randomize then
ZonePoint = Zone:GetRandomPoint()
ZonePoint = Zone:GetRandomPointVec2()
else
ZonePoint = Zone:GetPointVec2()
end
@ -901,8 +984,8 @@ function GROUP:CommandDoScript( DoScript )
local DCSDoScript = {
id = "Script",
params = {
command = DoScript
}
command = DoScript,
},
}
self:T( DCSDoScript )
@ -1260,7 +1343,7 @@ end
function GROUP:Message( Message, Duration )
self:F( { Message, Duration } )
return MESSAGE:New( Message, self:GetCallsign() .. "(" .. self:GetTypeName() .. ")", Duration, self:GetClassNameAndID() )
return MESSAGE:New( Message, self:GetCallsign() .. " (" .. self:GetTypeName() .. ")", Duration, self:GetClassNameAndID() )
end
--- Send a message to all coalitions.
@ -1308,12 +1391,6 @@ function GROUP:MessageToClient( Message, Duration, Client )
self:Message( Message, Duration ):ToClient( Client )
end
function GROUP:RegisterWayPoint( WayPoint )
self:Message( "Moving over wayPoint " .. WayPoint, 20 ):ToAll()
self.WayPoint = WayPoint
end

View File

@ -444,6 +444,12 @@ function SPAWN:SpawnWithIndex( SpawnIndex )
else
self:T( self.SpawnGroups[self.SpawnIndex].SpawnTemplate )
self.SpawnGroups[self.SpawnIndex].Group = _Database:Spawn( self.SpawnGroups[self.SpawnIndex].SpawnTemplate )
-- If there is a SpawnFunction hook defined, call it.
if self.SpawnFunctionHook then
self.SpawnFunctionHook( self.SpawnGroups[self.SpawnIndex].Group, unpack( self.SpawnFunctionArguments ) )
end
-- TODO: Need to fix this by putting an "R" in the name of the group when the group repeats.
--if self.SpawnRepeat then
-- _Database:SetStatusGroup( SpawnTemplate.name, "ReSpawn" )
--end
@ -482,7 +488,7 @@ function SPAWN:SpawnScheduled( SpawnTime, SpawnTimeVariation )
self.AliveFactor = 1 --
self.SpawnLowTimer = 0
self.SpawnHighTimer = 0
if SpawnTime ~= nil and SpawnTimeVariation ~= nil then
self.SpawnLowTimer = SpawnTime - SpawnTime / 2 * SpawnTimeVariation
self.SpawnHighTimer = SpawnTime + SpawnTime / 2 * SpawnTimeVariation
@ -494,6 +500,25 @@ function SPAWN:SpawnScheduled( SpawnTime, SpawnTimeVariation )
return self
end
--- Allows to place a CallFunction hook when a new group spawns.
-- The provided function will be called when a new group is spawned, including its given parameters.
-- The first parameter of the SpawnFunction is the @{Group#GROUP} that was spawned.
-- @param #SPAWN self
-- @param #function SpawnFunctionHook The function to be called when a group spawns.
-- @param SpawnFunctionArguments A random amount of arguments to be provided to the function when the group spawns.
-- @return #SPAWN
function SPAWN:SpawnFunction( SpawnFunctionHook, ... )
self:F( SpawnFunction )
self.SpawnFunctionHook = SpawnFunctionHook
self.SpawnFunctionArguments = {}
if arg then
self.SpawnFunctionArguments = arg
end
return self
end
--- Will start the spawning scheduler.
@ -637,7 +662,7 @@ function SPAWN:SpawnInZone( Zone, SpawnIndex )
self:T( 'SpawnTemplate.units['..UnitID..'].x = ' .. SpawnTemplate.units[UnitID].x .. ', SpawnTemplate.units['..UnitID..'].y = ' .. SpawnTemplate.units[UnitID].y )
end
local SpawnPos = Zone:GetRandomPoint()
local SpawnPos = Zone:GetRandomPointVec2()
local Point = {}
Point.type = "Turning Point"
Point.x = SpawnPos.x
@ -1216,8 +1241,8 @@ function SPAWN:_SpawnCleanUpScheduler()
while SpawnGroup do
if SpawnGroup:AllOnGround() and SpawnGroup:GetMaxVelocity() < 1 then
if not self.SpanUwnCleanUpTimeStamps[SpawnGroup:GetName()] then
self.SpawnCleapTimeStamps[SpawnGroup:GetName()] = timer.getTime()
if not self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] then
self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] = timer.getTime()
else
if self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] + self.SpawnCleanUpInterval < timer.getTime() then
self:T( { "CleanUp Scheduler:", "Cleaning:", SpawnGroup } )

View File

@ -40,7 +40,7 @@ function ZONE:GetPointVec2()
return Point
end
function ZONE:GetRandomPoint()
function ZONE:GetRandomPointVec2()
self:F( self.ZoneName )
local Point = {}

View File

@ -4,26 +4,22 @@ Include.File( "Spawn" )
Include.File( "Escort" )
do
do
local function EventAliveHelicopter( Client )
local EscortGroupHeli1 = SpawnEscortHeli:ReSpawn(1)
local EscortHeli1 = ESCORT:New( Client, EscortGroupHeli1, "Escort Alpha" )
local EscortGroupPlane = SpawnEscortPlane:ReSpawn(1)
local EscortPlane = ESCORT:New( Client, EscortGroupPlane, "Escort Test Plane" )
local EscortGroupGround = SpawnEscortGround:ReSpawn(1)
local EscortGround = ESCORT:New( Client, EscortGroupGround, "Test Ground" )
end
local function EventAlivePlane( Client )
local EscortGroupPlane = SpawnEscortPlane:ReSpawn(1)
local EscortPlane = ESCORT:New( Client, EscortGroupPlane, "Escort Test Plane" )
local EscortGroupPlane2 = SpawnEscortPlane:ReSpawn(1)
local EscortPlane2 = ESCORT:New( Client, EscortGroupPlane2, "Escort Test Plane" )
local EscortGroupGround = SpawnEscortGround:ReSpawn(1)
local EscortGround = ESCORT:New( Client, EscortGroupGround, "Test Ground" )
local EscortGroupGround2 = SpawnEscortGround:ReSpawn(1)
local EscortGround2 = ESCORT:New( Client, EscortGroupGround2, "Test Ground" )
local EscortGroupShip = SpawnEscortShip:ReSpawn(1)
local EscortShip = ESCORT:New( Client, EscortGroupShip, "Test Ship" )
local EscortGroupShip2 = SpawnEscortShip:ReSpawn(1)
local EscortShip2 = ESCORT:New( Client, EscortGroupShip2, "Test Ship" )
end
SpawnEscortHeli = SPAWN:New( "Escort Helicopter" )