mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Improved ATC_GROUND
* Added speed limits. * Speed limits can now be set per airbase. * Maximum speed to prevent takeoff can be set. * Maximum speed can be set per airbase. * Improved documentation.
This commit is contained in:
parent
f6f2695808
commit
0c70a34561
@ -1,4 +1,4 @@
|
||||
--- **Functional** -- The ATC_GROUND classes monitor airbase traffic and regulate speed while taxiing.
|
||||
--- **Functional** -- The ATC\_GROUND classes monitor airbase traffic and regulate speed while taxiing.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
@ -18,20 +18,21 @@
|
||||
-- @field Core.Set#SET_CLIENT SetClient
|
||||
-- @extends Core.Base#BASE
|
||||
|
||||
--- Base class for ATC_GROUND implementations.
|
||||
--- Base class for ATC\_GROUND implementations.
|
||||
-- @field #ATC_GROUND
|
||||
ATC_GROUND = {
|
||||
ClassName = "ATC_GROUND",
|
||||
SetClient = nil,
|
||||
Airbases = nil,
|
||||
AirbaseNames = nil,
|
||||
--KickSpeed = nil, -- The maximum speed in meters per second for all airbases until a player gets kicked. This is overridden at each derived class.
|
||||
}
|
||||
|
||||
--- @type ATC_GROUND.AirbaseNames
|
||||
-- @list <#string>
|
||||
|
||||
|
||||
--- Creates a new ATC_GROUND object.
|
||||
--- Creates a new ATC\_GROUND object.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param Airbases A table of Airbase Names.
|
||||
-- @return #ATC_GROUND self
|
||||
@ -79,14 +80,10 @@ function ATC_GROUND:New( Airbases, AirbaseList )
|
||||
end
|
||||
)
|
||||
|
||||
self.AirbaseMonitor = SCHEDULER:New( self, self._AirbaseMonitor, {self }, 0, 2, 0.05 )
|
||||
|
||||
-- This is simple slot blocker is used on the server.
|
||||
SSB = USERFLAG:New( "SSB" )
|
||||
SSB:Set( 100 )
|
||||
|
||||
self:SetKickSpeedKmph( 100 )
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
@ -105,25 +102,138 @@ function ATC_GROUND:SmokeRunways( SmokeColor )
|
||||
end
|
||||
|
||||
|
||||
--- Set the maximum speed in meters per second (Mps) until the player gets kicked.
|
||||
-- An airbase can be specified to set the kick speed for.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number KickSpeed The speed in Mps.
|
||||
-- @param Wrapper.Airbase#AIRBASE Airbase (optional) The airbase to set the kick speed for.
|
||||
-- @return #ATC_GROUND self
|
||||
-- @usage
|
||||
--
|
||||
-- -- Declare Atc_Ground using one of those, depending on the map.
|
||||
--
|
||||
-- Atc_Ground = ATC_GROUND_CAUCAUS:New()
|
||||
-- Atc_Ground = ATC_GROUND_NEVADA:New()
|
||||
-- Atc_Ground = ATC_GROUND_NORMANDY:New()
|
||||
--
|
||||
-- -- Then use one of these methods...
|
||||
--
|
||||
-- Atc_Ground:SetKickSpeed( UTILS.KmphToMps( 80 ) ) -- Kick the players at 80 kilometers per hour
|
||||
--
|
||||
-- Atc_Ground:SetKickSpeed( UTILS.MiphToMps( 100 ) ) -- Kick the players at 100 miles per hour
|
||||
--
|
||||
-- Atc_Ground:SetKickSpeed( 24 ) -- Kick the players at 24 meters per second ( 24 * 3.6 = 86.4 kilometers per hour )
|
||||
--
|
||||
function ATC_GROUND:SetKickSpeed( KickSpeed, Airbase )
|
||||
|
||||
if not Airbase then
|
||||
self.KickSpeed = KickSpeed
|
||||
else
|
||||
self.Airbases[Airbase].KickSpeed = KickSpeed
|
||||
end
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set the maximum speed in Kmph until the player gets kicked.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number KickSpeed Set the maximum speed in Kmph until the player gets kicked.
|
||||
-- @param #number KickSpeed Set the speed in Kmph.
|
||||
-- @param Wrapper.Airbase#AIRBASE Airbase (optional) The airbase to set the kick speed for.
|
||||
-- @return #ATC_GROUND self
|
||||
function ATC_GROUND:SetKickSpeedKmph( KickSpeed )
|
||||
--
|
||||
-- Atc_Ground:SetKickSpeedKmph( 80 ) -- Kick the players at 80 kilometers per hour
|
||||
--
|
||||
function ATC_GROUND:SetKickSpeedKmph( KickSpeed, Airbase )
|
||||
|
||||
self.KickSpeed = UTILS.KmphToMps( KickSpeed )
|
||||
self:SetKickSpeed( UTILS.KmphToMps( KickSpeed ), Airbase )
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set the maximum speed in Miph until the player gets kicked.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number KickSpeedMiph Set the maximum speed in Mph until the player gets kicked.
|
||||
-- @param #number KickSpeedMiph Set the speed in Mph.
|
||||
-- @param Wrapper.Airbase#AIRBASE Airbase (optional) The airbase to set the kick speed for.
|
||||
-- @return #ATC_GROUND self
|
||||
function ATC_GROUND:SetKickSpeedMiph( KickSpeedMiph )
|
||||
--
|
||||
-- Atc_Ground:SetKickSpeedMiph( 100 ) -- Kick the players at 100 miles per hour
|
||||
--
|
||||
function ATC_GROUND:SetKickSpeedMiph( KickSpeedMiph, Airbase )
|
||||
|
||||
self.KickSpeed = UTILS.MiphToMps( KickSpeedMiph )
|
||||
self:SetKickSpeed( UTILS.MiphToMps( KickSpeedMiph ), Airbase )
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
--- Set the maximum kick speed in meters per second (Mps) until the player gets kicked.
|
||||
-- There are no warnings given if this speed is reached, and is to prevent players to take off from the airbase!
|
||||
-- An airbase can be specified to set the maximum kick speed for.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number MaximumKickSpeed The speed in Mps.
|
||||
-- @param Wrapper.Airbase#AIRBASE Airbase (optional) The airbase to set the kick speed for.
|
||||
-- @return #ATC_GROUND self
|
||||
-- @usage
|
||||
--
|
||||
-- -- Declare Atc_Ground using one of those, depending on the map.
|
||||
--
|
||||
-- Atc_Ground = ATC_GROUND_CAUCAUS:New()
|
||||
-- Atc_Ground = ATC_GROUND_NEVADA:New()
|
||||
-- Atc_Ground = ATC_GROUND_NORMANDY:New()
|
||||
--
|
||||
-- -- Then use one of these methods...
|
||||
--
|
||||
-- Atc_Ground:SetMaximumKickSpeed( UTILS.KmphToMps( 80 ) ) -- Kick the players at 80 kilometers per hour
|
||||
--
|
||||
-- Atc_Ground:SetMaximumKickSpeed( UTILS.MiphToMps( 100 ) ) -- Kick the players at 100 miles per hour
|
||||
--
|
||||
-- Atc_Ground:SetMaximumKickSpeed( 24 ) -- Kick the players at 24 meters per second ( 24 * 3.6 = 86.4 kilometers per hour )
|
||||
--
|
||||
function ATC_GROUND:SetMaximumKickSpeed( MaximumKickSpeed, Airbase )
|
||||
|
||||
if not Airbase then
|
||||
self.MaximumKickSpeed = MaximumKickSpeed
|
||||
else
|
||||
self.Airbases[Airbase].MaximumKickSpeed = MaximumKickSpeed
|
||||
end
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set the maximum kick speed in kilometers per hour (Kmph) until the player gets kicked.
|
||||
-- There are no warnings given if this speed is reached, and is to prevent players to take off from the airbase!
|
||||
-- An airbase can be specified to set the maximum kick speed for.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number MaximumKickSpeed Set the speed in Kmph.
|
||||
-- @param Wrapper.Airbase#AIRBASE Airbase (optional) The airbase to set the kick speed for.
|
||||
-- @return #ATC_GROUND self
|
||||
--
|
||||
-- Atc_Ground:SetMaximumKickSpeedKmph( 150 ) -- Kick the players at 150 kilometers per hour
|
||||
--
|
||||
function ATC_GROUND:SetMaximumKickSpeedKmph( MaximumKickSpeed, Airbase )
|
||||
|
||||
self:SetMaximumKickSpeed( UTILS.KmphToMps( MaximumKickSpeed ), Airbase )
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set the maximum kick speed in miles per hour (Miph) until the player gets kicked.
|
||||
-- There are no warnings given if this speed is reached, and is to prevent players to take off from the airbase!
|
||||
-- An airbase can be specified to set the maximum kick speed for.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number MaximumKickSpeedMiph Set the speed in Mph.
|
||||
-- @param Wrapper.Airbase#AIRBASE Airbase (optional) The airbase to set the kick speed for.
|
||||
-- @return #ATC_GROUND self
|
||||
--
|
||||
-- Atc_Ground:SetMaximumKickSpeedMiph( 100 ) -- Kick the players at 100 miles per hour
|
||||
--
|
||||
function ATC_GROUND:SetMaximumKickSpeedMiph( MaximumKickSpeedMiph, Airbase )
|
||||
|
||||
self:SetMaximumKickSpeed( UTILS.MiphToMps( MaximumKickSpeedMiph ), Airbase )
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
--- @param #ATC_GROUND self
|
||||
function ATC_GROUND:_AirbaseMonitor()
|
||||
@ -137,7 +247,7 @@ function ATC_GROUND:_AirbaseMonitor()
|
||||
local IsOnGround = Client:InAir() == false
|
||||
|
||||
for AirbaseID, AirbaseMeta in pairs( self.Airbases ) do
|
||||
self:E( AirbaseID, AirbaseMeta.MaximumSpeed )
|
||||
self:E( AirbaseID, AirbaseMeta.KickSpeed )
|
||||
|
||||
if AirbaseMeta.Monitor == true and Client:IsInZone( AirbaseMeta.ZoneBoundary ) then
|
||||
|
||||
@ -152,7 +262,9 @@ function ATC_GROUND:_AirbaseMonitor()
|
||||
local Taxi = Client:GetState( self, "Taxi" )
|
||||
self:E( Taxi )
|
||||
if Taxi == false then
|
||||
Client:Message( "Welcome at " .. AirbaseID .. ". The maximum taxiing speed is " .. AirbaseMeta.MaximumSpeed .. " km/h.", 20, "ATC" )
|
||||
local Velocity = VELOCITY:New( AirbaseMeta.KickSpeed or self.KickSpeed )
|
||||
Client:Message( "Welcome at " .. AirbaseID .. ". The maximum taxiing speed is " ..
|
||||
Velocity:ToString() , 20, "ATC" )
|
||||
Client:SetState( self, "Taxi", true )
|
||||
end
|
||||
|
||||
@ -163,8 +275,19 @@ function ATC_GROUND:_AirbaseMonitor()
|
||||
self:T( IsAboveRunway, IsOnGround )
|
||||
|
||||
if IsOnGround then
|
||||
if Velocity:Get() > self.KickSpeed then
|
||||
MESSAGE:New( "Penalty! Player " .. Client:GetPlayerName() .. " is kicked, due to a severe airbase traffic rule violation ...", 10, "ATC" ):ToAll()
|
||||
local Speeding = false
|
||||
if AirbaseMeta.MaximumKickSpeed then
|
||||
if Velocity:Get() > AirbaseMeta.MaximumKickSpeed then
|
||||
Speeding = true
|
||||
end
|
||||
else
|
||||
if Velocity:Get() > self.MaximumKickSpeed then
|
||||
Speeding = true
|
||||
end
|
||||
end
|
||||
if Speeding == true then
|
||||
MESSAGE:New( "Penalty! Player " .. Client:GetPlayerName() ..
|
||||
" is kicked, due to a severe airbase traffic rule violation ...", 10, "ATC" ):ToAll()
|
||||
Client:Destroy()
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
@ -174,7 +297,17 @@ function ATC_GROUND:_AirbaseMonitor()
|
||||
|
||||
if IsOnGround then
|
||||
|
||||
if Velocity:GetKmph() > AirbaseMeta.MaximumSpeed then
|
||||
local Speeding = false
|
||||
if AirbaseMeta.KickSpeed then -- If there is a speed defined for the airbase, use that only.
|
||||
if Velocity:Get() > AirbaseMeta.KickSpeed then
|
||||
Speeding = true
|
||||
end
|
||||
else
|
||||
if Velocity:Get() > self.KickSpeed then
|
||||
Speeding = true
|
||||
end
|
||||
end
|
||||
if Speeding == true then
|
||||
local IsSpeeding = Client:GetState( self, "Speeding" )
|
||||
|
||||
if IsSpeeding == true then
|
||||
@ -183,7 +316,7 @@ function ATC_GROUND:_AirbaseMonitor()
|
||||
|
||||
if SpeedingWarnings <= 3 then
|
||||
Client:Message( "Warning " .. SpeedingWarnings .. "/3! Airbase traffic rule violation! Slow down now! Your speed is " ..
|
||||
string.format( "%s", Velocity:ToString() ), 5, "ATC" )
|
||||
Velocity:ToString(), 5, "ATC" )
|
||||
Client:SetState( self, "Warnings", SpeedingWarnings + 1 )
|
||||
else
|
||||
MESSAGE:New( "Penalty! Player " .. Client:GetPlayerName() .. " is kicked, due to a severe airbase traffic rule violation ...", 10, "ATC" ):ToAll()
|
||||
@ -194,7 +327,8 @@ function ATC_GROUND:_AirbaseMonitor()
|
||||
end
|
||||
|
||||
else
|
||||
Client:Message( "Attention! You are speeding on the taxiway, slow down! Your speed is " .. string.format( "%s", Velocity:ToString() ), 5, "ATC" )
|
||||
Client:Message( "Attention! You are speeding on the taxiway, slow down! Your speed is " ..
|
||||
Velocity:ToString(), 5, "ATC" )
|
||||
Client:SetState( self, "Speeding", true )
|
||||
Client:SetState( self, "Warnings", 1 )
|
||||
end
|
||||
@ -271,7 +405,9 @@ end
|
||||
--
|
||||
-- ---
|
||||
--
|
||||
-- The maximum speed for the airbases at Caucasus is **50 km/h**.
|
||||
-- The default maximum speed for the airbases at Caucasus is **50 km/h**. Warnings are given if this speed limit is trespassed.
|
||||
-- Players will be immediately kicked when driving faster than **150 km/h** on the taxi way.
|
||||
--
|
||||
--
|
||||
-- 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.
|
||||
@ -310,15 +446,18 @@ end
|
||||
--
|
||||
-- ## In Single Player Missions
|
||||
--
|
||||
-- ATC_GROUND is fully functional in single player.
|
||||
-- ATC\_GROUND is fully functional in single player.
|
||||
--
|
||||
-- ## In Multi Player Missions
|
||||
--
|
||||
-- ATC_GROUND is NOT functional in multi player, for client machines connecting to the server, running the mission.
|
||||
-- ATC\_GROUND is functional in multi player, however ...
|
||||
--
|
||||
-- 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_GROUND is communicating with this modified script to kick players!
|
||||
-- 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\_GROUND is communicating with this modified script to kick players!
|
||||
--
|
||||
-- Install the file **SimpleSlotBlockGameGUI.lua** on the server, following the installation instructions described by Ciribob.
|
||||
--
|
||||
@ -333,7 +472,7 @@ end
|
||||
-- -- This creates a new ATC_GROUND_CAUCASUS object.
|
||||
--
|
||||
-- -- Monitor all the airbases.
|
||||
-- AirbasePoliceCaucasus = ATC_GROUND_CAUCASUS:New()
|
||||
-- ATC_Ground = ATC_GROUND_CAUCASUS:New()
|
||||
--
|
||||
-- -- Monitor specific airbases only.
|
||||
--
|
||||
@ -342,7 +481,24 @@ end
|
||||
-- AIRBASE.Caucasus.Krymsk
|
||||
-- }
|
||||
-- )
|
||||
--
|
||||
--
|
||||
-- ## 2. Set various options
|
||||
--
|
||||
-- There are various methods that you can use to tweak the behaviour of the ATC\_GROUND classes.
|
||||
--
|
||||
-- ### 2.1 Speed limit at an airbase.
|
||||
--
|
||||
-- * @{#ATC_GROUND.SetKickSpeed}(): Set the speed limit allowed at an airbase in meters per second.
|
||||
-- * @{#ATC_GROUND.SetKickSpeedKmph}(): Set the speed limit allowed at an airbase in kilometers per hour.
|
||||
-- * @{#ATC_GROUND.SetKickSpeedMiph}(): Set the speed limit allowed at an airbase in miles per hour.
|
||||
--
|
||||
-- ### 2.2 Prevent Takeoff at an airbase. Players will be kicked immediately.
|
||||
--
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeed}(): Set the maximum speed allowed at an airbase in meters per second.
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeedKmph}(): Set the maximum speed allowed at an airbase in kilometers per hour.
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeedMiph}(): Set the maximum speed allowed at an airbase in miles per hour.
|
||||
--
|
||||
--
|
||||
-- @field #ATC_GROUND_CAUCASUS
|
||||
ATC_GROUND_CAUCASUS = {
|
||||
ClassName = "ATC_GROUND_CAUCASUS",
|
||||
@ -357,7 +513,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=242140.57142858,["x"]=-6480.0000000011,}
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Batumi] = {
|
||||
PointsRunways = {
|
||||
@ -378,7 +533,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[14]={["y"]=616441.42857142,["x"]=-355092.57142858,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Beslan] = {
|
||||
PointsRunways = {
|
||||
@ -390,7 +544,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=842104,["x"]=-148460.28571429,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Gelendzhik] = {
|
||||
PointsRunways = {
|
||||
@ -402,7 +555,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=297835.14285715,["x"]=-51107.714285715,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Gudauta] = {
|
||||
PointsRunways = {
|
||||
@ -414,7 +566,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=517097.99999999,["x"]=-197807.42857143,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Kobuleti] = {
|
||||
PointsRunways = {
|
||||
@ -426,7 +577,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=634510.28571429,["x"]=-318339.71428572,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Krasnodar_Center] = {
|
||||
PointsRunways = {
|
||||
@ -438,7 +588,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=369208.85714286,["x"]=11788.57142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Krasnodar_Pashkovsky] = {
|
||||
PointsRunways = {
|
||||
@ -457,7 +606,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=386714.57142858,["x"]=6674.5714285703,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Krymsk] = {
|
||||
PointsRunways = {
|
||||
@ -469,7 +617,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=293523.14285715,["x"]=-7568.2857142868,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Kutaisi] = {
|
||||
PointsRunways = {
|
||||
@ -481,7 +628,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=682638.28571429,["x"]=-285202.85714286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Maykop_Khanskaya] = {
|
||||
PointsRunways = {
|
||||
@ -493,7 +639,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=457004.57142857,["x"]=-27669.714285715,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Mineralnye_Vody] = {
|
||||
PointsRunways = {
|
||||
@ -505,7 +650,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=703902,["x"]=-50352.000000002,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Mozdok] = {
|
||||
PointsRunways = {
|
||||
@ -517,7 +661,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=832200.57142857,["x"]=-83700.000000002,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Nalchik] = {
|
||||
PointsRunways = {
|
||||
@ -529,7 +672,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=759456,["x"]=-125552.57142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Novorossiysk] = {
|
||||
PointsRunways = {
|
||||
@ -541,7 +683,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=278672.00000001,["x"]=-41614.857142858,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Senaki_Kolkhi] = {
|
||||
PointsRunways = {
|
||||
@ -553,7 +694,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=646063.71428571,["x"]=-281738.85714286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Sochi_Adler] = {
|
||||
PointsRunways = {
|
||||
@ -572,7 +712,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=460831.42857143,["x"]=-165177.14285714,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Soganlug] = {
|
||||
PointsRunways = {
|
||||
@ -584,7 +723,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=894524.57142857,["x"]=-316963.71428571,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Sukhumi_Babushara] = {
|
||||
PointsRunways = {
|
||||
@ -596,7 +734,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=562684.57142857,["x"]=-219782.57142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Tbilisi_Lochini] = {
|
||||
PointsRunways = {
|
||||
@ -615,7 +752,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=895606,["x"]=-314724.85714286,}
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Caucasus.Vaziani] = {
|
||||
PointsRunways = {
|
||||
@ -627,7 +763,6 @@ ATC_GROUND_CAUCASUS = {
|
||||
[5]={["y"]=902247.71428571,["x"]=-318190.85714286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -641,7 +776,10 @@ function ATC_GROUND_CAUCASUS:New( AirbaseNames )
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) )
|
||||
|
||||
self.AirbaseMonitor = SCHEDULER:New( self, self._AirbaseMonitor, { self }, 0, 2, 0.05 )
|
||||
|
||||
self:SetKickSpeedKmph( 50 )
|
||||
self:SetMaximumKickSpeedKmph( 150 )
|
||||
|
||||
-- -- AnapaVityazevo
|
||||
-- local AnapaVityazevoBoundary = GROUP:FindByName( "AnapaVityazevo Boundary" )
|
||||
@ -869,6 +1007,9 @@ end
|
||||
--
|
||||
-- ---
|
||||
--
|
||||
-- The default maximum speed for the airbases at Nevada is **50 km/h**. Warnings are given if this speed limit is trespassed.
|
||||
-- Players will be immediately kicked when driving faster than **150 km/h** on the taxi way.
|
||||
--
|
||||
-- The ATC\_GROUND\_NEVADA class monitors the speed of the airplanes at the airbase during taxi.
|
||||
-- The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.
|
||||
--
|
||||
@ -905,15 +1046,18 @@ end
|
||||
--
|
||||
-- ## In Single Player Missions
|
||||
--
|
||||
-- ATC_GROUND is fully functional in single player.
|
||||
-- ATC\_GROUND is fully functional in single player.
|
||||
--
|
||||
-- ## In Multi Player Missions
|
||||
--
|
||||
-- ATC_GROUND is NOT functional in multi player, for client machines connecting to the server, running the mission.
|
||||
-- ATC\_GROUND is functional in multi player, however ...
|
||||
--
|
||||
-- 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_GROUND is communicating with this modified script to kick players!
|
||||
-- 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\_GROUND is communicating with this modified script to kick players!
|
||||
--
|
||||
-- Install the file **SimpleSlotBlockGameGUI.lua** on the server, following the installation instructions described by Ciribob.
|
||||
--
|
||||
@ -928,7 +1072,7 @@ end
|
||||
-- -- This creates a new ATC_GROUND_NEVADA object.
|
||||
--
|
||||
-- -- Monitor all the airbases.
|
||||
-- AirbasePoliceCaucasus = ATC_GROUND_NEVADA:New()
|
||||
-- ATC_Ground = ATC_GROUND_NEVADA:New()
|
||||
--
|
||||
--
|
||||
-- -- Monitor specific airbases.
|
||||
@ -941,6 +1085,23 @@ end
|
||||
-- }
|
||||
-- )
|
||||
--
|
||||
-- ## 2. Set various options
|
||||
--
|
||||
-- There are various methods that you can use to tweak the behaviour of the ATC\_GROUND classes.
|
||||
--
|
||||
-- ### 2.1 Speed limit at an airbase.
|
||||
--
|
||||
-- * @{#ATC_GROUND.SetKickSpeed}(): Set the speed limit allowed at an airbase in meters per second.
|
||||
-- * @{#ATC_GROUND.SetKickSpeedKmph}(): Set the speed limit allowed at an airbase in kilometers per hour.
|
||||
-- * @{#ATC_GROUND.SetKickSpeedMiph}(): Set the speed limit allowed at an airbase in miles per hour.
|
||||
--
|
||||
-- ### 2.2 Prevent Takeoff at an airbase. Players will be kicked immediately.
|
||||
--
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeed}(): Set the maximum speed allowed at an airbase in meters per second.
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeedKmph}(): Set the maximum speed allowed at an airbase in kilometers per hour.
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeedMiph}(): Set the maximum speed allowed at an airbase in miles per hour.
|
||||
--
|
||||
--
|
||||
-- @field #ATC_GROUND_NEVADA
|
||||
ATC_GROUND_NEVADA = {
|
||||
ClassName = "ATC_GROUND_NEVADA",
|
||||
@ -955,7 +1116,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4]={["y"]=-174971.01828571,["x"]=-329682.59171429,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Boulder_City_Airport] = {
|
||||
PointsRunways = {
|
||||
@ -972,7 +1132,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-1883.955714286,["x"]=-429807.83742856,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Creech_AFB] = {
|
||||
PointsRunways = {
|
||||
@ -989,7 +1148,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-75734.142857144,["x"]=-359023.14285714,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Echo_Bay] = {
|
||||
PointsRunways = {
|
||||
@ -1000,7 +1158,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=33185.422285715,["x"]=-388717.82228571,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Groom_Lake_AFB] = {
|
||||
PointsRunways = {
|
||||
@ -1017,7 +1174,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-86799.623714285,["x"]=-290374.16771428,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Henderson_Executive_Airport] = {
|
||||
PointsRunways = {
|
||||
@ -1034,7 +1190,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-25708.296285714,["x"]=-426515.15114285,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Jean_Airport] = {
|
||||
PointsRunways = {
|
||||
@ -1051,7 +1206,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-42609.216571429,["x"]=-449891.28628571,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Laughlin_Airport] = {
|
||||
PointsRunways = {
|
||||
@ -1068,7 +1222,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=28138.022857143,["x"]=-515573.07514286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Lincoln_County] = {
|
||||
PointsRunways = {
|
||||
@ -1079,7 +1232,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4]={["y"]=33201.198857147,["x"]=-223960.54457143,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.McCarran_International_Airport] = {
|
||||
PointsRunways = {
|
||||
@ -1108,7 +1260,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-29073.000000001,["x"]=-416386.85714284,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Mesquite] = {
|
||||
PointsRunways = {
|
||||
@ -1129,7 +1280,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-290104.69085714,["x"]=-160956.19457143,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Nellis_AFB] = {
|
||||
PointsRunways = {
|
||||
@ -1146,7 +1296,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-18451.571428572,["x"]=-399580.85714285,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Pahute_Mesa_Airstrip] = {
|
||||
PointsRunways = {
|
||||
@ -1157,7 +1306,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-132759.988,["x"]=-302723.326,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Tonopah_Test_Range_Airfield] = {
|
||||
PointsRunways = {
|
||||
@ -1168,7 +1316,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-175452.38685714,["x"]=-224806.84200001,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.Tonopah_Airport] = {
|
||||
PointsRunways = {
|
||||
@ -1185,7 +1332,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-202097.14314285,["x"]=-196739.16514286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
[AIRBASE.Nevada.North_Las_Vegas] = {
|
||||
PointsRunways = {
|
||||
@ -1208,7 +1354,6 @@ ATC_GROUND_NEVADA = {
|
||||
[4] = {["y"]=-31884.969142858,["x"]=-401020.59771429,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 50,
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1222,8 +1367,11 @@ function ATC_GROUND_NEVADA:New( AirbaseNames )
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) )
|
||||
|
||||
self.AirbaseMonitor = SCHEDULER:New( self, self._AirbaseMonitor, { self }, 0, 2, 0.05 )
|
||||
|
||||
self:SetKickSpeedKmph( 50 )
|
||||
self:SetMaximumKickSpeedKmph( 150 )
|
||||
|
||||
|
||||
-- These lines here are for the demonstration mission.
|
||||
-- They create in the dcs.log the coordinates of the runway polygons, that are then
|
||||
-- taken by the moose designer from the dcs.log and reworked to define the
|
||||
@ -1399,6 +1547,9 @@ end
|
||||
--
|
||||
-- ---
|
||||
--
|
||||
-- The default maximum speed for the airbases at Caucasus is **40 km/h**. Warnings are given if this speed limit is trespassed.
|
||||
-- Players will be immediately kicked when driving faster than **100 km/h** on the taxi way.
|
||||
--
|
||||
-- The ATC\_GROUND\_NORMANDY class monitors the speed of the airplanes at the airbase during taxi.
|
||||
-- The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.
|
||||
--
|
||||
@ -1448,15 +1599,18 @@ end
|
||||
--
|
||||
-- ## In Single Player Missions
|
||||
--
|
||||
-- ATC_GROUND is fully functional in single player.
|
||||
-- ATC\_GROUND is fully functional in single player.
|
||||
--
|
||||
-- ## In Multi Player Missions
|
||||
--
|
||||
-- ATC_GROUND is NOT functional in multi player, for client machines connecting to the server, running the mission.
|
||||
-- ATC\_GROUND is functional in multi player, however ...
|
||||
--
|
||||
-- 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_GROUND is communicating with this modified script to kick players!
|
||||
-- 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\_GROUND is communicating with this modified script to kick players!
|
||||
--
|
||||
-- Install the file **SimpleSlotBlockGameGUI.lua** on the server, following the installation instructions described by Ciribob.
|
||||
--
|
||||
@ -1478,8 +1632,24 @@ end
|
||||
-- AIRBASE.Normandy.Beuzeville
|
||||
-- }
|
||||
-- )
|
||||
--
|
||||
--
|
||||
--
|
||||
-- ## 2. Set various options
|
||||
--
|
||||
-- There are various methods that you can use to tweak the behaviour of the ATC\_GROUND classes.
|
||||
--
|
||||
-- ### 2.1 Speed limit at an airbase.
|
||||
--
|
||||
-- * @{#ATC_GROUND.SetKickSpeed}(): Set the speed limit allowed at an airbase in meters per second.
|
||||
-- * @{#ATC_GROUND.SetKickSpeedKmph}(): Set the speed limit allowed at an airbase in kilometers per hour.
|
||||
-- * @{#ATC_GROUND.SetKickSpeedMiph}(): Set the speed limit allowed at an airbase in miles per hour.
|
||||
--
|
||||
-- ### 2.2 Prevent Takeoff at an airbase. Players will be kicked immediately.
|
||||
--
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeed}(): Set the maximum speed allowed at an airbase in meters per second.
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeedKmph}(): Set the maximum speed allowed at an airbase in kilometers per hour.
|
||||
-- * @{#ATC_GROUND.SetMaximumKickSpeedMiph}(): Set the maximum speed allowed at an airbase in miles per hour.
|
||||
--
|
||||
-- @field #ATC_GROUND_NORMANDY
|
||||
ATC_GROUND_NORMANDY = {
|
||||
ClassName = "ATC_GROUND_NORMANDY",
|
||||
@ -1493,7 +1663,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-74176.959142857,["x"]=-2741.997142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Bazenville] = {
|
||||
PointsRunways = {
|
||||
@ -1504,7 +1673,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-19217.791999999,["x"]=-21283.597714285,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Beny_sur_Mer] = {
|
||||
PointsRunways = {
|
||||
@ -1515,7 +1683,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-8451.0482857133,["x"]=-20368.87542857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Beuzeville] = {
|
||||
PointsRunways = {
|
||||
@ -1526,7 +1693,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-71585.849428571,["x"]=-8709.9648571426,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Biniville] = {
|
||||
PointsRunways = {
|
||||
@ -1537,7 +1703,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-84784.969714286,["x"]=-7402.0588571427,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Brucheville] = {
|
||||
PointsRunways = {
|
||||
@ -1548,7 +1713,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-65528.393714285,["x"]=-14657.995714286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Cardonville] = {
|
||||
PointsRunways = {
|
||||
@ -1559,7 +1723,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-54323.354571428,["x"]=-15855.004,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Carpiquet] = {
|
||||
PointsRunways = {
|
||||
@ -1570,7 +1733,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-10794.90942857,["x"]=-34287.041428571,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Chailey] = {
|
||||
PointsRunways = {
|
||||
@ -1588,7 +1750,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=11726.973428578,["x"]=164489.94257143,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Chippelle] = {
|
||||
PointsRunways = {
|
||||
@ -1599,7 +1760,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-48555.657714285,["x"]=-28839.90142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Cretteville] = {
|
||||
PointsRunways = {
|
||||
@ -1610,7 +1770,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-78380.008857143,["x"]=-18208.011142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Cricqueville_en_Bessin] = {
|
||||
PointsRunways = {
|
||||
@ -1621,7 +1780,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-50910.569428571,["x"]=-14327.562857142,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Deux_Jumeaux] = {
|
||||
PointsRunways = {
|
||||
@ -1632,7 +1790,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-49584.839428571,["x"]=-16617.732571428,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Evreux] = {
|
||||
PointsRunways = {
|
||||
@ -1649,7 +1806,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=111966.03657143,["x"]=-45112.604285713,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Ford] = {
|
||||
PointsRunways = {
|
||||
@ -1666,7 +1822,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-25252.357999994,["x"]=148448.64457143,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Funtington] = {
|
||||
PointsRunways = {
|
||||
@ -1684,7 +1839,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-45871.25971428,["x"]=153136.82714286,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Lantheuil] = {
|
||||
PointsRunways = {
|
||||
@ -1695,7 +1849,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-17090.734857142,["x"]=-24673.248,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Lessay] = {
|
||||
PointsRunways = {
|
||||
@ -1712,7 +1865,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-87087.688571429,["x"]=-34258.272285715,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Lignerolles] = {
|
||||
PointsRunways = {
|
||||
@ -1723,7 +1875,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-35263.548285713,["x"]=-35192.75542857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Longues_sur_Mer] = {
|
||||
PointsRunways = {
|
||||
@ -1734,7 +1885,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-29529.616285713,["x"]=-16477.766571428,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Maupertus] = {
|
||||
PointsRunways = {
|
||||
@ -1745,7 +1895,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-85613.626571429,["x"]=16132.410571429,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Meautis] = {
|
||||
PointsRunways = {
|
||||
@ -1756,7 +1905,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-72631.715714286,["x"]=-24639.966857143,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Le_Molay] = {
|
||||
PointsRunways = {
|
||||
@ -1767,7 +1915,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-41913.638285713,["x"]=-26665.137999999,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Needs_Oar_Point] = {
|
||||
PointsRunways = {
|
||||
@ -1785,7 +1932,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-84605.051428566,["x"]=141966.01428572,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Picauville] = {
|
||||
PointsRunways = {
|
||||
@ -1796,7 +1942,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-80827.815142857,["x"]=-11901.835142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Rucqueville] = {
|
||||
PointsRunways = {
|
||||
@ -1807,7 +1952,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-20022.218857141,["x"]=-26608.505428571,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Saint_Pierre_du_Mont] = {
|
||||
PointsRunways = {
|
||||
@ -1818,7 +1962,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-48016.837142856,["x"]=-11929.371142857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Sainte_Croix_sur_Mer] = {
|
||||
PointsRunways = {
|
||||
@ -1829,7 +1972,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-15878.229142856,["x"]=-18764.071428571,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Sainte_Laurent_sur_Mer] = {
|
||||
PointsRunways = {
|
||||
@ -1840,7 +1982,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-41687.120571427,["x"]=-14509.680857142,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Sommervieu] = {
|
||||
PointsRunways = {
|
||||
@ -1851,7 +1992,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-26818.002285713,["x"]=-21440.532857142,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
[AIRBASE.Normandy.Tangmere] = {
|
||||
PointsRunways = {
|
||||
@ -1868,7 +2008,6 @@ ATC_GROUND_NORMANDY = {
|
||||
[4]={["y"]=-33176.545999994,["x"]=150870.22542857,},
|
||||
},
|
||||
},
|
||||
MaximumSpeed = 40,
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -1881,7 +2020,12 @@ ATC_GROUND_NORMANDY = {
|
||||
function ATC_GROUND_NORMANDY:New( AirbaseNames )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) )
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) ) -- #ATC_GROUND_NORMANDY
|
||||
|
||||
self.AirbaseMonitor = SCHEDULER:New( self, self._AirbaseMonitor, { self }, 0, 2, 0.05 )
|
||||
|
||||
self:SetKickSpeedKmph( 40 )
|
||||
self:SetMaximumKickSpeedKmph( 100 )
|
||||
|
||||
-- These lines here are for the demonstration mission.
|
||||
-- They create in the dcs.log the coordinates of the runway polygons, that are then
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' )
|
||||
env.info( 'Moose Generation Timestamp: 20171026_1116' )
|
||||
env.info( 'Moose Generation Timestamp: 20171031_0744' )
|
||||
|
||||
local base = _G
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
env.info('*** MOOSE DYNAMIC INCLUDE START *** ')
|
||||
env.info('Moose Generation Timestamp: 20171026_1116')
|
||||
env.info('Moose Generation Timestamp: 20171031_0744')
|
||||
local base=_G
|
||||
__Moose={}
|
||||
__Moose.Include=function(IncludeFile)
|
||||
|
||||
@ -672,7 +672,6 @@
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(AI_A2A).IdleCount" >
|
||||
<strong>AI_A2A.IdleCount</strong>
|
||||
</a>
|
||||
|
||||
@ -937,6 +937,9 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
|
||||
|
||||
|
||||
|
||||
|
||||
<p> This table contains the targets detected during patrol.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
|
||||
@ -177,12 +177,6 @@
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).AirbaseList">ATC_GROUND.AirbaseList</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).AirbaseMonitor">ATC_GROUND.AirbaseMonitor</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -195,6 +189,12 @@
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).KickSpeed">ATC_GROUND.KickSpeed</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).MaximumKickSpeed">ATC_GROUND.MaximumKickSpeed</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -210,15 +210,39 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetKickSpeedKmph">ATC_GROUND:SetKickSpeedKmph(KickSpeed)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetKickSpeed">ATC_GROUND:SetKickSpeed(KickSpeed, Airbase)</a></td>
|
||||
<td class="summary">
|
||||
<p>Set the maximum speed in meters per second (Mps) until the player gets kicked.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetKickSpeedKmph">ATC_GROUND:SetKickSpeedKmph(KickSpeed, Airbase)</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="##(ATC_GROUND).SetKickSpeedMiph">ATC_GROUND:SetKickSpeedMiph(KickSpeedMiph)</a></td>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetKickSpeedMiph">ATC_GROUND:SetKickSpeedMiph(KickSpeedMiph, Airbase)</a></td>
|
||||
<td class="summary">
|
||||
<p>Set the maximum speed in Miph until the player gets kicked.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetMaximumKickSpeed">ATC_GROUND:SetMaximumKickSpeed(MaximumKickSpeed, Airbase)</a></td>
|
||||
<td class="summary">
|
||||
<p>Set the maximum kick speed in meters per second (Mps) until the player gets kicked.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetMaximumKickSpeedKmph">ATC_GROUND:SetMaximumKickSpeedKmph(MaximumKickSpeed, Airbase)</a></td>
|
||||
<td class="summary">
|
||||
<p>Set the maximum kick speed in kilometers per hour (Kmph) until the player gets kicked.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(ATC_GROUND).SetMaximumKickSpeedMiph">ATC_GROUND:SetMaximumKickSpeedMiph(MaximumKickSpeedMiph, Airbase)</a></td>
|
||||
<td class="summary">
|
||||
<p>Set the maximum kick speed in miles per hour (Miph) until the player gets kicked.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -258,6 +282,12 @@
|
||||
<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).AirbaseMonitor">ATC_GROUND_NORMANDY.AirbaseMonitor</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<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>
|
||||
@ -303,7 +333,9 @@
|
||||
|
||||
<hr/>
|
||||
|
||||
<p>The maximum speed for the airbases at Caucasus is <strong>50 km/h</strong>.</p>
|
||||
<p>The default maximum speed for the airbases at Caucasus is <strong>50 km/h</strong>. Warnings are given if this speed limit is trespassed.
|
||||
Players will be immediately kicked when driving faster than <strong>150 km/h</strong> on the taxi way.</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>
|
||||
@ -348,11 +380,14 @@ Use the <a href="Airbase.html##(AIRBASE).Caucasus">Airbase#AIRBASE.Caucasus</a>
|
||||
|
||||
<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 <strong>Ciribob</strong>, 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>ATC_GROUND is functional in multi player, however ...</p>
|
||||
|
||||
<p>Due to a bug in DCS since release 1.5, the despawning of clients are not anymore working in multi player.
|
||||
To <strong>work around this problem</strong>, a much better solution has been made, using the <strong>slot blocker</strong> script designed
|
||||
by Ciribob. </p>
|
||||
|
||||
<p>With the help of <strong>Ciribob</strong>, this script has been extended to also kick client players while in flight.
|
||||
ATC_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>
|
||||
|
||||
@ -367,7 +402,7 @@ ATC</em>GROUND is communicating with this modified script to kick players!</p>
|
||||
<pre><code>-- This creates a new ATC_GROUND_CAUCASUS object.
|
||||
|
||||
-- Monitor all the airbases.
|
||||
AirbasePoliceCaucasus = ATC_GROUND_CAUCASUS:New()
|
||||
ATC_Ground = ATC_GROUND_CAUCASUS:New()
|
||||
|
||||
-- Monitor specific airbases only.
|
||||
|
||||
@ -376,9 +411,30 @@ ATC_Ground = ATC_GROUND_CAUCASUS:New(
|
||||
AIRBASE.Caucasus.Krymsk
|
||||
}
|
||||
)
|
||||
|
||||
</code></pre>
|
||||
|
||||
<h2>2. Set various options</h2>
|
||||
|
||||
<p>There are various methods that you can use to tweak the behaviour of the ATC_GROUND classes.</p>
|
||||
|
||||
<h3>2.1 Speed limit at an airbase.</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeed">ATC_GROUND.SetKickSpeed</a>(): Set the speed limit allowed at an airbase in meters per second.</li>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeedKmph">ATC_GROUND.SetKickSpeedKmph</a>(): Set the speed limit allowed at an airbase in kilometers per hour.</li>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeedMiph">ATC_GROUND.SetKickSpeedMiph</a>(): Set the speed limit allowed at an airbase in miles per hour.</li>
|
||||
</ul>
|
||||
|
||||
<h3>2.2 Prevent Takeoff at an airbase. Players will be kicked immediately.</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeed">ATC_GROUND.SetMaximumKickSpeed</a>(): Set the maximum speed allowed at an airbase in meters per second. </li>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeedKmph">ATC_GROUND.SetMaximumKickSpeedKmph</a>(): Set the maximum speed allowed at an airbase in kilometers per hour.</li>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeedMiph">ATC_GROUND.SetMaximumKickSpeedMiph</a>(): Set the maximum speed allowed at an airbase in miles per hour.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -404,6 +460,9 @@ ATC_Ground = ATC_GROUND_CAUCASUS:New(
|
||||
|
||||
<hr/>
|
||||
|
||||
<p>The default maximum speed for the airbases at Nevada is <strong>50 km/h</strong>. Warnings are given if this speed limit is trespassed.
|
||||
Players will be immediately kicked when driving faster than <strong>150 km/h</strong> on the taxi way.</p>
|
||||
|
||||
<p>The ATC_GROUND_NEVADA class monitors the speed of the airplanes at the airbase during taxi.
|
||||
The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.</p>
|
||||
|
||||
@ -446,11 +505,14 @@ Use the <a href="Airbase.html##(AIRBASE).Nevada">Airbase#AIRBASE.Nevada</a> enum
|
||||
|
||||
<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>ATC_GROUND is functional in multi player, however ...</p>
|
||||
|
||||
<p>Due to a bug in DCS since release 1.5, the despawning of clients are not anymore working in multi player.
|
||||
To <strong>work around this problem</strong>, a much better solution has been made, using the <strong>slot blocker</strong> script designed
|
||||
by Ciribob. </p>
|
||||
|
||||
<p>With the help of <strong>Ciribob</strong>, this script has been extended to also kick client players while in flight.
|
||||
ATC_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>
|
||||
|
||||
@ -465,7 +527,7 @@ ATC</em>GROUND is communicating with this modified script to kick players!</p>
|
||||
<pre><code>-- This creates a new ATC_GROUND_NEVADA object.
|
||||
|
||||
-- Monitor all the airbases.
|
||||
AirbasePoliceCaucasus = ATC_GROUND_NEVADA:New()
|
||||
ATC_Ground = ATC_GROUND_NEVADA:New()
|
||||
|
||||
|
||||
-- Monitor specific airbases.
|
||||
@ -479,6 +541,27 @@ ATC_Ground = ATC_GROUND_NEVADA:New(
|
||||
)
|
||||
</code></pre>
|
||||
|
||||
<h2>2. Set various options</h2>
|
||||
|
||||
<p>There are various methods that you can use to tweak the behaviour of the ATC_GROUND classes.</p>
|
||||
|
||||
<h3>2.1 Speed limit at an airbase.</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeed">ATC_GROUND.SetKickSpeed</a>(): Set the speed limit allowed at an airbase in meters per second.</li>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeedKmph">ATC_GROUND.SetKickSpeedKmph</a>(): Set the speed limit allowed at an airbase in kilometers per hour.</li>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeedMiph">ATC_GROUND.SetKickSpeedMiph</a>(): Set the speed limit allowed at an airbase in miles per hour.</li>
|
||||
</ul>
|
||||
|
||||
<h3>2.2 Prevent Takeoff at an airbase. Players will be kicked immediately.</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeed">ATC_GROUND.SetMaximumKickSpeed</a>(): Set the maximum speed allowed at an airbase in meters per second. </li>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeedKmph">ATC_GROUND.SetMaximumKickSpeedKmph</a>(): Set the maximum speed allowed at an airbase in kilometers per hour.</li>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeedMiph">ATC_GROUND.SetMaximumKickSpeedMiph</a>(): Set the maximum speed allowed at an airbase in miles per hour.</li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
@ -505,6 +588,9 @@ ATC_Ground = ATC_GROUND_NEVADA:New(
|
||||
|
||||
<hr/>
|
||||
|
||||
<p>The default maximum speed for the airbases at Caucasus is <strong>40 km/h</strong>. Warnings are given if this speed limit is trespassed.
|
||||
Players will be immediately kicked when driving faster than <strong>100 km/h</strong> on the taxi way.</p>
|
||||
|
||||
<p>The ATC_GROUND_NORMANDY class monitors the speed of the airplanes at the airbase during taxi.
|
||||
The pilots may not drive faster than the maximum speed for the airbase, or they will be despawned.</p>
|
||||
|
||||
@ -560,11 +646,14 @@ Use the <a href="Airbase.html##(AIRBASE).Normandy">Airbase#AIRBASE.Normandy</a>
|
||||
|
||||
<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>ATC_GROUND is functional in multi player, however ...</p>
|
||||
|
||||
<p>Due to a bug in DCS since release 1.5, the despawning of clients are not anymore working in multi player.
|
||||
To <strong>work around this problem</strong>, a much better solution has been made, using the <strong>slot blocker</strong> script designed
|
||||
by Ciribob. </p>
|
||||
|
||||
<p>With the help of <strong>Ciribob</strong>, this script has been extended to also kick client players while in flight.
|
||||
ATC_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>
|
||||
|
||||
@ -589,6 +678,26 @@ ATC_Ground = ATC_GROUND_NORMANDY:New(
|
||||
</code></pre>
|
||||
|
||||
|
||||
<h2>2. Set various options</h2>
|
||||
|
||||
<p>There are various methods that you can use to tweak the behaviour of the ATC_GROUND classes.</p>
|
||||
|
||||
<h3>2.1 Speed limit at an airbase.</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeed">ATC_GROUND.SetKickSpeed</a>(): Set the speed limit allowed at an airbase in meters per second.</li>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeedKmph">ATC_GROUND.SetKickSpeedKmph</a>(): Set the speed limit allowed at an airbase in kilometers per hour.</li>
|
||||
<li><a href="##(ATC_GROUND).SetKickSpeedMiph">ATC_GROUND.SetKickSpeedMiph</a>(): Set the speed limit allowed at an airbase in miles per hour.</li>
|
||||
</ul>
|
||||
|
||||
<h3>2.2 Prevent Takeoff at an airbase. Players will be kicked immediately.</h3>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeed">ATC_GROUND.SetMaximumKickSpeed</a>(): Set the maximum speed allowed at an airbase in meters per second. </li>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeedKmph">ATC_GROUND.SetMaximumKickSpeedKmph</a>(): Set the maximum speed allowed at an airbase in kilometers per hour.</li>
|
||||
<li><a href="##(ATC_GROUND).SetMaximumKickSpeedMiph">ATC_GROUND.SetMaximumKickSpeedMiph</a>(): Set the maximum speed allowed at an airbase in miles per hour.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
@ -625,20 +734,6 @@ ATC_Ground = ATC_GROUND_NORMANDY:New(
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(ATC_GROUND).AirbaseMonitor" >
|
||||
<strong>ATC_GROUND.AirbaseMonitor</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -667,6 +762,20 @@ ATC_Ground = ATC_GROUND_NORMANDY:New(
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(ATC_GROUND).MaximumKickSpeed" >
|
||||
<strong>ATC_GROUND.MaximumKickSpeed</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -718,20 +827,29 @@ self</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND).SetKickSpeedKmph" >
|
||||
<strong>ATC_GROUND:SetKickSpeedKmph(KickSpeed)</strong>
|
||||
<a id="#(ATC_GROUND).SetKickSpeed" >
|
||||
<strong>ATC_GROUND:SetKickSpeed(KickSpeed, Airbase)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Set the maximum speed in Kmph until the player gets kicked.</p>
|
||||
<p>Set the maximum speed in meters per second (Mps) until the player gets kicked.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
|
||||
<p>An airbase can be specified to set the kick speed for.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number KickSpeed </em></code>:
|
||||
Set the maximum speed in Kmph until the player gets kicked.</p>
|
||||
The speed in Mps.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>:
|
||||
(optional) The airbase to set the kick speed for.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
@ -740,25 +858,84 @@ Set the maximum speed in Kmph until the player gets kicked.</p>
|
||||
<p><em><a href="##(ATC_GROUND)">#ATC_GROUND</a>:</em>
|
||||
self</p>
|
||||
|
||||
<h3>Usage:</h3>
|
||||
<pre class="example"><code>
|
||||
-- Declare Atc_Ground using one of those, depending on the map.
|
||||
|
||||
Atc_Ground = ATC_GROUND_CAUCAUS:New()
|
||||
Atc_Ground = ATC_GROUND_NEVADA:New()
|
||||
Atc_Ground = ATC_GROUND_NORMANDY:New()
|
||||
|
||||
-- Then use one of these methods...
|
||||
|
||||
Atc_Ground:SetKickSpeed( UTILS.KmphToMps( 80 ) ) -- Kick the players at 80 kilometers per hour
|
||||
|
||||
Atc_Ground:SetKickSpeed( UTILS.MiphToMps( 100 ) ) -- Kick the players at 100 miles per hour
|
||||
|
||||
Atc_Ground:SetKickSpeed( 24 ) -- Kick the players at 24 meters per second ( 24 * 3.6 = 86.4 kilometers per hour )
|
||||
</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND).SetKickSpeedKmph" >
|
||||
<strong>ATC_GROUND:SetKickSpeedKmph(KickSpeed, Airbase)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Set the maximum speed in Kmph until the player gets kicked.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number KickSpeed </em></code>:
|
||||
Set the speed in Kmph.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>:
|
||||
(optional) The airbase to set the kick speed for.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(ATC_GROUND)">#ATC_GROUND</a>:</em>
|
||||
self</p>
|
||||
|
||||
<p> Atc_Ground:SetKickSpeedKmph( 80 ) -- Kick the players at 80 kilometers per hour</p>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND).SetKickSpeedMiph" >
|
||||
<strong>ATC_GROUND:SetKickSpeedMiph(KickSpeedMiph)</strong>
|
||||
<strong>ATC_GROUND:SetKickSpeedMiph(KickSpeedMiph, Airbase)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Set the maximum speed in Miph until the player gets kicked.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number KickSpeedMiph </em></code>:
|
||||
Set the maximum speed in Mph until the player gets kicked.</p>
|
||||
Set the speed in Mph.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>:
|
||||
(optional) The airbase to set the kick speed for.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
@ -767,6 +944,143 @@ Set the maximum speed in Mph until the player gets kicked.</p>
|
||||
<p><em><a href="##(ATC_GROUND)">#ATC_GROUND</a>:</em>
|
||||
self</p>
|
||||
|
||||
<p> Atc_Ground:SetKickSpeedMiph( 100 ) -- Kick the players at 100 miles per hour</p>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND).SetMaximumKickSpeed" >
|
||||
<strong>ATC_GROUND:SetMaximumKickSpeed(MaximumKickSpeed, Airbase)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Set the maximum kick speed in meters per second (Mps) until the player gets kicked.</p>
|
||||
|
||||
|
||||
<p>There are no warnings given if this speed is reached, and is to prevent players to take off from the airbase!
|
||||
An airbase can be specified to set the maximum kick speed for.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number MaximumKickSpeed </em></code>:
|
||||
The speed in Mps.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>:
|
||||
(optional) The airbase to set the kick speed for.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(ATC_GROUND)">#ATC_GROUND</a>:</em>
|
||||
self</p>
|
||||
|
||||
<h3>Usage:</h3>
|
||||
<pre class="example"><code>
|
||||
-- Declare Atc_Ground using one of those, depending on the map.
|
||||
|
||||
Atc_Ground = ATC_GROUND_CAUCAUS:New()
|
||||
Atc_Ground = ATC_GROUND_NEVADA:New()
|
||||
Atc_Ground = ATC_GROUND_NORMANDY:New()
|
||||
|
||||
-- Then use one of these methods...
|
||||
|
||||
Atc_Ground:SetMaximumKickSpeed( UTILS.KmphToMps( 80 ) ) -- Kick the players at 80 kilometers per hour
|
||||
|
||||
Atc_Ground:SetMaximumKickSpeed( UTILS.MiphToMps( 100 ) ) -- Kick the players at 100 miles per hour
|
||||
|
||||
Atc_Ground:SetMaximumKickSpeed( 24 ) -- Kick the players at 24 meters per second ( 24 * 3.6 = 86.4 kilometers per hour )
|
||||
</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND).SetMaximumKickSpeedKmph" >
|
||||
<strong>ATC_GROUND:SetMaximumKickSpeedKmph(MaximumKickSpeed, Airbase)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Set the maximum kick speed in kilometers per hour (Kmph) until the player gets kicked.</p>
|
||||
|
||||
|
||||
<p>There are no warnings given if this speed is reached, and is to prevent players to take off from the airbase!
|
||||
An airbase can be specified to set the maximum kick speed for.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number MaximumKickSpeed </em></code>:
|
||||
Set the speed in Kmph.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>:
|
||||
(optional) The airbase to set the kick speed for.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(ATC_GROUND)">#ATC_GROUND</a>:</em>
|
||||
self</p>
|
||||
|
||||
<p> Atc_Ground:SetMaximumKickSpeedKmph( 150 ) -- Kick the players at 150 kilometers per hour</p>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND).SetMaximumKickSpeedMiph" >
|
||||
<strong>ATC_GROUND:SetMaximumKickSpeedMiph(MaximumKickSpeedMiph, Airbase)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Set the maximum kick speed in miles per hour (Miph) until the player gets kicked.</p>
|
||||
|
||||
|
||||
<p>There are no warnings given if this speed is reached, and is to prevent players to take off from the airbase!
|
||||
An airbase can be specified to set the maximum kick speed for.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#number MaximumKickSpeedMiph </em></code>:
|
||||
Set the speed in Mph.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Airbase.html##(AIRBASE)">Wrapper.Airbase#AIRBASE</a> Airbase </em></code>:
|
||||
(optional) The airbase to set the kick speed for.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(ATC_GROUND)">#ATC_GROUND</a>:</em>
|
||||
self</p>
|
||||
|
||||
<p> Atc_Ground:SetMaximumKickSpeedMiph( 100 ) -- Kick the players at 100 miles per hour</p>
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -877,6 +1191,20 @@ self</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(ATC_GROUND_NORMANDY).AirbaseMonitor" >
|
||||
<strong>ATC_GROUND_NORMANDY.AirbaseMonitor</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(ATC_GROUND_NORMANDY).New" >
|
||||
<strong>ATC_GROUND_NORMANDY:New(AirbaseNames)</strong>
|
||||
</a>
|
||||
|
||||
@ -3699,7 +3699,6 @@ The range till cargo will board.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(CARGO_UNIT).CargoCarrier" >
|
||||
<strong>CARGO_UNIT.CargoCarrier</strong>
|
||||
</a>
|
||||
|
||||
@ -1609,7 +1609,7 @@ A string defining the start state.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#string</em>
|
||||
<em></em>
|
||||
<a id="#(FSM)._StartState" >
|
||||
<strong>FSM._StartState</strong>
|
||||
</a>
|
||||
@ -1908,6 +1908,7 @@ A string defining the start state.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(FSM).current" >
|
||||
<strong>FSM.current</strong>
|
||||
</a>
|
||||
|
||||
@ -238,7 +238,6 @@ on defined intervals (currently every minute).</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(MOVEMENT).AliveUnits" >
|
||||
<strong>MOVEMENT.AliveUnits</strong>
|
||||
</a>
|
||||
@ -247,9 +246,6 @@ on defined intervals (currently every minute).</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p> Contains the counter how many units are currently alive</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
|
||||
@ -3496,7 +3496,6 @@ The y coordinate.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(POINT_VEC2).z" >
|
||||
<strong>POINT_VEC2.z</strong>
|
||||
</a>
|
||||
|
||||
@ -2315,6 +2315,9 @@ The group that was spawned. You can use this group for further actions.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -3408,7 +3411,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
|
||||
|
||||
|
||||
|
||||
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
|
||||
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@ -491,7 +491,6 @@ ptional) The name of the new static.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(SPAWNSTATIC).SpawnIndex" >
|
||||
<strong>SPAWNSTATIC.SpawnIndex</strong>
|
||||
</a>
|
||||
|
||||
@ -776,6 +776,7 @@ true if it is lasing</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(SPOT).ScheduleID" >
|
||||
<strong>SPOT.ScheduleID</strong>
|
||||
</a>
|
||||
@ -789,6 +790,7 @@ true if it is lasing</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(SPOT).SpotIR" >
|
||||
<strong>SPOT.SpotIR</strong>
|
||||
</a>
|
||||
@ -802,6 +804,7 @@ true if it is lasing</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(SPOT).SpotLaser" >
|
||||
<strong>SPOT.SpotLaser</strong>
|
||||
</a>
|
||||
@ -815,6 +818,7 @@ true if it is lasing</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(SPOT).Target" >
|
||||
<strong>SPOT.Target</strong>
|
||||
</a>
|
||||
|
||||
@ -641,7 +641,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<em></em>
|
||||
<a id="#(TASK_CARGO).CargoLimit" >
|
||||
<strong>TASK_CARGO.CargoLimit</strong>
|
||||
</a>
|
||||
|
||||
@ -490,7 +490,6 @@ The name of the player.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(ZONE_GOAL).SmokeTime" >
|
||||
<strong>ZONE_GOAL.SmokeTime</strong>
|
||||
</a>
|
||||
@ -499,9 +498,6 @@ The name of the player.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>self.SmokeColor = nil</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user