mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Final updates
This commit is contained in:
@@ -70,23 +70,22 @@
|
||||
<div id="content">
|
||||
<h1>Module <code>AI_Balancer</code></h1>
|
||||
|
||||
<p>Single-Player:Yes / Mulit-Player:Yes / AI:Yes / Human:No / Types:All -- AI Balancing will replace in multi player missions
|
||||
<p>Single-Player:<strong>No</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <strong>AI Balancing will replace in multi player missions
|
||||
non-occupied human slots with AI groups, in order to provide an engaging simulation environment,
|
||||
even when there are hardly any players in the mission.</p>
|
||||
|
||||
|
||||
even when there are hardly any players in the mission.</strong></p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Balancer\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class, extends <a href="Core.Fsm.html##(FSM_SET)">Core.Fsm#FSM_SET</a></h1>
|
||||
|
||||
<p>The <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class monitors and manages as many replacement AI groups as there are
|
||||
CLIENTS in a SET<em>CLIENT collection, which are not occupied by human players.
|
||||
In other words, use AI</em>BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.</p>
|
||||
CLIENTS in a SET_CLIENT collection, which are not occupied by human players.</p>
|
||||
|
||||
|
||||
<p>In other words, use AI_BALANCER to simulate human behaviour by spawning in replacement AI in multi player missions.</p>
|
||||
|
||||
<p>The parent class <a href="Core.Fsm.html##(FSM_SET)">Core.Fsm#FSM_SET</a> manages the functionality to control the Finite State Machine (FSM).
|
||||
The mission designer can tailor the behaviour of the AI_BALANCER, by defining event and state transition methods.
|
||||
@@ -157,6 +156,8 @@ otherwise the AI</em>BALANCER will trigger a <strong>Destroy</strong> event, and
|
||||
|
||||
<p>Hereby the change log:</p>
|
||||
|
||||
<p>2017-01-17: There is still a problem with AI being destroyed, but not respawned. Need to check further upon that.</p>
|
||||
|
||||
<p>2017-01-08: AI_BALANCER:<strong>InitSpawnInterval( Earliest, Latest )</strong> added.</p>
|
||||
|
||||
<hr/>
|
||||
@@ -166,8 +167,8 @@ otherwise the AI</em>BALANCER will trigger a <strong>Destroy</strong> event, and
|
||||
<h3>Contributions:</h3>
|
||||
|
||||
<ul>
|
||||
<li><p><strong><a href="https://forums.eagle.ru/member.php?u=112075">Dutch_Baron</a></strong>: Working together with James has resulted in the creation of the AI_BALANCER class. James has shared his ideas on balancing AI with air units, and together we made a first design which you can use now :-)</p></li>
|
||||
<li><p><strong>SNAFU</strong>: Had a couple of mails with the guys to validate, if the same concept in the GCI/CAP script could be reworked within MOOSE. None of the script code has been used however within the new AI_BALANCER moose class.</p></li>
|
||||
<li><strong><a href="https://forums.eagle.ru/member.php?u=112075">Dutch_Baron</a></strong>: Working together with James has resulted in the creation of the AI_BALANCER class. James has shared his ideas on balancing AI with air units, and together we made a first design which you can use now :-)</li>
|
||||
<li><strong>SNAFU</strong>: Had a couple of mails with the guys to validate, if the same concept in the GCI/CAP script could be reworked within MOOSE. None of the script code has been used however within the new AI_BALANCER moose class.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Authors:</h3>
|
||||
|
||||
@@ -74,9 +74,6 @@
|
||||
|
||||
<p><img src="..\Presentations\AI_Cap\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
@@ -85,6 +82,8 @@
|
||||
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> 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>
|
||||
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
|
||||
|
||||
|
||||
|
||||
<p><img src="..\Presentations\AI_Cap\Dia3.JPG" alt="Process"/></p>
|
||||
|
||||
<p>The AI<em>CAP</em>ZONE is assigned a @(Group) and this must be done before the AI<em>CAP</em>ZONE process can be started using the <strong>Start</strong> event.</p>
|
||||
|
||||
@@ -74,9 +74,6 @@
|
||||
|
||||
<p><img src="..\Presentations\AI_Cas\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
@@ -84,7 +81,9 @@
|
||||
|
||||
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI.AI_Patrol.html##(AI_PATROL_ZONE)">AI.AI<em>Patrol#AI</em>PATROL_ZONE</a>, inheriting its methods and behaviour.</p>
|
||||
|
||||
<p>The <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class implements the core functions to provide Close Air Support in an Engage <a href="Zone.html">Zone</a> by an AIR <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.
|
||||
|
||||
<p>
|
||||
The <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class implements the core functions to provide Close Air Support in an Engage <a href="Zone.html">Zone</a> by an AIR <a href="Controllable.html">Controllable</a> or <a href="Group.html">Group</a>.
|
||||
The AI<em>CAS</em>ZONE runs a process. It holds an AI in a Patrol Zone and when the AI is commanded to engage, it will fly to an Engage Zone.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Cas\Dia3.JPG" alt="HoldAndEngage"/></p>
|
||||
|
||||
@@ -74,9 +74,6 @@
|
||||
|
||||
<p><img src="..\Presentations\AI_Patrol\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
@@ -84,6 +81,8 @@
|
||||
|
||||
<p>The <a href="##(AI_PATROL_ZONE)">#AI<em>PATROL</em>ZONE</a> 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><img src="..\Presentations\AI_Patrol\Dia3.JPG" alt="Process"/></p>
|
||||
|
||||
<p>The AI<em>PATROL</em>ZONE is assigned a @(Group) and this must be done before the AI<em>PATROL</em>ZONE process can be started using the <strong>Start</strong> event.</p>
|
||||
@@ -192,6 +191,17 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1><strong>OPEN ISSUES</strong></h1>
|
||||
|
||||
<p>2017-01-17: When Spawned AI is located at an airbase, it will be routed first back to the airbase after take-off.</p>
|
||||
|
||||
<p>2016-01-17:
|
||||
-- Fixed problem with AI returning to base too early and unexpected.
|
||||
-- ReSpawning of AI will reset the AI_PATROL and derived classes.
|
||||
-- Checked the correct workings of SCHEDULER, and it DOES work correctly.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1><strong>API CHANGE HISTORY</strong></h1>
|
||||
|
||||
<p>The underlying change log documents the API changes. Please read this carefully. The following notation is used:</p>
|
||||
@@ -203,7 +213,9 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
|
||||
|
||||
<p>Hereby the change log:</p>
|
||||
|
||||
<p>2016-01-15: Complete revision. AI<em>PATROL</em>ZONE is the base class for other AI_PATROL like classes.</p>
|
||||
<p>2017-01-17: Rename of class: <strong>AI_PATROL_ZONE</strong> is the new name for the old <em>AI_PATROLZONE</em>.</p>
|
||||
|
||||
<p>2017-01-15: Complete revision. AI<em>PATROL</em>ZONE is the base class for other AI_PATROL like classes.</p>
|
||||
|
||||
<p>2016-09-01: Initial class and API.</p>
|
||||
|
||||
@@ -231,12 +243,6 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
|
||||
<td class="name" nowrap="nowrap"><a href="#AI_PATROL_ZONE">AI_PATROL_ZONE</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="#_NewPatrolRoute">_NewPatrolRoute(AIControllable)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -540,6 +546,12 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
|
||||
<td class="name" nowrap="nowrap"><a href="##(AI_PATROL_ZONE).Status">AI_PATROL_ZONE:Status()</a></td>
|
||||
<td class="summary">
|
||||
<p>Synchronous Event Trigger for Event Status.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(AI_PATROL_ZONE)._NewPatrolRoute">AI_PATROL_ZONE._NewPatrolRoute(AIControllable, self)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -635,27 +647,6 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="_NewPatrolRoute" >
|
||||
<strong>_NewPatrolRoute(AIControllable)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> AIControllable </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<h2><a id="#(AI_Patrol)" >Type <code>AI_Patrol</code></a></h2>
|
||||
@@ -2001,6 +1992,34 @@ self</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(AI_PATROL_ZONE)._NewPatrolRoute" >
|
||||
<strong>AI_PATROL_ZONE._NewPatrolRoute(AIControllable, self)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> AIControllable </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>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> self </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(AI_PATROL_ZONE).__Detect" >
|
||||
<strong>AI_PATROL_ZONE:__Detect(Delay)</strong>
|
||||
</a>
|
||||
|
||||
@@ -428,6 +428,12 @@ Use the following Zone validation methods on the group:</p>
|
||||
<td class="name" nowrap="nowrap"><a href="##(GROUP).GroupName">GROUP.GroupName</a></td>
|
||||
<td class="summary">
|
||||
<p>The name of the group.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(GROUP).InAir">GROUP:InAir()</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns true if the first unit of the GROUP is in the air.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -482,6 +488,12 @@ Use the following Zone validation methods on the group:</p>
|
||||
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsShip">GROUP:IsShip()</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns if the DCS Group contains Ships.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(GROUP).OnReSpawn">GROUP:OnReSpawn(ReSpawnFunction)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1166,6 +1178,34 @@ Current Vec3 of the first DCS Unit of the GROUP.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(GROUP).InAir" >
|
||||
<strong>GROUP:InAir()</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Returns true if the first unit of the GROUP is in the air.</p>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
<p><em>#boolean:</em>
|
||||
true if in the first unit of the group is in the air.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><em>#nil:</em>
|
||||
The GROUP is not existing or not alive. </p>
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(GROUP).IsAir" >
|
||||
<strong>GROUP:IsAir()</strong>
|
||||
</a>
|
||||
@@ -1361,6 +1401,27 @@ true if DCS Group contains Ships.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(GROUP).OnReSpawn" >
|
||||
<strong>GROUP:OnReSpawn(ReSpawnFunction)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em> ReSpawnFunction </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(GROUP).Register" >
|
||||
<strong>GROUP:Register(GroupName)</strong>
|
||||
</a>
|
||||
|
||||
@@ -543,6 +543,12 @@ In order to keep the credibility of the the author, I want to emphasize that the
|
||||
<h2><a id="#(POINT_VEC3.RoutePointAction)">Type <code>POINT_VEC3.RoutePointAction</code></a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.RoutePointAction).FromParkingArea">POINT_VEC3.RoutePointAction.FromParkingArea</a></td>
|
||||
<td class="summary">
|
||||
<p>"From Parking Area"</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.RoutePointAction).TurningPoint">POINT_VEC3.RoutePointAction.TurningPoint</a></td>
|
||||
<td class="summary">
|
||||
<p>"Turning Point"</p>
|
||||
@@ -563,6 +569,12 @@ In order to keep the credibility of the the author, I want to emphasize that the
|
||||
<h2><a id="#(POINT_VEC3.RoutePointType)">Type <code>POINT_VEC3.RoutePointType</code></a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.RoutePointType).TakeOffParking">POINT_VEC3.RoutePointType.TakeOffParking</a></td>
|
||||
<td class="summary">
|
||||
<p>"TakeOffParking"</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.RoutePointType).TurningPoint">POINT_VEC3.RoutePointType.TurningPoint</a></td>
|
||||
<td class="summary">
|
||||
<p>"Turning Point"</p>
|
||||
@@ -2099,6 +2111,19 @@ The new calculated POINT_VEC3.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(POINT_VEC3.RoutePointAction).FromParkingArea" >
|
||||
<strong>POINT_VEC3.RoutePointAction.FromParkingArea</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>"From Parking Area"</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(POINT_VEC3.RoutePointAction).TurningPoint" >
|
||||
<strong>POINT_VEC3.RoutePointAction.TurningPoint</strong>
|
||||
</a>
|
||||
@@ -2137,6 +2162,19 @@ The new calculated POINT_VEC3.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(POINT_VEC3.RoutePointType).TakeOffParking" >
|
||||
<strong>POINT_VEC3.RoutePointType.TakeOffParking</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>"TakeOffParking"</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(POINT_VEC3.RoutePointType).TurningPoint" >
|
||||
<strong>POINT_VEC3.RoutePointType.TurningPoint</strong>
|
||||
</a>
|
||||
|
||||
@@ -645,6 +645,9 @@ The POSITIONABLE is not existing or alive. </p>
|
||||
|
||||
<p>Returns true if the POSITIONABLE is in the air.</p>
|
||||
|
||||
|
||||
<p>Polymorphic, is overridden in GROUP and UNIT.</p>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
@@ -300,6 +300,12 @@ If you want to obtain the complete <strong>3D position</strong> including ori<72>
|
||||
<td class="name" nowrap="nowrap"><a href="##(UNIT).HasSensors">UNIT:HasSensors(...)</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns if the unit has sensors of a certain type.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(UNIT).InAir">UNIT:InAir()</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns true if the UNIT is in the air.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1086,6 +1092,34 @@ The DCS Unit is not existing or alive. </p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(UNIT).InAir" >
|
||||
<strong>UNIT:InAir()</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Returns true if the UNIT is in the air.</p>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
<p><em>#boolean:</em>
|
||||
true if in the air.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><em>#nil:</em>
|
||||
The UNIT is not existing or alive. </p>
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(UNIT).IsActive" >
|
||||
<strong>UNIT:IsActive()</strong>
|
||||
</a>
|
||||
|
||||
@@ -73,9 +73,19 @@
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="AI_Balancer.html">AI_Balancer</a></td>
|
||||
<td class="summary">
|
||||
<p>Single-Player:Yes / Mulit-Player:Yes / AI:Yes / Human:No / Types:All -- AI Balancing will replace in multi player missions
|
||||
<p>Single-Player:<strong>No</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <strong>AI Balancing will replace in multi player missions
|
||||
non-occupied human slots with AI groups, in order to provide an engaging simulation environment,
|
||||
even when there are hardly any players in the mission.</p>
|
||||
even when there are hardly any players in the mission.</strong></p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Balancer\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class, extends <a href="Core.Fsm.html##(FSM_SET)">Core.Fsm#FSM_SET</a></h1>
|
||||
|
||||
<p>The <a href="AI.AI_Balancer.html##(AI_BALANCER)">AI.AI<em>Balancer#AI</em>BALANCER</a> class monitors and manages as many replacement AI groups as there are
|
||||
CLIENTS in a SET_CLIENT collection, which are not occupied by human players.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -85,7 +95,13 @@ even when there are hardly any players in the mission.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Cap\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> class, extends <a href="AI.AI_Cap.html##(AI_PATROL_ZONE)">AI.AI<em>Cap#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p>The <a href="##(AI_CAP_ZONE)">#AI<em>CAP</em>ZONE</a> 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>
|
||||
and automatically engage any airborne enemies that are within a certain range or within a certain zone.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -95,7 +111,12 @@ even when there are hardly any players in the mission.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Cas\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> class, extends <a href="AI.AI_Patrol.html##(AI_PATROL_ZONE)">AI.AI<em>Patrol#AI</em>PATROL_ZONE</a></h1>
|
||||
|
||||
<p><a href="##(AI_CAS_ZONE)">#AI<em>CAS</em>ZONE</a> derives from the <a href="AI.AI_Patrol.html##(AI_PATROL_ZONE)">AI.AI<em>Patrol#AI</em>PATROL_ZONE</a>, inheriting its methods and behaviour.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -105,7 +126,12 @@ even when there are hardly any players in the mission.</p>
|
||||
|
||||
<p><img src="..\Presentations\AI_Patrol\Dia1.JPG" alt="Banner Image"/></p>
|
||||
|
||||
<p>Examples can be found in the test missions.</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<h1>1) <a href="##(AI_PATROL_ZONE)">#AI<em>PATROL</em>ZONE</a> class, extends <a href="Core.Fsm.html##(FSM_CONTROLLABLE)">Core.Fsm#FSM_CONTROLLABLE</a></h1>
|
||||
|
||||
<p>The <a href="##(AI_PATROL_ZONE)">#AI<em>PATROL</em>ZONE</a> 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>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user