mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
* Renamed AIRBASE POLICE to ATC GROUND
* Fixed issues with landing and departing.
This commit is contained in:
parent
a8c5ccd4ad
commit
8002febf09
@ -1,4 +1,4 @@
|
||||
--- **Functional** -- The AIRBASEPOLICE classes monitor airbase traffic and regulate speed while taxiing.
|
||||
--- **Functional** -- The ATC_GROUND classes monitor airbase traffic and regulate speed while taxiing.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
@ -7,34 +7,34 @@
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- @module AirbasePolice
|
||||
-- @module ATC_Ground
|
||||
|
||||
|
||||
--- @type AIRBASEPOLICE_BASE
|
||||
--- @type ATC_GROUND
|
||||
-- @field Core.Set#SET_CLIENT SetClient
|
||||
-- @extends Core.Base#BASE
|
||||
|
||||
--- Base class for AIRBASEPOLICE implementations.
|
||||
-- @field #AIRBASEPOLICE_BASE
|
||||
AIRBASEPOLICE_BASE = {
|
||||
ClassName = "AIRBASEPOLICE_BASE",
|
||||
--- Base class for ATC_GROUND implementations.
|
||||
-- @field #ATC_GROUND
|
||||
ATC_GROUND = {
|
||||
ClassName = "ATC_GROUND",
|
||||
SetClient = nil,
|
||||
Airbases = nil,
|
||||
AirbaseNames = nil,
|
||||
}
|
||||
|
||||
--- @type AIRBASEPOLICE_BASE.AirbaseNames
|
||||
--- @type ATC_GROUND.AirbaseNames
|
||||
-- @list <#string>
|
||||
|
||||
|
||||
--- Creates a new AIRBASEPOLICE_BASE object.
|
||||
-- @param #AIRBASEPOLICE_BASE self
|
||||
--- Creates a new ATC_GROUND object.
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param Airbases A table of Airbase Names.
|
||||
-- @return #AIRBASEPOLICE_BASE self
|
||||
function AIRBASEPOLICE_BASE:New( Airbases, AirbaseList )
|
||||
-- @return #ATC_GROUND self
|
||||
function ATC_GROUND:New( Airbases, AirbaseList )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, BASE:New() ) -- #AIRBASEPOLICE_BASE
|
||||
local self = BASE:Inherit( self, BASE:New() ) -- #ATC_GROUND
|
||||
self:E( { self.ClassName, Airbases } )
|
||||
|
||||
self.Airbases = Airbases
|
||||
@ -88,10 +88,10 @@ end
|
||||
|
||||
|
||||
--- Smoke the airbases runways.
|
||||
-- @param #AIRBASEPOLICE_BASE self
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param Utilities.Utils#SMOKECOLOR SmokeColor The color of the smoke around the runways.
|
||||
-- @return #AIRBASEPOLICE_BASE self
|
||||
function AIRBASEPOLICE_BASE:SmokeRunways( SmokeColor )
|
||||
-- @return #ATC_GROUND self
|
||||
function ATC_GROUND:SmokeRunways( SmokeColor )
|
||||
|
||||
for AirbaseID, Airbase in pairs( self.Airbases ) do
|
||||
for PointsRunwayID, PointsRunway in pairs( Airbase.PointsRunways ) do
|
||||
@ -102,27 +102,27 @@ end
|
||||
|
||||
|
||||
--- Set the maximum speed in Kmph until the player gets kicked.
|
||||
-- @param #AIRBASEPOLICE_BASE self
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number KickSpeed Set the maximum speed in Kmph until the player gets kicked.
|
||||
-- @return #AIRBASEPOLICE_BASE self
|
||||
function AIRBASEPOLICE_BASE:SetKickSpeedKmph( KickSpeed )
|
||||
-- @return #ATC_GROUND self
|
||||
function ATC_GROUND:SetKickSpeedKmph( KickSpeed )
|
||||
|
||||
self.KickSpeed = UTILS.KmphToMps( KickSpeed )
|
||||
end
|
||||
|
||||
--- Set the maximum speed in Miph until the player gets kicked.
|
||||
-- @param #AIRBASEPOLICE_BASE self
|
||||
-- @param #ATC_GROUND self
|
||||
-- @param #number KickSpeedMiph Set the maximum speed in Mph until the player gets kicked.
|
||||
-- @return #AIRBASEPOLICE_BASE self
|
||||
function AIRBASEPOLICE_BASE:SetKickSpeedMiph( KickSpeedMiph )
|
||||
-- @return #ATC_GROUND self
|
||||
function ATC_GROUND:SetKickSpeedMiph( KickSpeedMiph )
|
||||
|
||||
self.KickSpeed = UTILS.MiphToMps( KickSpeedMiph )
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- @param #AIRBASEPOLICE_BASE self
|
||||
function AIRBASEPOLICE_BASE:_AirbaseMonitor()
|
||||
--- @param #ATC_GROUND self
|
||||
function ATC_GROUND:_AirbaseMonitor()
|
||||
|
||||
self:E( "In Scheduler")
|
||||
|
||||
@ -144,94 +144,96 @@ function AIRBASEPOLICE_BASE:_AirbaseMonitor()
|
||||
NotInRunwayZone = ( Client:IsNotInZone( ZoneRunway ) == true ) and NotInRunwayZone or false
|
||||
end
|
||||
|
||||
local IsOnGround = Client:InAir() == false
|
||||
|
||||
if NotInRunwayZone then
|
||||
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" )
|
||||
Client:SetState( self, "Taxi", true )
|
||||
end
|
||||
|
||||
-- TODO: GetVelocityKMH function usage
|
||||
local Velocity = VELOCITY_POSITIONABLE:New( Client )
|
||||
--MESSAGE:New( "Velocity = " .. Velocity:ToString(), 1 ):ToAll()
|
||||
local IsAboveRunway = Client:IsAboveRunway()
|
||||
local IsOnGround = Client:InAir() == false
|
||||
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()
|
||||
Client:Destroy()
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
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" )
|
||||
Client:SetState( self, "Taxi", true )
|
||||
end
|
||||
|
||||
-- TODO: GetVelocityKMH function usage
|
||||
local Velocity = VELOCITY_POSITIONABLE:New( Client )
|
||||
--MESSAGE:New( "Velocity = " .. Velocity:ToString(), 1 ):ToAll()
|
||||
local IsAboveRunway = Client:IsAboveRunway()
|
||||
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()
|
||||
Client:Destroy()
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if IsOnGround then
|
||||
|
||||
if Velocity:GetKmph() > AirbaseMeta.MaximumSpeed then
|
||||
local IsSpeeding = Client:GetState( self, "Speeding" )
|
||||
|
||||
if IsSpeeding == true then
|
||||
local SpeedingWarnings = Client:GetState( self, "Warnings" )
|
||||
self:T( SpeedingWarnings )
|
||||
|
||||
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" )
|
||||
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()
|
||||
--- @param Wrapper.Client#CLIENT Client
|
||||
Client:Destroy()
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
end
|
||||
|
||||
else
|
||||
Client:Message( "Attention! You are speeding on the taxiway, slow down! Your speed is " .. string.format( "%s", Velocity:ToString() ), 5, "ATC" )
|
||||
Client:SetState( self, "Speeding", true )
|
||||
Client:SetState( self, "Warnings", 1 )
|
||||
end
|
||||
|
||||
else
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if IsOnGround then
|
||||
|
||||
if Velocity:GetKmph() > AirbaseMeta.MaximumSpeed then
|
||||
local IsSpeeding = Client:GetState( self, "Speeding" )
|
||||
|
||||
if IsSpeeding == true then
|
||||
local SpeedingWarnings = Client:GetState( self, "Warnings" )
|
||||
self:T( SpeedingWarnings )
|
||||
|
||||
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" )
|
||||
Client:SetState( self, "Warnings", SpeedingWarnings + 1 )
|
||||
if IsOnGround and not IsAboveRunway then
|
||||
|
||||
local IsOffRunway = Client:GetState( self, "IsOffRunway" )
|
||||
|
||||
if IsOffRunway == true then
|
||||
local OffRunwayWarnings = Client:GetState( self, "OffRunwayWarnings" )
|
||||
self:T( OffRunwayWarnings )
|
||||
|
||||
if OffRunwayWarnings <= 3 then
|
||||
Client:Message( "Warning " .. OffRunwayWarnings .. "/3! Airbase traffic rule violation! Get back on the taxi immediately!", 5, "ATC" )
|
||||
Client:SetState( self, "OffRunwayWarnings", OffRunwayWarnings + 1 )
|
||||
else
|
||||
MESSAGE:New( "Penalty! Player " .. Client:GetPlayerName() .. " is kicked, due to a severe airbase traffic rule violation ...", 10, "ATC" ):ToAll()
|
||||
--- @param Wrapper.Client#CLIENT Client
|
||||
Client:Destroy()
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
Client:SetState( self, "IsOffRunway", false )
|
||||
Client:SetState( self, "OffRunwayWarnings", 0 )
|
||||
end
|
||||
|
||||
else
|
||||
Client:Message( "Attention! You are speeding on the taxiway, slow down! Your speed is " .. string.format( "%s", Velocity:ToString() ), 5, "ATC" )
|
||||
Client:SetState( self, "Speeding", true )
|
||||
Client:SetState( self, "Warnings", 1 )
|
||||
Client:Message( "Attention! You are off the taxiway. Get back on the taxiway immediately!", 5, "ATC" )
|
||||
Client:SetState( self, "IsOffRunway", true )
|
||||
Client:SetState( self, "OffRunwayWarnings", 1 )
|
||||
end
|
||||
|
||||
|
||||
else
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
Client:SetState( self, "IsOffRunway", false )
|
||||
Client:SetState( self, "OffRunwayWarnings", 0 )
|
||||
end
|
||||
end
|
||||
|
||||
if IsOnGround and not IsAboveRunway then
|
||||
|
||||
local IsOffRunway = Client:GetState( self, "IsOffRunway" )
|
||||
|
||||
if IsOffRunway == true then
|
||||
local OffRunwayWarnings = Client:GetState( self, "OffRunwayWarnings" )
|
||||
self:T( OffRunwayWarnings )
|
||||
|
||||
if OffRunwayWarnings <= 3 then
|
||||
Client:Message( "Warning " .. OffRunwayWarnings .. "/3! Airbase traffic rule violation! Get back on the taxi immediately!", 5, "ATC" )
|
||||
Client:SetState( self, "OffRunwayWarnings", OffRunwayWarnings + 1 )
|
||||
else
|
||||
MESSAGE:New( "Penalty! Player " .. Client:GetPlayerName() .. " is kicked, due to a severe airbase traffic rule violation ...", 10, "ATC" ):ToAll()
|
||||
--- @param Wrapper.Client#CLIENT Client
|
||||
Client:Destroy()
|
||||
Client:SetState( self, "IsOffRunway", false )
|
||||
Client:SetState( self, "OffRunwayWarnings", 0 )
|
||||
end
|
||||
else
|
||||
Client:Message( "Attention! You are off the taxiway. Get back on the taxiway immediately!", 5, "ATC" )
|
||||
Client:SetState( self, "IsOffRunway", true )
|
||||
Client:SetState( self, "OffRunwayWarnings", 1 )
|
||||
end
|
||||
|
||||
else
|
||||
Client:SetState( self, "IsOffRunway", false )
|
||||
Client:SetState( self, "OffRunwayWarnings", 0 )
|
||||
end
|
||||
|
||||
|
||||
else
|
||||
Client:SetState( self, "Speeding", false )
|
||||
Client:SetState( self, "Warnings", 0 )
|
||||
@ -243,6 +245,8 @@ function AIRBASEPOLICE_BASE:_AirbaseMonitor()
|
||||
Client:SetState( self, "Taxi", false )
|
||||
end
|
||||
end
|
||||
else
|
||||
Client:SetState( self, "Taxi", false )
|
||||
end
|
||||
end
|
||||
)
|
||||
@ -253,14 +257,14 @@ function AIRBASEPOLICE_BASE:_AirbaseMonitor()
|
||||
end
|
||||
|
||||
|
||||
--- @type AIRBASEPOLICE_CAUCASUS
|
||||
-- @extends #AIRBASEPOLICE_BASE
|
||||
--- @type ATC_GROUND_CAUCASUS
|
||||
-- @extends #ATC_GROUND
|
||||
|
||||
--- # AIRBASEPOLICE_CAUCASUS, extends @{#AIRBASEPOLICE_BASE}
|
||||
--- # ATC_GROUND_CAUCASUS, extends @{#ATC_GROUND}
|
||||
--
|
||||
-- 
|
||||
-- 
|
||||
--
|
||||
-- The AIRBASEPOLICE_CAUCASUS class monitors the speed of the airplanes at the airbase during taxi.
|
||||
-- The ATC_GROUND_CAUCASUS 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.
|
||||
--
|
||||
-- The maximum speed for the airbases at Caucasus is **50 km/h**.
|
||||
@ -272,44 +276,45 @@ end
|
||||
--
|
||||
-- # Airbases monitored
|
||||
--
|
||||
-- The following airbases are monitored at the Caucasus region:
|
||||
-- The following airbases are monitored at the Caucasus region.
|
||||
-- Use the AIRBASE.Caucasus enumeration to select the airbases to be monitored.
|
||||
--
|
||||
-- * Anapa Vityazevo
|
||||
-- * Batumi
|
||||
-- * Beslan
|
||||
-- * Gelendzhik
|
||||
-- * Gudauta
|
||||
-- * Kobuleti
|
||||
-- * Krasnodar Center
|
||||
-- * Krasnodar Pashkovsky
|
||||
-- * Krymsk
|
||||
-- * Kutaisi
|
||||
-- * Maykop Khanskaya
|
||||
-- * Mineralnye Vody
|
||||
-- * Mozdok
|
||||
-- * Nalchik
|
||||
-- * Novorossiysk
|
||||
-- * Senaki Kolkhi
|
||||
-- * Sochi Adler
|
||||
-- * Soganlug
|
||||
-- * Sukhumi Babushara
|
||||
-- * Tbilisi Lochini
|
||||
-- * Vaziani
|
||||
-- * ´AIRBASE.Caucasus.Anapa_Vityazevo´
|
||||
-- * ´AIRBASE.Caucasus.Batumi´
|
||||
-- * ´AIRBASE.Caucasus.Beslan´
|
||||
-- * ´AIRBASE.Caucasus.Gelendzhik´
|
||||
-- * ´AIRBASE.Caucasus.Gudauta´
|
||||
-- * ´AIRBASE.Caucasus.Kobuleti´
|
||||
-- * ´AIRBASE.Caucasus.Krasnodar_Center´
|
||||
-- * ´AIRBASE.Caucasus.Krasnodar_Pashkovsky´
|
||||
-- * ´AIRBASE.Caucasus.Krymsk´
|
||||
-- * ´AIRBASE.Caucasus.Kutaisi´
|
||||
-- * ´AIRBASE.Caucasus.Maykop_Khanskaya´
|
||||
-- * ´AIRBASE.Caucasus.Mineralnye_Vody´
|
||||
-- * ´AIRBASE.Caucasus.Mozdok´
|
||||
-- * ´AIRBASE.Caucasus.Nalchik´
|
||||
-- * ´AIRBASE.Caucasus.Novorossiysk´
|
||||
-- * ´AIRBASE.Caucasus.Senaki_Kolkhi´
|
||||
-- * ´AIRBASE.Caucasus.Sochi_Adler´
|
||||
-- * ´AIRBASE.Caucasus.Soganlug´
|
||||
-- * ´AIRBASE.Caucasus.Sukhumi_Babushara´
|
||||
-- * ´AIRBASE.Caucasus.Tbilisi_Lochini´
|
||||
-- * ´AIRBASE.Caucasus.Vaziani´
|
||||
--
|
||||
--
|
||||
-- # Installation
|
||||
--
|
||||
-- ## In Single Player Missions
|
||||
--
|
||||
-- AIRBASEPOLICE is fully functional in single player.
|
||||
-- ATC_GROUND is fully functional in single player.
|
||||
--
|
||||
-- ## In Multi Player Missions
|
||||
--
|
||||
-- AIRBASEPOLICE is NOT functional in multi player, for client machines connecting to the server, running the mission.
|
||||
-- ATC_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!
|
||||
-- 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.
|
||||
--
|
||||
@ -317,18 +322,26 @@ end
|
||||
--
|
||||
-- # Script it!
|
||||
--
|
||||
-- ## 1. AIRBASEPOLICE_CAUCASUS Constructor
|
||||
-- ## 1. ATC_GROUND_CAUCASUS Constructor
|
||||
--
|
||||
-- Creates a new AIRBASEPOLICE_CAUCASUS object that will monitor pilots taxiing behaviour.
|
||||
-- Creates a new ATC_GROUND_CAUCASUS object that will monitor pilots taxiing behaviour.
|
||||
--
|
||||
-- -- This creates a new AIRBASEPOLICE_CAUCASUS object.
|
||||
-- -- This creates a new ATC_GROUND_CAUCASUS object.
|
||||
--
|
||||
-- -- Monitor for these clients the airbases.
|
||||
-- AirbasePoliceCaucasus = AIRBASEPOLICE_CAUCASUS:New()
|
||||
-- -- Monitor all the airbases.
|
||||
-- AirbasePoliceCaucasus = ATC_GROUND_CAUCASUS:New()
|
||||
--
|
||||
-- -- Monitor specific airbases only.
|
||||
--
|
||||
-- @field #AIRBASEPOLICE_CAUCASUS
|
||||
AIRBASEPOLICE_CAUCASUS = {
|
||||
ClassName = "AIRBASEPOLICE_CAUCASUS",
|
||||
-- ATC_Ground = ATC_GROUND_CAUCASUS:New(
|
||||
-- { AIRBASE.Caucasus.Gelendzhik,
|
||||
-- AIRBASE.Caucasus.Krymsk
|
||||
-- }
|
||||
-- )
|
||||
--
|
||||
-- @field #ATC_GROUND_CAUCASUS
|
||||
ATC_GROUND_CAUCASUS = {
|
||||
ClassName = "ATC_GROUND_CAUCASUS",
|
||||
Airbases = {
|
||||
[AIRBASE.Caucasus.Anapa_Vityazevo] = {
|
||||
PointsRunways = {
|
||||
@ -615,14 +628,14 @@ AIRBASEPOLICE_CAUCASUS = {
|
||||
},
|
||||
}
|
||||
|
||||
--- Creates a new AIRBASEPOLICE_CAUCASUS object.
|
||||
-- @param #AIRBASEPOLICE_CAUCASUS self
|
||||
--- Creates a new ATC_GROUND_CAUCASUS object.
|
||||
-- @param #ATC_GROUND_CAUCASUS self
|
||||
-- @param AirbaseNames A list {} of airbase names (Use AIRBASE.Caucasus enumerator).
|
||||
-- @return #AIRBASEPOLICE_CAUCASUS self
|
||||
function AIRBASEPOLICE_CAUCASUS:New( AirbaseNames )
|
||||
-- @return #ATC_GROUND_CAUCASUS self
|
||||
function ATC_GROUND_CAUCASUS:New( AirbaseNames )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, AIRBASEPOLICE_BASE:New( self.Airbases, AirbaseNames ) )
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) )
|
||||
|
||||
|
||||
|
||||
@ -838,15 +851,15 @@ end
|
||||
|
||||
|
||||
|
||||
--- @type AIRBASEPOLICE_NEVADA
|
||||
-- @extends Functional.AirbasePolice#AIRBASEPOLICE_BASE
|
||||
--- @type ATC_GROUND_NEVADA
|
||||
-- @extends Functional.AirbasePolice#ATC_GROUND
|
||||
|
||||
|
||||
--- # AIRBASEPOLICE_NEVADA, extends @{#AIRBASEPOLICE_BASE}
|
||||
--- # ATC_GROUND_NEVADA, extends @{#ATC_GROUND}
|
||||
--
|
||||
-- 
|
||||
-- 
|
||||
--
|
||||
-- The AIRBASEPOLICE_NEVADA class monitors the speed of the airplanes at the airbase during taxi.
|
||||
-- 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.
|
||||
--
|
||||
-- The pilot will receive 3 times a warning during speeding. After the 3rd warning, if the pilot is still driving
|
||||
@ -856,27 +869,41 @@ end
|
||||
--
|
||||
-- # Airbases monitored
|
||||
--
|
||||
-- The following airbases are monitored at the Caucasus region:
|
||||
-- The following airbases are monitored at the Nevada region.
|
||||
-- Use the AIRBASE.Nevada enumeration to select the airbases to be monitored.
|
||||
--
|
||||
-- * Nellis
|
||||
-- * McCarran
|
||||
-- * Creech
|
||||
-- * GroomLake
|
||||
--
|
||||
-- * `AIRBASE.Nevada.Beatty_Airport`
|
||||
-- * `AIRBASE.Nevada.Boulder_City_Airport`
|
||||
-- * `AIRBASE.Nevada.Creech_AFB`
|
||||
-- * `AIRBASE.Nevada.Echo_Bay`
|
||||
-- * `AIRBASE.Nevada.Groom_Lake_AFB`
|
||||
-- * `AIRBASE.Nevada.Henderson_Executive_Airport`
|
||||
-- * `AIRBASE.Nevada.Jean_Airport`
|
||||
-- * `AIRBASE.Nevada.Laughlin_Airport`
|
||||
-- * `AIRBASE.Nevada.Lincoln_County`
|
||||
-- * `AIRBASE.Nevada.McCarran_International_Airport`
|
||||
-- * `AIRBASE.Nevada.Mellan_Airstrip`
|
||||
-- * `AIRBASE.Nevada.Mesquite`
|
||||
-- * `AIRBASE.Nevada.Mina_Airport_3Q0`
|
||||
-- * `AIRBASE.Nevada.Nellis_AFB`
|
||||
-- * `AIRBASE.Nevada.North_Las_Vegas`
|
||||
-- * `AIRBASE.Nevada.Pahute_Mesa_Airstrip`
|
||||
-- * `AIRBASE.Nevada.Tonopah_Airport`
|
||||
-- * `AIRBASE.Nevada.Tonopah_Test_Range_Airfield`
|
||||
--
|
||||
-- # Installation
|
||||
--
|
||||
-- ## In Single Player Missions
|
||||
--
|
||||
-- AIRBASEPOLICE is fully functional in single player.
|
||||
-- ATC_GROUND is fully functional in single player.
|
||||
--
|
||||
-- ## In Multi Player Missions
|
||||
--
|
||||
-- AIRBASEPOLICE is NOT functional in multi player, for client machines connecting to the server, running the mission.
|
||||
-- ATC_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!
|
||||
-- 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.
|
||||
--
|
||||
@ -884,18 +911,29 @@ end
|
||||
--
|
||||
-- # Script it!
|
||||
--
|
||||
-- ## 1. AIRBASEPOLICE_NEVADA Constructor
|
||||
-- ## 1. ATC_GROUND_NEVADA Constructor
|
||||
--
|
||||
-- Creates a new AIRBASEPOLICE_NEVADA object that will monitor pilots taxiing behaviour.
|
||||
-- Creates a new ATC_GROUND_NEVADA object that will monitor pilots taxiing behaviour.
|
||||
--
|
||||
-- -- This creates a new AIRBASEPOLICE_NEVADA object.
|
||||
-- -- This creates a new ATC_GROUND_NEVADA object.
|
||||
--
|
||||
-- -- Monitor for these clients the airbases.
|
||||
-- AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New()
|
||||
-- -- Monitor all the airbases.
|
||||
-- AirbasePoliceCaucasus = ATC_GROUND_NEVADA:New()
|
||||
--
|
||||
-- @field #AIRBASEPOLICE_NEVADA
|
||||
AIRBASEPOLICE_NEVADA = {
|
||||
ClassName = "AIRBASEPOLICE_NEVADA",
|
||||
--
|
||||
-- -- 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
|
||||
-- }
|
||||
-- )
|
||||
--
|
||||
-- @field #ATC_GROUND_NEVADA
|
||||
ATC_GROUND_NEVADA = {
|
||||
ClassName = "ATC_GROUND_NEVADA",
|
||||
Airbases = {
|
||||
|
||||
[AIRBASE.Nevada.Beatty_Airport] = {
|
||||
@ -1165,14 +1203,14 @@ AIRBASEPOLICE_NEVADA = {
|
||||
},
|
||||
}
|
||||
|
||||
--- Creates a new AIRBASEPOLICE_NEVADA object.
|
||||
-- @param #AIRBASEPOLICE_NEVADA self
|
||||
--- Creates a new ATC_GROUND_NEVADA object.
|
||||
-- @param #ATC_GROUND_NEVADA self
|
||||
-- @param AirbaseNames A list {} of airbase names (Use AIRBASE.Nevada enumerator).
|
||||
-- @return #AIRBASEPOLICE_NEVADA self
|
||||
function AIRBASEPOLICE_NEVADA:New( AirbaseNames )
|
||||
-- @return #ATC_GROUND_NEVADA self
|
||||
function ATC_GROUND_NEVADA:New( AirbaseNames )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, AIRBASEPOLICE_BASE:New( self.Airbases, AirbaseNames ) )
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) )
|
||||
|
||||
|
||||
|
||||
@ -1335,15 +1373,15 @@ function AIRBASEPOLICE_NEVADA:New( AirbaseNames )
|
||||
|
||||
end
|
||||
|
||||
--- @type AIRBASEPOLICE_NORMANDY
|
||||
-- @extends Functional.AirbasePolice#AIRBASEPOLICE_BASE
|
||||
--- @type ATC_GROUND_NORMANDY
|
||||
-- @extends Functional.AirbasePolice#ATC_GROUND
|
||||
|
||||
|
||||
--- # AIRBASEPOLICE_NORMANDY, extends @{#AIRBASEPOLICE_BASE}
|
||||
--- # ATC_GROUND_NORMANDY, extends @{#ATC_GROUND}
|
||||
--
|
||||
-- 
|
||||
-- 
|
||||
--
|
||||
-- The AIRBASEPOLICE_NORMANDY class monitors the speed of the airplanes at the airbase during taxi.
|
||||
-- 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.
|
||||
--
|
||||
-- The pilot will receive 3 times a warning during speeding. After the 3rd warning, if the pilot is still driving
|
||||
@ -1353,27 +1391,54 @@ end
|
||||
--
|
||||
-- # Airbases monitored
|
||||
--
|
||||
-- The following airbases are monitored at the Caucasus region:
|
||||
-- The following airbases are monitored at the Normandy region.
|
||||
-- Use the AIRBASE.Normandy enumeration to select the airbases to be monitored.
|
||||
--
|
||||
-- * Nellis
|
||||
-- * McCarran
|
||||
-- * Creech
|
||||
-- * GroomLake
|
||||
--
|
||||
-- * ´AIRBASE.Normandy.Azeville´
|
||||
-- * ´AIRBASE.Normandy.Bazenville´
|
||||
-- * ´AIRBASE.Normandy.Beny_sur_Mer´
|
||||
-- * ´AIRBASE.Normandy.Beuzeville´
|
||||
-- * ´AIRBASE.Normandy.Biniville´
|
||||
-- * ´AIRBASE.Normandy.Brucheville´
|
||||
-- * ´AIRBASE.Normandy.Cardonville´
|
||||
-- * ´AIRBASE.Normandy.Carpiquet´
|
||||
-- * ´AIRBASE.Normandy.Chailey´
|
||||
-- * ´AIRBASE.Normandy.Chippelle´
|
||||
-- * ´AIRBASE.Normandy.Cretteville´
|
||||
-- * ´AIRBASE.Normandy.Cricqueville_en_Bessin´
|
||||
-- * ´AIRBASE.Normandy.Deux_Jumeaux´
|
||||
-- * ´AIRBASE.Normandy.Evreux´
|
||||
-- * ´AIRBASE.Normandy.Ford´
|
||||
-- * ´AIRBASE.Normandy.Funtington´
|
||||
-- * ´AIRBASE.Normandy.Lantheuil´
|
||||
-- * ´AIRBASE.Normandy.Le_Molay´
|
||||
-- * ´AIRBASE.Normandy.Lessay´
|
||||
-- * ´AIRBASE.Normandy.Lignerolles´
|
||||
-- * ´AIRBASE.Normandy.Longues_sur_Mer´
|
||||
-- * ´AIRBASE.Normandy.Maupertus´
|
||||
-- * ´AIRBASE.Normandy.Meautis´
|
||||
-- * ´AIRBASE.Normandy.Needs_Oar_Point´
|
||||
-- * ´AIRBASE.Normandy.Picauville´
|
||||
-- * ´AIRBASE.Normandy.Rucqueville´
|
||||
-- * ´AIRBASE.Normandy.Saint_Pierre_du_Mont´
|
||||
-- * ´AIRBASE.Normandy.Sainte_Croix_sur_Mer´
|
||||
-- * ´AIRBASE.Normandy.Sainte_Laurent_sur_Mer´
|
||||
-- * ´AIRBASE.Normandy.Sommervieu´
|
||||
-- * ´AIRBASE.Normandy.Tangmere´
|
||||
--
|
||||
-- # Installation
|
||||
--
|
||||
-- ## In Single Player Missions
|
||||
--
|
||||
-- AIRBASEPOLICE is fully functional in single player.
|
||||
-- ATC_GROUND is fully functional in single player.
|
||||
--
|
||||
-- ## In Multi Player Missions
|
||||
--
|
||||
-- AIRBASEPOLICE is NOT functional in multi player, for client machines connecting to the server, running the mission.
|
||||
-- ATC_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!
|
||||
-- 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.
|
||||
--
|
||||
@ -1381,18 +1446,25 @@ end
|
||||
--
|
||||
-- # Script it!
|
||||
--
|
||||
-- ## 1. AIRBASEPOLICE_NORMANDY Constructor
|
||||
-- ## 1. ATC_GROUND_NORMANDY Constructor
|
||||
--
|
||||
-- Creates a new AIRBASEPOLICE_NORMANDY object that will monitor pilots taxiing behaviour.
|
||||
-- Creates a new ATC_GROUND_NORMANDY object that will monitor pilots taxiing behaviour.
|
||||
--
|
||||
-- -- This creates a new AIRBASEPOLICE_NORMANDY object.
|
||||
-- -- This creates a new ATC_GROUND_NORMANDY object.
|
||||
--
|
||||
-- -- Monitor for these clients the airbases.
|
||||
-- AirbasePoliceCaucasus = AIRBASEPOLICE_NORMANDY:New()
|
||||
-- AirbasePoliceCaucasus = ATC_GROUND_NORMANDY:New()
|
||||
--
|
||||
-- ATC_Ground = ATC_GROUND_NORMANDY:New(
|
||||
-- { AIRBASE.Normandy.Chippelle,
|
||||
-- AIRBASE.Normandy.Beuzeville
|
||||
-- }
|
||||
-- )
|
||||
--
|
||||
--
|
||||
-- @field #AIRBASEPOLICE_NORMANDY
|
||||
AIRBASEPOLICE_NORMANDY = {
|
||||
ClassName = "AIRBASEPOLICE_NORMANDY",
|
||||
-- @field #ATC_GROUND_NORMANDY
|
||||
ATC_GROUND_NORMANDY = {
|
||||
ClassName = "ATC_GROUND_NORMANDY",
|
||||
Airbases = {
|
||||
[AIRBASE.Normandy.Azeville] = {
|
||||
PointsRunways = {
|
||||
@ -1784,14 +1856,14 @@ AIRBASEPOLICE_NORMANDY = {
|
||||
}
|
||||
|
||||
|
||||
--- Creates a new AIRBASEPOLICE_NORMANDY object.
|
||||
-- @param #AIRBASEPOLICE_NORMANDY self
|
||||
--- Creates a new ATC_GROUND_NORMANDY object.
|
||||
-- @param #ATC_GROUND_NORMANDY self
|
||||
-- @param AirbaseNames A list {} of airbase names (Use AIRBASE.Normandy enumerator).
|
||||
-- @return #AIRBASEPOLICE_NORMANDY self
|
||||
function AIRBASEPOLICE_NORMANDY:New( AirbaseNames )
|
||||
-- @return #ATC_GROUND_NORMANDY self
|
||||
function ATC_GROUND_NORMANDY:New( AirbaseNames )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, AIRBASEPOLICE_BASE:New( self.Airbases, AirbaseNames ) )
|
||||
local self = BASE:Inherit( self, ATC_GROUND:New( self.Airbases, AirbaseNames ) )
|
||||
|
||||
-- These lines here are for the demonstration mission.
|
||||
-- They create in the dcs.log the coordinates of the runway polygons, that are then
|
||||
@ -149,7 +149,7 @@ function AIRBASE:Register( AirbaseName )
|
||||
|
||||
local self = BASE:Inherit( self, POSITIONABLE:New( AirbaseName ) )
|
||||
self.AirbaseName = AirbaseName
|
||||
self.AirbaseZone = ZONE_RADIUS:New( AirbaseName, self:GetVec2(), 8000 )
|
||||
self.AirbaseZone = ZONE_RADIUS:New( AirbaseName, self:GetVec2(), 2000 )
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
@ -41,7 +41,7 @@ Functional/Movement.lua
|
||||
Functional/Sead.lua
|
||||
Functional/Escort.lua
|
||||
Functional/MissileTrainer.lua
|
||||
Functional/AirbasePolice.lua
|
||||
Functional/ATC_Ground.lua
|
||||
Functional/Detection.lua
|
||||
Functional/Designate.lua
|
||||
Functional/RAT.lua
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' )
|
||||
env.info( 'Moose Generation Timestamp: 20171023_1007' )
|
||||
env.info( 'Moose Generation Timestamp: 20171026_0958' )
|
||||
|
||||
local base = _G
|
||||
|
||||
@ -61,7 +61,7 @@ __Moose.Include( 'Functional/Movement.lua' )
|
||||
__Moose.Include( 'Functional/Sead.lua' )
|
||||
__Moose.Include( 'Functional/Escort.lua' )
|
||||
__Moose.Include( 'Functional/MissileTrainer.lua' )
|
||||
__Moose.Include( 'Functional/AirbasePolice.lua' )
|
||||
__Moose.Include( 'Functional/ATC_Ground.lua' )
|
||||
__Moose.Include( 'Functional/Detection.lua' )
|
||||
__Moose.Include( 'Functional/Designate.lua' )
|
||||
__Moose.Include( 'Functional/RAT.lua' )
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
env.info('*** MOOSE DYNAMIC INCLUDE START *** ')
|
||||
env.info('Moose Generation Timestamp: 20171023_1007')
|
||||
env.info('Moose Generation Timestamp: 20171026_0958')
|
||||
local base=_G
|
||||
__Moose={}
|
||||
__Moose.Include=function(IncludeFile)
|
||||
@ -56,7 +56,7 @@ __Moose.Include('Functional/Movement.lua')
|
||||
__Moose.Include('Functional/Sead.lua')
|
||||
__Moose.Include('Functional/Escort.lua')
|
||||
__Moose.Include('Functional/MissileTrainer.lua')
|
||||
__Moose.Include('Functional/AirbasePolice.lua')
|
||||
__Moose.Include('Functional/ATC_Ground.lua')
|
||||
__Moose.Include('Functional/Detection.lua')
|
||||
__Moose.Include('Functional/Designate.lua')
|
||||
__Moose.Include('Functional/RAT.lua')
|
||||
|
||||
@ -671,6 +671,7 @@
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(AI_A2A).IdleCount" >
|
||||
<strong>AI_A2A.IdleCount</strong>
|
||||
</a>
|
||||
|
||||
@ -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 & 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>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -3805,6 +3805,7 @@ The range till cargo will board.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(CARGO_UNIT).RunCount" >
|
||||
<strong>CARGO_UNIT.RunCount</strong>
|
||||
</a>
|
||||
|
||||
@ -1106,7 +1106,7 @@ function below will use the range 1-7 just in case</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<em>#number</em>
|
||||
<a id="#(DESIGNATE).LaseDuration" >
|
||||
<strong>DESIGNATE.LaseDuration</strong>
|
||||
</a>
|
||||
|
||||
@ -2469,7 +2469,6 @@ The index of the DetectedItem.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(DETECTION_BASE).DetectedItemCount" >
|
||||
<strong>DETECTION_BASE.DetectedItemCount</strong>
|
||||
</a>
|
||||
@ -2483,7 +2482,6 @@ The index of the DetectedItem.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#number</em>
|
||||
<a id="#(DETECTION_BASE).DetectedItemMax" >
|
||||
<strong>DETECTION_BASE.DetectedItemMax</strong>
|
||||
</a>
|
||||
|
||||
@ -1608,7 +1608,7 @@ A string defining the start state.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<em>#string</em>
|
||||
<a id="#(FSM)._StartState" >
|
||||
<strong>FSM._StartState</strong>
|
||||
</a>
|
||||
@ -1907,7 +1907,6 @@ A string defining the start state.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em></em>
|
||||
<a id="#(FSM).current" >
|
||||
<strong>FSM.current</strong>
|
||||
</a>
|
||||
|
||||
@ -314,7 +314,7 @@
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetVelocity">POSITIONABLE:GetVelocity()</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns the POSITIONABLE velocity vector.</p>
|
||||
<p>Returns the a <a href="Velocity.html">Velocity</a> object from the positionable.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -327,6 +327,12 @@
|
||||
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetVelocityMPS">POSITIONABLE:GetVelocityMPS()</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns the POSITIONABLE velocity in meters per second.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(POSITIONABLE).GetVelocityVec3">POSITIONABLE:GetVelocityVec3()</a></td>
|
||||
<td class="summary">
|
||||
<p>Returns the POSITIONABLE velocity Vec3 vector.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -1208,14 +1214,14 @@ The POSITIONABLE is not existing or alive. </p>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Returns the POSITIONABLE velocity vector.</p>
|
||||
<p>Returns the a <a href="Velocity.html">Velocity</a> object from the positionable.</p>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
<p><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a>:</em>
|
||||
The velocity vector</p>
|
||||
<p><em><a href="Core.Velocity.html##(VELOCITY)">Core.Velocity#VELOCITY</a>:</em>
|
||||
Velocity The Velocity object.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
@ -1266,6 +1272,34 @@ The velocity in meters per second.</p>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(POSITIONABLE).GetVelocityVec3" >
|
||||
<strong>POSITIONABLE:GetVelocityVec3()</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Returns the POSITIONABLE velocity Vec3 vector.</p>
|
||||
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
<p><em><a href="Dcs.DCSTypes.html##(Vec3)">Dcs.DCSTypes#Vec3</a>:</em>
|
||||
The velocity Vec3 vector</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><em>#nil:</em>
|
||||
The POSITIONABLE is not existing or alive. </p>
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(POSITIONABLE).HasCargo" >
|
||||
<strong>POSITIONABLE:HasCargo(Cargo)</strong>
|
||||
</a>
|
||||
|
||||
@ -236,6 +236,22 @@
|
||||
<li>Countries</li>
|
||||
<li>Starting with certain prefix strings.</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="#SET_PLAYER">SET_PLAYER</a></td>
|
||||
<td class="summary">
|
||||
<h1>4) SET_PLAYER class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
|
||||
|
||||
<p>Mission designers can use the <a href="Set.html##(SET_PLAYER)">Set#SET_PLAYER</a> class to build sets of units belonging to alive players:</p>
|
||||
|
||||
<h2>4.1) SET_PLAYER constructor</h2>
|
||||
|
||||
<p>Create a new SET_PLAYER object with the <a href="##(SET_PLAYER).New">SET_PLAYER.New</a> method:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(SET_PLAYER).New">SET_PLAYER.New</a>: Creates a new SET_PLAYER object.</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -951,6 +967,106 @@ mission designer to add a dedicated method</p>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_GROUP)._EventOnDeadOrCrash">SET_GROUP:_EventOnDeadOrCrash(Event)</a></td>
|
||||
<td class="summary">
|
||||
<p>Handles the OnDead or OnCrash event for alive groups set.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2><a id="#(SET_PLAYER)">Type <code>SET_PLAYER</code></a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).AddClientsByName">SET_PLAYER:AddClientsByName(AddClientNames)</a></td>
|
||||
<td class="summary">
|
||||
<p>Add CLIENT(s) to SET_PLAYER.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).AddInDatabase">SET_PLAYER:AddInDatabase(Event)</a></td>
|
||||
<td class="summary">
|
||||
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterCategories">SET_PLAYER:FilterCategories(Categories)</a></td>
|
||||
<td class="summary">
|
||||
<p>Builds a set of clients out of categories joined by players.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterCoalitions">SET_PLAYER:FilterCoalitions(Coalitions)</a></td>
|
||||
<td class="summary">
|
||||
<p>Builds a set of clients of coalitions joined by specific players.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterCountries">SET_PLAYER:FilterCountries(Countries)</a></td>
|
||||
<td class="summary">
|
||||
<p>Builds a set of clients of defined countries.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterPrefixes">SET_PLAYER:FilterPrefixes(Prefixes)</a></td>
|
||||
<td class="summary">
|
||||
<p>Builds a set of clients of defined client prefixes.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterStart">SET_PLAYER:FilterStart()</a></td>
|
||||
<td class="summary">
|
||||
<p>Starts the filtering.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FilterTypes">SET_PLAYER:FilterTypes(Types)</a></td>
|
||||
<td class="summary">
|
||||
<p>Builds a set of clients of defined client types joined by players.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FindClient">SET_PLAYER:FindClient(PlayerName)</a></td>
|
||||
<td class="summary">
|
||||
<p>Finds a Client based on the Player Name.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).FindInDatabase">SET_PLAYER:FindInDatabase(Event)</a></td>
|
||||
<td class="summary">
|
||||
<p>Handles the Database to check on any event that Object exists in the Database.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).ForEachPlayer">SET_PLAYER:ForEachPlayer(IteratorFunction, ...)</a></td>
|
||||
<td class="summary">
|
||||
<p>Iterate the SET_PLAYER and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).ForEachPlayerInZone">SET_PLAYER:ForEachPlayerInZone(ZoneObject, IteratorFunction, ...)</a></td>
|
||||
<td class="summary">
|
||||
<p>Iterate the SET_PLAYER and call an iterator function for each <strong>alive</strong> CLIENT presence completely in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).ForEachPlayerNotInZone">SET_PLAYER:ForEachPlayerNotInZone(ZoneObject, IteratorFunction, ...)</a></td>
|
||||
<td class="summary">
|
||||
<p>Iterate the SET_PLAYER and call an iterator function for each <strong>alive</strong> CLIENT presence not in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).IsIncludeObject">SET_PLAYER:IsIncludeObject(MClient)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).New">SET_PLAYER:New()</a></td>
|
||||
<td class="summary">
|
||||
<p>Creates a new SET_PLAYER object, building a set of clients belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(SET_PLAYER).RemoveClientsByName">SET_PLAYER:RemoveClientsByName(RemoveClientNames)</a></td>
|
||||
<td class="summary">
|
||||
<p>Remove CLIENT(s) from SET_PLAYER.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -1664,6 +1780,69 @@ The following iterator methods are currently available within the SET</em>GROUP:
|
||||
|
||||
<hr/>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em><a href="##(SET_PLAYER)">#SET_PLAYER</a></em>
|
||||
<a id="SET_PLAYER" >
|
||||
<strong>SET_PLAYER</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<h1>4) SET_PLAYER class, extends <a href="Set.html##(SET_BASE)">Set#SET_BASE</a></h1>
|
||||
|
||||
<p>Mission designers can use the <a href="Set.html##(SET_PLAYER)">Set#SET_PLAYER</a> class to build sets of units belonging to alive players:</p>
|
||||
|
||||
<h2>4.1) SET_PLAYER constructor</h2>
|
||||
|
||||
<p>Create a new SET_PLAYER object with the <a href="##(SET_PLAYER).New">SET_PLAYER.New</a> method:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(SET_PLAYER).New">SET_PLAYER.New</a>: Creates a new SET_PLAYER object.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p> </p>
|
||||
<h2>4.3) SET_PLAYER filter criteria</h2>
|
||||
|
||||
<p>You can set filter criteria to define the set of clients within the SET_PLAYER.
|
||||
Filter criteria are defined by:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(SET_PLAYER).FilterCoalitions">SET_PLAYER.FilterCoalitions</a>: Builds the SET_PLAYER with the clients belonging to the coalition(s).</li>
|
||||
<li><a href="##(SET_PLAYER).FilterCategories">SET_PLAYER.FilterCategories</a>: Builds the SET_PLAYER with the clients belonging to the category(ies).</li>
|
||||
<li><a href="##(SET_PLAYER).FilterTypes">SET_PLAYER.FilterTypes</a>: Builds the SET_PLAYER with the clients belonging to the client type(s).</li>
|
||||
<li><a href="##(SET_PLAYER).FilterCountries">SET_PLAYER.FilterCountries</a>: Builds the SET_PLAYER with the clients belonging to the country(ies).</li>
|
||||
<li><a href="##(SET_PLAYER).FilterPrefixes">SET_PLAYER.FilterPrefixes</a>: Builds the SET_PLAYER with the clients starting with the same prefix string(s).</li>
|
||||
</ul>
|
||||
|
||||
<p>Once the filter criteria have been set for the SET_PLAYER, you can start filtering using:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(SET_PLAYER).FilterStart">SET_PLAYER.FilterStart</a>: Starts the filtering of the clients within the SET_PLAYER.</li>
|
||||
</ul>
|
||||
|
||||
<p>Planned filter criteria within development are (so these are not yet available):</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(SET_PLAYER).FilterZones">SET_PLAYER.FilterZones</a>: Builds the SET_PLAYER with the clients within a <a href="Zone.html##(ZONE)">Zone#ZONE</a>.</li>
|
||||
</ul>
|
||||
|
||||
<h2>4.4) SET_PLAYER iterators</h2>
|
||||
|
||||
<p>Once the filters have been defined and the SET<em>PLAYER has been built, you can iterate the SET</em>PLAYER with the available iterator methods.
|
||||
The iterator methods will walk the SET<em>PLAYER set, and call for each element within the set a function that you provide.
|
||||
The following iterator methods are currently available within the SET</em>PLAYER:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="##(SET_PLAYER).ForEachClient">SET_PLAYER.ForEachClient</a>: Calls a function for each alive client it finds within the SET_PLAYER.</li>
|
||||
</ul>
|
||||
|
||||
<hr/>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -4828,6 +5007,491 @@ A single name or an array of GROUP names.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2><a id="#(SET_PLAYER)" >Type <code>SET_PLAYER</code></a></h2>
|
||||
<h3>Field(s)</h3>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).AddClientsByName" >
|
||||
<strong>SET_PLAYER:AddClientsByName(AddClientNames)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Add CLIENT(s) to SET_PLAYER.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string AddClientNames </em></code>:
|
||||
A single name or an array of CLIENT names.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
|
||||
<p>self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).AddInDatabase" >
|
||||
<strong>SET_PLAYER:AddInDatabase(Event)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Handles the Database to check on an event (birth) that the Object was added in the Database.</p>
|
||||
|
||||
|
||||
<p>This is required, because sometimes the <em>DATABASE birth event gets called later than the SET</em>BASE birth event!</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
<p><em>#string:</em>
|
||||
The name of the CLIENT</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><em>#table:</em>
|
||||
The CLIENT</p>
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FilterCategories" >
|
||||
<strong>SET_PLAYER:FilterCategories(Categories)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Builds a set of clients out of categories joined by players.</p>
|
||||
|
||||
|
||||
<p>Possible current categories are plane, helicopter, ground, ship.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string Categories </em></code>:
|
||||
Can take the following values: "plane", "helicopter", "ground", "ship".</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FilterCoalitions" >
|
||||
<strong>SET_PLAYER:FilterCoalitions(Coalitions)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Builds a set of clients of coalitions joined by specific players.</p>
|
||||
|
||||
|
||||
<p>Possible current coalitions are red, blue and neutral.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string Coalitions </em></code>:
|
||||
Can take the following values: "red", "blue", "neutral".</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FilterCountries" >
|
||||
<strong>SET_PLAYER:FilterCountries(Countries)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Builds a set of clients of defined countries.</p>
|
||||
|
||||
|
||||
<p>Possible current countries are those known within DCS world.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string Countries </em></code>:
|
||||
Can take those country strings known within DCS world.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FilterPrefixes" >
|
||||
<strong>SET_PLAYER:FilterPrefixes(Prefixes)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Builds a set of clients of defined client prefixes.</p>
|
||||
|
||||
|
||||
<p>All the clients starting with the given prefixes will be included within the set.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string Prefixes </em></code>:
|
||||
The prefix of which the client name starts with.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FilterStart" >
|
||||
<strong>SET_PLAYER:FilterStart()</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Starts the filtering.</p>
|
||||
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FilterTypes" >
|
||||
<strong>SET_PLAYER:FilterTypes(Types)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Builds a set of clients of defined client types joined by players.</p>
|
||||
|
||||
|
||||
<p>Possible current types are those types known within DCS world.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string Types </em></code>:
|
||||
Can take those type strings known within DCS world.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FindClient" >
|
||||
<strong>SET_PLAYER:FindClient(PlayerName)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Finds a Client based on the Player Name.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#string PlayerName </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a>:</em>
|
||||
The found Client.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).FindInDatabase" >
|
||||
<strong>SET_PLAYER:FindInDatabase(Event)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Handles the Database to check on any event that Object exists in the Database.</p>
|
||||
|
||||
|
||||
<p>This is required, because sometimes the <em>DATABASE event gets called later than the SET</em>BASE event or vise versa!</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return values</h3>
|
||||
<ol>
|
||||
<li>
|
||||
|
||||
<p><em>#string:</em>
|
||||
The name of the CLIENT</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><em>#table:</em>
|
||||
The CLIENT</p>
|
||||
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).ForEachPlayer" >
|
||||
<strong>SET_PLAYER:ForEachPlayer(IteratorFunction, ...)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Iterate the SET_PLAYER and call an interator function for each <strong>alive</strong> CLIENT, providing the CLIENT and optional parameters.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em>#function IteratorFunction </em></code>:
|
||||
The function that will be called when there is an alive CLIENT in the SET_PLAYER. The function needs to accept a CLIENT parameter.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> ... </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).ForEachPlayerInZone" >
|
||||
<strong>SET_PLAYER:ForEachPlayerInZone(ZoneObject, IteratorFunction, ...)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Iterate the SET_PLAYER and call an iterator function for each <strong>alive</strong> CLIENT presence completely in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
|
||||
The Zone to be tested for.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em>#function IteratorFunction </em></code>:
|
||||
The function that will be called when there is an alive CLIENT in the SET_PLAYER. The function needs to accept a CLIENT parameter.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> ... </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).ForEachPlayerNotInZone" >
|
||||
<strong>SET_PLAYER:ForEachPlayerNotInZone(ZoneObject, IteratorFunction, ...)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Iterate the SET_PLAYER and call an iterator function for each <strong>alive</strong> CLIENT presence not in a <a href="Zone.html">Zone</a>, providing the CLIENT and optional parameters to the called function.</p>
|
||||
|
||||
<h3>Parameters</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> ZoneObject </em></code>:
|
||||
The Zone to be tested for.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em>#function IteratorFunction </em></code>:
|
||||
The function that will be called when there is an alive CLIENT in the SET_PLAYER. The function needs to accept a CLIENT parameter.</p>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<p><code><em> ... </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).IsIncludeObject" >
|
||||
<strong>SET_PLAYER:IsIncludeObject(MClient)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> MClient </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em>
|
||||
self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).New" >
|
||||
<strong>SET_PLAYER:New()</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Creates a new SET_PLAYER object, building a set of clients belonging to a coalitions, categories, countries, types or with defined prefix names.</p>
|
||||
|
||||
<h3>Return value</h3>
|
||||
|
||||
<p><em><a href="##(SET_PLAYER)">#SET_PLAYER</a>:</em></p>
|
||||
|
||||
|
||||
<h3>Usage:</h3>
|
||||
<pre class="example"><code>-- Define a new SET_PLAYER Object. This DBObject will contain a reference to all Clients.
|
||||
DBObject = SET_PLAYER:New()</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(SET_PLAYER).RemoveClientsByName" >
|
||||
<strong>SET_PLAYER:RemoveClientsByName(RemoveClientNames)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Remove CLIENT(s) from SET_PLAYER.</p>
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em><a href="Wrapper.Client.html##(CLIENT)">Wrapper.Client#CLIENT</a> RemoveClientNames </em></code>:
|
||||
A single name or an array of CLIENT names.</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Return value</h3>
|
||||
|
||||
|
||||
<p>self</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
@ -2308,9 +2308,6 @@ 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">
|
||||
@ -2885,9 +2882,6 @@ when nothing was spawned.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p> Overwrite unit names by default with group name.</p>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
@ -3285,7 +3279,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em>#boolean</em>
|
||||
<em></em>
|
||||
<a id="#(SPAWN).SpawnUnControlled" >
|
||||
<strong>SPAWN.SpawnUnControlled</strong>
|
||||
</a>
|
||||
|
||||
@ -562,7 +562,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<em><a href="Core.Cargo.html##(CARGO)">Core.Cargo#CARGO</a></em>
|
||||
<em><a href="Core.Cargo.html##(CARGO_GROUP)">Core.Cargo#CARGO_GROUP</a></em>
|
||||
<a id="#(FSM_PROCESS).Cargo" >
|
||||
<strong>FSM_PROCESS.Cargo</strong>
|
||||
</a>
|
||||
|
||||
@ -317,6 +317,12 @@ which are excellent tools to be reused in an OO environment!.</p>
|
||||
<td class="name" nowrap="nowrap"><a href="##(UTILS).MetersToNM">UTILS.MetersToNM(meters)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(UTILS).MiphToMps">UTILS.MiphToMps(miph)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -329,6 +335,12 @@ which are excellent tools to be reused in an OO environment!.</p>
|
||||
<td class="name" nowrap="nowrap"><a href="##(UTILS).MpsToKnots">UTILS.MpsToKnots(mps)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="##(UTILS).MpsToMiph">UTILS.MpsToMiph(mps)</a></td>
|
||||
<td class="summary">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -910,6 +922,27 @@ is the name of the class to evaluate (can be either a string or a Moose class)</
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(UTILS).MiphToMps" >
|
||||
<strong>UTILS.MiphToMps(miph)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em> miph </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(UTILS).MpsToKmph" >
|
||||
<strong>UTILS.MpsToKmph(mps)</strong>
|
||||
</a>
|
||||
@ -939,6 +972,27 @@ is the name of the class to evaluate (can be either a string or a Moose class)</
|
||||
|
||||
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
<p><code><em> mps </em></code>: </p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl class="function">
|
||||
<dt>
|
||||
|
||||
<a id="#(UTILS).MpsToMiph" >
|
||||
<strong>UTILS.MpsToMiph(mps)</strong>
|
||||
</a>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
|
||||
|
||||
<h3>Parameter</h3>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@ -276,7 +276,7 @@ even when there are hardly any players in the mission.</strong></p>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="AirbasePolice.html">AirbasePolice</a></td>
|
||||
<td class="summary">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -288,7 +288,7 @@ even when there are hardly any players in the mission.</strong></p>
|
||||
<tr>
|
||||
<td class="name" nowrap="nowrap"><a href="Base.html">Base</a></td>
|
||||
<td class="summary">
|
||||
<p><strong>Core</strong> -- BASE forms <strong>the basis of the MOOSE framework</strong>.</p>
|
||||
<p><strong>Core</strong> -- VELOCITY models a speed, which can be expressed in various formats according the Settings.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user