Patch 2.2.2: Updated Scoring

* Disabled the logic of Fratricide until a DCS bug gets fixed by ED.
There is no workaround possible. Units containing a player cannot be
destroyed using Unit:destroy() API in multi player when the player is
seated in a Unit from a Client connected PC to the Server.
* By default, hit messages are disabled. They can be enabled by using
SCORING:SetMessagesHit().
This commit is contained in:
FlightControl_Master
2017-10-09 13:10:42 +02:00
parent 7c26e88345
commit 305cb3092e
17 changed files with 432 additions and 247 deletions

View File

@@ -112,7 +112,7 @@
<hr/>
<p>AI PATROL classes makes AI Controllables execute an Patrol.</p>
<p>AI PATROL classes makes AI Groups execute an Patrol.</p>
@@ -158,50 +158,50 @@
<td class="summary">
<h1>AI<em>A2A</em>PATROL class, extends <a href="Fsm.html##(FSM_CONTROLLABLE)">Fsm#FSM_CONTROLLABLE</a></h1>
<p>The AI<em>A2A</em>PATROL class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.</p>
<p>The AI<em>A2A</em>PATROL class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Group.html">Group</a> or <a href="Group.html">Group</a>.</p>
</td>
</tr>
</table>
<h2><a id="#(AI_A2A_PATROL)">Type <code>AI_A2A_PATROL</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).New">AI_A2A_PATROL:New(AIGroup, PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).New">AI_A2A_PATROL:New(AIPatrol, PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType)</a></td>
<td class="summary">
<p>Creates a new AI<em>A2A</em>PATROL object</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnAfterPatrol">AI_A2A_PATROL:OnAfterPatrol(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnAfterPatrol">AI_A2A_PATROL:OnAfterPatrol(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>OnAfter Transition Handler for Event Patrol.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnAfterRoute">AI_A2A_PATROL:OnAfterRoute(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnAfterRoute">AI_A2A_PATROL:OnAfterRoute(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>OnAfter Transition Handler for Event Route.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnBeforePatrol">AI_A2A_PATROL:OnBeforePatrol(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnBeforePatrol">AI_A2A_PATROL:OnBeforePatrol(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>OnBefore Transition Handler for Event Patrol.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnBeforeRoute">AI_A2A_PATROL:OnBeforeRoute(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnBeforeRoute">AI_A2A_PATROL:OnBeforeRoute(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>OnBefore Transition Handler for Event Route.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnEnterPatrolling">AI_A2A_PATROL:OnEnterPatrolling(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnEnterPatrolling">AI_A2A_PATROL:OnEnterPatrolling(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>OnEnter Transition Handler for State Patrolling.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnLeavePatrolling">AI_A2A_PATROL:OnLeavePatrolling(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).OnLeavePatrolling">AI_A2A_PATROL:OnLeavePatrolling(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>OnLeave Transition Handler for State Patrolling.</p>
</td>
@@ -243,7 +243,7 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).PatrolRoute">AI_A2A_PATROL.PatrolRoute(AIGroup, Fsm)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).PatrolRoute">AI_A2A_PATROL.PatrolRoute(AIPatrol, Fsm)</a></td>
<td class="summary">
</td>
@@ -255,7 +255,7 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).Resume">AI_A2A_PATROL.Resume(AIGroup)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).Resume">AI_A2A_PATROL.Resume(AIPatrol)</a></td>
<td class="summary">
</td>
@@ -291,13 +291,13 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).onafterPatrol">AI_A2A_PATROL:onafterPatrol(Controllable, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).onafterPatrol">AI_A2A_PATROL:onafterPatrol(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>Defines a new patrol route using the <a href="Process_PatrolZone.html">Process_PatrolZone</a> parameters and settings.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).onafterRoute">AI_A2A_PATROL:onafterRoute(AIGroup, From, Event, To)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_A2A_PATROL).onafterRoute">AI_A2A_PATROL:onafterRoute(AIPatrol, From, Event, To)</a></td>
<td class="summary">
<p>Defines a new patrol route using the <a href="Process_PatrolZone.html">Process_PatrolZone</a> parameters and settings.</p>
</td>
@@ -317,7 +317,7 @@
<h1>AI<em>A2A</em>PATROL class, extends <a href="Fsm.html##(FSM_CONTROLLABLE)">Fsm#FSM_CONTROLLABLE</a></h1>
<p>The AI<em>A2A</em>PATROL class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.</p>
<p>The AI<em>A2A</em>PATROL class implements the core functions to patrol a <a href="Zone.html">Zone</a> by an AI <a href="Group.html">Group</a> or <a href="Group.html">Group</a>.</p>
@@ -426,7 +426,7 @@ Use the method <a href="##(AI_A2A_PATROL).ManageFuel">AI<em>A2A</em>PATROL.Manag
<h2>7. Manage "damage" behaviour of the AI in the AI<em>A2A</em>PATROL</h2>
<p>When the AI is damaged, it is required that a new AIControllable is started. However, damage cannon be foreseen early on.
<p>When the AI is damaged, it is required that a new Patrol is started. However, damage cannon be foreseen early on.
Therefore, when the damage treshold is reached, the AI will return immediately to the home base (RTB).
Use the method <a href="##(AI_A2A_PATROL).ManageDamage">AI<em>A2A</em>PATROL.ManageDamage</a>() to have this proces in place.</p>
@@ -445,7 +445,7 @@ Use the method <a href="##(AI_A2A_PATROL).ManageDamage">AI<em>A2A</em>PATROL.Man
<dt>
<a id="#(AI_A2A_PATROL).New" >
<strong>AI_A2A_PATROL:New(AIGroup, PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType)</strong>
<strong>AI_A2A_PATROL:New(AIPatrol, PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType)</strong>
</a>
</dt>
<dd>
@@ -456,7 +456,7 @@ Use the method <a href="##(AI_A2A_PATROL).ManageDamage">AI<em>A2A</em>PATROL.Man
<ul>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIGroup </em></code>: </p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>: </p>
</li>
<li>
@@ -480,13 +480,13 @@ The highest altitude in meters where to execute the patrol.</p>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Speed)">Dcs.DCSTypes#Speed</a> PatrolMinSpeed </em></code>:
The minimum speed of the <a href="Controllable.html">Controllable</a> in km/h.</p>
The minimum speed of the <a href="Group.html">Group</a> in km/h.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Speed)">Dcs.DCSTypes#Speed</a> PatrolMaxSpeed </em></code>:
The maximum speed of the <a href="Controllable.html">Controllable</a> in km/h.</p>
The maximum speed of the <a href="Group.html">Group</a> in km/h.</p>
</li>
<li>
@@ -502,7 +502,7 @@ The altitude type ("RADIO"=="AGL", "BARO"=="ASL"). Defaults to RADIO</p>
self</p>
<h3>Usage:</h3>
<pre class="example"><code>-- Define a new AI_A2A_PATROL Object. This PatrolArea will patrol an AIControllable within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
<pre class="example"><code>-- Define a new AI_A2A_PATROL Object. This PatrolArea will patrol a Group within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
PatrolZone = ZONE:New( 'PatrolZone' )
PatrolSpawn = SPAWN:New( 'Patrol Group' )
PatrolArea = AI_A2A_PATROL:New( PatrolZone, 3000, 6000, 600, 900 )</code></pre>
@@ -513,7 +513,7 @@ PatrolArea = AI_A2A_PATROL:New( PatrolZone, 3000, 6000, 600, 900 )</code></pre>
<dt>
<a id="#(AI_A2A_PATROL).OnAfterPatrol" >
<strong>AI_A2A_PATROL:OnAfterPatrol(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:OnAfterPatrol(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -524,8 +524,8 @@ PatrolArea = AI_A2A_PATROL:New( PatrolZone, 3000, 6000, 600, 900 )</code></pre>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -553,7 +553,7 @@ The To State string.</p>
<dt>
<a id="#(AI_A2A_PATROL).OnAfterRoute" >
<strong>AI_A2A_PATROL:OnAfterRoute(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:OnAfterRoute(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -564,8 +564,8 @@ The To State string.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -593,7 +593,7 @@ The To State string.</p>
<dt>
<a id="#(AI_A2A_PATROL).OnBeforePatrol" >
<strong>AI_A2A_PATROL:OnBeforePatrol(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:OnBeforePatrol(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -604,8 +604,8 @@ The To State string.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -638,7 +638,7 @@ Return false to cancel Transition.</p>
<dt>
<a id="#(AI_A2A_PATROL).OnBeforeRoute" >
<strong>AI_A2A_PATROL:OnBeforeRoute(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:OnBeforeRoute(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -649,8 +649,8 @@ Return false to cancel Transition.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -683,7 +683,7 @@ Return false to cancel Transition.</p>
<dt>
<a id="#(AI_A2A_PATROL).OnEnterPatrolling" >
<strong>AI_A2A_PATROL:OnEnterPatrolling(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:OnEnterPatrolling(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -694,8 +694,8 @@ Return false to cancel Transition.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -723,7 +723,7 @@ The To State string.</p>
<dt>
<a id="#(AI_A2A_PATROL).OnLeavePatrolling" >
<strong>AI_A2A_PATROL:OnLeavePatrolling(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:OnLeavePatrolling(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -734,8 +734,8 @@ The To State string.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -853,7 +853,7 @@ Return false to cancel Transition.</p>
<dt>
<a id="#(AI_A2A_PATROL).PatrolRoute" >
<strong>AI_A2A_PATROL.PatrolRoute(AIGroup, Fsm)</strong>
<strong>AI_A2A_PATROL.PatrolRoute(AIPatrol, Fsm)</strong>
</a>
</dt>
<dd>
@@ -864,9 +864,9 @@ Return false to cancel Transition.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIGroup </em></code>:
This statis method is called from the route path within the last task at the last waaypoint of the Controllable.
Note that this method is required, as triggers the next route when patrolling for the Controllable.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
This statis method is called from the route path within the last task at the last waaypoint of the AIPatrol.
Note that this method is required, as triggers the next route when patrolling for the AIPatrol.</p>
</li>
<li>
@@ -895,7 +895,7 @@ Note that this method is required, as triggers the next route when patrolling fo
<dt>
<a id="#(AI_A2A_PATROL).Resume" >
<strong>AI_A2A_PATROL.Resume(AIGroup)</strong>
<strong>AI_A2A_PATROL.Resume(AIPatrol)</strong>
</a>
</dt>
<dd>
@@ -906,7 +906,7 @@ Note that this method is required, as triggers the next route when patrolling fo
<ul>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIGroup </em></code>: </p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>: </p>
</li>
</ul>
@@ -974,13 +974,13 @@ self</p>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Speed)">Dcs.DCSTypes#Speed</a> PatrolMinSpeed </em></code>:
The minimum speed of the <a href="Controllable.html">Controllable</a> in km/h.</p>
The minimum speed of the <a href="Group.html">Group</a> in km/h.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Speed)">Dcs.DCSTypes#Speed</a> PatrolMaxSpeed </em></code>:
The maximum speed of the <a href="Controllable.html">Controllable</a> in km/h.</p>
The maximum speed of the <a href="Group.html">Group</a> in km/h.</p>
</li>
</ul>
@@ -1039,7 +1039,7 @@ The delay in seconds.</p>
<dt>
<a id="#(AI_A2A_PATROL).onafterPatrol" >
<strong>AI_A2A_PATROL:onafterPatrol(Controllable, From, Event, To)</strong>
<strong>AI_A2A_PATROL:onafterPatrol(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -1050,8 +1050,8 @@ The delay in seconds.</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group Object managed by the FSM.</p>
</li>
<li>
@@ -1084,7 +1084,7 @@ self</p>
<dt>
<a id="#(AI_A2A_PATROL).onafterRoute" >
<strong>AI_A2A_PATROL:onafterRoute(AIGroup, From, Event, To)</strong>
<strong>AI_A2A_PATROL:onafterRoute(AIPatrol, From, Event, To)</strong>
</a>
</dt>
<dd>
@@ -1095,8 +1095,8 @@ self</p>
<ul>
<li>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIGroup </em></code>:
The AIGroup managed by the FSM.</p>
<p><code><em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a> AIPatrol </em></code>:
The Group managed by the FSM.</p>
</li>
<li>