From b769ad143db55f17a52daae3a36bf6d8830daee9 Mon Sep 17 00:00:00 2001
From: FlightControl_Master
This prevents airbases to get cluttered with airplanes taking off, it also reduces the risk of human players colliding with taxiiing airplanes, resulting in the airbase to halt operations.
+You can change the way how planes take off by using the inherited methods from AI_A2A_DISPATCHER:
+ +Use these methods to fine-tune for specific airfields that are known to create bottlenecks, or have reduced airbase efficiency. +The more and the longer aircraft need to taxi at an airfield, the more risk there is that:
+ +Currently within the DCS engine, the airfield traffic coordination is erroneous and contains a lot of bugs. +If you experience while testing problems with aircraft take-off or landing, please use one of the above methods as a solution to workaround these issues!
+When damaged airplanes return to the airbase, they will be routed and will dissapear in the air when they are near the airbase. There are exceptions to this rule, airplanes that aren't "listening" anymore due to damage or out of fuel, will return to the airbase and land.
+You can change the way how planes land by using the inherited methods from AI_A2A_DISPATCHER:
+ +You can use these methods to minimize the airbase coodination overhead and to increase the airbase efficiency. +When there are lots of aircraft returning for landing, at the same airbase, the takeoff process will be halted, which can cause a complete failure of the +A2A defense system, as no new CAP or GCI planes can takeoff. +Note that the method AIA2ADISPATCHER.SetSquadronLandingNearAirbase() will only work for returning aircraft, not for damaged or out of fuel aircraft. +Damaged or out-of-fuel aircraft are returning to the nearest friendly airbase and will land, and are out of control from ground control.
+You can change or add a CAP zone by using the inherited methods from AI_A2A_DISPATCHER:
+ +The method AIA2ADISPATCHER.SetSquadronCap() defines a CAP execution for a squadron.
+ +Setting-up a CAP zone also requires specific parameters:
+ +These define how the squadron will perform the CAP while partrolling. Different terrain types requires different types of CAP.
+ +The AIA2ADISPATCHER.SetSquadronCapInterval() method specifies how much and when CAP flights will takeoff.
+ +It is recommended not to overload the air defense with CAP flights, as these will decrease the performance of the overall system.
+ +For example, the following setup will create a CAP for squadron "Sochi":
+ +A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" ) + A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
+You can change or add a GCI parameters by using the inherited methods from AI_A2A_DISPATCHER:
+ +The method AIA2ADISPATCHER.SetSquadronGci() defines a GCI execution for a squadron.
+ +Setting-up a GCI readiness also requires specific parameters:
+ +Essentially this controls how many flights of GCI aircraft can be active at any time. +Note allowing large numbers of active GCI flights can adversely impact mission performance on low or medium specification hosts/servers. +GCI needs to be setup at strategic airbases. Too far will mean that the aircraft need to fly a long way to reach the intruders, +too short will mean that the intruders may have alraedy passed the ideal interception point!
+ +For example, the following setup will create a GCI for squadron "Sochi":
+ +A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
+Detected targets are constantly re-grouped, that is, when certain detected aircraft are moving further than the group radius, then these aircraft will become a separate @@ -1342,9 +1423,6 @@ Each defense system needs its own EWR network setup, airplane templates and CAP
This is a good implementation, because maybe in the future, more coalitions may become available in DCS world.
- - - -- Setup the AI_A2A_GCICAP dispatcher for one coalition, and initialize it.
diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html
index 93a9f8ce6..43392b308 100644
--- a/docs/Documentation/AI_Patrol.html
+++ b/docs/Documentation/AI_Patrol.html
@@ -926,6 +926,9 @@ Use the method AIPATROLZONE.M
+
+ This table contains the targets detected during patrol.
+
diff --git a/docs/Documentation/Designate.html b/docs/Documentation/Designate.html
index a51eefade..ae3dbc7bd 100644
--- a/docs/Documentation/Designate.html
+++ b/docs/Documentation/Designate.html
@@ -917,7 +917,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 829d377e1..ea8eef1ab 100644
--- a/docs/Documentation/Detection.html
+++ b/docs/Documentation/Detection.html
@@ -196,6 +196,12 @@ DETECTION uses the in-built detection capabilities of DCS World, but adds new fu
DETECTION_AREAS.ClassName
+
+
+
+ DETECTION_AREAS.CountryID
+
+
@@ -368,12 +374,6 @@ DETECTION uses the in-built detection capabilities of DCS World, but adds new fu
DETECTION_BASE:CleanDetectionItem(DetectedItem, DetectedItemID)
-
-
-
- DETECTION_BASE.CountryID
-
-
@@ -1596,6 +1596,20 @@ self
+
+
+
+-
+
+
+
+DETECTION_AREAS.CountryID
+
+
+-
+
+
+
@@ -2243,20 +2257,6 @@ The index of the DetectedItem.
-
-
-
--
-
-
-
-DETECTION_BASE.CountryID
-
-
--
-
-
-
@@ -2393,7 +2393,6 @@ The index of the DetectedItem.
-
- #number
DETECTION_BASE.DetectedItemCount
@@ -2407,7 +2406,6 @@ The index of the DetectedItem.
-
- #number
DETECTION_BASE.DetectedItemMax
@@ -2565,7 +2563,7 @@ The index of the DetectedItem.
-
- #number
+
DETECTION_BASE.DetectionInterval
diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html
index e0276d335..177f34281 100644
--- a/docs/Documentation/Fsm.html
+++ b/docs/Documentation/Fsm.html
@@ -1598,7 +1598,7 @@ A string defining the start state.
-
-
+ #string
FSM._StartState
@@ -1897,7 +1897,6 @@ A string defining the start state.
-
-
FSM.current
diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html
index be5ce073c..4307c3aaa 100644
--- a/docs/Documentation/Movement.html
+++ b/docs/Documentation/Movement.html
@@ -227,7 +227,6 @@ on defined intervals (currently every minute).
-
- #number
MOVEMENT.AliveUnits
@@ -236,9 +235,6 @@ on defined intervals (currently every minute).
-
-
Contains the counter how many units are currently alive
-
diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html
index 1183a03bf..0f27003d1 100644
--- a/docs/Documentation/Spawn.html
+++ b/docs/Documentation/Spawn.html
@@ -2194,6 +2194,9 @@ The group that was spawned. You can use this group for further actions.
+
+ Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.
+
@@ -2726,6 +2729,9 @@ when nothing was spawned.
+
+ Overwrite unit names by default with group name.
+
@@ -2740,6 +2746,9 @@ when nothing was spawned.
+
+ By default, no InitLimit
+
@@ -2775,7 +2784,7 @@ when nothing was spawned.
-
-
+ #number
SPAWN.SpawnMaxGroups
@@ -2792,7 +2801,7 @@ when nothing was spawned.
-
-
+ #number
SPAWN.SpawnMaxUnitsAlive
@@ -3120,7 +3129,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
-
-
+ #boolean
SPAWN.SpawnUnControlled
@@ -3144,7 +3153,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.
diff --git a/docs/Documentation/SpawnStatic.html b/docs/Documentation/SpawnStatic.html
index bc91b9624..d8aa5e633 100644
--- a/docs/Documentation/SpawnStatic.html
+++ b/docs/Documentation/SpawnStatic.html
@@ -436,6 +436,7 @@ ptional) The name of the new static.
-
+ #number
SPAWNSTATIC.SpawnIndex
diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html
index 743615651..ab67c2b1a 100644
--- a/docs/Documentation/Task_Cargo.html
+++ b/docs/Documentation/Task_Cargo.html
@@ -630,7 +630,7 @@ based on the tasking capabilities defined in Task#TA
-
- #number
+
TASK_CARGO.CargoLimit
diff --git a/docs/README.md b/docs/README.md
index f59670a26..17ea67c05 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -81,9 +81,9 @@ Each TASK has a TASK ACTION flow, which is the flow that a player (hosted by a U
MOOSE AI Controlling Classes provide mechanisms to control AI over long lasting processes.
These AI Controlling Classes are based on FSM (Finite State Machine) Classes, and provided an encapsulated way to make AI behave or execute an activity.
-* [AI_A2A_GCICAP](Documentation/AI_A2A_Dispatcher.html): Create an automatic and dynamic A2A defense system, executed by AI units, as a result of detected A2A airborne targets executing CAP and GCI. Using an easy process you can define an air defense strategy using the Mission Editor.
+* [AI_A2A_GCICAP](Documentation/AI_A2A_Dispatcher.html#AI_A2A_GCICAP): Create an automatic and dynamic A2A defense system, executed by AI units, as a result of detected A2A airborne targets executing CAP and GCI. Using an easy process you can define an air defense strategy using the Mission Editor.
-* [AI_A2A_DISPATCHER](Documentation/AI_A2A_Dispatcher.html): Same as AI\_A2A\_GCICAP, but is for more advanced or developer type mission designers. This class provides more options.
+* [AI_A2A_DISPATCHER](Documentation/AI_A2A_Dispatcher.html#AI_A2A_DISPATCHER): Same as AI\_A2A\_GCICAP, but is for more advanced or developer type mission designers. This class provides more options.
* [AI_BALANCER](Documentation/AI_Balancer.html): Compensate in a multi player mission the abscence of players with dynamically spawned AI air units. When players join CLIENTS, the AI will either be destroyed, or will fly back to the home or nearest friendly airbase.
@@ -155,24 +155,42 @@ These classes define the base building blocks of the MOOSE framework. These clas
* [SCHEDULER](Documentation/Scheduler.html): This class implements a timer scheduler that will call at optional specified intervals repeatedly or just one time a scheduled function.
-* [FSM](Documentation/Fsm.html): The main FSM class can be used to build a Finite State Machine. The derived FSM_ classes provide Finite State Machine building capability for CONTROLLABLEs, ACT_ (Task Actions) classes, TASKs and SETs.
+* [Finite State Machines](Documentation/Fsm.html): Finite State Machine provides a process management or state machine capability for various scenarios.
+* [FSM](Documentation/Fsm.html#FSM): The main FSM class can be used to build a generic Finite State Machine.
+* [FSM_CONTROLLABLE](Documentation/Fsm.html#FSM_CONTROLLABLE): An FSM class to control a Controllable. A controllable is a group or unit that can be controlled.
-* [MENU](Documentation/Menu.html): Set Menu options (F10) for All Players, Coalitions, Groups, Clients. MENU also manages the recursive removal of menus, which is a big asset!
+* [MENU](Documentation/Menu.html): Set Menu options under the radio menu (F10). MENU classes also manage the recursive removal of menus, and the intelligent refresh of menu options (only the changes are applied).
+* [MENU_MISSION](Documentation/Menu.html#MENU_MISSION): Set a main menu structure for the complete mission, for all players.
+* [MENU_MISSION_COMMAND](Documentation/Menu.html#MENU_MISSION_COMMAND): Set a main menu command for the complete mission, for all players.
+* [MENU_COALITION](Documentation/Menu.html#MENU_COALITION): Set a menu structure for a coalition, for all players of that coalition.
+* [MENU_COALITION_COMMAND](Documentation/Menu.html#MENU_COALITION_COMMAND): Set a menu command for a coalition, for all players of that coalition.
+* [MENU_GROUP](Documentation/Menu.html#MENU_GROUP): Set a menu structure for a group, for all players of that group.
+* [MENU_GROUP_COMMAND](Documentation/Menu.html#MENU_GROUP_COMMAND): Set a menu command for a group, for all players of that group.
-* [SET](Documentation/Set.html): Create SETs of MOOSE objects. SETs can be created for GROUPs, UNITs, AIRBASEs, ...
-The SET can be filtered with defined filter criteria.
-Iterators are available that iterate through the GROUPSET, calling a function for each object within the SET.
+* [SET](Documentation/Set.html): Create SETs of MOOSE objects. The SET can be filtered with defined filter criteria. Iterators are available that iterate through the SET, calling a function for each object within the SET.
+* [SET_GROUP](Documentation/Set.html#SET_GROUP): Create a SET of GROUP objects.
+* [SET_UNIT](Documentation/Set.html#SET_UNIT): Create a SET of UNIT objects.
+* [SET_CLIENT](Documentation/Set.html#SET_CLIENT): Create a SET of CLIENT objects.
+* [SET_AIRBASE](Documentation/Set.html#SET_AIRBASE): Create a SET of AIRBASE objects.
+* [SET_CARGO](Documentation/Set.html#SET_CARGO): Create a SET of CARGO objects.
* [MESSAGE](Documentation/Message.html): A message publishing system, displaying messages to Clients, Coalitions or All players.
-* [POINTS](Documentation/Point.html): A set of point classes to manage the 2D or 3D simulation space, through an extensive method library.
-The POINT_VEC3 class manages the 3D simulation space, while the POINT_VEC2 class manages the 2D simulation space.
+* [COORDINATE](Documentation/Point.html#COORDINATE): Manage 2D and 3D points in the simulation space, and use its methods for various actions on the coordinate.
+* [POINT_VEC2](Documentation/Point.html#POINT_VEC2): Manage 2D points in the simulation space.
+* [POINT_VEC3](Documentation/Point.html#POINT_VEC3): Manage 3D points in the simulation space.
-* [ZONES](Documentation/Zone.html): A set of zone classes that provide the functionality to validate the presence of GROUPS, UNITS, CLIENTS, STATICS within a certain ZONE. The zones can take various forms and can be movable.
+* [ZONES](Documentation/Zone.html#ZONE): Create a zone object from a trigger zone as defined in the Mission Editor.
+* [ZONE_POLYGON](Documentation/Zone.html#ZONE_POLYGON): Create a zone object from a group object, which is late activated, and its route points define the zone.
+* [ZONE_RADIUS](Documentation/Zone.html#ZONE_RADIUS): Create a zone object from a 2D vector on the battlefield, with a defined radius.
+* [ZONE_UNIT](Documentation/Zone.html#ZONE_UNIT): Create a zone object around a unit on the battlefield, with a defined radius. This, this zone is a moving zone!
+* [ZONE_GROUP](Documentation/Zone.html#ZONE_GROUP): Create a zone object around a group on the battlefield, with a defined radius. The first object in the group has the zone, and is thus a moving zone!
-* [CARGO](Documentation/Cargo.html): Manage Cargo in the simulation.
+* [CARGO](Documentation/Cargo.html): Manage Cargo in the simulation.
+* [CARGO_GROUP](Documentation/Cargo.html#CARGO_GROUP): Manage Cargo that is defined as a GROUP object within the simulation.
-* [SPAWNSTATIC](Documentation/SpawnStatic.html): Spawn dynamically static objects.
+* [SPAWNSTATIC](Documentation/SpawnStatic.html): Spawn dynamically static objects.
+* [SPAWNSTATIC](Documentation/SpawnStatic.html#SPAWNSTATIC): Spawn Static objects using a predefined "template".
* [BEACON](Documentation/Radio.html): Create beacons.