From 7cab0ca22ae773c193c70308370e9f47cc3704b9 Mon Sep 17 00:00:00 2001 From: FlightControl_Master Date: Fri, 20 Oct 2017 13:54:37 +0200 Subject: [PATCH 1/4] Documentation improvements. --- .../Moose/Functional/AirbasePolice.lua | 188 ++++++--- docs/Documentation/AI_A2A.html | 1 + docs/Documentation/AI_A2A_Cap.html | 1 + docs/Documentation/AI_A2A_Dispatcher.html | 1 + docs/Documentation/AI_A2A_GCI.html | 1 + docs/Documentation/AI_A2A_Patrol.html | 1 + docs/Documentation/AI_BAI.html | 1 + docs/Documentation/AI_Balancer.html | 5 +- docs/Documentation/AI_Cap.html | 1 + docs/Documentation/AI_Cas.html | 1 + docs/Documentation/AI_Formation.html | 1 + docs/Documentation/AI_Patrol.html | 3 +- docs/Documentation/Account.html | 1 + docs/Documentation/Airbase.html | 1 + docs/Documentation/AirbasePolice.html | 379 +++++++++++++----- docs/Documentation/Assign.html | 1 + docs/Documentation/Base.html | 1 + docs/Documentation/Cargo.html | 307 ++++++++++++-- docs/Documentation/CleanUp.html | 1 + docs/Documentation/Client.html | 1 + docs/Documentation/CommandCenter.html | 1 + docs/Documentation/Controllable.html | 1 + docs/Documentation/DCSAirbase.html | 1 + docs/Documentation/DCSCoalitionObject.html | 1 + docs/Documentation/DCSCommand.html | 1 + docs/Documentation/DCSController.html | 1 + docs/Documentation/DCSGroup.html | 1 + docs/Documentation/DCSObject.html | 1 + docs/Documentation/DCSTask.html | 1 + docs/Documentation/DCSTypes.html | 1 + docs/Documentation/DCSUnit.html | 1 + docs/Documentation/DCSVec3.html | 1 + docs/Documentation/DCSWorld.html | 1 + docs/Documentation/DCSZone.html | 1 + docs/Documentation/DCScountry.html | 1 + docs/Documentation/DCStimer.html | 1 + docs/Documentation/DCStrigger.html | 1 + docs/Documentation/Database.html | 1 + docs/Documentation/Designate.html | 4 +- docs/Documentation/Detection.html | 3 +- docs/Documentation/DetectionManager.html | 1 + docs/Documentation/Escort.html | 1 + docs/Documentation/Event.html | 1 + docs/Documentation/Fsm.html | 1 + docs/Documentation/Goal.html | 1 + docs/Documentation/Group.html | 1 + docs/Documentation/Identifiable.html | 1 + docs/Documentation/Menu.html | 1 + docs/Documentation/Message.html | 1 + docs/Documentation/MissileTrainer.html | 1 + docs/Documentation/Mission.html | 1 + docs/Documentation/Movement.html | 1 + docs/Documentation/Object.html | 1 + docs/Documentation/Point.html | 1 + docs/Documentation/Positionable.html | 2 +- docs/Documentation/Process_JTAC.html | 1 + docs/Documentation/Process_Pickup.html | 1 + docs/Documentation/Protect.html | 1 + docs/Documentation/Radio.html | 1 + docs/Documentation/Rat.html | 1 + docs/Documentation/Route.html | 1 + docs/Documentation/Scenery.html | 1 + docs/Documentation/ScheduleDispatcher.html | 1 + docs/Documentation/Scheduler.html | 1 + docs/Documentation/Scoring.html | 1 + docs/Documentation/Sead.html | 1 + docs/Documentation/Set.html | 1 + docs/Documentation/Settings.html | 3 +- docs/Documentation/Smoke.html | 1 + docs/Documentation/Spawn.html | 142 ++++++- docs/Documentation/SpawnStatic.html | 1 + docs/Documentation/Spot.html | 1 + docs/Documentation/Static.html | 37 ++ docs/Documentation/StaticObject.html | 1 + docs/Documentation/Task.html | 1 + docs/Documentation/TaskZoneCapture.html | 1 + docs/Documentation/Task_A2A.html | 1 + docs/Documentation/Task_A2A_Dispatcher.html | 1 + docs/Documentation/Task_A2G.html | 1 + docs/Documentation/Task_A2G_Dispatcher.html | 1 + docs/Documentation/Task_Cargo.html | 4 +- docs/Documentation/Task_PICKUP.html | 1 + docs/Documentation/Unit.html | 25 ++ docs/Documentation/UserFlag.html | 38 ++ docs/Documentation/UserSound.html | 1 + docs/Documentation/Utils.html | 1 + docs/Documentation/Zone.html | 47 ++- docs/Documentation/ZoneCaptureCoalition.html | 1 + docs/Documentation/ZoneGoal.html | 5 + docs/Documentation/ZoneGoalCoalition.html | 1 + docs/Documentation/env.html | 1 + docs/Documentation/index.html | 11 +- docs/Documentation/land.html | 1 + docs/Documentation/routines.html | 1 + 94 files changed, 1089 insertions(+), 191 deletions(-) diff --git a/Moose Development/Moose/Functional/AirbasePolice.lua b/Moose Development/Moose/Functional/AirbasePolice.lua index f416c2516..3e95d65ec 100644 --- a/Moose Development/Moose/Functional/AirbasePolice.lua +++ b/Moose Development/Moose/Functional/AirbasePolice.lua @@ -1,67 +1,21 @@ ---- **Functional** -- This module monitors airbases traffic. +--- **Functional** -- The AIRBASEPOLICE classes monitor airbase traffic and regulate speed while taxiing. -- -- === -- --- 1) @{AirbasePolice#AIRBASEPOLICE_BASE} class, extends @{Base#BASE} --- ================================================================== --- The @{AirbasePolice#AIRBASEPOLICE_BASE} class provides the main methods to monitor CLIENT behaviour at airbases. --- CLIENTS should not be allowed to: --- --- * Don't taxi faster than 40 km/h. --- * Don't take-off on taxiways. --- * Avoid to hit other planes on the airbase. --- * Obey ground control orders. --- --- 2) @{AirbasePolice#AIRBASEPOLICE_CAUCASUS} class, extends @{AirbasePolice#AIRBASEPOLICE_BASE} --- ============================================================================================= --- All the airbases on the caucasus map can be monitored using this class. --- If you want to monitor specific airbases, you need to use the @{#AIRBASEPOLICE_BASE.Monitor}() method, which takes a table or airbase names. --- The following names can be given: --- * AnapaVityazevo --- * Batumi --- * Beslan --- * Gelendzhik --- * Gudauta --- * Kobuleti --- * KrasnodarCenter --- * KrasnodarPashkovsky --- * Krymsk --- * Kutaisi --- * MaykopKhanskaya --- * MineralnyeVody --- * Mozdok --- * Nalchik --- * Novorossiysk --- * SenakiKolkhi --- * SochiAdler --- * Soganlug --- * SukhumiBabushara --- * TbilisiLochini --- * Vaziani --- --- 3) @{AirbasePolice#AIRBASEPOLICE_NEVADA} class, extends @{AirbasePolice#AIRBASEPOLICE_BASE} --- ============================================================================================= --- All the airbases on the NEVADA map can be monitored using this class. --- If you want to monitor specific airbases, you need to use the @{#AIRBASEPOLICE_BASE.Monitor}() method, which takes a table or airbase names. --- The following names can be given: --- * Nellis --- * McCarran --- * Creech --- * Groom Lake --- -- ### Contributions: Dutch Baron - Concept & Testing -- ### Author: FlightControl - Framework Design & Programming -- +-- === +-- -- @module AirbasePolice - - - --- @type AIRBASEPOLICE_BASE -- @field Core.Set#SET_CLIENT SetClient -- @extends Core.Base#BASE +--- Base class for AIRBASEPOLICE implementations. +-- @field #AIRBASEPOLICE_BASE AIRBASEPOLICE_BASE = { ClassName = "AIRBASEPOLICE_BASE", SetClient = nil, @@ -224,9 +178,82 @@ end --- @type AIRBASEPOLICE_CAUCASUS --- @field Core.Set#SET_CLIENT SetClient -- @extends #AIRBASEPOLICE_BASE +--- # AIRBASEPOLICE_CAUCASUS, extends @{#AIRBASEPOLICE_BASE} +-- +-- ![Banner Image](..\Presentations\AIRBASEPOLICE\Dia1.JPG) +-- +-- The AIRBASEPOLICE_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**. +-- +-- 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. +-- +-- Different airbases have different maximum speeds, according safety regulations. +-- +-- # Airbases monitored +-- +-- The following airbases are monitored at the Caucasus region: +-- +-- * 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 +-- +-- +-- # Installation +-- +-- ## In Single Player Missions +-- +-- AIRBASEPOLICE 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. +-- 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! +-- +-- Install the file **SimpleSlotBlockGameGUI.lua** on the server, following the installation instructions described by Ciribob. +-- +-- [Simple Slot Blocker from Ciribob & FlightControl](https://github.com/ciribob/DCS-SimpleSlotBlock) +-- +-- # Script it! +-- +-- ## 1. AIRBASEPOLICE_CAUCASUS Constructor +-- +-- Creates a new AIRBASEPOLICE_CAUCASUS object that will monitor pilots taxiing behaviour. +-- +-- -- This creates a new AIRBASEPOLICE_CAUCASUS object. +-- +-- -- Create a set of all clients in the mission. +-- AllClientsSet = SET_CLIENT:New():FilterStart() +-- +-- -- Monitor for these clients the airbases. +-- AirbasePoliceCaucasus = AIRBASEPOLICE_CAUCASUS:New( AllClientsSet ) +-- +-- @field #AIRBASEPOLICE_CAUCASUS AIRBASEPOLICE_CAUCASUS = { ClassName = "AIRBASEPOLICE_CAUCASUS", Airbases = { @@ -966,6 +993,63 @@ end --- @type AIRBASEPOLICE_NEVADA -- @extends Functional.AirbasePolice#AIRBASEPOLICE_BASE + + +--- # AIRBASEPOLICE_NEVADA, extends @{#AIRBASEPOLICE_BASE} +-- +-- ![Banner Image](..\Presentations\AIRBASEPOLICE\Dia1.JPG) +-- +-- The AIRBASEPOLICE_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 +-- faster than the maximum allowed speed, the pilot will be kicked. +-- +-- Different airbases have different maximum speeds, according safety regulations. +-- +-- # Airbases monitored +-- +-- The following airbases are monitored at the Caucasus region: +-- +-- * Nellis +-- * McCarran +-- * Creech +-- * GroomLake +-- +-- +-- # Installation +-- +-- ## In Single Player Missions +-- +-- AIRBASEPOLICE 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. +-- 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! +-- +-- Install the file **SimpleSlotBlockGameGUI.lua** on the server, following the installation instructions described by Ciribob. +-- +-- [Simple Slot Blocker from Ciribob & FlightControl](https://github.com/ciribob/DCS-SimpleSlotBlock) +-- +-- # Script it! +-- +-- ## 1. AIRBASEPOLICE_NEVADA Constructor +-- +-- Creates a new AIRBASEPOLICE_NEVADA object that will monitor pilots taxiing behaviour. +-- +-- -- This creates a new AIRBASEPOLICE_NEVADA object. +-- +-- -- Create a set of all clients in the mission. +-- AllClientsSet = SET_CLIENT:New():FilterStart() +-- +-- -- Monitor for these clients the airbases. +-- AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet ) +-- +-- @field #AIRBASEPOLICE_NEVADA AIRBASEPOLICE_NEVADA = { ClassName = "AIRBASEPOLICE_NEVADA", Airbases = { diff --git a/docs/Documentation/AI_A2A.html b/docs/Documentation/AI_A2A.html index 38af29dd8..67ca9d37e 100644 --- a/docs/Documentation/AI_A2A.html +++ b/docs/Documentation/AI_A2A.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_A2A_Cap.html b/docs/Documentation/AI_A2A_Cap.html index 34916a9e4..f39859ed3 100644 --- a/docs/Documentation/AI_A2A_Cap.html +++ b/docs/Documentation/AI_A2A_Cap.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_A2A_Dispatcher.html b/docs/Documentation/AI_A2A_Dispatcher.html index 20765a7f1..4984b80ca 100644 --- a/docs/Documentation/AI_A2A_Dispatcher.html +++ b/docs/Documentation/AI_A2A_Dispatcher.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_A2A_GCI.html b/docs/Documentation/AI_A2A_GCI.html index a7a22fbbc..bd7536ac2 100644 --- a/docs/Documentation/AI_A2A_GCI.html +++ b/docs/Documentation/AI_A2A_GCI.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_A2A_Patrol.html b/docs/Documentation/AI_A2A_Patrol.html index 067902aa6..6490fccd9 100644 --- a/docs/Documentation/AI_A2A_Patrol.html +++ b/docs/Documentation/AI_A2A_Patrol.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_BAI.html b/docs/Documentation/AI_BAI.html index 7d6770c96..01a1b0410 100644 --- a/docs/Documentation/AI_BAI.html +++ b/docs/Documentation/AI_BAI.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_Balancer.html b/docs/Documentation/AI_Balancer.html index a0699856c..6e766adbc 100644 --- a/docs/Documentation/AI_Balancer.html +++ b/docs/Documentation/AI_Balancer.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -436,7 +437,7 @@ A SET_CLIENT object that will contain the CLIENT objects to be monitored if they
  • -

    Functional.Spawn#SPAWN SpawnAI : +

    Core.Spawn#SPAWN SpawnAI : The default Spawn object to spawn new AI Groups when needed.

  • @@ -543,7 +544,7 @@ The SET of Set#SET_AIRBASEs to evaluate wh
    - Functional.Spawn#SPAWN + Core.Spawn#SPAWN AI_BALANCER.SpawnAI diff --git a/docs/Documentation/AI_Cap.html b/docs/Documentation/AI_Cap.html index 3098a0ad8..bb3f18ad7 100644 --- a/docs/Documentation/AI_Cap.html +++ b/docs/Documentation/AI_Cap.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_Cas.html b/docs/Documentation/AI_Cas.html index 8a068de4d..f0bc40f5e 100644 --- a/docs/Documentation/AI_Cas.html +++ b/docs/Documentation/AI_Cas.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_Formation.html b/docs/Documentation/AI_Formation.html index 0977b5c5f..22c39b461 100644 --- a/docs/Documentation/AI_Formation.html +++ b/docs/Documentation/AI_Formation.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html index 7e797ee06..7946f7c5e 100644 --- a/docs/Documentation/AI_Patrol.html +++ b/docs/Documentation/AI_Patrol.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -830,7 +831,7 @@ Use the method AIPATROLZONE.M
    - Functional.Spawn#SPAWN + Core.Spawn#SPAWN AI_PATROL_ZONE.CoordTest diff --git a/docs/Documentation/Account.html b/docs/Documentation/Account.html index af42ac79d..3edae38f1 100644 --- a/docs/Documentation/Account.html +++ b/docs/Documentation/Account.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Airbase.html b/docs/Documentation/Airbase.html index f3d96bf01..c80bfd735 100644 --- a/docs/Documentation/Airbase.html +++ b/docs/Documentation/Airbase.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/AirbasePolice.html b/docs/Documentation/AirbasePolice.html index a79055079..81a4fe47e 100644 --- a/docs/Documentation/AirbasePolice.html +++ b/docs/Documentation/AirbasePolice.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -114,79 +115,49 @@

    Module AirbasePolice

    -

    Functional -- This module monitors airbases traffic.

    +

    Functional -- The AIRBASEPOLICE classes monitor airbase traffic and regulate speed while taxiing.


    -

    1) AirbasePolice#AIRBASEPOLICE_BASE class, extends Base#BASE

    -

    The AirbasePolice#AIRBASEPOLICE_BASE class provides the main methods to monitor CLIENT behaviour at airbases. -CLIENTS should not be allowed to:

    - -
      -
    • Don't taxi faster than 40 km/h.
    • -
    • Don't take-off on taxiways.
    • -
    • Avoid to hit other planes on the airbase.
    • -
    • Obey ground control orders.
    • -
    - -

    2) AirbasePolice#AIRBASEPOLICE_CAUCASUS class, extends AirbasePolice#AIRBASEPOLICE_BASE

    -

    All the airbases on the caucasus map can be monitored using this class. -If you want to monitor specific airbases, you need to use the AIRBASEPOLICE_BASE.Monitor() method, which takes a table or airbase names. -The following names can be given: - * AnapaVityazevo - * Batumi - * Beslan - * Gelendzhik - * Gudauta - * Kobuleti - * KrasnodarCenter - * KrasnodarPashkovsky - * Krymsk - * Kutaisi - * MaykopKhanskaya - * MineralnyeVody - * Mozdok - * Nalchik - * Novorossiysk - * SenakiKolkhi - * SochiAdler - * Soganlug - * SukhumiBabushara - * TbilisiLochini - * Vaziani

    - -

    3) AirbasePolice#AIRBASEPOLICE_NEVADA class, extends AirbasePolice#AIRBASEPOLICE_BASE

    -

    All the airbases on the NEVADA map can be monitored using this class. -If you want to monitor specific airbases, you need to use the AIRBASEPOLICE_BASE.Monitor() method, which takes a table or airbase names. -The following names can be given: - * Nellis - * McCarran - * Creech - * Groom Lake

    -

    Contributions: Dutch Baron - Concept & Testing

    Author: FlightControl - Framework Design & Programming

    +
    +

    Global(s)

    + + + + @@ -197,12 +168,30 @@ The following names can be given: + + + + + + + + + + + +
    AIRBASEPOLICE_BASE - +

    Base class for AIRBASEPOLICE implementations.

    AIRBASEPOLICE_CAUCASUS +

    AIRBASEPOLICE_CAUCASUS, extends #AIRBASEPOLICE_BASE

    +

    Banner Image

    + +

    The AIRBASEPOLICE_CAUCASUS class monitors the speed of the airplanes at the airbase during taxi.

    AIRBASEPOLICE_NEVADA +

    AIRBASEPOLICE_NEVADA, extends #AIRBASEPOLICE_BASE

    + +

    Banner Image

    + +

    The AIRBASEPOLICE_NEVADA class monitors the speed of the airplanes at the airbase during taxi.

    +
    SSB
    AIRBASEPOLICE_BASE.AirbaseNames +
    AIRBASEPOLICE_BASE:Monitor(AirbaseNames) +

    Monitor a table of airbase names.

    +
    AIRBASEPOLICE_BASE:New(SetClient, Airbases) +

    Creates a new AIRBASEPOLICE_BASE object.

    AIRBASEPOLICE_BASE.SetClient +
    AIRBASEPOLICE_BASE:_AirbaseMonitor() +
    @@ -210,9 +199,9 @@ The following names can be given:

    Type AIRBASEPOLICE_CAUCASUS

    - +
    AIRBASEPOLICE_CAUCASUS.SetClientAIRBASEPOLICE_CAUCASUS:New(SetClient) - +

    Creates a new AIRBASEPOLICE_CAUCASUS object.

    @@ -220,18 +209,6 @@ The following names can be given:

    Type AIRBASEPOLICE_NEVADA

    - - - - - - - - + + + + @@ -194,7 +203,7 @@ @@ -542,6 +551,46 @@ + +
    AIRBASEPOLICE_NEVADA.Airbases - -
    AIRBASEPOLICE_NEVADA.ClassName - -
    AIRBASEPOLICE_NEVADA:New(SetClient)

    Creates a new AIRBASEPOLICE_NEVADA object.

    @@ -243,27 +220,104 @@ The following names can be given:
    - + #AIRBASEPOLICE_BASE AIRBASEPOLICE_BASE
    - +

    Base class for AIRBASEPOLICE implementations.

    - + #AIRBASEPOLICE_CAUCASUS AIRBASEPOLICE_CAUCASUS
    +

    AIRBASEPOLICE_CAUCASUS, extends #AIRBASEPOLICE_BASE

    + +

    Banner Image

    + +

    The AIRBASEPOLICE_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.

    + +

    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.

    + +

    Different airbases have different maximum speeds, according safety regulations.

    + +

    Airbases monitored

    + +

    The following airbases are monitored at the Caucasus region:

    + +
      +
    • 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
    • +
    + + +

    Installation

    + +

    In Single Player Missions

    + +

    AIRBASEPOLICE 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. +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!

    + +

    Install the file SimpleSlotBlockGameGUI.lua on the server, following the installation instructions described by Ciribob.

    + +

    Simple Slot Blocker from Ciribob & FlightControl

    + +

    Script it!

    + +

    1. AIRBASEPOLICE_CAUCASUS Constructor

    + +

    Creates a new AIRBASEPOLICE_CAUCASUS object that will monitor pilots taxiing behaviour.

    + +
    -- This creates a new AIRBASEPOLICE_CAUCASUS object.
    +
    +-- Create a set of all clients in the mission.
    +AllClientsSet = SET_CLIENT:New():FilterStart()
    +
    +-- Monitor for these clients the airbases.
    +AirbasePoliceCaucasus = AIRBASEPOLICE_CAUCASUS:New( AllClientsSet )
    +
    @@ -278,7 +332,82 @@ The following names can be given:
    +

    AIRBASEPOLICE_NEVADA, extends #AIRBASEPOLICE_BASE

    +

    Banner Image

    + +

    The AIRBASEPOLICE_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 +faster than the maximum allowed speed, the pilot will be kicked.

    + +

    Different airbases have different maximum speeds, according safety regulations.

    + +

    Airbases monitored

    + +

    The following airbases are monitored at the Caucasus region:

    + +
      +
    • Nellis
    • +
    • McCarran
    • +
    • Creech
    • +
    • GroomLake
    • +
    + + +

    Installation

    + +

    In Single Player Missions

    + +

    AIRBASEPOLICE 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. +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!

    + +

    Install the file SimpleSlotBlockGameGUI.lua on the server, following the installation instructions described by Ciribob.

    + +

    Simple Slot Blocker from Ciribob & FlightControl

    + +

    Script it!

    + +

    1. AIRBASEPOLICE_NEVADA Constructor

    + +

    Creates a new AIRBASEPOLICE_NEVADA object that will monitor pilots taxiing behaviour.

    + +
    -- This creates a new AIRBASEPOLICE_NEVADA object.
    +
    +-- Create a set of all clients in the mission.
    +AllClientsSet = SET_CLIENT:New():FilterStart()
    +
    +-- Monitor for these clients the airbases.
    +AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet )
    +
    + + +
    +
    +
    +
    + + + +SSB + +
    +
    + + + + +

    This is simple slot blocker is used on the server.

    @@ -298,6 +427,66 @@ The following names can be given: + + +
    +
    + + +AIRBASEPOLICE_BASE:Monitor(AirbaseNames) + +
    +
    + +

    Monitor a table of airbase names.

    + +

    Parameter

    +
      +
    • + +

      #AIRBASEPOLICE_BASE.AirbaseNames AirbaseNames : +A list of AirbaseNames to monitor. If this parameters is nil, then all airbases will be monitored.

      + +
    • +
    +

    Return value

    + +

    #AIRBASEPOLICE_BASE: +self

    + +
    +
    +
    +
    + + +AIRBASEPOLICE_BASE:New(SetClient, Airbases) + +
    +
    + +

    Creates a new AIRBASEPOLICE_BASE object.

    + +

    Parameters

    +
      +
    • + +

      SetClient : +A SET_CLIENT object that will contain the CLIENT objects to be monitored if they follow the rules of the airbase.

      + +
    • +
    • + +

      Airbases : +A table of Airbase Names.

      + +
    • +
    +

    Return value

    + +

    #AIRBASEPOLICE_BASE: +self

    +
    @@ -312,6 +501,19 @@ The following names can be given: + +
    +
    +
    + + +AIRBASEPOLICE_BASE:_AirbaseMonitor() + +
    +
    + + +
    @@ -322,14 +524,27 @@ The following names can be given:
    - Core.Set#SET_CLIENT - -AIRBASEPOLICE_CAUCASUS.SetClient + +AIRBASEPOLICE_CAUCASUS:New(SetClient)
    +

    Creates a new AIRBASEPOLICE_CAUCASUS object.

    +

    Parameter

    +
      +
    • + +

      SetClient : +A SET_CLIENT object that will contain the CLIENT objects to be monitored if they follow the rules of the airbase.

      + +
    • +
    +

    Return value

    + +

    #AIRBASEPOLICE_CAUCASUS: +self

    @@ -339,34 +554,6 @@ The following names can be given:
    - - -AIRBASEPOLICE_NEVADA.Airbases - -
    -
    - - - -
    -
    -
    -
    - - #string - -AIRBASEPOLICE_NEVADA.ClassName - -
    -
    - - - -
    -
    -
    -
    - AIRBASEPOLICE_NEVADA:New(SetClient) diff --git a/docs/Documentation/Assign.html b/docs/Documentation/Assign.html index 71af3b872..a3e44f47d 100644 --- a/docs/Documentation/Assign.html +++ b/docs/Documentation/Assign.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Base.html b/docs/Documentation/Base.html index 0592e3e73..2a96f397b 100644 --- a/docs/Documentation/Base.html +++ b/docs/Documentation/Base.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index 95619eed8..ea6e33cb9 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -169,6 +170,14 @@
    CARGOS +
    CARGO_CRATE +

    CARGO_CRATE class, extends #CARGO_REPRESENTABLE

    + +

    The CARGO_CRATE class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.

    CARGO_REPRESENTABLE - +

    Models CARGO that is representable by a Unit.

    CARGO:__UnLoad(DelaySeconds, ToPointVec2)

    UnLoads the cargo to a Carrier.

    +
    + +

    Type CARGO_CRATE

    + + + + + + + + + + + + + + + + + + + + + + + +
    CARGO_CRATE.CargoCarrier + +
    CARGO_CRATE.CargoObject + +
    CARGO_CRATE:New(CrateName, Type, Name, Weight, ReportRadius, NearRadius, CargoCrateName) +

    CARGO_CRATE Constructor.

    +
    CARGO_CRATE.OnUnLoadedCallBack + +
    CARGO_CRATE:onenterLoaded(Event, From, To, CargoCarrier) +

    Loaded State.

    +
    CARGO_CRATE:onenterUnLoaded(Event, From, To, Core, ToPointVec2) +

    Enter UnLoaded State.

    @@ -771,6 +820,12 @@

    Type CARGO_REPRESENTABLE

    + + + + - - - - @@ -957,6 +1006,28 @@ There are 2 moments when state transition methods will be called by the state ma + + +
    +
    + + #CARGO_CRATE + +CARGO_CRATE + +
    +
    + +

    CARGO_CRATE class, extends #CARGO_REPRESENTABLE

    + +

    The CARGO_CRATE class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.

    + + +

    Use the event functions as described above to Load, UnLoad, Board, UnBoard the CARGO_CRATE objects to and from carriers.

    + +
    + +
    @@ -1017,7 +1088,7 @@ There are 2 moments when state transition methods will be called by the state ma
    - +

    Models CARGO that is representable by a Unit.

    @@ -2190,6 +2261,188 @@ The amount of seconds to delay the action.

    Type CARGO.CargoObjects

    +

    Type CARGO_CRATE

    + +

    Models the behaviour of cargo crates, which can be slingloaded and boarded on helicopters using the DCS menus.

    + +

    Field(s)

    +
    +
    + + +CARGO_CRATE.CargoCarrier + +
    +
    + + + +
    +
    +
    +
    + + + +CARGO_CRATE.CargoObject + +
    +
    + + + +
    +
    +
    +
    + + +CARGO_CRATE:New(CrateName, Type, Name, Weight, ReportRadius, NearRadius, CargoCrateName) + +
    +
    + +

    CARGO_CRATE Constructor.

    + +

    Parameters

    +
      +
    • + +

      #string CrateName :

      + +
    • +
    • + +

      #string Type :

      + +
    • +
    • + +

      #string Name :

      + +
    • +
    • + +

      #number Weight :

      + +
    • +
    • + +

      #number ReportRadius : +(optional)

      + +
    • +
    • + +

      #number NearRadius : +(optional)

      + +
    • +
    • + +

      CargoCrateName :

      + +
    • +
    +

    Return value

    + +

    #CARGO_CRATE:

    + + +
    +
    +
    +
    + + +CARGO_CRATE.OnUnLoadedCallBack + +
    +
    + + + +
    +
    +
    +
    + + +CARGO_CRATE:onenterLoaded(Event, From, To, CargoCarrier) + +
    +
    + +

    Loaded State.

    + +

    Parameters

    +
      +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string From :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    • + +

      Wrapper.Unit#UNIT CargoCarrier :

      + +
    • +
    +
    +
    +
    +
    + + +CARGO_CRATE:onenterUnLoaded(Event, From, To, Core, ToPointVec2) + +
    +
    + +

    Enter UnLoaded State.

    + +

    Parameters

    +
      +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string From :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    • + +

      Core : +Point#POINT_VEC2

      + +
    • +
    • + +

      ToPointVec2 :

      + +
    • +
    +
    +
    +

    Type CARGO_GROUP

    Field(s)

    @@ -3323,6 +3576,24 @@ The range till cargo will board.

    + +CARGO_REPRESENTABLE:Destroy() + +
    +
    + +

    CARGO_REPRESENTABLE Destructor.

    + +

    Return value

    + +

    #CARGO_REPRESENTABLE:

    + + +
    +
    +
    +
    + CARGO_REPRESENTABLE:New(Type, Name, Weight, ReportRadius, NearRadius, CargoObject) @@ -3420,7 +3691,7 @@ The range till cargo will board.

    Type CARGO_UNIT

    -

    Hello

    +

    Models CARGO in the form of units, which can be boarded, unboarded, loaded, unloaded.

    Field(s)

    @@ -3462,24 +3733,6 @@ The range till cargo will board.

    - -
    -
    -
    - - -CARGO_UNIT:Destroy() - -
    -
    - -

    CARGO_UNIT Destructor.

    - -

    Return value

    - -

    #CARGO_UNIT:

    - -
    diff --git a/docs/Documentation/CleanUp.html b/docs/Documentation/CleanUp.html index 45478a336..d71241c29 100644 --- a/docs/Documentation/CleanUp.html +++ b/docs/Documentation/CleanUp.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Client.html b/docs/Documentation/Client.html index 648d6e81c..31983dfb8 100644 --- a/docs/Documentation/Client.html +++ b/docs/Documentation/Client.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/CommandCenter.html b/docs/Documentation/CommandCenter.html index e8d4e3fb2..a99621a6c 100644 --- a/docs/Documentation/CommandCenter.html +++ b/docs/Documentation/CommandCenter.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Controllable.html b/docs/Documentation/Controllable.html index 9ea63b683..1a81d568f 100644 --- a/docs/Documentation/Controllable.html +++ b/docs/Documentation/Controllable.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSAirbase.html b/docs/Documentation/DCSAirbase.html index ca640897c..b7bb4bb46 100644 --- a/docs/Documentation/DCSAirbase.html +++ b/docs/Documentation/DCSAirbase.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSCoalitionObject.html b/docs/Documentation/DCSCoalitionObject.html index 1eee6c4cb..cf4dfd653 100644 --- a/docs/Documentation/DCSCoalitionObject.html +++ b/docs/Documentation/DCSCoalitionObject.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSCommand.html b/docs/Documentation/DCSCommand.html index 3677dd7b7..be18b704d 100644 --- a/docs/Documentation/DCSCommand.html +++ b/docs/Documentation/DCSCommand.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSController.html b/docs/Documentation/DCSController.html index 3439daa17..ffe035b06 100644 --- a/docs/Documentation/DCSController.html +++ b/docs/Documentation/DCSController.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSGroup.html b/docs/Documentation/DCSGroup.html index 6ff1afbee..9af43a594 100644 --- a/docs/Documentation/DCSGroup.html +++ b/docs/Documentation/DCSGroup.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSObject.html b/docs/Documentation/DCSObject.html index 7eceacd31..471315d7d 100644 --- a/docs/Documentation/DCSObject.html +++ b/docs/Documentation/DCSObject.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSTask.html b/docs/Documentation/DCSTask.html index 51395ba5f..9a37b51bd 100644 --- a/docs/Documentation/DCSTask.html +++ b/docs/Documentation/DCSTask.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSTypes.html b/docs/Documentation/DCSTypes.html index 059dc039f..1c2cadc66 100644 --- a/docs/Documentation/DCSTypes.html +++ b/docs/Documentation/DCSTypes.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSUnit.html b/docs/Documentation/DCSUnit.html index 7d9c60004..b286a5a8e 100644 --- a/docs/Documentation/DCSUnit.html +++ b/docs/Documentation/DCSUnit.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSVec3.html b/docs/Documentation/DCSVec3.html index e5403e169..b5aebb5a2 100644 --- a/docs/Documentation/DCSVec3.html +++ b/docs/Documentation/DCSVec3.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSWorld.html b/docs/Documentation/DCSWorld.html index 6337356dc..aaa798b22 100644 --- a/docs/Documentation/DCSWorld.html +++ b/docs/Documentation/DCSWorld.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCSZone.html b/docs/Documentation/DCSZone.html index e84e9495c..442ed36f2 100644 --- a/docs/Documentation/DCSZone.html +++ b/docs/Documentation/DCSZone.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCScountry.html b/docs/Documentation/DCScountry.html index e32c737df..1bf08dc46 100644 --- a/docs/Documentation/DCScountry.html +++ b/docs/Documentation/DCScountry.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCStimer.html b/docs/Documentation/DCStimer.html index 2488e8315..8f91702af 100644 --- a/docs/Documentation/DCStimer.html +++ b/docs/Documentation/DCStimer.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/DCStrigger.html b/docs/Documentation/DCStrigger.html index ee0ae54f3..2f5cb2fa5 100644 --- a/docs/Documentation/DCStrigger.html +++ b/docs/Documentation/DCStrigger.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Database.html b/docs/Documentation/Database.html index 6c758c57b..4629160d2 100644 --- a/docs/Documentation/Database.html +++ b/docs/Documentation/Database.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Designate.html b/docs/Documentation/Designate.html index 0a4ea910b..acd819583 100644 --- a/docs/Documentation/Designate.html +++ b/docs/Documentation/Designate.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -1105,7 +1106,7 @@ function below will use the range 1-7 just in case

    - + #number DESIGNATE.LaseDuration @@ -1159,6 +1160,7 @@ function below will use the range 1-7 just in case

    + DESIGNATE.LaserCodes diff --git a/docs/Documentation/Detection.html b/docs/Documentation/Detection.html index 34245c128..477b2312e 100644 --- a/docs/Documentation/Detection.html +++ b/docs/Documentation/Detection.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -4060,7 +4061,7 @@ Return false to cancel Transition.

    - + #number DETECTION_BASE.RefreshTimeInterval diff --git a/docs/Documentation/DetectionManager.html b/docs/Documentation/DetectionManager.html index e81587d9c..d03d6d579 100644 --- a/docs/Documentation/DetectionManager.html +++ b/docs/Documentation/DetectionManager.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Escort.html b/docs/Documentation/Escort.html index fe815825a..6b331253c 100644 --- a/docs/Documentation/Escort.html +++ b/docs/Documentation/Escort.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Event.html b/docs/Documentation/Event.html index e307356f7..78be7f4c5 100644 --- a/docs/Documentation/Event.html +++ b/docs/Documentation/Event.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index c93ca5781..2dc168b7d 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Goal.html b/docs/Documentation/Goal.html index 027a67c19..3d4e32f4d 100644 --- a/docs/Documentation/Goal.html +++ b/docs/Documentation/Goal.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Group.html b/docs/Documentation/Group.html index 16ba101d1..412fd6b3f 100644 --- a/docs/Documentation/Group.html +++ b/docs/Documentation/Group.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Identifiable.html b/docs/Documentation/Identifiable.html index dd7d66ad6..20b85c948 100644 --- a/docs/Documentation/Identifiable.html +++ b/docs/Documentation/Identifiable.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Menu.html b/docs/Documentation/Menu.html index 76097e757..72c7f2fe1 100644 --- a/docs/Documentation/Menu.html +++ b/docs/Documentation/Menu.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Message.html b/docs/Documentation/Message.html index 719909bc6..556adb28c 100644 --- a/docs/Documentation/Message.html +++ b/docs/Documentation/Message.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/MissileTrainer.html b/docs/Documentation/MissileTrainer.html index 669dae432..b37a093e7 100644 --- a/docs/Documentation/MissileTrainer.html +++ b/docs/Documentation/MissileTrainer.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Mission.html b/docs/Documentation/Mission.html index ce7feec59..037069a01 100644 --- a/docs/Documentation/Mission.html +++ b/docs/Documentation/Mission.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html index 6cdb0d829..3d57bc058 100644 --- a/docs/Documentation/Movement.html +++ b/docs/Documentation/Movement.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Object.html b/docs/Documentation/Object.html index 4b5d22319..458382e42 100644 --- a/docs/Documentation/Object.html +++ b/docs/Documentation/Object.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index bee612e3b..fbdfecd9e 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Positionable.html b/docs/Documentation/Positionable.html index 8bc4135fe..0cddcefeb 100644 --- a/docs/Documentation/Positionable.html +++ b/docs/Documentation/Positionable.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -1982,7 +1983,6 @@ The height in meters to add to the altitude of the positionable.

    - Core.Spot#SPOT POSITIONABLE.Spot diff --git a/docs/Documentation/Process_JTAC.html b/docs/Documentation/Process_JTAC.html index c22bde4df..cf84a9508 100644 --- a/docs/Documentation/Process_JTAC.html +++ b/docs/Documentation/Process_JTAC.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Process_Pickup.html b/docs/Documentation/Process_Pickup.html index c6ce210a1..8e98c8715 100644 --- a/docs/Documentation/Process_Pickup.html +++ b/docs/Documentation/Process_Pickup.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Protect.html b/docs/Documentation/Protect.html index 77de9c119..753a1bda6 100644 --- a/docs/Documentation/Protect.html +++ b/docs/Documentation/Protect.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Radio.html b/docs/Documentation/Radio.html index c467e6b9f..186d75cf5 100644 --- a/docs/Documentation/Radio.html +++ b/docs/Documentation/Radio.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Rat.html b/docs/Documentation/Rat.html index 484006a12..17df9e9b1 100644 --- a/docs/Documentation/Rat.html +++ b/docs/Documentation/Rat.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Route.html b/docs/Documentation/Route.html index e7b16df03..634031bae 100644 --- a/docs/Documentation/Route.html +++ b/docs/Documentation/Route.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Scenery.html b/docs/Documentation/Scenery.html index 12782991d..ae65cd9d9 100644 --- a/docs/Documentation/Scenery.html +++ b/docs/Documentation/Scenery.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/ScheduleDispatcher.html b/docs/Documentation/ScheduleDispatcher.html index 3c81b5daf..a029bd0da 100644 --- a/docs/Documentation/ScheduleDispatcher.html +++ b/docs/Documentation/ScheduleDispatcher.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Scheduler.html b/docs/Documentation/Scheduler.html index ebd4e0669..f4b48332f 100644 --- a/docs/Documentation/Scheduler.html +++ b/docs/Documentation/Scheduler.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Scoring.html b/docs/Documentation/Scoring.html index e81fc5f57..2420002c3 100644 --- a/docs/Documentation/Scoring.html +++ b/docs/Documentation/Scoring.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Sead.html b/docs/Documentation/Sead.html index e824ce99c..92ef00631 100644 --- a/docs/Documentation/Sead.html +++ b/docs/Documentation/Sead.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Set.html b/docs/Documentation/Set.html index ea5420bda..e7f92fb7a 100644 --- a/docs/Documentation/Set.html +++ b/docs/Documentation/Set.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Settings.html b/docs/Documentation/Settings.html index 6dafa540b..200c0b2e4 100644 --- a/docs/Documentation/Settings.html +++ b/docs/Documentation/Settings.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -1249,7 +1250,7 @@ true if metric.

    - + #boolean SETTINGS.Metric diff --git a/docs/Documentation/Smoke.html b/docs/Documentation/Smoke.html index 7a8f47cfe..11171008f 100644 --- a/docs/Documentation/Smoke.html +++ b/docs/Documentation/Smoke.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index 664917ca9..a681b4c38 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -114,7 +115,7 @@

    Module Spawn

    -

    Functional -- Spawn dynamically new GROUPs in your missions.

    +

    Core -- SPAWN class dynamically spawns new groups of units in your missions.

    @@ -165,6 +166,10 @@

    @@ -327,6 +332,18 @@ and any spaces before and after the resulting name are removed.

    + + + + + + + + @@ -831,6 +848,12 @@ and any spaces before and after the resulting name are removed.

    + + + +
    CARGO_REPRESENTABLE:Destroy() +

    CARGO_REPRESENTABLE Destructor.

    +
    CARGO_REPRESENTABLE:New(Type, Name, Weight, ReportRadius, NearRadius, CargoObject)

    CARGO_REPRESENTABLE Constructor.

    @@ -808,12 +863,6 @@
    CARGO_UNIT.CargoObject -
    CARGO_UNIT:Destroy() -

    CARGO_UNIT Destructor.

    SPAWN class, extends Base#BASE

    +

    -- Banner Image

    + +
    +

    The SPAWN class allows to spawn dynamically new groups.

    SPAWN:InitRandomizeTemplate(SpawnTemplatePrefixTable)

    This method is rather complicated to understand.

    +
    SPAWN:InitRandomizeTemplatePrefixes(SpawnTemplatePrefixes) +

    Randomize templates to be used as the unit representatives for the Spawned group, defined by specifying the prefix names.

    +
    SPAWN:InitRandomizeTemplateSet(SpawnTemplateSet) +

    Randomize templates to be used as the unit representatives for the Spawned group, defined using a SET_GROUP object.

    SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle) +
    SPAWN.uncontrolled +
    @@ -848,10 +871,14 @@ and any spaces before and after the resulting name are removed.

    SPAWN class, extends Base#BASE

    +

    -- Banner Image

    + +
    +

    The SPAWN class allows to spawn dynamically new groups.

    -

    Each SPAWN object needs to be have a related template group setup in the Mission Editor (ME), +

    Each SPAWN object needs to be have related template groups setup in the Mission Editor (ME), which is a normal group with the Late Activation flag set. This template group will never be activated in your mission.
    SPAWN uses that template group to reference to all the characteristics @@ -1825,6 +1852,99 @@ Spawn_US_Platoon_Right = SPAWN:New( 'US Tank Platoon Right' ):InitLimit( 12, 150

    + +SPAWN:InitRandomizeTemplatePrefixes(SpawnTemplatePrefixes) + +
    +
    + +

    Randomize templates to be used as the unit representatives for the Spawned group, defined by specifying the prefix names.

    + + +

    This method becomes useful when you need to spawn groups with random templates of groups defined within the mission editor, +but they will all follow the same Template route and have the same prefix name. +In other words, this method randomizes between a defined set of groups the template to be used for each new spawn of a group.

    + +

    Parameter

    +
      +
    • + +

      #string SpawnTemplatePrefixes : +A string or a list of string that contains the prefixes of the groups that are possible unit representatives of the group to be spawned.

      + +
    • +
    +

    Return value

    + +

    #SPAWN:

    + + +

    Usage:

    +
    -- NATO Tank Platoons invading Gori.
    +
    +-- Choose between different 'US Tank Platoon Templates' configurations to be spawned for the 
    +-- 'US Tank Platoon Left', 'US Tank Platoon Middle' and 'US Tank Platoon Right' SPAWN objects.
    +
    +-- Each new SPAWN will randomize the route, with a defined time interval of 200 seconds with 40% time variation (randomization) and 
    +-- with a limit set of maximum 12 Units alive simulteneously  and 150 Groups to be spawned during the whole mission.
    +
    +Spawn_US_Platoon_Left = SPAWN:New( 'US Tank Platoon Left' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplatePrefixes( "US Tank Platoon Templates" ):InitRandomizeRoute( 3, 3, 2000 )
    +Spawn_US_Platoon_Middle = SPAWN:New( 'US Tank Platoon Middle' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplatePrefixes( "US Tank Platoon Templates" ):InitRandomizeRoute( 3, 3, 2000 )
    +Spawn_US_Platoon_Right = SPAWN:New( 'US Tank Platoon Right' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplatePrefixes( "US Tank Platoon Templates" ):InitRandomizeRoute( 3, 3, 2000 )
    + +
    +
    +
    +
    + + +SPAWN:InitRandomizeTemplateSet(SpawnTemplateSet) + +
    +
    + +

    Randomize templates to be used as the unit representatives for the Spawned group, defined using a SET_GROUP object.

    + + +

    This method becomes useful when you need to spawn groups with random templates of groups defined within the mission editor, +but they will all follow the same Template route and have the same prefix name. +In other words, this method randomizes between a defined set of groups the template to be used for each new spawn of a group.

    + +

    Parameter

    +
      +
    • + +

      Core.Set#SET_GROUP SpawnTemplateSet : +A SET_GROUP object set, that contains the groups that are possible unit representatives of the group to be spawned.

      + +
    • +
    +

    Return value

    + +

    #SPAWN:

    + + +

    Usage:

    +
    -- NATO Tank Platoons invading Gori.
    +
    +-- Choose between different 'US Tank Platoon Template' configurations to be spawned for the 
    +-- 'US Tank Platoon Left', 'US Tank Platoon Middle' and 'US Tank Platoon Right' SPAWN objects.
    +
    +-- Each new SPAWN will randomize the route, with a defined time interval of 200 seconds with 40% time variation (randomization) and 
    +-- with a limit set of maximum 12 Units alive simulteneously  and 150 Groups to be spawned during the whole mission.
    +
    +Spawn_US_PlatoonSet = SET_GROUP:New():FilterPrefixes( "US Tank Platoon Templates" ):FilterOnce()
    +
    +--- Now use the Spawn_US_PlatoonSet to define the templates using InitRandomizeTemplateSet.
    +Spawn_US_Platoon_Left = SPAWN:New( 'US Tank Platoon Left' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplateSet( Spawn_US_PlatoonSet ):InitRandomizeRoute( 3, 3, 2000 )
    +Spawn_US_Platoon_Middle = SPAWN:New( 'US Tank Platoon Middle' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplateSet( Spawn_US_PlatoonSet ):InitRandomizeRoute( 3, 3, 2000 )
    +Spawn_US_Platoon_Right = SPAWN:New( 'US Tank Platoon Right' ):InitLimit( 12, 150 ):Schedule( 200, 0.4 ):InitRandomizeTemplateSet( Spawn_US_PlatoonSet ):InitRandomizeRoute( 3, 3, 2000 )
    + +
    +
    +
    +
    + SPAWN:InitRandomizeUnits(RandomizeUnits, OuterRadius, InnerRadius) @@ -3165,7 +3285,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
    - #boolean + SPAWN.SpawnUnControlled @@ -3189,7 +3309,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 ) -

    Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.

    +

    When the first Spawn executes, all the Groups need to be made visible before start.

    @@ -3769,6 +3889,20 @@ True = Continue Scheduler

    + +
    +
    +
    + + + +SPAWN.uncontrolled + +
    +
    + + +
    diff --git a/docs/Documentation/SpawnStatic.html b/docs/Documentation/SpawnStatic.html index c56956b2f..c23cc7a49 100644 --- a/docs/Documentation/SpawnStatic.html +++ b/docs/Documentation/SpawnStatic.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html index 2264ce42f..50b44013c 100644 --- a/docs/Documentation/Spot.html +++ b/docs/Documentation/Spot.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Static.html b/docs/Documentation/Static.html index e909ef5dd..d55c5547c 100644 --- a/docs/Documentation/Static.html +++ b/docs/Documentation/Static.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -156,6 +157,12 @@ STATIC:GetThreatLevel() + + + + STATIC:ReSpawn(Coordinate, Heading) + +

    Respawn the Unit using a (tweaked) template of the parent Group.

    @@ -284,6 +291,34 @@ Raise an error if not found.

    + +
    +
    +
    + + +STATIC:ReSpawn(Coordinate, Heading) + +
    +
    + +

    Respawn the Unit using a (tweaked) template of the parent Group.

    + +

    Parameters

    +
      +
    • + +

      Core.Point#COORDINATE Coordinate : +The coordinate where to spawn the new Static.

      + +
    • +
    • + +

      #number Heading : +The heading of the unit respawn.

      + +
    • +
    @@ -322,6 +357,8 @@ Raise an error if not found.

    +

    Type UNIT

    + diff --git a/docs/Documentation/StaticObject.html b/docs/Documentation/StaticObject.html index ac871f1ab..edaaceef9 100644 --- a/docs/Documentation/StaticObject.html +++ b/docs/Documentation/StaticObject.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Task.html b/docs/Documentation/Task.html index cf075e8a0..ad89915ac 100644 --- a/docs/Documentation/Task.html +++ b/docs/Documentation/Task.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/TaskZoneCapture.html b/docs/Documentation/TaskZoneCapture.html index db21fd694..07610d9ca 100644 --- a/docs/Documentation/TaskZoneCapture.html +++ b/docs/Documentation/TaskZoneCapture.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Task_A2A.html b/docs/Documentation/Task_A2A.html index 7d4a0884f..e1ede0801 100644 --- a/docs/Documentation/Task_A2A.html +++ b/docs/Documentation/Task_A2A.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Task_A2A_Dispatcher.html b/docs/Documentation/Task_A2A_Dispatcher.html index 5570cb0af..bcaa0f453 100644 --- a/docs/Documentation/Task_A2A_Dispatcher.html +++ b/docs/Documentation/Task_A2A_Dispatcher.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Task_A2G.html b/docs/Documentation/Task_A2G.html index bad43ad15..1f22797fb 100644 --- a/docs/Documentation/Task_A2G.html +++ b/docs/Documentation/Task_A2G.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Task_A2G_Dispatcher.html b/docs/Documentation/Task_A2G_Dispatcher.html index ab6e7a762..fcf0e0d6d 100644 --- a/docs/Documentation/Task_A2G_Dispatcher.html +++ b/docs/Documentation/Task_A2G_Dispatcher.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html index 7e6aa0acd..40b927b18 100644 --- a/docs/Documentation/Task_Cargo.html +++ b/docs/Documentation/Task_Cargo.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -575,6 +576,7 @@ based on the tasking capabilities defined in Task#TA
    + FSM_PROCESS.DeployZone @@ -639,7 +641,7 @@ based on the tasking capabilities defined in Task#TA
    - + #number TASK_CARGO.CargoLimit diff --git a/docs/Documentation/Task_PICKUP.html b/docs/Documentation/Task_PICKUP.html index 79f2d5cf5..481dedc9f 100644 --- a/docs/Documentation/Task_PICKUP.html +++ b/docs/Documentation/Task_PICKUP.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Unit.html b/docs/Documentation/Unit.html index ce18f49cc..c3e4be0f3 100644 --- a/docs/Documentation/Unit.html +++ b/docs/Documentation/Unit.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -152,6 +153,12 @@

    Type UNIT

    + + + + @@ -616,7 +617,7 @@ and creates a CSV file logging the scoring events and results for use at team or @@ -732,6 +733,12 @@ which are excellent tools to be reused in an OO environment!.

    + + + + diff --git a/docs/Documentation/land.html b/docs/Documentation/land.html index 0df69e015..edb13ac44 100644 --- a/docs/Documentation/land.html +++ b/docs/Documentation/land.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/routines.html b/docs/Documentation/routines.html index e5e6fbc2e..22f0e9cea 100644 --- a/docs/Documentation/routines.html +++ b/docs/Documentation/routines.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • From a204dd2f4bdb4d10b4641b670368175caea66a77 Mon Sep 17 00:00:00 2001 From: FlightControl_Master Date: Fri, 20 Oct 2017 13:56:29 +0200 Subject: [PATCH 2/4] Banner --- docs/Presentations/AIRBASEPOLICE/Dia1.JPG | Bin 0 -> 84639 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Presentations/AIRBASEPOLICE/Dia1.JPG diff --git a/docs/Presentations/AIRBASEPOLICE/Dia1.JPG b/docs/Presentations/AIRBASEPOLICE/Dia1.JPG new file mode 100644 index 0000000000000000000000000000000000000000..80970f0f2ce05243a8a4b0b0e8600ed60d61eee4 GIT binary patch literal 84639 zcmbTdcQjmI81FrT5H%7t1_`1J65Z$#(R*jKsKMx?*N6yVjNTc&x9DAh7`?>kEf~G` zPOjg*cip?z``7!v`|R`A*=MikbIw|OKl{7C```4xCBRcfSp``D78Vx3^5Fvfn*&G# zupd48uRau7@vrMh=`DYkdT<<*;8T?G7>_kw6kl|x3Ve4RHF#;ZuVPTVD{re4I z006LXAENy);Qw8)9zDeP7!Usm0pUY~x~G6gSlHN)aIpW2`k}S|!*c)*8Sb-JJW`LJ zYnb6Nx{&h*#bo0%y|3z^(EM}A%xCWU>z#tK_RfPi1Y^;Svh$H zMJ;U|T|IpRh=rw<^(Px!JD8ihho_gfPw>}}Z=qq|!(-#(6B3h>Q&Mws^YRM{i;7FC zYijH28ycIMJG*{&qk4M#`p3}Y6O&WZGqcMpnANrQjm@p?qvMm)v-69~tLy)`umITq z3+w-o{Xe+K9=IOi;9%q6{l|s%$n)XGCd0vf#q;=?lm?!e%X3EFAbj%oG1*lePnh^L z4=K!D{}50z^Dn@Z&a`(HBBa@tGvP6TS$Ht_YQEd<2Uo-?j}uMNt{HDWx50}uI{sE@ z|9Xg)ZZajmqYUzMmSDi%kgzGh3f%4D)6jKOZ@XRtj}JR8432_qwTfB@784aa{WK># z4!-xUXz554`e|bc=+*hr`W zm!uk6Kp}HjgE_NpjzMO~JH5={JSbrp*Bzy(xIwhsyQ^{RDMUS_SjA?xrP)Wgl(2<< ziGGxP)EMnDRwq2GFpXFdRCdIhEhU>q_-`-FuiFzH;wew4%q%(k7e}8?N7&?J@)a5o zDm+>z1@fQ`vGK+9fcS}F@alMfezNC9o+ceRQ`JhISAV)^_Zz{bQ@ScGhlNq!7ja%W z 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 literal 0 HcmV?d00001 From 57b4838a5af7b9d2536408aaa374e29f817ce9ca Mon Sep 17 00:00:00 2001 From: FlightControl_Master Date: Fri, 20 Oct 2017 13:57:18 +0200 Subject: [PATCH 3/4] doc --- docs/Documentation/ZoneGoalCargo.html | 1150 +++++++++++++++++++++++++ 1 file changed, 1150 insertions(+) create mode 100644 docs/Documentation/ZoneGoalCargo.html diff --git a/docs/Documentation/ZoneGoalCargo.html b/docs/Documentation/ZoneGoalCargo.html new file mode 100644 index 000000000..99a89cda2 --- /dev/null +++ b/docs/Documentation/ZoneGoalCargo.html @@ -0,0 +1,1150 @@ + + + + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Module ZoneGoalCargo

    + +

    Functional (WIP) -- Base class that models processes to achieve goals involving a Zone and Cargo.

    + + + +
    + +

    ZONEGOALCARGO models processes that have a Goal with a defined achievement involving a Zone and Cargo.
    +Derived classes implement the ways how the achievements can be realized.

    + +
    + +

    Author: Sven Van de Velde (FlightControl)

    + +
    + + +

    Global(s)

    +
    UNIT:Destroy() +

    Destroys the UNIT.

    +
    UNIT:Find(DCSUnit)

    Finds a UNIT from the _DATABASE using a DCSUnit object.

    @@ -498,6 +505,24 @@ If you want to obtain the complete 3D position including ori�
    + +UNIT:Destroy() + +
    +
    + +

    Destroys the UNIT.

    + +

    Return value

    + +

    #nil: +The DCS Unit is not existing or alive.

    + +
    +
    +
    +
    + UNIT:Find(DCSUnit) diff --git a/docs/Documentation/UserFlag.html b/docs/Documentation/UserFlag.html index 032664ca1..f6d9f1f3f 100644 --- a/docs/Documentation/UserFlag.html +++ b/docs/Documentation/UserFlag.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -143,6 +144,12 @@

    Type USERFLAG

    + + + + + + + +
    USERFLAG:Get(Number) +

    Get the userflag Number.

    +
    USERFLAG:Is(Number)

    Check if the userflag has a value of Number.

    @@ -201,6 +208,37 @@
    + +USERFLAG:Get(Number) + +
    +
    + +

    Get the userflag Number.

    + +

    Parameter

    +
      +
    • + +

      Number :

      + +
    • +
    +

    Return value

    + +

    #number: +Number The number value to be checked if it is the same as the userflag.

    + +

    Usage:

    +
      local BlueVictory = USERFLAG:New( "VictoryBlue" )
    +  local BlueVictoryValue = BlueVictory:Get() -- Get the UserFlag VictoryBlue value.
    +  
    + +
    +
    +
    +
    + USERFLAG:Is(Number) diff --git a/docs/Documentation/UserSound.html b/docs/Documentation/UserSound.html index a4254e451..9d2cfbecd 100644 --- a/docs/Documentation/UserSound.html +++ b/docs/Documentation/UserSound.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Utils.html b/docs/Documentation/Utils.html index 231da148a..c04656808 100644 --- a/docs/Documentation/Utils.html +++ b/docs/Documentation/Utils.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/Zone.html b/docs/Documentation/Zone.html index 3d3024456..10096ce01 100644 --- a/docs/Documentation/Zone.html +++ b/docs/Documentation/Zone.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -431,7 +432,13 @@
    ZONE_POLYGON:New(ZoneName, ZoneGroup) -

    Constructor to create a ZONE_POLYGON instance, taking the zone name and the name of the Group#GROUP defined within the Mission Editor.

    +

    Constructor to create a ZONE_POLYGON instance, taking the zone name and the Group#GROUP defined within the Mission Editor.

    +
    ZONE_POLYGON:NewFromGroupName(ZoneName, GroupName) +

    Constructor to create a ZONE_POLYGON instance, taking the zone name and the name of the Group#GROUP defined within the Mission Editor.

    @@ -1676,7 +1683,7 @@ self

    -

    Constructor to create a ZONE_POLYGON instance, taking the zone name and the name of the Group#GROUP defined within the Mission Editor.

    +

    Constructor to create a ZONE_POLYGON instance, taking the zone name and the Group#GROUP defined within the Mission Editor.

    The Group#GROUP waypoints define the polygon corners. The first and the last point are automatically connected by ZONE_POLYGON.

    @@ -1701,6 +1708,42 @@ The GROUP waypoints as defined within the Mission Editor define the polygon shap

    #ZONE_POLYGON: self

    +
    +
    +
    +
    + + +ZONE_POLYGON:NewFromGroupName(ZoneName, GroupName) + +
    +
    + +

    Constructor to create a ZONE_POLYGON instance, taking the zone name and the name of the Group#GROUP defined within the Mission Editor.

    + + +

    The Group#GROUP waypoints define the polygon corners. The first and the last point are automatically connected by ZONE_POLYGON.

    + +

    Parameters

    +
      +
    • + +

      #string ZoneName : +Name of the zone.

      + +
    • +
    • + +

      #string GroupName : +The group name of the GROUP defining the waypoints within the Mission Editor to define the polygon shape.

      + +
    • +
    +

    Return value

    + +

    #ZONE_POLYGON: +self

    +
    diff --git a/docs/Documentation/ZoneCaptureCoalition.html b/docs/Documentation/ZoneCaptureCoalition.html index bd1319037..e41e17814 100644 --- a/docs/Documentation/ZoneCaptureCoalition.html +++ b/docs/Documentation/ZoneCaptureCoalition.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/ZoneGoal.html b/docs/Documentation/ZoneGoal.html index 10026f42f..854e07ffe 100644 --- a/docs/Documentation/ZoneGoal.html +++ b/docs/Documentation/ZoneGoal.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -488,6 +489,7 @@ The name of the player.

    + ZONE_GOAL.SmokeTime @@ -496,6 +498,9 @@ The name of the player.

    + +

    self.SmokeColor = nil

    +
    diff --git a/docs/Documentation/ZoneGoalCoalition.html b/docs/Documentation/ZoneGoalCoalition.html index b1964b864..84a90c12d 100644 --- a/docs/Documentation/ZoneGoalCoalition.html +++ b/docs/Documentation/ZoneGoalCoalition.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/env.html b/docs/Documentation/env.html index 0e1265037..a8e2e77c2 100644 --- a/docs/Documentation/env.html +++ b/docs/Documentation/env.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html index c61e305dc..59b168ce2 100644 --- a/docs/Documentation/index.html +++ b/docs/Documentation/index.html @@ -105,6 +105,7 @@
  • Zone
  • ZoneCaptureCoalition
  • ZoneGoal
  • +
  • ZoneGoalCargo
  • ZoneGoalCoalition
  • env
  • land
  • @@ -275,7 +276,7 @@ even when there are hardly any players in the mission.

    AirbasePolice -

    Functional -- This module monitors airbases traffic.

    +

    Functional -- The AIRBASEPOLICE classes monitor airbase traffic and regulate speed while taxiing.

    Spawn -

    Functional -- Spawn dynamically new GROUPs in your missions.

    +

    Core -- SPAWN class dynamically spawns new groups of units in your missions.

    ZoneGoal

    Functional (WIP) -- Base class that models processes to achieve goals involving a Zone.

    +
    ZoneGoalCargo +

    Functional (WIP) -- Base class that models processes to achieve goals involving a Zone and Cargo.

    + + + + +
    ZONE_GOAL_CARGO +

    ZONEGOALCARGO class, extends ZoneGoal#ZONE_GOAL

    + +

    ZONEGOALCARGO models processes that have a Goal with a defined achievement involving a Zone and Cargo.

    +
    +

    Type ZONE_GOAL_CARGO

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ZONE_GOAL_CARGO:Attack() +

    Attack Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:Capture() +

    Capture Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO.Coalition + +
    ZONE_GOAL_CARGO:Empty() +

    Empty Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:GetCoalition() +

    Get the owning coalition of the zone.

    +
    ZONE_GOAL_CARGO:GetCoalitionName() +

    Get the owning coalition name of the zone.

    +
    ZONE_GOAL_CARGO:Guard() +

    Guard Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:IsAttacked() + +
    ZONE_GOAL_CARGO:IsCaptured() + +
    ZONE_GOAL_CARGO:IsEmpty() + +
    ZONE_GOAL_CARGO:IsGuarded() + +
    ZONE_GOAL_CARGO:Mark() +

    Mark.

    +
    ZONE_GOAL_CARGO.MarkBlue + +
    ZONE_GOAL_CARGO.MarkRed + +
    ZONE_GOAL_CARGO:New(Zone, Coalition) +

    ZONEGOALCARGO Constructor.

    +
    ZONE_GOAL_CARGO:OnAfterAttack(From, Event, To) +

    Attack Handler OnAfter for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnAfterCapture(From, Event, To) +

    Capture Handler OnAfter for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnAfterEmpty(From, Event, To) +

    Empty Handler OnAfter for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnAfterGuard(From, Event, To) +

    Guard Handler OnAfter for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnBeforeAttack(From, Event, To) +

    Attack Handler OnBefore for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnBeforeCapture(From, Event, To) +

    Capture Handler OnBefore for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnBeforeEmpty(From, Event, To) +

    Empty Handler OnBefore for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:OnBeforeGuard(From, Event, To) +

    Guard Handler OnBefore for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO.ScheduleStatusZone + +
    ZONE_GOAL_CARGO:SetCoalition(Coalition) +

    Set the owning coalition of the zone.

    +
    ZONE_GOAL_CARGO.SmokeScheduler + +
    ZONE_GOAL_CARGO.States + +
    ZONE_GOAL_CARGO:StatusZone() +

    Check status Coalition ownership.

    +
    ZONE_GOAL_CARGO:__Attack(Delay) +

    Attack Asynchronous Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:__Capture(Delay) +

    Capture Asynchronous Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:__Empty(Delay) +

    Empty Asynchronous Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:__Guard(Delay) +

    Guard Asynchronous Trigger for ZONEGOALCARGO

    +
    ZONE_GOAL_CARGO:onafterGuard() +

    When started, check the Coalition status.

    +
    ZONE_GOAL_CARGO:onenterAttacked() + +
    ZONE_GOAL_CARGO:onenterCaptured() + +
    ZONE_GOAL_CARGO:onenterEmpty() + +
    ZONE_GOAL_CARGO:onenterGuarded() +

    Bound.

    +
    + +

    Global(s)

    +
    +
    + + #ZONE_GOAL_CARGO + +ZONE_GOAL_CARGO + +
    +
    + +

    ZONEGOALCARGO class, extends ZoneGoal#ZONE_GOAL

    + +

    ZONEGOALCARGO models processes that have a Goal with a defined achievement involving a Zone and Cargo.

    + + +

    Derived classes implement the ways how the achievements can be realized.

    + +

    1. ZONEGOALCARGO constructor

    + + + +

    2. ZONEGOALCARGO is a finite state machine (FSM).

    + +

    2.1 ZONEGOALCARGO States

    + +
      +
    • Deployed: The Zone has been captured by an other coalition.
    • +
    • Airborne: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.
    • +
    • Loaded: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.
    • +
    • Empty: The Zone is empty. There is not valid unit in the Zone.
    • +
    + +

    2.2 ZONEGOALCARGO Events

    + +
      +
    • Capture: The Zone has been captured by an other coalition.
    • +
    • Attack: The Zone is currently intruded by an other coalition. There are units of the owning coalition and an other coalition in the Zone.
    • +
    • Guard: The Zone is guarded by the owning coalition. There is no other unit of an other coalition in the Zone.
    • +
    • Empty: The Zone is empty. There is not valid unit in the Zone.
    • +
    + +

    2.3 ZONEGOALCARGO State Machine

    + + +
    +
    +

    Type ZoneGoalCargo

    + +

    Type ZONE_GOAL_CARGO

    +

    Field(s)

    +
    +
    + + +ZONE_GOAL_CARGO:Attack() + +
    +
    + +

    Attack Trigger for ZONEGOALCARGO

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:Capture() + +
    +
    + +

    Capture Trigger for ZONEGOALCARGO

    + +
    +
    +
    +
    + + + +ZONE_GOAL_CARGO.Coalition + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:Empty() + +
    +
    + +

    Empty Trigger for ZONEGOALCARGO

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:GetCoalition() + +
    +
    + +

    Get the owning coalition of the zone.

    + +

    Return value

    + +

    DCSCoalition.DCSCoalition#coalition: +Coalition.

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:GetCoalitionName() + +
    +
    + +

    Get the owning coalition name of the zone.

    + +

    Return value

    + +

    #string: +Coalition name.

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:Guard() + +
    +
    + +

    Guard Trigger for ZONEGOALCARGO

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:IsAttacked() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:IsCaptured() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:IsEmpty() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:IsGuarded() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:Mark() + +
    +
    + +

    Mark.

    + +
    +
    +
    +
    + + + +ZONE_GOAL_CARGO.MarkBlue + +
    +
    + + + +
    +
    +
    +
    + + + +ZONE_GOAL_CARGO.MarkRed + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:New(Zone, Coalition) + +
    +
    + +

    ZONEGOALCARGO Constructor.

    + +

    Parameters

    + +

    Return value

    + +

    #ZONEGOALCARGO:

    + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnAfterAttack(From, Event, To) + +
    +
    + +

    Attack Handler OnAfter for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnAfterCapture(From, Event, To) + +
    +
    + +

    Capture Handler OnAfter for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnAfterEmpty(From, Event, To) + +
    +
    + +

    Empty Handler OnAfter for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnAfterGuard(From, Event, To) + +
    +
    + +

    Guard Handler OnAfter for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnBeforeAttack(From, Event, To) + +
    +
    + +

    Attack Handler OnBefore for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +

    Return value

    + +

    #boolean:

    + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnBeforeCapture(From, Event, To) + +
    +
    + +

    Capture Handler OnBefore for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +

    Return value

    + +

    #boolean:

    + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnBeforeEmpty(From, Event, To) + +
    +
    + +

    Empty Handler OnBefore for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +

    Return value

    + +

    #boolean:

    + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:OnBeforeGuard(From, Event, To) + +
    +
    + +

    Guard Handler OnBefore for ZONEGOALCARGO

    + +

    Parameters

    +
      +
    • + +

      #string From :

      + +
    • +
    • + +

      #string Event :

      + +
    • +
    • + +

      #string To :

      + +
    • +
    +

    Return value

    + +

    #boolean:

    + + +
    +
    +
    +
    + + + +ZONE_GOAL_CARGO.ScheduleStatusZone + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:SetCoalition(Coalition) + +
    +
    + +

    Set the owning coalition of the zone.

    + +

    Parameter

    + +
    +
    +
    +
    + + + +ZONE_GOAL_CARGO.SmokeScheduler + +
    +
    + + + +
    +
    +
    +
    + + + +ZONE_GOAL_CARGO.States + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:StatusZone() + +
    +
    + +

    Check status Coalition ownership.

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:__Attack(Delay) + +
    +
    + +

    Attack Asynchronous Trigger for ZONEGOALCARGO

    + +

    Parameter

    +
      +
    • + +

      #number Delay :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:__Capture(Delay) + +
    +
    + +

    Capture Asynchronous Trigger for ZONEGOALCARGO

    + +

    Parameter

    +
      +
    • + +

      #number Delay :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:__Empty(Delay) + +
    +
    + +

    Empty Asynchronous Trigger for ZONEGOALCARGO

    + +

    Parameter

    +
      +
    • + +

      #number Delay :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:__Guard(Delay) + +
    +
    + +

    Guard Asynchronous Trigger for ZONEGOALCARGO

    + +

    Parameter

    +
      +
    • + +

      #number Delay :

      + +
    • +
    +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:onafterGuard() + +
    +
    + +

    When started, check the Coalition status.

    + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:onenterAttacked() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:onenterCaptured() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:onenterEmpty() + +
    +
    + + + +
    +
    +
    +
    + + +ZONE_GOAL_CARGO:onenterGuarded() + +
    +
    + +

    Bound.

    + +
    +
    + + + + + + From 4d8179ec70059f048fe835d7225de192370b7109 Mon Sep 17 00:00:00 2001 From: FlightControl_Master Date: Fri, 20 Oct 2017 14:10:59 +0200 Subject: [PATCH 4/4] Documentation --- .../Moose/Functional/AirbasePolice.lua | 4 +-- docs/Documentation/AI_A2A.html | 1 - docs/Documentation/AI_Patrol.html | 3 --- docs/Documentation/AirbasePolice.html | 2 +- docs/Documentation/Cargo.html | 2 ++ docs/Documentation/Designate.html | 1 - docs/Documentation/Detection.html | 4 +-- docs/Documentation/Fsm.html | 3 +-- docs/Documentation/Point.html | 1 - docs/Documentation/Settings.html | 2 +- docs/Documentation/Spawn.html | 25 +++---------------- docs/Documentation/Spot.html | 4 --- docs/Documentation/Task_Cargo.html | 3 +-- 13 files changed, 13 insertions(+), 42 deletions(-) diff --git a/Moose Development/Moose/Functional/AirbasePolice.lua b/Moose Development/Moose/Functional/AirbasePolice.lua index 3e95d65ec..6e6fe6be2 100644 --- a/Moose Development/Moose/Functional/AirbasePolice.lua +++ b/Moose Development/Moose/Functional/AirbasePolice.lua @@ -992,7 +992,7 @@ end --- @type AIRBASEPOLICE_NEVADA --- @extends Functional.AirbasePolice#AIRBASEPOLICE_BASE +-- @extends #AIRBASEPOLICE_BASE --- # AIRBASEPOLICE_NEVADA, extends @{#AIRBASEPOLICE_BASE} @@ -1047,7 +1047,7 @@ end -- AllClientsSet = SET_CLIENT:New():FilterStart() -- -- -- Monitor for these clients the airbases. --- AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet ) +-- AirbasePoliceNevada = AIRBASEPOLICE_NEVADA:New( AllClientsSet ) -- -- @field #AIRBASEPOLICE_NEVADA AIRBASEPOLICE_NEVADA = { diff --git a/docs/Documentation/AI_A2A.html b/docs/Documentation/AI_A2A.html index 67ca9d37e..54b845efc 100644 --- a/docs/Documentation/AI_A2A.html +++ b/docs/Documentation/AI_A2A.html @@ -671,7 +671,6 @@
    - #number AI_A2A.IdleCount diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html index 7946f7c5e..5b9007b80 100644 --- a/docs/Documentation/AI_Patrol.html +++ b/docs/Documentation/AI_Patrol.html @@ -936,9 +936,6 @@ Use the method AIPATROLZONE.M - -

    This table contains the targets detected during patrol.

    -
    diff --git a/docs/Documentation/AirbasePolice.html b/docs/Documentation/AirbasePolice.html index 81a4fe47e..2dd632995 100644 --- a/docs/Documentation/AirbasePolice.html +++ b/docs/Documentation/AirbasePolice.html @@ -388,7 +388,7 @@ AIRBASEPOLICE is communicating with this modified script to kick players!

    AllClientsSet = SET_CLIENT:New():FilterStart() -- Monitor for these clients the airbases. -AirbasePoliceCaucasus = AIRBASEPOLICE_NEVADA:New( AllClientsSet ) +AirbasePoliceNevada = AIRBASEPOLICE_NEVADA:New( AllClientsSet ) diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index ea6e33cb9..76ffb6a60 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -2269,6 +2269,7 @@ The amount of seconds to delay the action.

    + CARGO_CRATE.CargoCarrier @@ -3697,6 +3698,7 @@ The range till cargo will board.

    + CARGO_UNIT.CargoCarrier diff --git a/docs/Documentation/Designate.html b/docs/Documentation/Designate.html index acd819583..548df5b75 100644 --- a/docs/Documentation/Designate.html +++ b/docs/Documentation/Designate.html @@ -1160,7 +1160,6 @@ function below will use the range 1-7 just in case

    - DESIGNATE.LaserCodes diff --git a/docs/Documentation/Detection.html b/docs/Documentation/Detection.html index 477b2312e..535e6d549 100644 --- a/docs/Documentation/Detection.html +++ b/docs/Documentation/Detection.html @@ -2469,7 +2469,6 @@ The index of the DetectedItem.

    - #number DETECTION_BASE.DetectedItemCount @@ -2483,7 +2482,6 @@ The index of the DetectedItem.

    - #number DETECTION_BASE.DetectedItemMax @@ -4061,7 +4059,7 @@ Return false to cancel Transition.

    - #number + DETECTION_BASE.RefreshTimeInterval diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index 2dc168b7d..78de04a27 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -1608,7 +1608,7 @@ A string defining the start state.

    - + #string FSM._StartState @@ -1907,7 +1907,6 @@ A string defining the start state.

    - FSM.current diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index fbdfecd9e..47cdcecd6 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -3495,7 +3495,6 @@ The y coordinate.

    - POINT_VEC2.z diff --git a/docs/Documentation/Settings.html b/docs/Documentation/Settings.html index 200c0b2e4..15ac19c6a 100644 --- a/docs/Documentation/Settings.html +++ b/docs/Documentation/Settings.html @@ -1250,7 +1250,7 @@ true if metric.

    - #boolean + SETTINGS.Metric diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index a681b4c38..0d040986a 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -848,12 +848,6 @@ and any spaces before and after the resulting name are removed.

    SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle) - - - - SPAWN.uncontrolled - - @@ -2888,6 +2882,9 @@ when nothing was spawned.

    + +

    Overwrite unit names by default with group name.

    +
    @@ -3309,7 +3306,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 ) -

    When the first Spawn executes, all the Groups need to be made visible before start.

    +

    Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.

    @@ -3889,20 +3886,6 @@ True = Continue Scheduler

    - -
    -
    -
    - - - -SPAWN.uncontrolled - -
    -
    - - -
    diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html index 50b44013c..703c5a3c9 100644 --- a/docs/Documentation/Spot.html +++ b/docs/Documentation/Spot.html @@ -775,7 +775,6 @@ true if it is lasing

    - SPOT.ScheduleID @@ -789,7 +788,6 @@ true if it is lasing

    - SPOT.SpotIR @@ -803,7 +801,6 @@ true if it is lasing

    - SPOT.SpotLaser @@ -817,7 +814,6 @@ true if it is lasing

    - SPOT.Target diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html index 40b927b18..01e61d872 100644 --- a/docs/Documentation/Task_Cargo.html +++ b/docs/Documentation/Task_Cargo.html @@ -562,7 +562,7 @@ based on the tasking capabilities defined in Task#TA
    - Core.Cargo#CARGO_GROUP + FSM_PROCESS.Cargo @@ -576,7 +576,6 @@ based on the tasking capabilities defined in Task#TA
    - FSM_PROCESS.DeployZone