* Renamed AIRBASE POLICE to ATC GROUND

* Fixed issues with landing and departing.
This commit is contained in:
FlightControl_Master
2017-10-26 11:13:11 +02:00
parent a8c5ccd4ad
commit 8002febf09
18 changed files with 1777 additions and 2524 deletions

View File

@@ -115,7 +115,7 @@
<div id="content">
<h1>Module <code>AirbasePolice</code></h1>
<p><strong>Functional</strong> -- The AIRBASEPOLICE classes monitor airbase traffic and regulate speed while taxiing.</p>
<p><strong>Functional</strong> -- The ATC_GROUND classes monitor airbase traffic and regulate speed while taxiing.</p>
@@ -132,27 +132,37 @@
<tr>
<td class="name" nowrap="nowrap"><a href="#AIRBASEPOLICE_BASE">AIRBASEPOLICE_BASE</a></td>
<td class="summary">
<p>Base class for AIRBASEPOLICE implementations.</p>
<p>Base class for ATC_GROUND implementations.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#AIRBASEPOLICE_CAUCASUS">AIRBASEPOLICE_CAUCASUS</a></td>
<td class="name" nowrap="nowrap"><a href="#ATC_GROUND_CAUCASUS">ATC_GROUND_CAUCASUS</a></td>
<td class="summary">
<h1>AIRBASEPOLICE_CAUCASUS, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<h1>ATC<em>GROUND</em>CAUCASUS, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<p><img src="..\Presentations\AIRBASEPOLICE\Dia1.JPG" alt="Banner Image"/></p>
<p><img src="..\Presentations\ATC_GROUND\Dia1.JPG" alt="Banner Image"/></p>
<p>The AIRBASEPOLICE_CAUCASUS class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The ATC<em>GROUND</em>CAUCASUS class monitors the speed of the airplanes at the airbase during taxi.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#AIRBASEPOLICE_NEVADA">AIRBASEPOLICE_NEVADA</a></td>
<td class="name" nowrap="nowrap"><a href="#ATC_GROUND_NEVADA">ATC_GROUND_NEVADA</a></td>
<td class="summary">
<h1>AIRBASEPOLICE_NEVADA, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<h1>ATC<em>GROUND</em>NEVADA, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<p><img src="..\Presentations\AIRBASEPOLICE\Dia1.JPG" alt="Banner Image"/></p>
<p><img src="..\Presentations\ATC_GROUND\Dia1.JPG" alt="Banner Image"/></p>
<p>The AIRBASEPOLICE_NEVADA class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The ATC<em>GROUND</em>NEVADA class monitors the speed of the airplanes at the airbase during taxi.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#ATC_GROUND_NORMANDY">ATC_GROUND_NORMANDY</a></td>
<td class="summary">
<h1>ATC<em>GROUND</em>NORMANDY, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<p><img src="..\Presentations\ATC_GROUND\Dia1.JPG" alt="Banner Image"/></p>
<p>The ATC<em>GROUND</em>NORMANDY class monitors the speed of the airplanes at the airbase during taxi.</p>
</td>
</tr>
<tr>
@@ -165,7 +175,31 @@
<h2><a id="#(AIRBASEPOLICE_BASE)">Type <code>AIRBASEPOLICE_BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).New">AIRBASEPOLICE_BASE:New(SetClient, Airbases, AirbaseList)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).AirbaseList">AIRBASEPOLICE_BASE.AirbaseList</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).AirbaseMonitor">AIRBASEPOLICE_BASE.AirbaseMonitor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).Airbases">AIRBASEPOLICE_BASE.Airbases</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).KickSpeed">AIRBASEPOLICE_BASE.KickSpeed</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).New">AIRBASEPOLICE_BASE:New(Airbases, AirbaseList)</a></td>
<td class="summary">
<p>Creates a new AIRBASEPOLICE_BASE object.</p>
</td>
@@ -174,6 +208,18 @@
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).SetClient">AIRBASEPOLICE_BASE.SetClient</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).SetKickSpeedKmph">AIRBASEPOLICE_BASE:SetKickSpeedKmph(KickSpeed)</a></td>
<td class="summary">
<p>Set the maximum speed in Kmph until the player gets kicked.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_BASE).SetKickSpeedMiph">AIRBASEPOLICE_BASE:SetKickSpeedMiph(KickSpeedMiph)</a></td>
<td class="summary">
<p>Set the maximum speed in Miph until the player gets kicked.</p>
</td>
</tr>
<tr>
@@ -190,22 +236,32 @@
</tr>
</table>
<h2><a id="#(AIRBASEPOLICE_CAUCASUS)">Type <code>AIRBASEPOLICE_CAUCASUS</code></a></h2>
<h2><a id="#(ATC_GROUND_CAUCASUS)">Type <code>ATC_GROUND_CAUCASUS</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_CAUCASUS).New">AIRBASEPOLICE_CAUCASUS:New(SetClient, AirbaseNames)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND_CAUCASUS).New">ATC_GROUND_CAUCASUS:New(AirbaseNames)</a></td>
<td class="summary">
<p>Creates a new AIRBASEPOLICE_CAUCASUS object.</p>
<p>Creates a new ATC<em>GROUND</em>CAUCASUS object.</p>
</td>
</tr>
</table>
<h2><a id="#(AIRBASEPOLICE_NEVADA)">Type <code>AIRBASEPOLICE_NEVADA</code></a></h2>
<h2><a id="#(ATC_GROUND_NEVADA)">Type <code>ATC_GROUND_NEVADA</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(AIRBASEPOLICE_NEVADA).New">AIRBASEPOLICE_NEVADA:New(SetClient, AirbaseNames)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND_NEVADA).New">ATC_GROUND_NEVADA:New(AirbaseNames)</a></td>
<td class="summary">
<p>Creates a new AIRBASEPOLICE_NEVADA object.</p>
<p>Creates a new ATC<em>GROUND</em>NEVADA object.</p>
</td>
</tr>
</table>
<h2><a id="#(ATC_GROUND_NORMANDY)">Type <code>ATC_GROUND_NORMANDY</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND_NORMANDY).New">ATC_GROUND_NORMANDY:New(AirbaseNames)</a></td>
<td class="summary">
<p>Creates a new ATC<em>GROUND</em>NORMANDY object.</p>
</td>
</tr>
</table>
@@ -221,25 +277,25 @@
</dt>
<dd>
<p>Base class for AIRBASEPOLICE implementations.</p>
<p>Base class for ATC_GROUND implementations.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(AIRBASEPOLICE_CAUCASUS)">#AIRBASEPOLICE_CAUCASUS</a></em>
<a id="AIRBASEPOLICE_CAUCASUS" >
<strong>AIRBASEPOLICE_CAUCASUS</strong>
<em><a href="##(ATC_GROUND_CAUCASUS)">#ATC_GROUND_CAUCASUS</a></em>
<a id="ATC_GROUND_CAUCASUS" >
<strong>ATC_GROUND_CAUCASUS</strong>
</a>
</dt>
<dd>
<h1>AIRBASEPOLICE_CAUCASUS, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<h1>ATC<em>GROUND</em>CAUCASUS, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<p><img src="..\Presentations\AIRBASEPOLICE\Dia1.JPG" alt="Banner Image"/></p>
<p><img src="..\Presentations\ATC_GROUND\Dia1.JPG" alt="Banner Image"/></p>
<p>The AIRBASEPOLICE_CAUCASUS class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The ATC<em>GROUND</em>CAUCASUS class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.</p>
@@ -253,30 +309,31 @@ faster than the maximum allowed speed, the pilot will be kicked.</p>
<h1>Airbases monitored</h1>
<p>The following airbases are monitored at the Caucasus region:</p>
<p>The following airbases are monitored at the Caucasus region.
Use the AIRBASE.Caucasus enumeration to select the airbases to be monitored.</p>
<ul>
<li>Anapa Vityazevo</li>
<li>Batumi</li>
<li>Beslan</li>
<li>Gelendzhik</li>
<li>Gudauta</li>
<li>Kobuleti</li>
<li>Krasnodar Center</li>
<li>Krasnodar Pashkovsky</li>
<li>Krymsk</li>
<li>Kutaisi</li>
<li>Maykop Khanskaya</li>
<li>Mineralnye Vody</li>
<li>Mozdok</li>
<li>Nalchik</li>
<li>Novorossiysk</li>
<li>Senaki Kolkhi</li>
<li>Sochi Adler</li>
<li>Soganlug</li>
<li>Sukhumi Babushara</li>
<li>Tbilisi Lochini</li>
<li>Vaziani</li>
<li>´AIRBASE.Caucasus.Anapa_Vityazevo´</li>
<li>´AIRBASE.Caucasus.Batumi´</li>
<li>´AIRBASE.Caucasus.Beslan´</li>
<li>´AIRBASE.Caucasus.Gelendzhik´</li>
<li>´AIRBASE.Caucasus.Gudauta´</li>
<li>´AIRBASE.Caucasus.Kobuleti´</li>
<li>´AIRBASE.Caucasus.Krasnodar_Center´</li>
<li>´AIRBASE.Caucasus.Krasnodar_Pashkovsky´</li>
<li>´AIRBASE.Caucasus.Krymsk´</li>
<li>´AIRBASE.Caucasus.Kutaisi´</li>
<li>´AIRBASE.Caucasus.Maykop_Khanskaya´</li>
<li>´AIRBASE.Caucasus.Mineralnye_Vody´</li>
<li>´AIRBASE.Caucasus.Mozdok´</li>
<li>´AIRBASE.Caucasus.Nalchik´</li>
<li>´AIRBASE.Caucasus.Novorossiysk´</li>
<li>´AIRBASE.Caucasus.Senaki_Kolkhi´</li>
<li>´AIRBASE.Caucasus.Sochi_Adler´</li>
<li>´AIRBASE.Caucasus.Soganlug´</li>
<li>´AIRBASE.Caucasus.Sukhumi_Babushara´</li>
<li>´AIRBASE.Caucasus.Tbilisi_Lochini´</li>
<li>´AIRBASE.Caucasus.Vaziani´</li>
</ul>
@@ -284,15 +341,15 @@ faster than the maximum allowed speed, the pilot will be kicked.</p>
<h2>In Single Player Missions</h2>
<p>AIRBASEPOLICE is fully functional in single player.</p>
<p>ATC_GROUND is fully functional in single player.</p>
<h2>In Multi Player Missions</h2>
<p>AIRBASEPOLICE is NOT functional in multi player, for client machines connecting to the server, running the mission.
<p>ATC<em>GROUND is NOT functional in multi player, for client machines connecting to the server, running the mission.
Due to a bug in DCS since release 1.5, the despawning of clients are not anymore working in multi player.
To work around this problem, a much better solution has been made, using the slot blocker script designed
by Ciribob. With the help of <strong>Ciribob</strong>, this script has been extended to also kick client players while in flight.
AIRBASEPOLICE is communicating with this modified script to kick players!</p>
ATC</em>GROUND is communicating with this modified script to kick players!</p>
<p>Install the file <strong>SimpleSlotBlockGameGUI.lua</strong> on the server, following the installation instructions described by Ciribob.</p>
@@ -300,37 +357,42 @@ AIRBASEPOLICE is communicating with this modified script to kick players!</p>
<h1>Script it!</h1>
<h2>1. AIRBASEPOLICE_CAUCASUS Constructor</h2>
<h2>1. ATC<em>GROUND</em>CAUCASUS Constructor</h2>
<p>Creates a new AIRBASEPOLICE_CAUCASUS object that will monitor pilots taxiing behaviour.</p>
<p>Creates a new ATC<em>GROUND</em>CAUCASUS object that will monitor pilots taxiing behaviour.</p>
<pre><code>-- This creates a new AIRBASEPOLICE_CAUCASUS object.
<pre><code>-- This creates a new ATC_GROUND_CAUCASUS object.
-- Create a set of all clients in the mission.
AllClientsSet = SET_CLIENT:New():FilterStart()
-- Monitor all the airbases.
AirbasePoliceCaucasus = ATC_GROUND_CAUCASUS:New()
-- Monitor specific airbases only.
ATC_Ground = ATC_GROUND_CAUCASUS:New(
{ AIRBASE.Caucasus.Gelendzhik,
AIRBASE.Caucasus.Krymsk
}
)
-- Monitor for these clients the airbases.
AirbasePoliceCaucasus = AIRBASEPOLICE_CAUCASUS:New( AllClientsSet )
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(AIRBASEPOLICE_NEVADA)">#AIRBASEPOLICE_NEVADA</a></em>
<a id="AIRBASEPOLICE_NEVADA" >
<strong>AIRBASEPOLICE_NEVADA</strong>
<em><a href="##(ATC_GROUND_NEVADA)">#ATC_GROUND_NEVADA</a></em>
<a id="ATC_GROUND_NEVADA" >
<strong>ATC_GROUND_NEVADA</strong>
</a>
</dt>
<dd>
<h1>AIRBASEPOLICE_NEVADA, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<h1>ATC<em>GROUND</em>NEVADA, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<p><img src="..\Presentations\AIRBASEPOLICE\Dia1.JPG" alt="Banner Image"/></p>
<p><img src="..\Presentations\ATC_GROUND\Dia1.JPG" alt="Banner Image"/></p>
<p>The AIRBASEPOLICE_NEVADA class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The ATC<em>GROUND</em>NEVADA class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.</p>
@@ -342,29 +404,43 @@ faster than the maximum allowed speed, the pilot will be kicked.</p>
<h1>Airbases monitored</h1>
<p>The following airbases are monitored at the Caucasus region:</p>
<p>The following airbases are monitored at the Nevada region.
Use the AIRBASE.Nevada enumeration to select the airbases to be monitored.</p>
<ul>
<li>Nellis</li>
<li>McCarran</li>
<li>Creech</li>
<li>GroomLake</li>
<li><code>AIRBASE.Nevada.Beatty_Airport</code></li>
<li><code>AIRBASE.Nevada.Boulder_City_Airport</code></li>
<li><code>AIRBASE.Nevada.Creech_AFB</code></li>
<li><code>AIRBASE.Nevada.Echo_Bay</code></li>
<li><code>AIRBASE.Nevada.Groom_Lake_AFB</code></li>
<li><code>AIRBASE.Nevada.Henderson_Executive_Airport</code></li>
<li><code>AIRBASE.Nevada.Jean_Airport</code></li>
<li><code>AIRBASE.Nevada.Laughlin_Airport</code></li>
<li><code>AIRBASE.Nevada.Lincoln_County</code></li>
<li><code>AIRBASE.Nevada.McCarran_International_Airport</code></li>
<li><code>AIRBASE.Nevada.Mellan_Airstrip</code></li>
<li><code>AIRBASE.Nevada.Mesquite</code></li>
<li><code>AIRBASE.Nevada.Mina_Airport_3Q0</code></li>
<li><code>AIRBASE.Nevada.Nellis_AFB</code></li>
<li><code>AIRBASE.Nevada.North_Las_Vegas</code></li>
<li><code>AIRBASE.Nevada.Pahute_Mesa_Airstrip</code></li>
<li><code>AIRBASE.Nevada.Tonopah_Airport</code></li>
<li><code>AIRBASE.Nevada.Tonopah_Test_Range_Airfield</code></li>
</ul>
<h1>Installation</h1>
<h2>In Single Player Missions</h2>
<p>AIRBASEPOLICE is fully functional in single player.</p>
<p>ATC_GROUND is fully functional in single player.</p>
<h2>In Multi Player Missions</h2>
<p>AIRBASEPOLICE is NOT functional in multi player, for client machines connecting to the server, running the mission.
<p>ATC<em>GROUND is NOT functional in multi player, for client machines connecting to the server, running the mission.
Due to a bug in DCS since release 1.5, the despawning of clients are not anymore working in multi player.
To work around this problem, a much better solution has been made, using the slot blocker script designed
by Ciribob. With the help of Ciribob, this script has been extended to also kick client players while in flight.
AIRBASEPOLICE is communicating with this modified script to kick players!</p>
ATC</em>GROUND is communicating with this modified script to kick players!</p>
<p>Install the file <strong>SimpleSlotBlockGameGUI.lua</strong> on the server, following the installation instructions described by Ciribob.</p>
@@ -372,20 +448,131 @@ AIRBASEPOLICE is communicating with this modified script to kick players!</p>
<h1>Script it!</h1>
<h2>1. AIRBASEPOLICE_NEVADA Constructor</h2>
<h2>1. ATC<em>GROUND</em>NEVADA Constructor</h2>
<p>Creates a new AIRBASEPOLICE_NEVADA object that will monitor pilots taxiing behaviour.</p>
<p>Creates a new ATC<em>GROUND</em>NEVADA object that will monitor pilots taxiing behaviour.</p>
<pre><code>-- This creates a new AIRBASEPOLICE_NEVADA object.
<pre><code>-- This creates a new ATC_GROUND_NEVADA object.
-- Create a set of all clients in the mission.
AllClientsSet = SET_CLIENT:New():FilterStart()
-- Monitor all the airbases.
AirbasePoliceCaucasus = ATC_GROUND_NEVADA:New()
-- Monitor specific airbases.
ATC_Ground = ATC_GROUND_NEVADA:New(
{ AIRBASE.Nevada.Laughlin_Airport,
AIRBASE.Nevada.Mellan_Airstrip,
AIRBASE.Nevada.Lincoln_County,
AIRBASE.Nevada.North_Las_Vegas,
AIRBASE.Nevada.McCarran_International_Airport
}
)
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(ATC_GROUND_NORMANDY)">#ATC_GROUND_NORMANDY</a></em>
<a id="ATC_GROUND_NORMANDY" >
<strong>ATC_GROUND_NORMANDY</strong>
</a>
</dt>
<dd>
<h1>ATC<em>GROUND</em>NORMANDY, extends <a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a></h1>
<p><img src="..\Presentations\ATC_GROUND\Dia1.JPG" alt="Banner Image"/></p>
<p>The ATC<em>GROUND</em>NORMANDY class monitors the speed of the airplanes at the airbase during taxi.</p>
<p>The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.</p>
<p>The pilot will receive 3 times a warning during speeding. After the 3rd warning, if the pilot is still driving
faster than the maximum allowed speed, the pilot will be kicked.</p>
<p>Different airbases have different maximum speeds, according safety regulations.</p>
<h1>Airbases monitored</h1>
<p>The following airbases are monitored at the Normandy region.
Use the AIRBASE.Normandy enumeration to select the airbases to be monitored.</p>
<ul>
<li>´AIRBASE.Normandy.Azeville´</li>
<li>´AIRBASE.Normandy.Bazenville´</li>
<li>´AIRBASE.Normandy.Beny<em>sur</em>Mer´</li>
<li>´AIRBASE.Normandy.Beuzeville´</li>
<li>´AIRBASE.Normandy.Biniville´</li>
<li>´AIRBASE.Normandy.Brucheville´</li>
<li>´AIRBASE.Normandy.Cardonville´</li>
<li>´AIRBASE.Normandy.Carpiquet´</li>
<li>´AIRBASE.Normandy.Chailey´</li>
<li>´AIRBASE.Normandy.Chippelle´</li>
<li>´AIRBASE.Normandy.Cretteville´</li>
<li>´AIRBASE.Normandy.Cricqueville<em>en</em>Bessin´</li>
<li>´AIRBASE.Normandy.Deux_Jumeaux´</li>
<li>´AIRBASE.Normandy.Evreux´</li>
<li>´AIRBASE.Normandy.Ford´</li>
<li>´AIRBASE.Normandy.Funtington´</li>
<li>´AIRBASE.Normandy.Lantheuil´</li>
<li>´AIRBASE.Normandy.Le_Molay´</li>
<li>´AIRBASE.Normandy.Lessay´</li>
<li>´AIRBASE.Normandy.Lignerolles´</li>
<li>´AIRBASE.Normandy.Longues<em>sur</em>Mer´</li>
<li>´AIRBASE.Normandy.Maupertus´</li>
<li>´AIRBASE.Normandy.Meautis´</li>
<li>´AIRBASE.Normandy.Needs<em>Oar</em>Point´</li>
<li>´AIRBASE.Normandy.Picauville´</li>
<li>´AIRBASE.Normandy.Rucqueville´</li>
<li>´AIRBASE.Normandy.Saint<em>Pierre</em>du_Mont´</li>
<li>´AIRBASE.Normandy.Sainte<em>Croix</em>sur_Mer´</li>
<li>´AIRBASE.Normandy.Sainte<em>Laurent</em>sur_Mer´</li>
<li>´AIRBASE.Normandy.Sommervieu´</li>
<li>´AIRBASE.Normandy.Tangmere´</li>
</ul>
<h1>Installation</h1>
<h2>In Single Player Missions</h2>
<p>ATC_GROUND is fully functional in single player.</p>
<h2>In Multi Player Missions</h2>
<p>ATC<em>GROUND is NOT functional in multi player, for client machines connecting to the server, running the mission.
Due to a bug in DCS since release 1.5, the despawning of clients are not anymore working in multi player.
To work around this problem, a much better solution has been made, using the slot blocker script designed
by Ciribob. With the help of Ciribob, this script has been extended to also kick client players while in flight.
ATC</em>GROUND is communicating with this modified script to kick players!</p>
<p>Install the file <strong>SimpleSlotBlockGameGUI.lua</strong> on the server, following the installation instructions described by Ciribob.</p>
<p><a href="https://github.com/ciribob/DCS-SimpleSlotBlock">Simple Slot Blocker from Ciribob &amp; FlightControl</a></p>
<h1>Script it!</h1>
<h2>1. ATC<em>GROUND</em>NORMANDY Constructor</h2>
<p>Creates a new ATC<em>GROUND</em>NORMANDY object that will monitor pilots taxiing behaviour.</p>
<pre><code>-- This creates a new ATC_GROUND_NORMANDY object.
-- Monitor for these clients the airbases.
AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet )
AirbasePoliceCaucasus = ATC_GROUND_NORMANDY:New()
ATC_Ground = ATC_GROUND_NORMANDY:New(
{ AIRBASE.Normandy.Chippelle,
AIRBASE.Normandy.Beuzeville
}
)
</code></pre>
</dd>
</dl>
<dl class="function">
@@ -412,8 +599,64 @@ AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet )
<dl class="function">
<dt>
<em></em>
<a id="#(AIRBASEPOLICE_BASE).AirbaseList" >
<strong>AIRBASEPOLICE_BASE.AirbaseList</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AIRBASEPOLICE_BASE).AirbaseMonitor" >
<strong>AIRBASEPOLICE_BASE.AirbaseMonitor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AIRBASEPOLICE_BASE).Airbases" >
<strong>AIRBASEPOLICE_BASE.Airbases</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(AIRBASEPOLICE_BASE).KickSpeed" >
<strong>AIRBASEPOLICE_BASE.KickSpeed</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AIRBASEPOLICE_BASE).New" >
<strong>AIRBASEPOLICE_BASE:New(SetClient, Airbases, AirbaseList)</strong>
<strong>AIRBASEPOLICE_BASE:New(Airbases, AirbaseList)</strong>
</a>
</dt>
<dd>
@@ -424,12 +667,6 @@ AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet )
<ul>
<li>
<p><code><em> SetClient </em></code>:
A SET_CLIENT object that will contain the CLIENT objects to be monitored if they follow the rules of the airbase.</p>
</li>
<li>
<p><code><em> Airbases </em></code>:
A table of Airbase Names.</p>
@@ -459,6 +696,60 @@ self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AIRBASEPOLICE_BASE).SetKickSpeedKmph" >
<strong>AIRBASEPOLICE_BASE:SetKickSpeedKmph(KickSpeed)</strong>
</a>
</dt>
<dd>
<p>Set the maximum speed in Kmph until the player gets kicked.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number KickSpeed </em></code>:
Set the maximum speed in Kmph until the player gets kicked.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(AIRBASEPOLICE_BASE).SetKickSpeedMiph" >
<strong>AIRBASEPOLICE_BASE:SetKickSpeedMiph(KickSpeedMiph)</strong>
</a>
</dt>
<dd>
<p>Set the maximum speed in Miph until the player gets kicked.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number KickSpeedMiph </em></code>:
Set the maximum speed in Mph until the player gets kicked.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AIRBASEPOLICE_BASE)">#AIRBASEPOLICE_BASE</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
@@ -504,29 +795,23 @@ self</p>
<h2><a id="#(AIRBASEPOLICE_BASE.AirbaseNames)" >Type <code>AIRBASEPOLICE_BASE.AirbaseNames</code></a></h2>
<h2><a id="#(AIRBASEPOLICE_CAUCASUS)" >Type <code>AIRBASEPOLICE_CAUCASUS</code></a></h2>
<h2><a id="#(ATC_GROUND_CAUCASUS)" >Type <code>ATC_GROUND_CAUCASUS</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(AIRBASEPOLICE_CAUCASUS).New" >
<strong>AIRBASEPOLICE_CAUCASUS:New(SetClient, AirbaseNames)</strong>
<a id="#(ATC_GROUND_CAUCASUS).New" >
<strong>ATC_GROUND_CAUCASUS:New(AirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Creates a new AIRBASEPOLICE_CAUCASUS object.</p>
<p>Creates a new ATC<em>GROUND</em>CAUCASUS object.</p>
<h3>Parameters</h3>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> SetClient </em></code>:
A SET_CLIENT object that will contain the CLIENT objects to be monitored if they follow the rules of the airbase.</p>
</li>
<li>
<p><code><em> AirbaseNames </em></code>:
A list {} of airbase names (Use AIRBASE.Caucasus enumerator).</p>
@@ -534,35 +819,29 @@ A list {} of airbase names (Use AIRBASE.Caucasus enumerator).</p>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AIRBASEPOLICE_CAUCASUS)">#AIRBASEPOLICE_CAUCASUS</a>:</em>
<p><em><a href="##(ATC_GROUND_CAUCASUS)">#ATC<em>GROUND</em>CAUCASUS</a>:</em>
self</p>
</dd>
</dl>
<h2><a id="#(AIRBASEPOLICE_NEVADA)" >Type <code>AIRBASEPOLICE_NEVADA</code></a></h2>
<h2><a id="#(ATC_GROUND_NEVADA)" >Type <code>ATC_GROUND_NEVADA</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(AIRBASEPOLICE_NEVADA).New" >
<strong>AIRBASEPOLICE_NEVADA:New(SetClient, AirbaseNames)</strong>
<a id="#(ATC_GROUND_NEVADA).New" >
<strong>ATC_GROUND_NEVADA:New(AirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Creates a new AIRBASEPOLICE_NEVADA object.</p>
<p>Creates a new ATC<em>GROUND</em>NEVADA object.</p>
<h3>Parameters</h3>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> SetClient </em></code>:
A SET_CLIENT object that will contain the CLIENT objects to be monitored if they follow the rules of the airbase.</p>
</li>
<li>
<p><code><em> AirbaseNames </em></code>:
A list {} of airbase names (Use AIRBASE.Nevada enumerator).</p>
@@ -570,7 +849,37 @@ A list {} of airbase names (Use AIRBASE.Nevada enumerator).</p>
</ul>
<h3>Return value</h3>
<p><em><a href="##(AIRBASEPOLICE_NEVADA)">#AIRBASEPOLICE_NEVADA</a>:</em>
<p><em><a href="##(ATC_GROUND_NEVADA)">#ATC<em>GROUND</em>NEVADA</a>:</em>
self</p>
</dd>
</dl>
<h2><a id="#(ATC_GROUND_NORMANDY)" >Type <code>ATC_GROUND_NORMANDY</code></a></h2>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(ATC_GROUND_NORMANDY).New" >
<strong>ATC_GROUND_NORMANDY:New(AirbaseNames)</strong>
</a>
</dt>
<dd>
<p>Creates a new ATC<em>GROUND</em>NORMANDY object.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> AirbaseNames </em></code>:
A list {} of airbase names (Use AIRBASE.Normandy enumerator).</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(ATC_GROUND_NORMANDY)">#ATC<em>GROUND</em>NORMANDY</a>:</em>
self</p>
</dd>