diff --git a/Moose Development/Moose/AI/AI_CAS.lua b/Moose Development/Moose/AI/AI_CAS.lua index b9f866f0e..8e9eb20f6 100644 --- a/Moose Development/Moose/AI/AI_CAS.lua +++ b/Moose Development/Moose/AI/AI_CAS.lua @@ -28,19 +28,6 @@ -- -- === -- --- # **API CHANGE HISTORY** --- --- The underlying change log documents the API changes. Please read this carefully. The following notation is used: --- --- * **Added** parts are expressed in bold type face. --- * _Removed_ parts are expressed in italic type face. --- --- Hereby the change log: --- --- 2017-01-15: Initial class and API. --- --- === --- -- # **AUTHORS and CONTRIBUTIONS** -- -- ### Contributions: diff --git a/Moose Development/Moose/AI/AI_Formation.lua b/Moose Development/Moose/AI/AI_Formation.lua new file mode 100644 index 000000000..7440eeaf9 --- /dev/null +++ b/Moose Development/Moose/AI/AI_Formation.lua @@ -0,0 +1,305 @@ +--- **AI** -- (R2.1) Build large **formations** of AI @{Group}s flying together. +-- +-- ![Banner Image](..\Presentations\AI_FORMATION\Dia1.JPG) +-- +-- === +-- +-- AI_FORMATION makes AI @{GROUP}s fly in formation of various compositions. +-- +-- There are the following types of classes defined: +-- +-- * @{#AI_FORMATION}: Create a formation from several @{GROUP}s. +-- +-- ==== +-- +-- # Demo Missions +-- +-- ### [AI_FORMATION Demo Missions source code]() +-- +-- ### [AI_FORMATION Demo Missions, only for beta testers]() +-- +-- ### [ALL Demo Missions pack of the last release]() +-- +-- ==== +-- +-- # YouTube Channel +-- +--- ### [AI_FORMATION YouTube Channel]() +-- +-- === +-- +-- # **AUTHORS and CONTRIBUTIONS** +-- +-- ### Contributions: +-- +-- ### Authors: +-- +-- * **FlightControl**: Concept, Design & Programming. +-- +-- @module AI_Follow + +--- AI_FORMATION class +-- @type AI_FORMATION +-- @extends Fsm#FSM_SET +-- @field Unit#UNIT FollowUnit +-- @field Set#SET_GROUP FollowGroupSet +-- @field #string FollowName +-- @field #AI_FORMATION.MODE FollowMode The mode the escort is in. +-- @field Scheduler#SCHEDULER FollowScheduler The instance of the SCHEDULER class. +-- @field #number FollowDistance The current follow distance. +-- @field #boolean ReportTargets If true, nearby targets are reported. +-- @Field DCSTypes#AI.Option.Air.val.ROE OptionROE Which ROE is set to the FollowGroup. +-- @field DCSTypes#AI.Option.Air.val.REACTION_ON_THREAT OptionReactionOnThreat Which REACTION_ON_THREAT is set to the FollowGroup. +-- @field Menu#MENU_CLIENT FollowMenuResumeMission + + +--- # AI_FORMATION class, extends @{Fsm#FSM_SET} +-- +-- The #AI_FORMATION class allows you to build large formations, make AI follow a @{Client#CLIENT} (player) leader or a @{Unit#UNIT} (AI) leader. +-- +-- ## AI_FORMATION construction +-- +-- Create a new SPAWN object with the @{#AI_FORMATION.New} method: +-- +-- * @{Follow#AI_FORMATION.New}(): Creates a new AI_FORMATION object from a @{Group#GROUP} for a @{Client#CLIENT} or a @{Unit#UNIT}, with an optional briefing text. +-- +-- ## Initialization methods +-- +-- The following menus are created within the RADIO MENU of an active unit hosted by a player: +-- +-- * @{Follow#AI_FORMATION.SetFormation}(): Set a Vec3 position for a GroupName within the GroupSet following. +-- +-- @usage +-- -- Declare a new FollowPlanes object as follows: +-- +-- -- First find the GROUP object and the CLIENT object. +-- local FollowUnit = CLIENT:FindByName( "Unit Name" ) -- The Unit Name is the name of the unit flagged with the skill Client in the mission editor. +-- local FollowGroup = GROUP:FindByName( "Group Name" ) -- The Group Name is the name of the group that will escort the Follow Client. +-- +-- -- Now use these 2 objects to construct the new FollowPlanes object. +-- FollowPlanes = AI_FORMATION:New( FollowUnit, FollowGroup, "Desert", "Welcome to the mission. You are escorted by a plane with code name 'Desert', which can be instructed through the F10 radio menu." ) +-- +-- @field #AI_FORMATION +AI_FORMATION = { + ClassName = "AI_FORMATION", + FollowName = nil, -- The Follow Name + FollowUnit = nil, + FollowGroupSet = nil, + FollowMode = 1, + MODE = { + FOLLOW = 1, + MISSION = 2, + }, + FollowScheduler = nil, + OptionROE = AI.Option.Air.val.ROE.OPEN_FIRE, + OptionReactionOnThreat = AI.Option.Air.val.REACTION_ON_THREAT.ALLOW_ABORT_MISSION, +} + +--- AI_FORMATION.Mode class +-- @type AI_FORMATION.MODE +-- @field #number FOLLOW +-- @field #number MISSION + +--- MENUPARAM type +-- @type MENUPARAM +-- @field #AI_FORMATION ParamSelf +-- @field #Distance ParamDistance +-- @field #function ParamFunction +-- @field #string ParamMessage + +--- AI_FORMATION class constructor for an AI group +-- @param #AI_FORMATION self +-- @param Unit#UNIT FollowUnit The UNIT leading the FolllowGroupSet. +-- @param Set#SET_GROUP FollowGroupSet The group AI escorting the FollowUnit. +-- @param #string FollowName Name of the escort. +-- @return #AI_FORMATION self +function AI_FORMATION:New( FollowUnit, FollowGroupSet, FollowName, FollowBriefing ) + local self = BASE:Inherit( self, FSM_SET:New( FollowGroupSet ) ) + self:F( { FollowUnit, FollowGroupSet, FollowName } ) + + self.FollowUnit = FollowUnit -- Unit#UNIT + self.FollowGroupSet = FollowGroupSet -- Set#SET_GROUP + + self:SetStartState( "None" ) + + self:AddTransition( "*", "Stop", "Stopped" ) + + self:AddTransition( "None", "Start", "Following" ) + + self:AddTransition( "*", "Follow", "Following" ) + + FollowGroupSet:ForEachGroup( + --- @param Group#GROUP FollowGroup + function( FollowGroup, FollowName, FollowUnit ) + local Vec3 = { x = math.random( -20, -150 ), y = math.random( -50, 50 ), z = math.random( -800, 800 ) } + FollowGroup:SetState( self, "Vec3", Vec3 ) + FollowGroup:OptionROTPassiveDefense() + FollowGroup:OptionROEReturnFire() + --FollowGroup:MessageToClient( FollowGroup:GetCategoryName() .. " '" .. FollowName .. "' (" .. FollowGroup:GetCallsign() .. ") reporting! " .. + -- "We're following your flight. ", + -- 60, FollowUnit + --) + end, + FollowName, self.FollowUnit + ) + + + self.FollowName = FollowName + self.FollowBriefing = FollowBriefing + + + self.CT1 = 0 + self.GT1 = 0 + + self.FollowMode = AI_FORMATION.MODE.MISSION + + return self +end + +--- This function is for test, it will put on the frequency of the FollowScheduler a red smoke at the direction vector calculated for the escort to fly to. +-- This allows to visualize where the escort is flying to. +-- @param #AI_FORMATION self +-- @param #boolean SmokeDirection If true, then the direction vector will be smoked. +function AI_FORMATION:TestSmokeDirectionVector( SmokeDirection ) + self.SmokeDirectionVector = ( SmokeDirection == true ) and true or false + return self +end + + +--- @param Follow#AI_FORMATION self +function AI_FORMATION:onenterFollowing( FollowGroupSet ) + self:F( ) + + self:T( { self.FollowUnit.UnitName, self.FollowUnit:IsAlive() } ) + if self.FollowUnit:IsAlive() then + + local ClientUnit = self.FollowUnit + + self:T( {ClientUnit.UnitName } ) + + local CT1, CT2, CV1, CV2 + CT1 = ClientUnit:GetState( self, "CT1" ) + + if CT1 == nil or CT1 == 0 then + ClientUnit:SetState( self, "CV1", ClientUnit:GetPointVec3() ) + ClientUnit:SetState( self, "CT1", timer.getTime() ) + else + CT1 = ClientUnit:GetState( self, "CT1" ) + CT2 = timer.getTime() + CV1 = ClientUnit:GetState( self, "CV1" ) + CV2 = ClientUnit:GetPointVec3() + + ClientUnit:SetState( self, "CT1", CT2 ) + ClientUnit:SetState( self, "CV1", CV2 ) + end + + FollowGroupSet:ForEachGroup( + --- @param Group#GROUP FollowGroup + -- @param Unit#UNIT ClientUnit + function( FollowGroup, ClientUnit, CT1, CV1, CT2, CV2 ) + + local GroupUnit = FollowGroup:GetUnit( 1 ) + local FollowFormation = FollowGroup:GetState( self, "Vec3" ) + self:T( FollowFormation ) + local FollowDistance = FollowFormation.x + + self:T( {ClientUnit.UnitName, GroupUnit.UnitName } ) + + local GT1 = GroupUnit:GetState( self, "GT1" ) + + if CT1 == nil or CT1 == 0 or GT1 == nil or GT1 == 0 then + GroupUnit:SetState( self, "GV1", GroupUnit:GetPointVec3() ) + GroupUnit:SetState( self, "GT1", timer.getTime() ) + else + local CD = ( ( CV2.x - CV1.x )^2 + ( CV2.y - CV1.y )^2 + ( CV2.z - CV1.z )^2 ) ^ 0.5 + local CT = CT2 - CT1 + + local CS = ( 3600 / CT ) * ( CD / 1000 ) + + self:T2( { "Client:", CS, CD, CT, CV2, CV1, CT2, CT1 } ) + + local GT1 = GroupUnit:GetState( self, "GT1" ) + local GT2 = timer.getTime() + local GV1 = GroupUnit:GetState( self, "GV1" ) + local GV2 = GroupUnit:GetPointVec3() + GroupUnit:SetState( self, "GT1", GT2 ) + GroupUnit:SetState( self, "GV1", GV2 ) + + local GD = ( ( GV2.x - GV1.x )^2 + ( GV2.y - GV1.y )^2 + ( GV2.z - GV1.z )^2 ) ^ 0.5 + local GT = GT2 - GT1 + + local GS = ( 3600 / GT ) * ( GD / 1000 ) + + self:T2( { "Group:", GS, GD, GT, GV2, GV1, GT2, GT1 } ) + + -- Calculate the group direction vector + local GV = { x = GV2.x - CV2.x, y = GV2.y - CV2.y, z = GV2.z - CV2.z } + + -- Calculate GH2, GH2 with the same height as CV2. + local GH2 = { x = GV2.x, y = CV2.y, z = GV2.z } + + -- Calculate the angle of GV to the orthonormal plane + local alpha = math.atan2( GV.z, GV.x ) + + -- Now we calculate the intersecting vector between the circle around CV2 with radius FollowDistance and GH2. + -- From the GeoGebra model: CVI = (x(CV2) + FollowDistance cos(alpha), y(GH2) + FollowDistance sin(alpha), z(CV2)) + local CVI = { x = CV2.x + FollowDistance * math.cos(alpha), + y = GH2.y + FollowFormation.y, + z = CV2.z + FollowDistance * math.sin(alpha), + } + + -- Calculate the direction vector DV of the escort group. We use CVI as the base and CV2 as the direction. + local DV = { x = CV2.x - CVI.x, y = CV2.y - CVI.y, z = CV2.z - CVI.z } + + -- We now calculate the unary direction vector DVu, so that we can multiply DVu with the speed, which is expressed in meters / s. + -- We need to calculate this vector to predict the point the escort group needs to fly to according its speed. + -- The distance of the destination point should be far enough not to have the aircraft starting to swipe left to right... + local DVu = { x = DV.x / FollowDistance, y = DV.y / FollowDistance, z = DV.z / FollowDistance } + + -- Now we can calculate the group destination vector GDV. + local GDV = { x = DVu.x * CS * 8 + CVI.x, y = CVI.y, z = DVu.z * CS * 8 + CVI.z } + + local GDV_Formation = { + x = GDV.x + ( FollowFormation.x * math.cos(alpha) - FollowFormation.z * math.sin(alpha) ), + y = GDV.y, + z = GDV.z + ( FollowFormation.z * math.cos(alpha) + FollowFormation.x * math.sin(alpha) ) + } + + if self.SmokeDirectionVector == true then + trigger.action.smoke( GDV, trigger.smokeColor.Green ) + trigger.action.smoke( GDV_Formation, trigger.smokeColor.White ) + end + + self:T3( { "CV2:", CV2 } ) + self:T3( { "CVI:", CVI } ) + self:T2( { "GDV:", GDV } ) + + -- Measure distance between client and group + local CatchUpDistance = ( ( GDV_Formation.x - GV2.x )^2 + ( GDV_Formation.y - GV2.y )^2 + ( GDV_Formation.z - GV2.z )^2 ) ^ 0.5 + + -- The calculation of the Speed would simulate that the group would take 30 seconds to overcome + -- the requested Distance). + local Time = 20 + local CatchUpSpeed = ( CatchUpDistance - ( CS * 9.5 ) ) / Time + + local Speed = CS + CatchUpSpeed + if Speed < 0 then + Speed = 0 + end + + self:T({CatchUpDistance, CatchUpSpeed}) + + self:T3( { "Client Speed, Follow Speed, Speed, FollowDistance, Time:", CS, GS, Speed, FollowDistance, Time } ) + + -- Now route the escort to the desired point with the desired speed. + FollowGroup:RouteToVec3( GDV_Formation, Speed / 3.6 ) -- DCS models speed in Mps (Miles per second) + end + end, + ClientUnit, CT1, CV1, CT2, CV2 + ) + + self:__Follow( -0.5 ) + end + +end + diff --git a/Moose Mission Setup/Moose.files b/Moose Mission Setup/Moose.files index 6cc1565c1..5d8c15212 100644 --- a/Moose Mission Setup/Moose.files +++ b/Moose Mission Setup/Moose.files @@ -44,6 +44,7 @@ AI/AI_Patrol.lua AI/AI_Cap.lua AI/AI_Cas.lua AI/AI_Bai.lua +AI/AI_Formation.lua Actions/Act_Assign.lua Actions/Act_Route.lua diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index 241147a4e..ef7a6b0b3 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170509_2025' ) +env.info( 'Moose Generation Timestamp: 20170510_1031' ) local base = _G @@ -63,6 +63,7 @@ __Moose.Include( 'AI/AI_Patrol.lua' ) __Moose.Include( 'AI/AI_Cap.lua' ) __Moose.Include( 'AI/AI_Cas.lua' ) __Moose.Include( 'AI/AI_Bai.lua' ) +__Moose.Include( 'AI/AI_Formation.lua' ) __Moose.Include( 'Actions/Act_Assign.lua' ) __Moose.Include( 'Actions/Act_Route.lua' ) __Moose.Include( 'Actions/Act_Account.lua' ) diff --git a/docs/Documentation/AI_BAI.html b/docs/Documentation/AI_BAI.html index dfcc85f6b..fcf7e478e 100644 --- a/docs/Documentation/AI_BAI.html +++ b/docs/Documentation/AI_BAI.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/AI_Balancer.html b/docs/Documentation/AI_Balancer.html index 8230fd694..412cda7ff 100644 --- a/docs/Documentation/AI_Balancer.html +++ b/docs/Documentation/AI_Balancer.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/AI_Cap.html b/docs/Documentation/AI_Cap.html index a87487c58..c8385d7ae 100644 --- a/docs/Documentation/AI_Cap.html +++ b/docs/Documentation/AI_Cap.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/AI_Cas.html b/docs/Documentation/AI_Cas.html index f99458bb4..6a7fe4211 100644 --- a/docs/Documentation/AI_Cas.html +++ b/docs/Documentation/AI_Cas.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -130,21 +131,6 @@
    -

    API CHANGE HISTORY

    - -

    The underlying change log documents the API changes. Please read this carefully. The following notation is used:

    - - - -

    Hereby the change log:

    - -

    2017-01-15: Initial class and API.

    - -
    -

    AUTHORS and CONTRIBUTIONS

    Contributions:

    diff --git a/docs/Documentation/AI_Follow.html b/docs/Documentation/AI_Follow.html new file mode 100644 index 000000000..7cd88cbc5 --- /dev/null +++ b/docs/Documentation/AI_Follow.html @@ -0,0 +1,670 @@ + + + + + + +
    +
    + +
    +
    +
    +
    + +
    +

    Module AI_Follow

    + +

    AI -- (R2.1) Build large formations of AI Groups flying together.

    + + + +

    Banner Image

    + +
    + +

    AI_FORMATION makes AI GROUPs fly in formation of various compositions.

    + +

    There are the following types of classes defined:

    + + + +
    + +

    Demo Missions

    + +

    AI_FORMATION Demo Missions source code

    + +

    AI_FORMATION Demo Missions, only for beta testers

    + +

    ALL Demo Missions pack of the last release

    + +
    + +

    YouTube Channel

    + + + +
    + +

    AUTHORS and CONTRIBUTIONS

    + +

    Contributions:

    + +

    Authors:

    + +
      +
    • FlightControl: Concept, Design & Programming. +
    • +
    + +

    Global(s)

    + + + + + +
    AI_FORMATION +

    AI_FORMATION class, extends Fsm#FSM_SET

    + +

    The #AI_FORMATION class allows you to build large formations, make AI follow a Client#CLIENT (player) leader or a Unit#UNIT (AI) leader.

    +
    +

    Type AI_FORMATION

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AI_FORMATION.FollowDistance +

    The current follow distance.

    +
    AI_FORMATION.FollowGroupSet + +
    AI_FORMATION.FollowMenuResumeMission + +
    AI_FORMATION.FollowMode +

    The mode the escort is in.

    +
    AI_FORMATION.FollowName + +
    AI_FORMATION.FollowScheduler +

    The instance of the SCHEDULER class.

    +
    AI_FORMATION.FollowUnit + +
    AI_FORMATION:New(FollowUnit, FollowGroupSet, FollowName, FollowBriefing) +

    AI_FORMATION class constructor for an AI group

    +
    AI_FORMATION.OptionReactionOnThreat +

    Which REACTIONONTHREAT is set to the FollowGroup.

    +
    AI_FORMATION.ReportTargets +

    If true, nearby targets are reported.

    +
    AI_FORMATION.SmokeDirectionVector + +
    AI_FORMATION:TestSmokeDirectionVector(SmokeDirection) +

    This function is for test, it will put on the frequency of the FollowScheduler a red smoke at the direction vector calculated for the escort to fly to.

    +
    AI_FORMATION:onenterFollowing(FollowGroupSet) + +
    + +

    Type AI_FORMATION.MODE

    + + + + + + + + + +
    AI_FORMATION.MODE.FOLLOW + +
    AI_FORMATION.MODE.MISSION + +
    + +

    Type MENUPARAM

    + + + + + + + + + + + + + + + + + +
    MENUPARAM.ParamDistance + +
    MENUPARAM.ParamFunction + +
    MENUPARAM.ParamMessage + +
    MENUPARAM.ParamSelf + +
    + +

    Global(s)

    +
    +
    + + #AI_FORMATION + +AI_FORMATION + +
    +
    + +

    AI_FORMATION class, extends Fsm#FSM_SET

    + +

    The #AI_FORMATION class allows you to build large formations, make AI follow a Client#CLIENT (player) leader or a Unit#UNIT (AI) leader.

    + + + +

    AI_FORMATION construction

    + +

    Create a new SPAWN object with the AI_FORMATION.New method:

    + + + +

    Initialization methods

    + +

    The following menus are created within the RADIO MENU of an active unit hosted by a player:

    + + + + +

    Usage:

    +
    -- Declare a new FollowPlanes object as follows:
    +
    +-- First find the GROUP object and the CLIENT object.
    +local FollowUnit = CLIENT:FindByName( "Unit Name" ) -- The Unit Name is the name of the unit flagged with the skill Client in the mission editor.
    +local FollowGroup = GROUP:FindByName( "Group Name" ) -- The Group Name is the name of the group that will escort the Follow Client.
    +
    +-- Now use these 2 objects to construct the new FollowPlanes object.
    +FollowPlanes = AI_FORMATION:New( FollowUnit, FollowGroup, "Desert", "Welcome to the mission. You are escorted by a plane with code name 'Desert', which can be instructed through the F10 radio menu." )
    +
    + +
    +
    +

    Type AI_Follow

    + +

    Type AI_FORMATION

    + +

    AI_FORMATION class

    + +

    Field(s)

    +
    +
    + + #number + +AI_FORMATION.FollowDistance + +
    +
    + +

    The current follow distance.

    + +
    +
    +
    +
    + + Set#SET_GROUP + +AI_FORMATION.FollowGroupSet + +
    +
    + + + +
    +
    +
    +
    + + Menu#MENU_CLIENT + +AI_FORMATION.FollowMenuResumeMission + +
    +
    + + + +
    +
    +
    +
    + + #AI_FORMATION.MODE + +AI_FORMATION.FollowMode + +
    +
    + +

    The mode the escort is in.

    + +
    +
    +
    +
    + + #string + +AI_FORMATION.FollowName + +
    +
    + + + +
    +
    +
    +
    + + Scheduler#SCHEDULER + +AI_FORMATION.FollowScheduler + +
    +
    + +

    The instance of the SCHEDULER class.

    + +
    +
    +
    +
    + + Unit#UNIT + +AI_FORMATION.FollowUnit + +
    +
    + + + +
    +
    +
    +
    + + +AI_FORMATION:New(FollowUnit, FollowGroupSet, FollowName, FollowBriefing) + +
    +
    + +

    AI_FORMATION class constructor for an AI group

    + +

    Parameters

    +
      +
    • + +

      Unit#UNIT FollowUnit : +The UNIT leading the FolllowGroupSet.

      + +
    • +
    • + +

      Set#SET_GROUP FollowGroupSet : +The group AI escorting the FollowUnit.

      + +
    • +
    • + +

      #string FollowName : +Name of the escort.

      + +
    • +
    • + +

      FollowBriefing :

      + +
    • +
    +

    Return value

    + +

    #AI_FORMATION: +self

    + +
    +
    +
    +
    + + DCSTypes#AI.Option.Air.val.REACTION_ON_THREAT + +AI_FORMATION.OptionReactionOnThreat + +
    +
    + +

    Which REACTIONONTHREAT is set to the FollowGroup.

    + +
    +
    +
    +
    + + #boolean + +AI_FORMATION.ReportTargets + +
    +
    + +

    If true, nearby targets are reported.

    + +
    +
    +
    +
    + + +AI_FORMATION.SmokeDirectionVector + +
    +
    + + + +
    +
    +
    +
    + + +AI_FORMATION:TestSmokeDirectionVector(SmokeDirection) + +
    +
    + +

    This function is for test, it will put on the frequency of the FollowScheduler a red smoke at the direction vector calculated for the escort to fly to.

    + + +

    This allows to visualize where the escort is flying to.

    + +

    Parameter

    +
      +
    • + +

      #boolean SmokeDirection : +If true, then the direction vector will be smoked.

      + +
    • +
    +
    +
    +
    +
    + + +AI_FORMATION:onenterFollowing(FollowGroupSet) + +
    +
    + + + +

    Parameter

    +
      +
    • + +

      FollowGroupSet :

      + +
    • +
    +
    +
    + +

    Type AI_FORMATION.MODE

    + +

    AI_FORMATION.Mode class

    + +

    Field(s)

    +
    +
    + + #number + +AI_FORMATION.MODE.FOLLOW + +
    +
    + + + +
    +
    +
    +
    + + #number + +AI_FORMATION.MODE.MISSION + +
    +
    + + + +
    +
    + +

    Type Distance

    + +

    Type MENUPARAM

    + +

    MENUPARAM type

    + +

    Field(s)

    +
    +
    + + #Distance + +MENUPARAM.ParamDistance + +
    +
    + + + +
    +
    +
    +
    + + #function + +MENUPARAM.ParamFunction + +
    +
    + + + +
    +
    +
    +
    + + #string + +MENUPARAM.ParamMessage + +
    +
    + + + +
    +
    +
    +
    + + #AI_FORMATION + +MENUPARAM.ParamSelf + +
    +
    + + + +
    +
    + +
    + +
    + + diff --git a/docs/Documentation/AI_Patrol.html b/docs/Documentation/AI_Patrol.html index c9beaaa77..bebc26831 100644 --- a/docs/Documentation/AI_Patrol.html +++ b/docs/Documentation/AI_Patrol.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -952,9 +953,6 @@ Use the method AIPATROLZONE.M - -

    This table contains the targets detected during patrol.

    -
    diff --git a/docs/Documentation/Account.html b/docs/Documentation/Account.html index 40cca1764..c9525a456 100644 --- a/docs/Documentation/Account.html +++ b/docs/Documentation/Account.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Airbase.html b/docs/Documentation/Airbase.html index 439ea2f1b..d34c31236 100644 --- a/docs/Documentation/Airbase.html +++ b/docs/Documentation/Airbase.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/AirbasePolice.html b/docs/Documentation/AirbasePolice.html index 8a03b3a59..4b588bf42 100644 --- a/docs/Documentation/AirbasePolice.html +++ b/docs/Documentation/AirbasePolice.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Assign.html b/docs/Documentation/Assign.html index 1565398e5..32c34434e 100644 --- a/docs/Documentation/Assign.html +++ b/docs/Documentation/Assign.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Base.html b/docs/Documentation/Base.html index 64657992b..78561eaa0 100644 --- a/docs/Documentation/Base.html +++ b/docs/Documentation/Base.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index ed5f7adcd..8fadae3b5 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -3045,6 +3046,7 @@ The range till cargo will board.

    + #number CARGO_UNIT.RunCount diff --git a/docs/Documentation/CleanUp.html b/docs/Documentation/CleanUp.html index 3e5471b7e..61f906774 100644 --- a/docs/Documentation/CleanUp.html +++ b/docs/Documentation/CleanUp.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Client.html b/docs/Documentation/Client.html index 472bbe443..ee544737e 100644 --- a/docs/Documentation/Client.html +++ b/docs/Documentation/Client.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/CommandCenter.html b/docs/Documentation/CommandCenter.html index bcf88684a..68874808d 100644 --- a/docs/Documentation/CommandCenter.html +++ b/docs/Documentation/CommandCenter.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Controllable.html b/docs/Documentation/Controllable.html index c5abef460..393e9510c 100644 --- a/docs/Documentation/Controllable.html +++ b/docs/Documentation/Controllable.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSAirbase.html b/docs/Documentation/DCSAirbase.html index f9b40732f..1f853ff13 100644 --- a/docs/Documentation/DCSAirbase.html +++ b/docs/Documentation/DCSAirbase.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSCoalitionObject.html b/docs/Documentation/DCSCoalitionObject.html index 5d9721659..e4ff82a64 100644 --- a/docs/Documentation/DCSCoalitionObject.html +++ b/docs/Documentation/DCSCoalitionObject.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSCommand.html b/docs/Documentation/DCSCommand.html index 918aba934..ef4f5e1e3 100644 --- a/docs/Documentation/DCSCommand.html +++ b/docs/Documentation/DCSCommand.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSController.html b/docs/Documentation/DCSController.html index c8f091a16..e52b918e6 100644 --- a/docs/Documentation/DCSController.html +++ b/docs/Documentation/DCSController.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSGroup.html b/docs/Documentation/DCSGroup.html index f5cf0300e..bc74ae421 100644 --- a/docs/Documentation/DCSGroup.html +++ b/docs/Documentation/DCSGroup.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSObject.html b/docs/Documentation/DCSObject.html index aa771f73d..ffe8cd55c 100644 --- a/docs/Documentation/DCSObject.html +++ b/docs/Documentation/DCSObject.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSTask.html b/docs/Documentation/DCSTask.html index bdab8ced8..a398a5d0d 100644 --- a/docs/Documentation/DCSTask.html +++ b/docs/Documentation/DCSTask.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSTypes.html b/docs/Documentation/DCSTypes.html index 68b115ab2..d6eaf64ad 100644 --- a/docs/Documentation/DCSTypes.html +++ b/docs/Documentation/DCSTypes.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSUnit.html b/docs/Documentation/DCSUnit.html index ff49c3ce0..4d46d0b27 100644 --- a/docs/Documentation/DCSUnit.html +++ b/docs/Documentation/DCSUnit.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSVec3.html b/docs/Documentation/DCSVec3.html index bae815190..1bc44128c 100644 --- a/docs/Documentation/DCSVec3.html +++ b/docs/Documentation/DCSVec3.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSWorld.html b/docs/Documentation/DCSWorld.html index 8cf46e3e9..63d533748 100644 --- a/docs/Documentation/DCSWorld.html +++ b/docs/Documentation/DCSWorld.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCSZone.html b/docs/Documentation/DCSZone.html index dcfed9d0f..43bde0465 100644 --- a/docs/Documentation/DCSZone.html +++ b/docs/Documentation/DCSZone.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCScountry.html b/docs/Documentation/DCScountry.html index 3513b9812..e8ac8b2ac 100644 --- a/docs/Documentation/DCScountry.html +++ b/docs/Documentation/DCScountry.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCStimer.html b/docs/Documentation/DCStimer.html index 1822b7fbc..a58433496 100644 --- a/docs/Documentation/DCStimer.html +++ b/docs/Documentation/DCStimer.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/DCStrigger.html b/docs/Documentation/DCStrigger.html index 0a12a11e5..032bffd19 100644 --- a/docs/Documentation/DCStrigger.html +++ b/docs/Documentation/DCStrigger.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Database.html b/docs/Documentation/Database.html index 70294483b..08030f60c 100644 --- a/docs/Documentation/Database.html +++ b/docs/Documentation/Database.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Designate.html b/docs/Documentation/Designate.html index 36af9145f..cf1f82b99 100644 --- a/docs/Documentation/Designate.html +++ b/docs/Documentation/Designate.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -891,7 +892,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 13499cb5c..62e57668f 100644 --- a/docs/Documentation/Detection.html +++ b/docs/Documentation/Detection.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -2336,6 +2337,7 @@ The index of the DetectedItem.

    + #number DETECTION_BASE.DetectedItemMax @@ -2475,7 +2477,7 @@ The index of the DetectedItem.

    - + #number DETECTION_BASE.DetectionInterval diff --git a/docs/Documentation/DetectionManager.html b/docs/Documentation/DetectionManager.html index b5aea1316..8bd62d1ba 100644 --- a/docs/Documentation/DetectionManager.html +++ b/docs/Documentation/DetectionManager.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Escort.html b/docs/Documentation/Escort.html index a43ecab35..843d53fce 100644 --- a/docs/Documentation/Escort.html +++ b/docs/Documentation/Escort.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Event.html b/docs/Documentation/Event.html index bfa3823de..6970fd5c1 100644 --- a/docs/Documentation/Event.html +++ b/docs/Documentation/Event.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index a5360ca5f..f0ab48a01 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Group.html b/docs/Documentation/Group.html index d970725e0..d79e8fadd 100644 --- a/docs/Documentation/Group.html +++ b/docs/Documentation/Group.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Identifiable.html b/docs/Documentation/Identifiable.html index c049a8f65..bae17f2a7 100644 --- a/docs/Documentation/Identifiable.html +++ b/docs/Documentation/Identifiable.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Menu.html b/docs/Documentation/Menu.html index f294044d9..52ec6351c 100644 --- a/docs/Documentation/Menu.html +++ b/docs/Documentation/Menu.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Message.html b/docs/Documentation/Message.html index 3d8c4d78f..98d9b1abb 100644 --- a/docs/Documentation/Message.html +++ b/docs/Documentation/Message.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/MissileTrainer.html b/docs/Documentation/MissileTrainer.html index 88159742b..577940307 100644 --- a/docs/Documentation/MissileTrainer.html +++ b/docs/Documentation/MissileTrainer.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Mission.html b/docs/Documentation/Mission.html index fa18d7ec0..7a2b74f9f 100644 --- a/docs/Documentation/Mission.html +++ b/docs/Documentation/Mission.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Movement.html b/docs/Documentation/Movement.html index 3adb3bd89..c732cbe69 100644 --- a/docs/Documentation/Movement.html +++ b/docs/Documentation/Movement.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -214,7 +215,6 @@ on defined intervals (currently every minute).

    - #number MOVEMENT.AliveUnits @@ -223,9 +223,6 @@ on defined intervals (currently every minute).

    - -

    Contains the counter how many units are currently alive

    -
    diff --git a/docs/Documentation/Object.html b/docs/Documentation/Object.html index 63145ee4b..04267f399 100644 --- a/docs/Documentation/Object.html +++ b/docs/Documentation/Object.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index b48995723..1c346e107 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -1972,6 +1973,7 @@ The new calculated POINT_VEC2.

    + POINT_VEC2.z diff --git a/docs/Documentation/Positionable.html b/docs/Documentation/Positionable.html index d9dea20e8..e1c48ea50 100644 --- a/docs/Documentation/Positionable.html +++ b/docs/Documentation/Positionable.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Process_JTAC.html b/docs/Documentation/Process_JTAC.html index 9e073a5a6..9d4822e4e 100644 --- a/docs/Documentation/Process_JTAC.html +++ b/docs/Documentation/Process_JTAC.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Process_Pickup.html b/docs/Documentation/Process_Pickup.html index 20b6065b6..89446f104 100644 --- a/docs/Documentation/Process_Pickup.html +++ b/docs/Documentation/Process_Pickup.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Radio.html b/docs/Documentation/Radio.html index 74bfa4e8c..b6981c8fc 100644 --- a/docs/Documentation/Radio.html +++ b/docs/Documentation/Radio.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Route.html b/docs/Documentation/Route.html index 4b4f79333..e4083d4f2 100644 --- a/docs/Documentation/Route.html +++ b/docs/Documentation/Route.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Scenery.html b/docs/Documentation/Scenery.html index 114319f43..1e7bd21b3 100644 --- a/docs/Documentation/Scenery.html +++ b/docs/Documentation/Scenery.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/ScheduleDispatcher.html b/docs/Documentation/ScheduleDispatcher.html index c5292e224..92e5c48f6 100644 --- a/docs/Documentation/ScheduleDispatcher.html +++ b/docs/Documentation/ScheduleDispatcher.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Scheduler.html b/docs/Documentation/Scheduler.html index 7981b1438..99a06b956 100644 --- a/docs/Documentation/Scheduler.html +++ b/docs/Documentation/Scheduler.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Scoring.html b/docs/Documentation/Scoring.html index 322b24998..6254b8f94 100644 --- a/docs/Documentation/Scoring.html +++ b/docs/Documentation/Scoring.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Sead.html b/docs/Documentation/Sead.html index dbf3167ec..091a3a22c 100644 --- a/docs/Documentation/Sead.html +++ b/docs/Documentation/Sead.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Set.html b/docs/Documentation/Set.html index 56e79058a..0e9cfb62f 100644 --- a/docs/Documentation/Set.html +++ b/docs/Documentation/Set.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Smoke.html b/docs/Documentation/Smoke.html index 136d8ac61..68e79e26c 100644 --- a/docs/Documentation/Smoke.html +++ b/docs/Documentation/Smoke.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index 3f656c930..4a10c8567 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -2072,6 +2073,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.

    +
    @@ -2525,6 +2529,9 @@ when nothing was spawned.

    + +

    Overwrite unit names by default with group name.

    +
    @@ -2539,6 +2546,9 @@ when nothing was spawned.

    + +

    By default, no InitLimit

    +
    @@ -2574,7 +2584,7 @@ when nothing was spawned.

    - + #number SPAWN.SpawnMaxGroups @@ -2591,7 +2601,7 @@ when nothing was spawned.

    - + #number SPAWN.SpawnMaxUnitsAlive diff --git a/docs/Documentation/SpawnStatic.html b/docs/Documentation/SpawnStatic.html index d1a622752..69a9412e9 100644 --- a/docs/Documentation/SpawnStatic.html +++ b/docs/Documentation/SpawnStatic.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -445,6 +446,7 @@ ptional) The name of the new static.

    + #number SPAWNSTATIC.SpawnIndex diff --git a/docs/Documentation/Spot.html b/docs/Documentation/Spot.html index acc195246..5ddfdc1f0 100644 --- a/docs/Documentation/Spot.html +++ b/docs/Documentation/Spot.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Static.html b/docs/Documentation/Static.html index ffa9fdb0e..60dac6185 100644 --- a/docs/Documentation/Static.html +++ b/docs/Documentation/Static.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/StaticObject.html b/docs/Documentation/StaticObject.html index b8eff3eed..805c6b594 100644 --- a/docs/Documentation/StaticObject.html +++ b/docs/Documentation/StaticObject.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Task.html b/docs/Documentation/Task.html index 32e192c3f..3391dc69b 100644 --- a/docs/Documentation/Task.html +++ b/docs/Documentation/Task.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Task_A2G.html b/docs/Documentation/Task_A2G.html index fd355500d..b6c3d97ad 100644 --- a/docs/Documentation/Task_A2G.html +++ b/docs/Documentation/Task_A2G.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Task_A2G_Dispatcher.html b/docs/Documentation/Task_A2G_Dispatcher.html index 54ba3cfa4..b6a81e7b3 100644 --- a/docs/Documentation/Task_A2G_Dispatcher.html +++ b/docs/Documentation/Task_A2G_Dispatcher.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Task_Cargo.html b/docs/Documentation/Task_Cargo.html index 5cb0f06fd..5c03c9d31 100644 --- a/docs/Documentation/Task_Cargo.html +++ b/docs/Documentation/Task_Cargo.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -516,7 +517,6 @@ based on the tasking capabilities defined in Task#TA
    - FSM_PROCESS.DeployZone diff --git a/docs/Documentation/Task_PICKUP.html b/docs/Documentation/Task_PICKUP.html index 62f018d83..ab9a92d05 100644 --- a/docs/Documentation/Task_PICKUP.html +++ b/docs/Documentation/Task_PICKUP.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Unit.html b/docs/Documentation/Unit.html index 9c4cba55e..44b0bccac 100644 --- a/docs/Documentation/Unit.html +++ b/docs/Documentation/Unit.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Utils.html b/docs/Documentation/Utils.html index 466bf943c..28412ed44 100644 --- a/docs/Documentation/Utils.html +++ b/docs/Documentation/Utils.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/Zone.html b/docs/Documentation/Zone.html index d29a1c796..81af387d2 100644 --- a/docs/Documentation/Zone.html +++ b/docs/Documentation/Zone.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/env.html b/docs/Documentation/env.html index cb57d1c5c..94099292d 100644 --- a/docs/Documentation/env.html +++ b/docs/Documentation/env.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html index 9255879bf..e6e185419 100644 --- a/docs/Documentation/index.html +++ b/docs/Documentation/index.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • @@ -162,6 +163,12 @@ even when there are hardly any players in the mission.


    AI CAS classes makes AI Controllables execute a Close Air Support.

    + + + + AI_Follow + +

    AI -- (R2.1) Build large formations of AI Groups flying together.

    diff --git a/docs/Documentation/land.html b/docs/Documentation/land.html index 9d747a907..64ee55186 100644 --- a/docs/Documentation/land.html +++ b/docs/Documentation/land.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Documentation/routines.html b/docs/Documentation/routines.html index e497edb3a..8577991c4 100644 --- a/docs/Documentation/routines.html +++ b/docs/Documentation/routines.html @@ -21,6 +21,7 @@
  • AI_Balancer
  • AI_Cap
  • AI_Cas
  • +
  • AI_Follow
  • AI_Patrol
  • Account
  • Airbase
  • diff --git a/docs/Presentations/AI_FORMATION/Dia1.JPG b/docs/Presentations/AI_FORMATION/Dia1.JPG new file mode 100644 index 000000000..a4edad01b Binary files /dev/null and b/docs/Presentations/AI_FORMATION/Dia1.JPG differ