Merge pull request #60 from FlightControl-Master/Expand-Zone

Expand zone
This commit is contained in:
Sven Van de Velde 2016-06-06 13:44:57 +02:00
commit 40d4ffda64
84 changed files with 5558 additions and 624 deletions

View File

@ -1,8 +0,0 @@
Include.File( "Group" )
Include.File( "Unit" )
local UnitAirPlaneAI = _DATABASE:FindUnit( "Airplane AI" )
UnitAirPlaneAI:FlareRed()

View File

@ -380,12 +380,12 @@ end
--- Trace a function call. Must be at the beginning of the function logic. --- Trace a function call. Must be at the beginning of the function logic.
-- @param #BASE self -- @param #BASE self
-- @param Arguments A #table or any field. -- @param Arguments A #table or any field.
function BASE:F( Arguments ) function BASE:F( Arguments, DebugInfoCurrentParam, DebugInfoFromParam )
if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = debug.getinfo( 2, "nl" ) local DebugInfoCurrent = DebugInfoCurrentParam and DebugInfoCurrentParam or debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" ) local DebugInfoFrom = DebugInfoFromParam and DebugInfoFromParam or debug.getinfo( 3, "l" )
local Function = "function" local Function = "function"
if DebugInfoCurrent.name then if DebugInfoCurrent.name then
@ -408,8 +408,11 @@ end
-- @param Arguments A #table or any field. -- @param Arguments A #table or any field.
function BASE:F2( Arguments ) function BASE:F2( Arguments )
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
if _TraceLevel >= 2 then if _TraceLevel >= 2 then
self:F( Arguments ) self:F( Arguments, DebugInfoCurrent, DebugInfoFrom )
end end
end end
@ -419,8 +422,11 @@ end
-- @param Arguments A #table or any field. -- @param Arguments A #table or any field.
function BASE:F3( Arguments ) function BASE:F3( Arguments )
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
if _TraceLevel >= 3 then if _TraceLevel >= 3 then
self:F( Arguments ) self:F( Arguments, DebugInfoCurrent, DebugInfoFrom )
end end
end end
@ -428,12 +434,12 @@ end
--- Trace a function logic. Can be anywhere within the function logic. --- Trace a function logic. Can be anywhere within the function logic.
-- @param #BASE self -- @param #BASE self
-- @param Arguments A #table or any field. -- @param Arguments A #table or any field.
function BASE:T( Arguments ) function BASE:T( Arguments, DebugInfoCurrentParam, DebugInfoFromParam )
if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = debug.getinfo( 2, "nl" ) local DebugInfoCurrent = DebugInfoCurrentParam and DebugInfoCurrentParam or debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" ) local DebugInfoFrom = DebugInfoFromParam and DebugInfoFromParam or debug.getinfo( 3, "l" )
local Function = "function" local Function = "function"
if DebugInfoCurrent.name then if DebugInfoCurrent.name then
@ -456,8 +462,11 @@ end
-- @param Arguments A #table or any field. -- @param Arguments A #table or any field.
function BASE:T2( Arguments ) function BASE:T2( Arguments )
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
if _TraceLevel >= 2 then if _TraceLevel >= 2 then
self:T( Arguments ) self:T( Arguments, DebugInfoCurrent, DebugInfoFrom )
end end
end end
@ -467,8 +476,11 @@ end
-- @param Arguments A #table or any field. -- @param Arguments A #table or any field.
function BASE:T3( Arguments ) function BASE:T3( Arguments )
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
if _TraceLevel >= 3 then if _TraceLevel >= 3 then
self:T( Arguments ) self:T( Arguments, DebugInfoCurrent, DebugInfoFrom )
end end
end end

View File

@ -1,10 +1,10 @@
--- The CLIENT models client units in multi player missions. --- This module contains the CLIENT class.
-- --
-- @{#CLIENT} class -- 1) @{Client#CLIENT} class, extends @{Unit#UNIT}
-- ================ -- ===============================================
-- Clients are those **Units** defined within the Mission Editor that have the skillset defined as __Client__ or __Player__. -- Clients are those **Units** defined within the Mission Editor that have the skillset defined as __Client__ or __Player__.
-- Note that clients are NOT the same as Units, they are NOT necessarily alive. -- Note that clients are NOT the same as Units, they are NOT necessarily alive.
-- The @{CLIENT} class is a wrapper class to handle the DCS Unit objects that have the skillset defined as __Client__ or __Player__: -- The @{Client#CLIENT} class is a wrapper class to handle the DCS Unit objects that have the skillset defined as __Client__ or __Player__:
-- --
-- * Wraps the DCS Unit objects with skill level set to Player or Client. -- * Wraps the DCS Unit objects with skill level set to Player or Client.
-- * Support all DCS Unit APIs. -- * Support all DCS Unit APIs.
@ -15,8 +15,8 @@
-- --
-- Clients are being used by the @{MISSION} class to follow players and register their successes. -- Clients are being used by the @{MISSION} class to follow players and register their successes.
-- --
-- CLIENT reference methods -- 1.1) CLIENT reference methods
-- ======================= -- -----------------------------
-- For each DCS Unit having skill level Player or Client, a CLIENT wrapper object (instance) will be created within the _@{DATABASE} object. -- For each DCS Unit having skill level Player or Client, a CLIENT wrapper object (instance) will be created within the _@{DATABASE} object.
-- This is done at the beginning of the mission (when the mission starts). -- This is done at the beginning of the mission (when the mission starts).
-- --

View File

@ -36,9 +36,11 @@ Include.File( "Routines" )
Include.File( "Base" ) Include.File( "Base" )
Include.File( "Menu" ) Include.File( "Menu" )
Include.File( "Group" ) Include.File( "Group" )
Include.File( "Static" )
Include.File( "Unit" ) Include.File( "Unit" )
Include.File( "Event" ) Include.File( "Event" )
Include.File( "Client" ) Include.File( "Client" )
Include.File( "Scheduler" )
--- DATABASE class --- DATABASE class
@ -54,7 +56,9 @@ DATABASE = {
}, },
DCSUnits = {}, DCSUnits = {},
DCSGroups = {}, DCSGroups = {},
DCSStatics = {},
UNITS = {}, UNITS = {},
STATICS = {},
GROUPS = {}, GROUPS = {},
PLAYERS = {}, PLAYERS = {},
PLAYERSALIVE = {}, PLAYERSALIVE = {},
@ -100,7 +104,8 @@ function DATABASE:New()
_EVENTDISPATCHER:OnPlayerLeaveUnit( self._EventOnPlayerLeaveUnit, self ) _EVENTDISPATCHER:OnPlayerLeaveUnit( self._EventOnPlayerLeaveUnit, self )
self:_RegisterTemplates() self:_RegisterTemplates()
self:_RegisterDatabase() self:_RegisterGroupsAndUnits()
self:_RegisterStatics()
self:_RegisterPlayers() self:_RegisterPlayers()
return self return self
@ -133,6 +138,32 @@ function DATABASE:DeleteUnit( DCSUnitName )
self.DCSUnits[DCSUnitName] = nil self.DCSUnits[DCSUnitName] = nil
end end
--- Adds a Static based on the Static Name in the DATABASE.
-- @param #DATABASE self
function DATABASE:AddStatic( DCSStatic, DCSStaticName )
self.DCSStatics[DCSStaticName] = DCSStatic
self.STATICS[DCSStaticName] = STATIC:Register( DCSStaticName )
end
--- Deletes a Static from the DATABASE based on the Static Name.
-- @param #DATABASE self
function DATABASE:DeleteStatic( DCSStaticName )
self.DCSStatics[DCSStaticName] = nil
end
--- Finds a STATIC based on the StaticName.
-- @param #DATABASE self
-- @param #string StaticName
-- @return Static#STATIC The found STATIC.
function DATABASE:FindStatic( StaticName )
local StaticFound = self.STATICS[StaticName]
return StaticFound
end
--- Finds a CLIENT based on the ClientName. --- Finds a CLIENT based on the ClientName.
-- @param #DATABASE self -- @param #DATABASE self
@ -220,6 +251,8 @@ function DATABASE:Spawn( SpawnTemplate )
SpawnTemplate.SpawnCategoryID = nil SpawnTemplate.SpawnCategoryID = nil
self:_RegisterTemplate( SpawnTemplate ) self:_RegisterTemplate( SpawnTemplate )
self:T3( SpawnTemplate )
coalition.addGroup( SpawnCountryID, SpawnCategoryID, SpawnTemplate ) coalition.addGroup( SpawnCountryID, SpawnCategoryID, SpawnTemplate )
-- Restore -- Restore
@ -227,7 +260,6 @@ function DATABASE:Spawn( SpawnTemplate )
SpawnTemplate.SpawnCountryID = SpawnCountryID SpawnTemplate.SpawnCountryID = SpawnCountryID
SpawnTemplate.SpawnCategoryID = SpawnCategoryID SpawnTemplate.SpawnCategoryID = SpawnCategoryID
local SpawnGroup = GROUP:Register( SpawnTemplate.name ) local SpawnGroup = GROUP:Register( SpawnTemplate.name )
return SpawnGroup return SpawnGroup
end end
@ -320,10 +352,10 @@ function DATABASE:_RegisterPlayers()
end end
--- Private method that registers all datapoints within in the mission. --- Private method that registers all Groups and Units within in the mission.
-- @param #DATABASE self -- @param #DATABASE self
-- @return #DATABASE self -- @return #DATABASE self
function DATABASE:_RegisterDatabase() function DATABASE:_RegisterGroupsAndUnits()
local CoalitionsData = { GroupsRed = coalition.getGroups( coalition.side.RED ), GroupsBlue = coalition.getGroups( coalition.side.BLUE ) } local CoalitionsData = { GroupsRed = coalition.getGroups( coalition.side.RED ), GroupsBlue = coalition.getGroups( coalition.side.BLUE ) }
for CoalitionId, CoalitionData in pairs( CoalitionsData ) do for CoalitionId, CoalitionData in pairs( CoalitionsData ) do
@ -356,6 +388,27 @@ function DATABASE:_RegisterDatabase()
return self return self
end end
function DATABASE:_RegisterStatics()
local CoalitionsData = { GroupsRed = coalition.getStaticObjects( coalition.side.RED ), GroupsBlue = coalition.getStaticObjects( coalition.side.BLUE ) }
for CoalitionId, CoalitionData in pairs( CoalitionsData ) do
for DCSStaticId, DCSStatic in pairs( CoalitionData ) do
if DCSStatic:isExist() then
local DCSStaticName = DCSStatic:getName()
self:E( { "Register Static:", DCSStatic, DCSStaticName } )
self:AddStatic( DCSStatic, DCSStaticName )
else
self:E( { "Static does not exist: ", DCSStatic } )
end
end
end
return self
end
--- Events --- Events
--- Handles the OnBirth event for the alive units set. --- Handles the OnBirth event for the alive units set.

View File

@ -1,17 +1,18 @@
--- GROUP class. --- This module contains the GROUP class.
-- --
-- @{GROUP} class -- 1) @{Group#GROUP} class, extends @{Base#BASE}
-- ============== -- =============================================
-- The @{GROUP} class is a wrapper class to handle the DCS Group objects: -- The @{Group#GROUP} class is a wrapper class to handle the DCS Group objects:
-- --
-- * Support all DCS Group APIs. -- * Support all DCS Group APIs.
-- * Enhance with Group specific APIs not in the DCS Group API set. -- * Enhance with Group specific APIs not in the DCS Group API set.
-- * Handle local Group Controller. -- * Handle local Group Controller.
-- * Manage the "state" of the DCS Group. -- * Manage the "state" of the DCS Group.
-- --
-- **IMPORTANT: ONE SHOULD NEVER SANATIZE these GROUP OBJECT REFERENCES! (make the GROUP object references nil).**
-- --
-- GROUP reference methods -- 1.1) GROUP reference methods
-- ======================= -- -----------------------
-- For each DCS Group object alive within a running mission, a GROUP wrapper object (instance) will be created within the _@{DATABASE} object. -- For each DCS Group object alive within a running mission, a GROUP wrapper object (instance) will be created within the _@{DATABASE} object.
-- This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Group objects are spawned (using the @{SPAWN} class). -- This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Group objects are spawned (using the @{SPAWN} class).
-- --
@ -27,7 +28,121 @@
-- * @{#GROUP.Find}(): Find a GROUP instance from the _DATABASE object using a DCS Group object. -- * @{#GROUP.Find}(): Find a GROUP instance from the _DATABASE object using a DCS Group object.
-- * @{#GROUP.FindByName}(): Find a GROUP instance from the _DATABASE object using a DCS Group name. -- * @{#GROUP.FindByName}(): Find a GROUP instance from the _DATABASE object using a DCS Group name.
-- --
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these GROUP OBJECT REFERENCES! (make the GROUP object references nil). -- 1.2) GROUP task methods
-- -----------------------
-- Several group task methods are available that help you to prepare tasks.
-- These methods return a string consisting of the task description, which can then be given to either a @{Group#GROUP.PushTask} or @{Group#SetTask} method to assign the task to the GROUP.
-- Tasks are specific for the category of the GROUP, more specific, for AIR, GROUND or AIR and GROUND.
-- Each task description where applicable indicates for which group category the task is valid.
-- There are 2 main subdivisions of tasks: Assigned tasks and EnRoute tasks.
--
-- ### 1.2.1) Assigned task methods
--
-- Assigned task methods make the group execute the task where the location of the (possible) targets of the task are known before being detected.
-- This is different from the EnRoute tasks, where the targets of the task need to be detected before the task can be executed.
--
-- Find below a list of the **assigned task** methods:
--
-- * @{#GROUP.TaskAttackGroup}: (AIR) Attack a Group.
-- * @{#GROUP.TaskAttackMapObject}: (AIR) Attacking the map object (building, structure, e.t.c).
-- * @{#GROUP.TaskAttackUnit}: (AIR) Attack the Unit.
-- * @{#GROUP.TaskBombing}: (AIR) Delivering weapon at the point on the ground.
-- * @{#GROUP.TaskBombingRunway}: (AIR) Delivering weapon on the runway.
-- * @{#GROUP.TaskEmbarking}: (AIR) Move the group to a Vec2 Point, wait for a defined duration and embark a group.
-- * @{#GROUP.TaskEmbarkToTransport}: (GROUND) Embark to a Transport landed at a location.
-- * @{#GROUP.TaskEscort}: (AIR) Escort another airborne group.
-- * @{#GROUP.TaskFAC_AttackGroup}: (AIR + GROUND) The task makes the group/unit a FAC and orders the FAC to control the target (enemy ground group) destruction.
-- * @{#GROUP.TaskFireAtPoint}: (GROUND) Fire at a VEC2 point until ammunition is finished.
-- * @{#GROUP.TaskFollow}: (AIR) Following another airborne group.
-- * @{#GROUP.TaskHold}: (GROUND) Hold ground group from moving.
-- * @{#GROUP.TaskHoldPosition}: (AIR) Hold position at the current position of the first unit of the group.
-- * @{#GROUP.TaskLand}: (AIR HELICOPTER) Landing at the ground. For helicopters only.
-- * @{#GROUP.TaskLandAtZone}: (AIR) Land the group at a @{Zone#ZONE_RADIUS).
-- * @{#GROUP.TaskOrbitCircle}: (AIR) Orbit at the current position of the first unit of the group at a specified alititude.
-- * @{#GROUP.TaskOrbitCircleAtVec2}: (AIR) Orbit at a specified position at a specified alititude during a specified duration with a specified speed.
-- * @{#GROUP.TaskRefueling}: (AIR) Refueling from the nearest tanker. No parameters.
-- * @{#GROUP.TaskRoute}: (AIR + GROUND) Return a Misson task to follow a given route defined by Points.
-- * @{#GROUP.TaskRouteToVec2}: (AIR + GROUND) Make the Group move to a given point.
-- * @{#GROUP.TaskRouteToVec3}: (AIR + GROUND) Make the Group move to a given point.
-- * @{#GROUP.TaskRouteToZone}: (AIR + GROUND) Route the group to a given zone.
--
-- ### 1.2.2) EnRoute task methods
--
-- EnRoute tasks require the targets of the task need to be detected by the group (using its sensors) before the task can be executed:
--
-- * @{#GROUP.EnRouteTaskAWACS}: (AIR) Aircraft will act as an AWACS for friendly units (will provide them with information about contacts). No parameters.
-- * @{#GROUP.EnRouteTaskEngageGroup}: (AIR) Engaging a group. The task does not assign the target group to the unit/group to attack now; it just allows the unit/group to engage the target group as well as other assigned targets.
-- * @{#GROUP.EnRouteTaskEngageTargets}: (AIR) Engaging targets of defined types.
-- * @{#GROUP.EnRouteTaskEWR}: (AIR) Attack the Unit.
-- * @{#GROUP.EnRouteTaskFAC}: (AIR + GROUND) The task makes the group/unit a FAC and lets the FAC to choose a targets (enemy ground group) around as well as other assigned targets.
-- * @{#GROUP.EnRouteTaskFAC_EngageGroup}: (AIR + GROUND) The task makes the group/unit a FAC and lets the FAC to choose the target (enemy ground group) as well as other assigned targets.
-- * @{#GROUP.EnRouteTaskTanker}: (AIR) Aircraft will act as a tanker for friendly units. No parameters.
--
-- ### 1.2.3) Preparation task methods
--
-- There are certain task methods that allow to tailor the task behaviour:
--
-- * @{#GROUP.TaskWrappedAction}: Return a WrappedAction Task taking a Command.
-- * @{#GROUP.TaskCombo}: Return a Combo Task taking an array of Tasks.
-- * @{#GROUP.TaskCondition}: Return a condition section for a controlled task.
-- * @{#GROUP.TaskControlled}: Return a Controlled Task taking a Task and a TaskCondition.
--
-- ### 1.2.4) Obtain the mission from group templates
--
-- Group templates contain complete mission descriptions. Sometimes you want to copy a complete mission from a group and assign it to another:
--
-- * @{#GROUP.TaskMission}: (AIR + GROUND) Return a mission task from a mission template.
--
-- 1.3) GROUP Command methods
-- --------------------------
-- Group **command methods** prepare the execution of commands using the @{#GROUP.SetCommand} method:
--
-- * @{#GROUP.CommandDoScript}: Do Script command.
-- * @{#GROUP.CommandSwitchWayPoint}: Perform a switch waypoint command.
--
-- 1.4) GROUP Option methods
-- -------------------------
-- Group **Option methods** change the behaviour of the Group while being alive.
--
-- ### 1.4.1) Rule of Engagement:
--
-- * @{#GROUP.OptionROEWeaponFree}
-- * @{#GROUP.OptionROEOpenFire}
-- * @{#GROUP.OptionROEReturnFire}
-- * @{#GROUP.OptionROEEvadeFire}
--
-- To check whether an ROE option is valid for a specific group, use:
--
-- * @{#GROUP.OptionROEWeaponFreePossible}
-- * @{#GROUP.OptionROEOpenFirePossible}
-- * @{#GROUP.OptionROEReturnFirePossible}
-- * @{#GROUP.OptionROEEvadeFirePossible}
--
-- ### 1.4.2) Rule on thread:
--
-- * @{#GROUP.OptionROTNoReaction}
-- * @{#GROUP.OptionROTPassiveDefense}
-- * @{#GROUP.OptionROTEvadeFire}
-- * @{#GROUP.OptionROTVertical}
--
-- To test whether an ROT option is valid for a specific group, use:
--
-- * @{#GROUP.OptionROTNoReactionPossible}
-- * @{#GROUP.OptionROTPassiveDefensePossible}
-- * @{#GROUP.OptionROTEvadeFirePossible}
-- * @{#GROUP.OptionROTVerticalPossible}
--
-- 1.5) GROUP Zone validation methods
-- ----------------------------------
-- The group can be validated whether it is completely, partly or not within a @{Zone}.
-- Use the following Zone validation methods on the group:
--
-- * @{#GROUP.IsCompletelyInZone}: Returns true if all units of the group are within a @{Zone}.
-- * @{#GROUP.IsPartlyInZone}: Returns true if some units of the group are within a @{Zone}.
-- * @{#GROUP.IsNotInZone}: Returns true if none of the group units of the group are within a @{Zone}.
--
-- The zone can be of any @{Zone} class derived from @{Zone#ZONE_BASE}. So, these methods are polymorphic to the zones tested on.
--
-- @module Group -- @module Group
-- @author FlightControl -- @author FlightControl
@ -524,7 +639,59 @@ end
-- Is Functions -- Is Zone Functions
--- Returns true if all units of the group are within a @{Zone}.
-- @param #GROUP self
-- @param Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the Group is completely within the @{Zone#ZONE_BASE}
function GROUP:IsCompletelyInZone( Zone )
self:F2( { self.GroupName, Zone } )
for UnitID, UnitData in pairs( self:GetUnits() ) do
local Unit = UnitData -- Unit#UNIT
if Zone:IsPointVec3InZone( Unit:GetPointVec3() ) then
else
return false
end
end
return true
end
--- Returns true if some units of the group are within a @{Zone}.
-- @param #GROUP self
-- @param Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the Group is completely within the @{Zone#ZONE_BASE}
function GROUP:IsPartlyInZone( Zone )
self:F2( { self.GroupName, Zone } )
for UnitID, UnitData in pairs( self:GetUnits() ) do
local Unit = UnitData -- Unit#UNIT
if Zone:IsPointVec3InZone( Unit:GetPointVec3() ) then
return true
end
end
return false
end
--- Returns true if none of the group units of the group are within a @{Zone}.
-- @param #GROUP self
-- @param Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the Group is completely within the @{Zone#ZONE_BASE}
function GROUP:IsNotInZone( Zone )
self:F2( { self.GroupName, Zone } )
for UnitID, UnitData in pairs( self:GetUnits() ) do
local Unit = UnitData -- Unit#UNIT
if Zone:IsPointVec3InZone( Unit:GetPointVec3() ) then
return false
end
end
return true
end
--- Returns if the group is of an air category. --- Returns if the group is of an air category.
-- If the group is a helicopter or a plane, then this method will return true, otherwise false. -- If the group is a helicopter or a plane, then this method will return true, otherwise false.
@ -759,7 +926,7 @@ function GROUP:SetTask( DCSTask, WaitTime )
end end
--- Return a condition section for a controlled task --- Return a condition section for a controlled task.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTime#Time time -- @param DCSTime#Time time
-- @param #string userFlag -- @param #string userFlag
@ -783,7 +950,7 @@ function GROUP:TaskCondition( time, userFlag, userFlagValue, condition, duration
return DCSStopCondition return DCSStopCondition
end end
--- Return a Controlled Task taking a Task and a TaskCondition --- Return a Controlled Task taking a Task and a TaskCondition.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTask#Task DCSTask -- @param DCSTask#Task DCSTask
-- @param #DCSStopCondition DCSStopCondition -- @param #DCSStopCondition DCSStopCondition
@ -805,7 +972,7 @@ function GROUP:TaskControlled( DCSTask, DCSStopCondition )
return DCSTaskControlled return DCSTaskControlled
end end
--- Return a Combo Task taking an array of Tasks --- Return a Combo Task taking an array of Tasks.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTask#TaskArray DCSTasks Array of @{DCSTask#Task} -- @param DCSTask#TaskArray DCSTasks Array of @{DCSTask#Task}
-- @return DCSTask#Task -- @return DCSTask#Task
@ -825,7 +992,7 @@ function GROUP:TaskCombo( DCSTasks )
return DCSTaskCombo return DCSTaskCombo
end end
--- Return a WrappedAction Task taking a Command --- Return a WrappedAction Task taking a Command.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSCommand#Command DCSCommand -- @param DCSCommand#Command DCSCommand
-- @return DCSTask#Task -- @return DCSTask#Task
@ -1077,7 +1244,7 @@ function GROUP:TaskOrbitCircleAtVec2( Point, Altitude, Speed )
return DCSTask return DCSTask
end end
--- (AIR) Orbit at the current position of the first unit of the group at a specified alititude --- (AIR) Orbit at the current position of the first unit of the group at a specified alititude.
-- @param #GROUP self -- @param #GROUP self
-- @param #number Altitude The altitude to hold the position. -- @param #number Altitude The altitude to hold the position.
-- @param #number Speed The speed flying when holding the position. -- @param #number Speed The speed flying when holding the position.
@ -1253,7 +1420,7 @@ function GROUP:TaskLandAtVec2( Point, Duration )
return DCSTask return DCSTask
end end
--- (AIR) Land the group at a @{Zone#ZONE). --- (AIR) Land the group at a @{Zone#ZONE_RADIUS).
-- @param #GROUP self -- @param #GROUP self
-- @param Zone#ZONE Zone The zone where to land. -- @param Zone#ZONE Zone The zone where to land.
-- @param #number Duration The duration in seconds to stay on the ground. -- @param #number Duration The duration in seconds to stay on the ground.
@ -1274,6 +1441,8 @@ function GROUP:TaskLandAtZone( Zone, Duration, RandomPoint )
return DCSTask return DCSTask
end end
--- (AIR) Following another airborne group. --- (AIR) Following another airborne group.
-- The unit / group will follow lead unit of another group, wingmens of both groups will continue following their leaders. -- The unit / group will follow lead unit of another group, wingmens of both groups will continue following their leaders.
-- If another group is on land the unit / group will orbit around. -- If another group is on land the unit / group will orbit around.
@ -1414,6 +1583,7 @@ function GROUP:TaskHold()
return DCSTask return DCSTask
end end
-- TASKS FOR AIRBORNE AND GROUND UNITS/GROUPS -- TASKS FOR AIRBORNE AND GROUND UNITS/GROUPS
--- (AIR + GROUND) The task makes the group/unit a FAC and orders the FAC to control the target (enemy ground group) destruction. --- (AIR + GROUND) The task makes the group/unit a FAC and orders the FAC to control the target (enemy ground group) destruction.
@ -1486,6 +1656,7 @@ function GROUP:EnRouteTaskEngageTargets( Distance, TargetTypes, Priority )
end end
--- (AIR) Engaging a targets of defined types at circle-shaped zone. --- (AIR) Engaging a targets of defined types at circle-shaped zone.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTypes#Vec2 PointVec2 2D-coordinates of the zone. -- @param DCSTypes#Vec2 PointVec2 2D-coordinates of the zone.
@ -1520,6 +1691,7 @@ function GROUP:EnRouteTaskEngageTargets( PointVec2, Radius, TargetTypes, Priorit
return DCSTask return DCSTask
end end
--- (AIR) Engaging a group. The task does not assign the target group to the unit/group to attack now; it just allows the unit/group to engage the target group as well as other assigned targets. --- (AIR) Engaging a group. The task does not assign the target group to the unit/group to attack now; it just allows the unit/group to engage the target group as well as other assigned targets.
-- @param #GROUP self -- @param #GROUP self
-- @param Group#GROUP AttackGroup The Group to be attacked. -- @param Group#GROUP AttackGroup The Group to be attacked.
@ -1628,6 +1800,7 @@ function GROUP:EnRouteTaskEngageUnit( AttackUnit, Priority, WeaponType, WeaponEx
end end
--- (AIR) Aircraft will act as an AWACS for friendly units (will provide them with information about contacts). No parameters. --- (AIR) Aircraft will act as an AWACS for friendly units (will provide them with information about contacts). No parameters.
-- @param #GROUP self -- @param #GROUP self
-- @return DCSTask#Task The DCS task structure. -- @return DCSTask#Task The DCS task structure.
@ -1774,13 +1947,13 @@ end
--- Move the group to a Vec2 Point, wait for a defined duration and embark a group. --- (AIR) Move the group to a Vec2 Point, wait for a defined duration and embark a group.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTypes#Vec2 Point The point where to wait. -- @param DCSTypes#Vec2 Point The point where to wait.
-- @param #number Duration The duration in seconds to wait. -- @param #number Duration The duration in seconds to wait.
-- @param #GROUP EmbarkingGroup The group to be embarked. -- @param #GROUP EmbarkingGroup The group to be embarked.
-- @return DCSTask#Task The DCS task structure -- @return DCSTask#Task The DCS task structure
function GROUP:TaskEmbarkingAtVec2( Point, Duration, EmbarkingGroup ) function GROUP:TaskEmbarking( Point, Duration, EmbarkingGroup )
self:F2( { self.GroupName, Point, Duration, EmbarkingGroup.DCSGroup } ) self:F2( { self.GroupName, Point, Duration, EmbarkingGroup.DCSGroup } )
local DCSTask local DCSTask
@ -1799,12 +1972,14 @@ function GROUP:TaskEmbarkingAtVec2( Point, Duration, EmbarkingGroup )
return DCSTask return DCSTask
end end
--- (GROUND) Embark to a Transport landed at a location.
--- Move to a defined Vec2 Point, and embark to a group when arrived within a defined Radius. --- Move to a defined Vec2 Point, and embark to a group when arrived within a defined Radius.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTypes#Vec2 Point The point where to wait. -- @param DCSTypes#Vec2 Point The point where to wait.
-- @param #number Radius The radius of the embarking zone around the Point. -- @param #number Radius The radius of the embarking zone around the Point.
-- @return DCSTask#Task The DCS task structure. -- @return DCSTask#Task The DCS task structure.
function GROUP:TaskEmbarkToTransportAtVec2( Point, Radius ) function GROUP:TaskEmbarkToTransport( Point, Radius )
self:F2( { self.GroupName, Point, Radius } ) self:F2( { self.GroupName, Point, Radius } )
local DCSTask --DCSTask#Task local DCSTask --DCSTask#Task
@ -1819,7 +1994,9 @@ function GROUP:TaskEmbarkToTransportAtVec2( Point, Radius )
return DCSTask return DCSTask
end end
--- Return a Misson task from a mission template.
--- (AIR + GROUND) Return a mission task from a mission template.
-- @param #GROUP self -- @param #GROUP self
-- @param #table TaskMission A table containing the mission task. -- @param #table TaskMission A table containing the mission task.
-- @return DCSTask#Task -- @return DCSTask#Task
@ -1847,7 +2024,7 @@ function GROUP:TaskRoute( Points )
return DCSTask return DCSTask
end end
--- Make the DCS Group to fly to a given point and hover. --- (AIR + GROUND) Make the Group move to fly to a given point.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTypes#Vec3 Point The destination point in Vec3 format. -- @param DCSTypes#Vec3 Point The destination point in Vec3 format.
-- @param #number Speed The speed to travel. -- @param #number Speed The speed to travel.
@ -1898,7 +2075,7 @@ function GROUP:TaskRouteToVec2( Point, Speed )
return self return self
end end
--- Make the DCS Group to fly to a given point and hover. --- (AIR + GROUND) Make the Group move to a given point.
-- @param #GROUP self -- @param #GROUP self
-- @param DCSTypes#Vec3 Point The destination point in Vec3 format. -- @param DCSTypes#Vec3 Point The destination point in Vec3 format.
-- @param #number Speed The speed to travel. -- @param #number Speed The speed to travel.
@ -1979,7 +2156,7 @@ end
--- Route the group to a given zone. --- (AIR + GROUND) Route the group to a given zone.
-- The group final destination point can be randomized. -- The group final destination point can be randomized.
-- A speed can be given in km/h. -- A speed can be given in km/h.
-- A given formation can be given. -- A given formation can be given.
@ -2488,7 +2665,7 @@ end
--- Returns a message for a coalition or a client. --- Returns a message for a coalition or a client.
-- @param #GROUP self -- @param #GROUP self
-- @param #string Message The message text -- @param #string Message The message text
-- @param #Duration Duration The duration of the message. -- @param DCSTypes#Duration Duration The duration of the message.
-- @return Message#MESSAGE -- @return Message#MESSAGE
function GROUP:Message( Message, Duration ) function GROUP:Message( Message, Duration )
self:F2( { Message, Duration } ) self:F2( { Message, Duration } )
@ -2505,7 +2682,7 @@ end
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message. -- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #GROUP self -- @param #GROUP self
-- @param #string Message The message text -- @param #string Message The message text
-- @param #Duration Duration The duration of the message. -- @param DCSTypes#Duration Duration The duration of the message.
function GROUP:MessageToAll( Message, Duration ) function GROUP:MessageToAll( Message, Duration )
self:F2( { Message, Duration } ) self:F2( { Message, Duration } )
@ -2521,7 +2698,7 @@ end
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message. -- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #GROUP self -- @param #GROUP self
-- @param #string Message The message text -- @param #string Message The message text
-- @param #Duration Duration The duration of the message. -- @param DCSTYpes#Duration Duration The duration of the message.
function GROUP:MessageToRed( Message, Duration ) function GROUP:MessageToRed( Message, Duration )
self:F2( { Message, Duration } ) self:F2( { Message, Duration } )
@ -2537,7 +2714,7 @@ end
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message. -- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #GROUP self -- @param #GROUP self
-- @param #string Message The message text -- @param #string Message The message text
-- @param #Duration Duration The duration of the message. -- @param DCSTypes#Duration Duration The duration of the message.
function GROUP:MessageToBlue( Message, Duration ) function GROUP:MessageToBlue( Message, Duration )
self:F2( { Message, Duration } ) self:F2( { Message, Duration } )
@ -2553,7 +2730,7 @@ end
-- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message. -- The message will appear in the message area. The message will begin with the callsign of the group and the type of the first unit sending the message.
-- @param #GROUP self -- @param #GROUP self
-- @param #string Message The message text -- @param #string Message The message text
-- @param #Duration Duration The duration of the message. -- @param DCSTypes#Duration Duration The duration of the message.
-- @param Client#CLIENT Client The client object receiving the message. -- @param Client#CLIENT Client The client object receiving the message.
function GROUP:MessageToClient( Message, Duration, Client ) function GROUP:MessageToClient( Message, Duration, Client )
self:F2( { Message, Duration } ) self:F2( { Message, Duration } )

View File

@ -0,0 +1,195 @@
--- This module contains the POINT classes.
--
-- 1) @{Point#POINT_VEC3} class, extends @{Base#BASE}
-- ===============================================
-- The @{Point#POINT_VEC3} class defines a 3D point in the simulator.
--
-- 1.1) POINT_VEC3 constructor
-- ---------------------------
--
-- A new POINT instance can be created with:
--
-- * @{#POINT_VEC3.New}(): a 3D point.
--
-- 2) @{Point#POINT_VEC2} class, extends @{Point#POINT_VEC3}
-- =========================================================
-- The @{Point#POINT_VEC2} class defines a 2D point in the simulator. The height coordinate (if needed) will be the land height + an optional added height specified.
--
-- 2.1) POINT_VEC2 constructor
-- ---------------------------
--
-- A new POINT instance can be created with:
--
-- * @{#POINT_VEC2.New}(): a 2D point.
--
-- @module Point
-- @author FlightControl
Include.File( "Routines" )
Include.File( "Base" )
Include.File( "Point" )
--- The POINT_VEC3 class
-- @type POINT_VEC3
-- @extends Base#BASE
-- @field #POINT_VEC3.SmokeColor SmokeColor
-- @field #POINT_VEC3.FlareColor FlareColor
POINT_VEC3 = {
ClassName = "POINT_VEC3",
SmokeColor = {
Green = trigger.smokeColor.Green,
Red = trigger.smokeColor.Red,
White = trigger.smokeColor.White,
Orange = trigger.smokeColor.Orange,
Blue = trigger.smokeColor.Blue
},
FlareColor = {
Green = trigger.flareColor.Green,
Red = trigger.flareColor.Red,
White = trigger.flareColor.White,
Yellow = trigger.flareColor.Yellow
},
}
--- SmokeColor
-- @type POINT_VEC3.SmokeColor
-- @field Green
-- @field Red
-- @field White
-- @field Orange
-- @field Blue
--- FlareColor
-- @type POINT_VEC3.FlareColor
-- @field Green
-- @field Red
-- @field White
-- @field Yellow
-- Constructor.
--- Create a new POINT_VEC3 object.
-- @param #POINT_VEC3 self
-- @param DCSTypes#Distance x The x coordinate of the Vec3 point, pointing to the North.
-- @param DCSTypes#Distance y The y coordinate of the Vec3 point, pointing Upwards.
-- @param DCSTypes#Distance z The z coordinate of the Vec3 point, pointing to the Right.
-- @return Point#POINT_VEC3
function POINT_VEC3:New( x, y, z )
local self = BASE:Inherit( self, BASE:New() )
self:F2( { x, y, z } )
self.PointVec3 = { x = x, y = y, z = z }
return self
end
--- Smokes the point in a color.
-- @param #POINT_VEC3 self
-- @param Point#POINT_VEC3.SmokeColor SmokeColor
function POINT_VEC3:Smoke( SmokeColor )
self:F2( { SmokeColor, self.PointVec3 } )
trigger.action.smoke( self.PointVec3, SmokeColor )
end
--- Smoke the POINT_VEC3 Green.
-- @param #POINT_VEC3 self
function POINT_VEC3:SmokeGreen()
self:F2()
self:Smoke( POINT_VEC3.SmokeColor.Green )
end
--- Smoke the POINT_VEC3 Red.
-- @param #POINT_VEC3 self
function POINT_VEC3:SmokeRed()
self:F2()
self:Smoke( POINT_VEC3.SmokeColor.Red )
end
--- Smoke the POINT_VEC3 White.
-- @param #POINT_VEC3 self
function POINT_VEC3:SmokeWhite()
self:F2()
self:Smoke( POINT_VEC3.SmokeColor.White )
end
--- Smoke the POINT_VEC3 Orange.
-- @param #POINT_VEC3 self
function POINT_VEC3:SmokeOrange()
self:F2()
self:Smoke( POINT_VEC3.SmokeColor.Orange )
end
--- Smoke the POINT_VEC3 Blue.
-- @param #POINT_VEC3 self
function POINT_VEC3:SmokeBlue()
self:F2()
self:Smoke( POINT_VEC3.SmokeColor.Blue )
end
--- Flares the point in a color.
-- @param #POINT_VEC3 self
-- @param Point#POINT_VEC3.FlareColor
-- @param DCSTypes#Azimuth (optional) Azimuth The azimuth of the flare direction. The default azimuth is 0.
function POINT_VEC3:Flare( FlareColor, Azimuth )
self:F2( { FlareColor, self.PointVec3 } )
trigger.action.signalFlare( self.PointVec3, FlareColor, Azimuth and Azimuth or 0 )
end
--- Flare the POINT_VEC3 White.
-- @param #POINT_VEC3 self
-- @param DCSTypes#Azimuth (optional) Azimuth The azimuth of the flare direction. The default azimuth is 0.
function POINT_VEC3:FlareWhite( Azimuth )
self:F2( Azimuth )
self:Flare( POINT_VEC3.FlareColor.White, Azimuth )
end
--- Flare the POINT_VEC3 Yellow.
-- @param #POINT_VEC3 self
-- @param DCSTypes#Azimuth (optional) Azimuth The azimuth of the flare direction. The default azimuth is 0.
function POINT_VEC3:FlareYellow( Azimuth )
self:F2( Azimuth )
self:Flare( POINT_VEC3.FlareColor.Yellow, Azimuth )
end
--- Flare the POINT_VEC3 Green.
-- @param #POINT_VEC3 self
-- @param DCSTypes#Azimuth (optional) Azimuth The azimuth of the flare direction. The default azimuth is 0.
function POINT_VEC3:FlareGreen( Azimuth )
self:F2( Azimuth )
self:Flare( POINT_VEC3.FlareColor.Green, Azimuth )
end
--- Flare the POINT_VEC3 Red.
-- @param #POINT_VEC3 self
function POINT_VEC3:FlareRed( Azimuth )
self:F2( Azimuth )
self:Flare( POINT_VEC3.FlareColor.Red, Azimuth )
end
--- The POINT_VEC2 class
-- @type POINT_VEC2
-- @extends Point#POINT_VEC3
POINT_VEC2 = {
ClassName = "POINT_VEC2",
}
--- Create a new POINT_VEC2 object.
-- @param #POINT_VEC2 self
-- @param DCSTypes#Distance x The x coordinate of the Vec3 point, pointing to the North.
-- @param DCSTypes#Distance y The y coordinate of the Vec3 point, pointing to the Right.
-- @param DCSTypes#Distance LandHeightAdd (optional) The default height if required to be evaluated will be the land height of the x, y coordinate. You can specify an extra height to be added to the land height.
-- @return Point#POINT_VEC2
function POINT_VEC2:New( x, y, LandHeightAdd )
local LandHeight = land.getHeight( { ["x"] = x, ["y"] = y } )
if LandHeightAdd then
LandHeight = LandHeight + LandHeightAdd
end
local self = BASE:Inherit( self, POINT_VEC3:New( x, LandHeight, y ) )
self:F2( { x, y, LandHeightAdd } )
return self
end

View File

@ -121,7 +121,7 @@ function SCHEDULER:_Scheduler()
self:T( { Status, Result } ) self:T( { Status, Result } )
if Status and Status == true and Result and Result == true then if Status and ( ( not Result ) or ( Result and Result ~= false ) ) then
if self.Repeat and ( not self.StopSeconds or ( self.StopSeconds and timer.getTime() <= self.StartTime + self.StopSeconds ) ) then if self.Repeat and ( not self.StopSeconds or ( self.StopSeconds and timer.getTime() <= self.StartTime + self.StopSeconds ) ) then
timer.scheduleFunction( timer.scheduleFunction(
self._Scheduler, self._Scheduler,

View File

@ -1,7 +1,7 @@
--- Dynamic spawning of groups (and units). --- This module contains the SPAWN class.
-- --
-- @{#SPAWN} class -- 1) @{Spawn#SPAWN} class, extends @{Base#BASE}
-- =============== -- =============================================
-- The @{#SPAWN} class allows to spawn dynamically new groups, based on pre-defined initialization settings, modifying the behaviour when groups are spawned. -- The @{#SPAWN} class allows to spawn dynamically new groups, based on pre-defined initialization settings, modifying the behaviour when groups are spawned.
-- For each group to be spawned, within the mission editor, a group has to be created with the "late activation flag" set. We call this group the *"Spawn Template"* of the SPAWN object. -- For each group to be spawned, within the mission editor, a group has to be created with the "late activation flag" set. We call this group the *"Spawn Template"* of the SPAWN object.
-- A reference to this Spawn Template needs to be provided when constructing the SPAWN object, by indicating the name of the group within the mission editor in the constructor methods. -- A reference to this Spawn Template needs to be provided when constructing the SPAWN object, by indicating the name of the group within the mission editor in the constructor methods.
@ -24,8 +24,8 @@
-- * It is important to defined BEFORE you spawn new groups, a proper initialization of the SPAWN instance is done with the options you want to use. -- * It is important to defined BEFORE you spawn new groups, a proper initialization of the SPAWN instance is done with the options you want to use.
-- * When designing a mission, NEVER name groups using a "#" within the name of the group Spawn Template(s), or the SPAWN module logic won't work anymore. -- * When designing a mission, NEVER name groups using a "#" within the name of the group Spawn Template(s), or the SPAWN module logic won't work anymore.
-- --
-- SPAWN construction methods: -- 1.1) SPAWN construction methods
-- =========================== -- -------------------------------
-- Create a new SPAWN object with the @{#SPAWN.New} or the @{#SPAWN.NewWithAlias} methods: -- Create a new SPAWN object with the @{#SPAWN.New} or the @{#SPAWN.NewWithAlias} methods:
-- --
-- * @{#SPAWN.New}: Creates a new SPAWN object taking the name of the group that functions as the Template. -- * @{#SPAWN.New}: Creates a new SPAWN object taking the name of the group that functions as the Template.
@ -34,8 +34,8 @@
-- The initialization functions will modify this list of groups so that when a group gets spawned, ALL information is already prepared when spawning. This is done for performance reasons. -- The initialization functions will modify this list of groups so that when a group gets spawned, ALL information is already prepared when spawning. This is done for performance reasons.
-- So in principle, the group list will contain all parameters and configurations after initialization, and when groups get actually spawned, this spawning can be done quickly and efficient. -- So in principle, the group list will contain all parameters and configurations after initialization, and when groups get actually spawned, this spawning can be done quickly and efficient.
-- --
-- SPAWN initialization methods: -- 1.2) SPAWN initialization methods
-- ============================= -- ---------------------------------
-- A spawn object will behave differently based on the usage of initialization methods: -- A spawn object will behave differently based on the usage of initialization methods:
-- --
-- * @{#SPAWN.Limit}: Limits the amount of groups that can be alive at the same time and that can be dynamically spawned. -- * @{#SPAWN.Limit}: Limits the amount of groups that can be alive at the same time and that can be dynamically spawned.
@ -45,8 +45,8 @@
-- * @{#SPAWN.Array}: Make groups visible before they are actually activated, and order these groups like a batallion in an array. -- * @{#SPAWN.Array}: Make groups visible before they are actually activated, and order these groups like a batallion in an array.
-- * @{#SPAWN.InitRepeat}: Re-spawn groups when they land at the home base. Similar functions are @{#SPAWN.InitRepeatOnLanding} and @{#SPAWN.InitRepeatOnEngineShutDown}. -- * @{#SPAWN.InitRepeat}: Re-spawn groups when they land at the home base. Similar functions are @{#SPAWN.InitRepeatOnLanding} and @{#SPAWN.InitRepeatOnEngineShutDown}.
-- --
-- SPAWN spawning methods: -- 1.3) SPAWN spawning methods
-- ======================= -- ---------------------------
-- Groups can be spawned at different times and methods: -- Groups can be spawned at different times and methods:
-- --
-- * @{#SPAWN.Spawn}: Spawn one new group based on the last spawned index. -- * @{#SPAWN.Spawn}: Spawn one new group based on the last spawned index.
@ -58,8 +58,8 @@
-- Note that @{#SPAWN.Spawn} and @{#SPAWN.ReSpawn} return a @{GROUP#GROUP.New} object, that contains a reference to the DCSGroup object. -- Note that @{#SPAWN.Spawn} and @{#SPAWN.ReSpawn} return a @{GROUP#GROUP.New} object, that contains a reference to the DCSGroup object.
-- You can use the @{GROUP} object to do further actions with the DCSGroup. -- You can use the @{GROUP} object to do further actions with the DCSGroup.
-- --
-- SPAWN object cleaning: -- 1.4) SPAWN object cleaning
-- ========================= -- --------------------------
-- Sometimes, it will occur during a mission run-time, that ground or especially air objects get damaged, and will while being damged stop their activities, while remaining alive. -- Sometimes, it will occur during a mission run-time, that ground or especially air objects get damaged, and will while being damged stop their activities, while remaining alive.
-- In such cases, the SPAWN object will just sit there and wait until that group gets destroyed, but most of the time it won't, -- In such cases, the SPAWN object will just sit there and wait until that group gets destroyed, but most of the time it won't,
-- and it may occur that no new groups are or can be spawned as limits are reached. -- and it may occur that no new groups are or can be spawned as limits are reached.
@ -70,7 +70,7 @@
-- This models AI that has succesfully returned to their airbase, to restart their combat activities. -- This models AI that has succesfully returned to their airbase, to restart their combat activities.
-- Check the @{#SPAWN.CleanUp} for further info. -- Check the @{#SPAWN.CleanUp} for further info.
-- --
-- ==== --
-- @module Spawn -- @module Spawn
-- @author FlightControl -- @author FlightControl
@ -473,6 +473,12 @@ function SPAWN:SpawnWithIndex( SpawnIndex )
end end
self.SpawnGroups[self.SpawnIndex].Spawned = true self.SpawnGroups[self.SpawnIndex].Spawned = true
local SpawnGroup = self.SpawnGroups[self.SpawnIndex].Group -- Group#GROUP
local Route = SpawnGroup:GetTaskRoute()
SpawnGroup:Route(Route)
return self.SpawnGroups[self.SpawnIndex].Group return self.SpawnGroups[self.SpawnIndex].Group
else else
--self:E( { self.SpawnTemplatePrefix, "No more Groups to Spawn:", SpawnIndex, self.SpawnMaxGroups } ) --self:E( { self.SpawnTemplatePrefix, "No more Groups to Spawn:", SpawnIndex, self.SpawnMaxGroups } )
@ -980,11 +986,12 @@ function SPAWN:_Prepare( SpawnTemplatePrefix, SpawnIndex )
SpawnTemplate.name = self:SpawnGroupName( SpawnIndex ) SpawnTemplate.name = self:SpawnGroupName( SpawnIndex )
SpawnTemplate.groupId = nil SpawnTemplate.groupId = nil
SpawnTemplate.lateActivation = false --SpawnTemplate.lateActivation = false
SpawnTemplate.lateActivation = false -- TODO BUGFIX
if SpawnTemplate.SpawnCategoryID == Group.Category.GROUND then if SpawnTemplate.SpawnCategoryID == Group.Category.GROUND then
self:T( "For ground units, visible needs to be false..." ) self:T( "For ground units, visible needs to be false..." )
SpawnTemplate.visible = false SpawnTemplate.visible = false -- TODO BUGFIX
end end
if SpawnTemplate.SpawnCategoryID == Group.Category.HELICOPTER or SpawnTemplate.SpawnCategoryID == Group.Category.AIRPLANE then if SpawnTemplate.SpawnCategoryID == Group.Category.HELICOPTER or SpawnTemplate.SpawnCategoryID == Group.Category.AIRPLANE then
@ -1032,7 +1039,7 @@ end
-- @param #number SpawnIndex -- @param #number SpawnIndex
-- @return #SPAWN self -- @return #SPAWN self
function SPAWN:_RandomizeTemplate( SpawnIndex ) function SPAWN:_RandomizeTemplate( SpawnIndex )
self:F( { self.SpawnTemplatePrefix, SpawnIndex } ) self:F( { self.SpawnTemplatePrefix, SpawnIndex, self.SpawnRandomizeTemplate } )
if self.SpawnRandomizeTemplate then if self.SpawnRandomizeTemplate then
self.SpawnGroups[SpawnIndex].SpawnTemplatePrefix = self.SpawnTemplatePrefixTable[ math.random( 1, #self.SpawnTemplatePrefixTable ) ] self.SpawnGroups[SpawnIndex].SpawnTemplatePrefix = self.SpawnTemplatePrefixTable[ math.random( 1, #self.SpawnTemplatePrefixTable ) ]

View File

@ -0,0 +1,81 @@
--- This module contains the STATIC class.
--
-- 1) @{Static#STATIC} class, extends @{Unit#UNIT}
-- ===============================================
-- Statics are **Static Units** defined within the Mission Editor.
-- Note that Statics are almost the same as Units, but they don't have a controller.
-- The @{Static#STATIC} class is a wrapper class to handle the DCS Static objects:
--
-- * Wraps the DCS Static objects.
-- * Support all DCS Static APIs.
-- * Enhance with Static specific APIs not in the DCS API set.
--
-- 1.1) STATIC reference methods
-- -----------------------------
-- For each DCS Static will have a STATIC wrapper object (instance) within the _@{DATABASE} object.
-- This is done at the beginning of the mission (when the mission starts).
--
-- The STATIC class does not contain a :New() method, rather it provides :Find() methods to retrieve the object reference
-- using the Static Name.
--
-- Another thing to know is that STATIC objects do not "contain" the DCS Static object.
-- The STATIc methods will reference the DCS Static object by name when it is needed during API execution.
-- If the DCS Static object does not exist or is nil, the STATIC methods will return nil and log an exception in the DCS.log file.
--
-- The STATIc class provides the following functions to retrieve quickly the relevant STATIC instance:
--
-- * @{#STATIC.FindByName}(): Find a STATIC instance from the _DATABASE object using a DCS Static name.
--
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these STATIC OBJECT REFERENCES! (make the STATIC object references nil).
--
-- @module Static
-- @author FlightControl
Include.File( "Routines" )
Include.File( "Base" )
Include.File( "Message" )
--- The STATIC class
-- @type STATIC
-- @extends Unit#UNIT
STATIC = {
ClassName = "STATIC",
}
--- Finds a STATIC from the _DATABASE using the relevant Static Name.
-- As an optional parameter, a briefing text can be given also.
-- @param #STATIC self
-- @param #string StaticName Name of the DCS **Static** as defined within the Mission Editor.
-- @return #STATIC
function STATIC:FindByName( StaticName )
local StaticFound = _DATABASE:FindStatic( StaticName )
if StaticFound then
StaticFound:F( { StaticName } )
return StaticFound
end
error( "STATIC not found for: " .. StaticName )
end
function STATIC:Register( StaticName )
local self = BASE:Inherit( self, UNIT:Register( StaticName ) )
self:F( StaticName )
return self
end
function STATIC:GetDCSUnit()
local DCSStatic = StaticObject.getByName( self.UnitName )
if DCSStatic then
return DCSStatic
end
return nil
end

View File

@ -1,8 +1,8 @@
--- UNIT Class --- This module contains the UNIT class.
-- --
-- @{UNIT} class -- 1) @{Unit#UNIT} class, extends @{Base#BASE}
-- ============== -- ===========================================
-- The @{UNIT} class is a wrapper class to handle the DCS Unit objects: -- The @{Unit#UNIT} class is a wrapper class to handle the DCS Unit objects:
-- --
-- * Support all DCS Unit APIs. -- * Support all DCS Unit APIs.
-- * Enhance with Unit specific APIs not in the DCS Unit API set. -- * Enhance with Unit specific APIs not in the DCS Unit API set.
@ -10,8 +10,8 @@
-- * Manage the "state" of the DCS Unit. -- * Manage the "state" of the DCS Unit.
-- --
-- --
-- UNIT reference methods -- 1.1) UNIT reference methods
-- ====================== -- ----------------------
-- For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _@{DATABASE} object. -- For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _@{DATABASE} object.
-- This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Unit objects are spawned (using the @{SPAWN} class). -- This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Unit objects are spawned (using the @{SPAWN} class).
-- --
@ -29,19 +29,15 @@
-- --
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these UNIT OBJECT REFERENCES! (make the UNIT object references nil). -- IMPORTANT: ONE SHOULD NEVER SANATIZE these UNIT OBJECT REFERENCES! (make the UNIT object references nil).
-- --
-- DCS UNIT APIs -- 1.2) DCS UNIT APIs
-- ============= -- ------------------
-- The DCS Unit APIs are used extensively within MOOSE. The UNIT class has for each DCS Unit API a corresponding method. -- The DCS Unit APIs are used extensively within MOOSE. The UNIT class has for each DCS Unit API a corresponding method.
-- To be able to distinguish easily in your code the difference between a UNIT API call and a DCS Unit API call, -- To be able to distinguish easily in your code the difference between a UNIT API call and a DCS Unit API call,
-- the first letter of the method is also capitalized. So, by example, the DCS Unit method @{DCSUnit#Unit.getName}() -- the first letter of the method is also capitalized. So, by example, the DCS Unit method @{DCSUnit#Unit.getName}()
-- is implemented in the UNIT class as @{#UNIT.GetName}(). -- is implemented in the UNIT class as @{#UNIT.GetName}().
-- --
-- Additional UNIT APIs -- 1.3) Smoke, Flare Units
-- ==================== -- -----------------------
-- The UNIT class comes with additional methods. Find below a summary.
--
-- Smoke, Flare Units
-- ------------------
-- The UNIT class provides methods to smoke or flare units easily. -- The UNIT class provides methods to smoke or flare units easily.
-- The @{#UNIT.SmokeBlue}(), @{#UNIT.SmokeGreen}(),@{#UNIT.SmokeOrange}(), @{#UNIT.SmokeRed}(), @{#UNIT.SmokeRed}() methods -- The @{#UNIT.SmokeBlue}(), @{#UNIT.SmokeGreen}(),@{#UNIT.SmokeOrange}(), @{#UNIT.SmokeRed}(), @{#UNIT.SmokeRed}() methods
-- will smoke the unit in the corresponding color. Note that smoking a unit is done at the current position of the DCS Unit. -- will smoke the unit in the corresponding color. Note that smoking a unit is done at the current position of the DCS Unit.
@ -49,26 +45,25 @@
-- The @{#UNIT.FlareGreen}(), @{#UNIT.FlareRed}(), @{#UNIT.FlareWhite}(), @{#UNIT.FlareYellow}() -- The @{#UNIT.FlareGreen}(), @{#UNIT.FlareRed}(), @{#UNIT.FlareWhite}(), @{#UNIT.FlareYellow}()
-- methods will fire off a flare in the air with the corresponding color. Note that a flare is a one-off shot and its effect is of very short duration. -- methods will fire off a flare in the air with the corresponding color. Note that a flare is a one-off shot and its effect is of very short duration.
-- --
-- Position, Point -- 1.4) Location Position, Point
-- --------------- -- -----------------------------
-- The UNIT class provides methods to obtain the current point or position of the DCS Unit. -- The UNIT class provides methods to obtain the current point or position of the DCS Unit.
-- The @{#UNIT.GetPointVec2}(), @{#UNIT.GetPointVec3}() will obtain the current location of the DCS Unit in a Vec2 (2D) or a Vec3 (3D) vector respectively. -- The @{#UNIT.GetPointVec2}(), @{#UNIT.GetPointVec3}() will obtain the current **location** of the DCS Unit in a Vec2 (2D) or a **point** in a Vec3 (3D) vector respectively.
-- If you want to obtain the complete 3D position including oriëntation and direction vectors, consult the @{#UNIT.GetPositionVec3}() method respectively. -- If you want to obtain the complete **3D position** including oriëntation and direction vectors, consult the @{#UNIT.GetPositionVec3}() method respectively.
-- --
-- Alive -- 1.5) Test if alive
-- ----- -- ------------------
-- The @{#UNIT.IsAlive}(), @{#UNIT.IsActive}() methods determines if the DCS Unit is alive, meaning, it is existing and active. -- The @{#UNIT.IsAlive}(), @{#UNIT.IsActive}() methods determines if the DCS Unit is alive, meaning, it is existing and active.
-- --
-- Test for other units in radius -- 1.6) Test for proximity
-- ------------------------------ -- -----------------------
-- One can test if another DCS Unit is within a given radius of the current DCS Unit, by using the @{#UNIT.OtherUnitInRadius}() method. -- The UNIT class contains methods to test the location or proximity against zones or other objects.
--
-- More functions will be added
-- ----------------------------
-- During the MOOSE development, more functions will be added. A complete list of the current functions is below.
--
-- --
-- ### 1.6.1) Zones
-- To test whether the Unit is within a **zone**, use the @{#UNIT.IsInZone}() or the @{#UNIT.IsNotInZone}() methods. Any zone can be tested on, but the zone must be derived from @{Zone#ZONE_BASE}.
-- --
-- ### 1.6.2) Units
-- Test if another DCS Unit is within a given radius of the current DCS Unit, use the @{#UNIT.OtherUnitInRadius}() method.
-- --
-- @module Unit -- @module Unit
-- @author FlightControl -- @author FlightControl
@ -540,7 +535,7 @@ function UNIT:GetPointVec2()
UnitPointVec2.x = UnitPointVec3.x UnitPointVec2.x = UnitPointVec3.x
UnitPointVec2.y = UnitPointVec3.z UnitPointVec2.y = UnitPointVec3.z
self:T3( UnitPointVec2 ) self:T2( UnitPointVec2 )
return UnitPointVec2 return UnitPointVec2
end end
@ -601,7 +596,35 @@ function UNIT:GetVelocity()
return nil return nil
end end
-- Is functions
--- Returns true if the unit is within a @{Zone}.
-- @param #UNIT self
-- @param Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the unit is within the @{Zone#ZONE_BASE}
function UNIT:IsInZone( Zone )
self:F2( { self.UnitName, Zone } )
local IsInZone = Zone:IsPointVec3InZone( self:GetPointVec3() )
self:T( { IsInZone } )
return IsInZone
end
--- Returns true if the unit is not within a @{Zone}.
-- @param #UNIT self
-- @param Zone#ZONE_BASE Zone The zone to test.
-- @return #boolean Returns true if the unit is not within the @{Zone#ZONE_BASE}
function UNIT:IsNotInZone( Zone )
self:F2( { self.UnitName, Zone } )
local IsInZone = not Zone:IsPointVec3InZone( self:GetPointVec3() )
self:T( { IsInZone } )
return IsInZone
end
--- Returns true if the DCS Unit is in the air. --- Returns true if the DCS Unit is in the air.
-- @param Unit#UNIT self -- @param Unit#UNIT self
-- @return #boolean true if in the air. -- @return #boolean true if in the air.

View File

@ -1,79 +1,479 @@
--- ZONE Classes --- This module contains the ZONE classes, inherited from @{Zone#ZONE_BASE}.
-- There are essentially two core functions that zones accomodate:
--
-- * Test if an object is within the zone boundaries.
-- * Provide the zone behaviour. Some zones are static, while others are moveable.
--
-- The object classes are using the zone classes to test the zone boundaries, which can take various forms:
--
-- * Test if completely within the zone.
-- * Test if partly within the zone (for @{Group#GROUP} objects).
-- * Test if not in the zone.
-- * Distance to the nearest intersecting point of the zone.
-- * Distance to the center of the zone.
-- * ...
--
-- Each of these ZONE classes have a zone name, and specific parameters defining the zone type:
--
-- * @{Zone#ZONE_BASE}: The ZONE_BASE class defining the base for all other zone classes.
-- * @{Zone#ZONE_RADIUS}: The ZONE_RADIUS class defined by a zone name, a location and a radius.
-- * @{Zone#ZONE}: The ZONE class, defined by the zone name as defined within the Mission Editor.
-- * @{Zone#ZONE_UNIT}: The ZONE_UNIT class defined by a zone around a @{Unit#UNIT} with a radius.
-- * @{Zone#ZONE_POLYGON}: The ZONE_POLYGON class defined by a sequence of @{Group#GROUP} waypoints within the Mission Editor, forming a polygon.
--
-- Each zone implements two polymorphic functions defined in @{Zone#ZONE_BASE}:
--
-- * @{#ZONE_BASE.IsPointVec2InZone}: Returns if a location is within the zone.
-- * @{#ZONE_BASE.IsPointVec3InZone}: Returns if a point is within the zone.
--
-- ===
--
-- 1) @{Zone#ZONE_BASE} class, extends @{Base#BASE}
-- ================================================
-- The ZONE_BASE class defining the base for all other zone classes.
--
-- ===
--
-- 2) @{Zone#ZONE_RADIUS} class, extends @{Zone#ZONE_BASE}
-- =======================================================
-- The ZONE_RADIUS class defined by a zone name, a location and a radius.
--
-- ===
--
-- 3) @{Zone#ZONE} class, extends @{Zone#ZONE_RADIUS}
-- ==========================================
-- The ZONE class, defined by the zone name as defined within the Mission Editor.
--
-- ===
--
-- 4) @{Zone#ZONE_UNIT} class, extends @{Zone#ZONE_RADIUS}
-- =======================================================
-- The ZONE_UNIT class defined by a zone around a @{Unit#UNIT} with a radius.
--
-- ===
--
-- 5) @{Zone#ZONE_POLYGON} class, extends @{Zone#ZONE_BASE}
-- ========================================================
-- The ZONE_POLYGON class defined by a sequence of @{Group#GROUP} waypoints within the Mission Editor, forming a polygon.
--
-- ===
--
-- @module Zone -- @module Zone
-- @author FlightControl
Include.File( "Routines" ) Include.File( "Routines" )
Include.File( "Base" ) Include.File( "Base" )
Include.File( "Message" ) Include.File( "Message" )
Include.File( "Point" )
--- The ZONE class
-- @type ZONE
-- @Extends Base#BASE --- The ZONE_BASE class
ZONE = { -- @type ZONE_BASE
ClassName="ZONE", -- @extends Base#BASE
ZONE_BASE = {
ClassName = "ZONE_BASE",
}
--- ZONE_BASE constructor
-- @param #ZONE_BASE self
-- @param #string ZoneName Name of the zone.
-- @return #ZONE_BASE self
function ZONE_BASE:New( ZoneName )
local self = BASE:Inherit( self, BASE:New() )
self:F( ZoneName )
self.ZoneName = ZoneName
return self
end
--- Returns if a location is within the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Vec2 PointVec2 The location to test.
-- @return #boolean true if the location is within the zone.
function ZONE_BASE:IsPointVec2InZone( PointVec2 )
self:F2( PointVec2 )
return false
end
--- Returns if a point is within the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Vec3 PointVec3 The point to test.
-- @return #boolean true if the point is within the zone.
function ZONE_BASE:IsPointVec3InZone( PointVec3 )
self:F2( PointVec3 )
local InZone = self:IsPointVec2InZone( { x = PointVec3.x, y = PointVec3.z } )
return InZone
end
--- Smokes the zone boundaries in a color.
-- @param #ZONE_BASE self
-- @param SmokeColor The smoke color.
function ZONE_BASE:SmokeZone( SmokeColor )
self:F2( SmokeColor )
end
--- The ZONE_RADIUS class, defined by a zone name, a location and a radius.
-- @type ZONE_RADIUS
-- @field DCSTypes#Vec2 PointVec2 The current location of the zone.
-- @field DCSTypes#Distance Radius The radius of the zone.
-- @extends Zone#ZONE_BASE
ZONE_RADIUS = {
ClassName="ZONE_RADIUS",
} }
function ZONE:New( ZoneName )
local self = BASE:Inherit( self, BASE:New() )
self:F( ZoneName )
local Zone = trigger.misc.getZone( ZoneName ) --- Constructor of ZONE_RADIUS, taking the zone name, the zone location and a radius.
-- @param #ZONE_RADIUS self
if not Zone then -- @param #string ZoneName Name of the zone.
error( "Zone " .. ZoneName .. " does not exist." ) -- @param DCSTypes#Vec2 PointVec2 The location of the zone.
return nil -- @param DCSTypes#Distance Radius The radius of the zone.
end -- @return #ZONE_RADIUS self
function ZONE_RADIUS:New( ZoneName, PointVec2, Radius )
self.Zone = Zone local self = BASE:Inherit( self, ZONE_BASE:New( ZoneName ) )
self.ZoneName = ZoneName self:F( { ZoneName, PointVec2, Radius } )
self.Radius = Radius
self.PointVec2 = PointVec2
return self return self
end end
function ZONE:GetPointVec2() --- Smokes the zone boundaries in a color.
self:F( self.ZoneName ) -- @param #ZONE_RADIUS self
-- @param #POINT_VEC3.SmokeColor SmokeColor The smoke color.
-- @param #number Points (optional) The amount of points in the circle.
-- @return #ZONE_RADIUS self
function ZONE_RADIUS:SmokeZone( SmokeColor, Points )
self:F2( SmokeColor )
local Zone = trigger.misc.getZone( self.ZoneName ) local Point = {}
local Point = { x = Zone.point.x, y = Zone.point.z } local PointVec2 = self:GetPointVec2()
self:T( { Zone, Point } ) Points = Points and Points or 360
return Point
end
function ZONE:GetPointVec3( Height ) local Angle
self:F( self.ZoneName ) local RadialBase = math.pi*2
local Zone = trigger.misc.getZone( self.ZoneName )
local Point = { x = Zone.point.x, y = land.getHeight( self:GetPointVec2() ) + Height, z = Zone.point.z }
self:T( { Zone, Point } )
return Point for Angle = 0, 360, 360 / Points do
local Radial = Angle * RadialBase / 360
Point.x = PointVec2.x + math.cos( Radial ) * self:GetRadius()
Point.y = PointVec2.y + math.sin( Radial ) * self:GetRadius()
POINT_VEC2:New( Point.x, Point.y ):Smoke( SmokeColor )
end
return self
end end
function ZONE:GetRandomPointVec2()
--- Flares the zone boundaries in a color.
-- @param #ZONE_RADIUS self
-- @param #POINT_VEC3.FlareColor FlareColor The flare color.
-- @param #number Points (optional) The amount of points in the circle.
-- @param DCSTypes#Azimuth Azimuth (optional) Azimuth The azimuth of the flare.
-- @return #ZONE_RADIUS self
function ZONE_RADIUS:FlareZone( FlareColor, Points, Azimuth )
self:F2( { FlareColor, Azimuth } )
local Point = {}
local PointVec2 = self:GetPointVec2()
Points = Points and Points or 360
local Angle
local RadialBase = math.pi*2
for Angle = 0, 360, 360 / Points do
local Radial = Angle * RadialBase / 360
Point.x = PointVec2.x + math.cos( Radial ) * self:GetRadius()
Point.y = PointVec2.y + math.sin( Radial ) * self:GetRadius()
POINT_VEC2:New( Point.x, Point.y ):Flare( FlareColor, Azimuth )
end
return self
end
--- Returns the radius of the zone.
-- @param #ZONE_RADIUS self
-- @return DCSTypes#Distance The radius of the zone.
function ZONE_RADIUS:GetRadius()
self:F2( self.ZoneName )
self:T2( { self.Radius } )
return self.Radius
end
--- Sets the radius of the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Distance Radius The radius of the zone.
-- @return DCSTypes#Distance The radius of the zone.
function ZONE_RADIUS:SetRadius( Radius )
self:F2( self.ZoneName )
self.Radius = Radius
self:T2( { self.Radius } )
return self.Radius
end
--- Returns the location of the zone.
-- @param #ZONE_RADIUS self
-- @return DCSTypes#Vec2 The location of the zone.
function ZONE_RADIUS:GetPointVec2()
self:F2( self.ZoneName )
self:T2( { self.PointVec2 } )
return self.PointVec2
end
--- Sets the location of the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Vec2 PointVec2 The new location of the zone.
-- @return DCSTypes#Vec2 The new location of the zone.
function ZONE_RADIUS:SetPointVec2( PointVec2 )
self:F2( self.ZoneName )
self.PointVec2 = PointVec2
self:T2( { self.PointVec2 } )
return self.PointVec2
end
--- Returns the point of the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Distance Height The height to add to the land height where the center of the zone is located.
-- @return DCSTypes#Vec3 The point of the zone.
function ZONE_RADIUS:GetPointVec3( Height )
self:F2( self.ZoneName )
local PointVec2 = self:GetPointVec2()
local PointVec3 = { x = PointVec2.x, y = land.getHeight( self:GetPointVec2() ) + Height, z = PointVec2.y }
self:T2( { PointVec3 } )
return PointVec3
end
--- Returns if a location is within the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Vec2 PointVec2 The location to test.
-- @return #boolean true if the location is within the zone.
function ZONE_RADIUS:IsPointVec2InZone( PointVec2 )
self:F2( PointVec2 )
local ZonePointVec2 = self:GetPointVec2()
if (( PointVec2.x - ZonePointVec2.x )^2 + ( PointVec2.y - ZonePointVec2.y ) ^2 ) ^ 0.5 <= self:GetRadius() then
return true
end
return false
end
--- Returns if a point is within the zone.
-- @param #ZONE_RADIUS self
-- @param DCSTypes#Vec3 PointVec3 The point to test.
-- @return #boolean true if the point is within the zone.
function ZONE_RADIUS:IsPointVec3InZone( PointVec3 )
self:F2( PointVec3 )
local InZone = self:IsPointVec2InZone( { x = PointVec3.x, y = PointVec3.z } )
return InZone
end
--- Returns a random location within the zone.
-- @param #ZONE_RADIUS self
-- @return DCSTypes#Vec2 The random location within the zone.
function ZONE_RADIUS:GetRandomPointVec2()
self:F( self.ZoneName ) self:F( self.ZoneName )
local Point = {} local Point = {}
local PointVec2 = self:GetPointVec2()
local Zone = trigger.misc.getZone( self.ZoneName )
local angle = math.random() * math.pi*2; local angle = math.random() * math.pi*2;
Point.x = Zone.point.x + math.cos( angle ) * math.random() * Zone.radius; Point.x = PointVec2.x + math.cos( angle ) * math.random() * self:GetRadius();
Point.y = Zone.point.z + math.sin( angle ) * math.random() * Zone.radius; Point.y = PointVec2.y + math.sin( angle ) * math.random() * self:GetRadius();
self:T( { Zone, Point } ) self:T( { Point } )
return Point return Point
end end
function ZONE:GetRadius()
self:F( self.ZoneName )
local Zone = trigger.misc.getZone( self.ZoneName )
self:T( { Zone } ) --- The ZONE class, defined by the zone name as defined within the Mission Editor. The location and the radius are automatically collected from the mission settings.
-- @type ZONE
-- @extends Zone#ZONE_RADIUS
ZONE = {
ClassName="ZONE",
}
return Zone.radius
--- Constructor of ZONE, taking the zone name.
-- @param #ZONE self
-- @param #string ZoneName The name of the zone as defined within the mission editor.
-- @return #ZONE
function ZONE:New( ZoneName )
local Zone = trigger.misc.getZone( ZoneName )
if not Zone then
error( "Zone " .. ZoneName .. " does not exist." )
return nil
end
local self = BASE:Inherit( self, ZONE_RADIUS:New( ZoneName, { x = Zone.point.x, y = Zone.point.z }, Zone.radius ) )
self:F( ZoneName )
self.Zone = Zone
return self
end
--- The ZONE_UNIT class defined by a zone around a @{Unit#UNIT} with a radius.
-- @type ZONE_UNIT
-- @field Unit#UNIT ZoneUNIT
-- @extends Zone#ZONE_RADIUS
ZONE_UNIT = {
ClassName="ZONE_UNIT",
}
--- Constructor to create a ZONE_UNIT instance, taking the zone name, a zone unit and a radius.
-- @param #ZONE_UNIT self
-- @param #string ZoneName Name of the zone.
-- @param Unit#UNIT ZoneUNIT The unit as the center of the zone.
-- @param DCSTypes#Distance Radius The radius of the zone.
-- @return #ZONE_UNIT self
function ZONE_UNIT:New( ZoneName, ZoneUNIT, Radius )
local self = BASE:Inherit( self, ZONE_RADIUS:New( ZoneName, ZoneUNIT:GetPointVec2(), Radius ) )
self:F( { ZoneName, ZoneUNIT:GetPointVec2(), Radius } )
self.ZoneUNIT = ZoneUNIT
return self
end
--- Returns the current location of the @{Unit#UNIT}.
-- @param #ZONE_UNIT self
-- @return DCSTypes#Vec2 The location of the zone based on the @{Unit#UNIT}location.
function ZONE_UNIT:GetPointVec2()
self:F( self.ZoneName )
local ZonePointVec2 = self.ZoneUNIT:GetPointVec2()
self:T( { ZonePointVec2 } )
return ZonePointVec2
end
--- The ZONE_POLYGON class defined by a sequence of @{Group#GROUP} waypoints within the Mission Editor, forming a polygon.
-- @type ZONE_POLYGON
-- @extends Zone#ZONE_BASE
ZONE_POLYGON = {
ClassName="ZONE_POLYGON",
}
--- 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.
-- @param #ZONE_POLYGON self
-- @param #string ZoneName Name of the zone.
-- @param Group#GROUP ZoneGroup The GROUP waypoints as defined within the Mission Editor define the polygon shape.
-- @return #ZONE_POLYGON self
function ZONE_POLYGON:New( ZoneName, ZoneGroup )
local self = BASE:Inherit( self, ZONE_BASE:New( ZoneName ) )
self:F( { ZoneName, ZoneGroup } )
local GroupPoints = ZoneGroup:GetTaskRoute()
local i = 0
self.Polygon = {}
for i = 1, #GroupPoints do
self.Polygon[i] = {}
self.Polygon[i].x = GroupPoints[i].x
self.Polygon[i].y = GroupPoints[i].y
end
return self
end
--- Smokes the zone boundaries in a color.
-- @param #ZONE_POLYGON self
-- @param #POINT_VEC3.SmokeColor SmokeColor The smoke color.
-- @return #ZONE_POLYGON self
function ZONE_POLYGON:SmokeZone( SmokeColor )
self:F2( SmokeColor )
local i
local j
local Segments = 10
i = 1
j = #self.Polygon
while i <= #self.Polygon do
self:T( { i, j, self.Polygon[i], self.Polygon[j] } )
local DeltaX = self.Polygon[j].x - self.Polygon[i].x
local DeltaY = self.Polygon[j].y - self.Polygon[i].y
for Segment = 0, Segments do -- We divide each line in 5 segments and smoke a point on the line.
local PointX = self.Polygon[i].x + ( Segment * DeltaX / Segments )
local PointY = self.Polygon[i].y + ( Segment * DeltaY / Segments )
POINT_VEC2:New( PointX, PointY ):Smoke( SmokeColor )
end
j = i
i = i + 1
end
return self
end
--- Returns if a location is within the zone.
-- @param #ZONE_POLYGON self
-- @param DCSTypes#Vec2 PointVec2 The location to test.
-- @return #boolean true if the location is within the zone.
function ZONE_POLYGON:IsPointVec2InZone( PointVec2 )
self:F2( PointVec2 )
local i
local j
local c = false
i = 1
j = #self.Polygon
while i < #self.Polygon do
j = i
i = i + 1
self:T( { i, j, self.Polygon[i], self.Polygon[j] } )
if ( ( ( self.Polygon[i].y > PointVec2.y ) ~= ( self.Polygon[j].y > PointVec2.y ) ) and
( PointVec2.x < ( self.Polygon[j].x - self.Polygon[i].x ) * ( PointVec2.y - self.Polygon[i].y ) / ( self.Polygon[j].y - self.Polygon[i].y ) + self.Polygon[i].x )
) then
c = not c
end
self:T2( { "c = ", c } )
end
self:T( { "c = ", c } )
return c
end end

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
Include.File( "Zone" )
Include.File( "Group" )
Include.File( "Scheduler" )
local GroupInside = GROUP:FindByName( "Test Inside Polygon" )
local GroupOutside = GROUP:FindByName( "Test Outside Polygon" )
local ZoneA = ZONE:New( "Zone A" ):SmokeZone( POINT_VEC3.SmokeColor.White, 90 )
Messager = SCHEDULER:New( nil,
function()
GroupInside:MessageToAll( ( GroupInside:IsCompletelyInZone( ZoneA ) ) and "Inside Zone A" or "Outside Zone A", 1 )
if GroupInside:IsCompletelyInZone( ZoneA ) then
GroupInside:GetUnit(1):SmokeRed()
end
end,
{}, 0, 1 )

View File

@ -0,0 +1,21 @@
Include.File( "Zone" )
Include.File( "Group" )
Include.File( "Scheduler" )
local GroupInside = GROUP:FindByName( "Test Inside Polygon" )
local GroupOutside = GROUP:FindByName( "Test Outside Polygon" )
local GroupPolygon = GROUP:FindByName( "Polygon A" )
local PolygonZone = ZONE_POLYGON:New( "Polygon A", GroupPolygon ):SmokeZone( POINT_VEC3.SmokeColor.White, 20 )
Messager = SCHEDULER:New( nil,
function()
GroupInside:MessageToAll( ( GroupInside:IsCompletelyInZone( PolygonZone ) ) and "Inside Polygon A" or "Outside Polygon A", 1 )
if GroupInside:IsCompletelyInZone( PolygonZone ) then
GroupInside:GetUnit(1):SmokeRed()
end
end,
{}, 0, 1 )

View File

@ -0,0 +1,20 @@
Include.File( "Zone" )
Include.File( "Group" )
Include.File( "Scheduler" )
local GroupInside = GROUP:FindByName( "Test Inside Polygon" )
local GroupOutside = GROUP:FindByName( "Test Outside Polygon" )
local House = STATIC:FindByName( "House" )
local ZoneA = ZONE_RADIUS:New( "Zone A", House:GetPointVec2(), 300 ):SmokeZone( POINT_VEC3.SmokeColor.White, 90 )
Messager = SCHEDULER:New( nil,
function()
GroupInside:MessageToAll( ( GroupInside:IsCompletelyInZone( ZoneA ) ) and "Inside Zone A" or "Outside Zone A", 1 )
if GroupInside:IsCompletelyInZone( ZoneA ) then
GroupInside:GetUnit(1):SmokeRed()
end
end,
{}, 0, 1 )

View File

@ -0,0 +1,25 @@
Include.File( "Zone" )
Include.File( "Group" )
Include.File( "Scheduler" )
local GroupInside = GROUP:FindByName( "Test Inside Polygon" )
local GroupOutside = GROUP:FindByName( "Test Outside Polygon" )
local Tank = UNIT:FindByName( "Tank" )
local ZoneA = ZONE_UNIT:New( "Zone A", Tank, 100 )
Messager = SCHEDULER:New( nil,
function()
GroupInside:MessageToAll( ( GroupInside:IsCompletelyInZone( ZoneA ) ) and "Inside Zone A" or "Outside Zone A", 1 )
if GroupInside:IsCompletelyInZone( ZoneA ) then
GroupInside:GetUnit(1):SmokeRed()
end
end,
{}, 0, 1 )
TankZoneColoring = SCHEDULER:New( nil,
function()
ZoneA:FlareZone( POINT_VEC3.FlareColor.White, 90, 60 )
end,
{}, 0, 5 )

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>
@ -206,7 +208,7 @@ These tracing levels were defined to avoid bulks of tracing to be generated by l
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F">BASE:F(Arguments)</a></td> <td class="name" nowrap="nowrap"><a href="##(BASE).F">BASE:F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</a></td>
<td class="summary"> <td class="summary">
<p>Trace a function call.</p> <p>Trace a function call.</p>
</td> </td>
@ -260,7 +262,7 @@ These tracing levels were defined to avoid bulks of tracing to be generated by l
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T">BASE:T(Arguments)</a></td> <td class="name" nowrap="nowrap"><a href="##(BASE).T">BASE:T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</a></td>
<td class="summary"> <td class="summary">
<p>Trace a function logic.</p> <p>Trace a function logic.</p>
</td> </td>
@ -575,7 +577,7 @@ A #table or any field.</p>
<dt> <dt>
<a id="#(BASE).F" > <a id="#(BASE).F" >
<strong>BASE:F(Arguments)</strong> <strong>BASE:F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -585,13 +587,23 @@ A #table or any field.</p>
<p>Must be at the beginning of the function logic.</p> <p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3> <h3>Parameters</h3>
<ul> <ul>
<li> <li>
<p><code><em> Arguments </em></code>: <p><code><em> Arguments </em></code>:
A #table or any field.</p> A #table or any field.</p>
</li>
<li>
<p><code><em> DebugInfoCurrentParam </em></code>: </p>
</li>
<li>
<p><code><em> DebugInfoFromParam </em></code>: </p>
</li> </li>
</ul> </ul>
</dd> </dd>
@ -802,7 +814,7 @@ end</code></pre>
<dt> <dt>
<a id="#(BASE).T" > <a id="#(BASE).T" >
<strong>BASE:T(Arguments)</strong> <strong>BASE:T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -812,13 +824,23 @@ end</code></pre>
<p>Can be anywhere within the function logic.</p> <p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3> <h3>Parameters</h3>
<ul> <ul>
<li> <li>
<p><code><em> Arguments </em></code>: <p><code><em> Arguments </em></code>:
A #table or any field.</p> A #table or any field.</p>
</li>
<li>
<p><code><em> DebugInfoCurrentParam </em></code>: </p>
</li>
<li>
<p><code><em> DebugInfoFromParam </em></code>: </p>
</li> </li>
</ul> </ul>
</dd> </dd>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>
@ -71,14 +73,14 @@
<div id="content"> <div id="content">
<h1>Module <code>Client</code></h1> <h1>Module <code>Client</code></h1>
<p>The CLIENT models client units in multi player missions.</p> <p>This module contains the CLIENT class.</p>
<h1><a href="##(CLIENT)">#CLIENT</a> class</h1> <h1>1) <a href="Client.html##(CLIENT)">Client#CLIENT</a> class, extends <a href="Unit.html##(UNIT)">Unit#UNIT</a></h1>
<p>Clients are those <strong>Units</strong> defined within the Mission Editor that have the skillset defined as <strong>Client</strong> or <strong>Player</strong>. <p>Clients are those <strong>Units</strong> defined within the Mission Editor that have the skillset defined as <strong>Client</strong> or <strong>Player</strong>.
Note that clients are NOT the same as Units, they are NOT necessarily alive. Note that clients are NOT the same as Units, they are NOT necessarily alive.
The <a href="CLIENT.html">CLIENT</a> class is a wrapper class to handle the DCS Unit objects that have the skillset defined as <strong>Client</strong> or <strong>Player</strong>:</p> The <a href="Client.html##(CLIENT)">Client#CLIENT</a> class is a wrapper class to handle the DCS Unit objects that have the skillset defined as <strong>Client</strong> or <strong>Player</strong>:</p>
<ul> <ul>
<li>Wraps the DCS Unit objects with skill level set to Player or Client.</li> <li>Wraps the DCS Unit objects with skill level set to Player or Client.</li>
@ -91,7 +93,7 @@ The <a href="CLIENT.html">CLIENT</a> class is a wrapper class to handle the DCS
<p>Clients are being used by the <a href="MISSION.html">MISSION</a> class to follow players and register their successes.</p> <p>Clients are being used by the <a href="MISSION.html">MISSION</a> class to follow players and register their successes.</p>
<h1>CLIENT reference methods</h1> <h2>1.1) CLIENT reference methods</h2>
<p>For each DCS Unit having skill level Player or Client, a CLIENT wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object. <p>For each DCS Unit having skill level Player or Client, a CLIENT wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object.
This is done at the beginning of the mission (when the mission starts).</p> This is done at the beginning of the mission (when the mission starts).</p>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>
@ -134,6 +136,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddPlayer">DATABASE:AddPlayer(UnitName, PlayerName)</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE).AddPlayer">DATABASE:AddPlayer(UnitName, PlayerName)</a></td>
<td class="summary"> <td class="summary">
<p>Adds a player based on the Player Name in the DATABASE.</p> <p>Adds a player based on the Player Name in the DATABASE.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).AddStatic">DATABASE:AddStatic(DCSStatic, DCSStaticName)</a></td>
<td class="summary">
<p>Adds a Static based on the Static Name in the DATABASE.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -164,6 +172,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DCSGroups">DATABASE.DCSGroups</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE).DCSGroups">DATABASE.DCSGroups</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DCSStatics">DATABASE.DCSStatics</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -176,6 +190,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeletePlayer">DATABASE:DeletePlayer(PlayerName)</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE).DeletePlayer">DATABASE:DeletePlayer(PlayerName)</a></td>
<td class="summary"> <td class="summary">
<p>Deletes a player from the DATABASE based on the Player Name.</p> <p>Deletes a player from the DATABASE based on the Player Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).DeleteStatic">DATABASE:DeleteStatic(DCSStaticName)</a></td>
<td class="summary">
<p>Deletes a Static from the DATABASE based on the Static Name.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -194,6 +214,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).FindGroup">DATABASE:FindGroup(GroupName)</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE).FindGroup">DATABASE:FindGroup(GroupName)</a></td>
<td class="summary"> <td class="summary">
<p>Finds a GROUP based on the GroupName.</p> <p>Finds a GROUP based on the GroupName.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).FindStatic">DATABASE:FindStatic(StaticName)</a></td>
<td class="summary">
<p>Finds a STATIC based on the StaticName.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -284,6 +310,12 @@ The following iterator methods are currently available within the DATABASE:</p>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).PLAYERSALIVE">DATABASE.PLAYERSALIVE</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE).PLAYERSALIVE">DATABASE.PLAYERSALIVE</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE).STATICS">DATABASE.STATICS</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -335,15 +367,21 @@ The following iterator methods are currently available within the DATABASE:</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE)._RegisterDatabase">DATABASE:_RegisterDatabase()</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE)._RegisterGroupsAndUnits">DATABASE:_RegisterGroupsAndUnits()</a></td>
<td class="summary"> <td class="summary">
<p>Private method that registers all datapoints within in the mission.</p> <p>Private method that registers all Groups and Units within in the mission.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE)._RegisterPlayers">DATABASE:_RegisterPlayers()</a></td> <td class="name" nowrap="nowrap"><a href="##(DATABASE)._RegisterPlayers">DATABASE:_RegisterPlayers()</a></td>
<td class="summary"> <td class="summary">
<p>Private method that registers all alive players in the mission.</p> <p>Private method that registers all alive players in the mission.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(DATABASE)._RegisterStatics">DATABASE:_RegisterStatics()</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -458,6 +496,32 @@ The following iterator methods are currently available within the DATABASE:</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(DATABASE).AddStatic" >
<strong>DATABASE:AddStatic(DCSStatic, DCSStaticName)</strong>
</a>
</dt>
<dd>
<p>Adds a Static based on the Static Name in the DATABASE.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> DCSStatic </em></code>: </p>
</li>
<li>
<p><code><em> DCSStaticName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).AddUnit" > <a id="#(DATABASE).AddUnit" >
<strong>DATABASE:AddUnit(DCSUnit, DCSUnitName)</strong> <strong>DATABASE:AddUnit(DCSUnit, DCSUnitName)</strong>
</a> </a>
@ -535,6 +599,20 @@ The following iterator methods are currently available within the DATABASE:</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(DATABASE).DCSStatics" >
<strong>DATABASE.DCSStatics</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -575,6 +653,27 @@ The following iterator methods are currently available within the DATABASE:</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(DATABASE).DeleteStatic" >
<strong>DATABASE:DeleteStatic(DCSStaticName)</strong>
</a>
</dt>
<dd>
<p>Deletes a Static from the DATABASE based on the Static Name.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> DCSStaticName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).DeleteUnit" > <a id="#(DATABASE).DeleteUnit" >
<strong>DATABASE:DeleteUnit(DCSUnitName)</strong> <strong>DATABASE:DeleteUnit(DCSUnitName)</strong>
</a> </a>
@ -648,6 +747,32 @@ The found GROUP.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(DATABASE).FindStatic" >
<strong>DATABASE:FindStatic(StaticName)</strong>
</a>
</dt>
<dd>
<p>Finds a STATIC based on the StaticName.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string StaticName </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Static.html##(STATIC)">Static#STATIC</a>:</em>
The found STATIC.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE).FindUnit" > <a id="#(DATABASE).FindUnit" >
<strong>DATABASE:FindUnit(UnitName)</strong> <strong>DATABASE:FindUnit(UnitName)</strong>
</a> </a>
@ -1029,6 +1154,20 @@ DBObject = DATABASE:New()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(DATABASE).STATICS" >
<strong>DATABASE.STATICS</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@ -1203,13 +1342,13 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(DATABASE)._RegisterDatabase" > <a id="#(DATABASE)._RegisterGroupsAndUnits" >
<strong>DATABASE:_RegisterDatabase()</strong> <strong>DATABASE:_RegisterGroupsAndUnits()</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Private method that registers all datapoints within in the mission.</p> <p>Private method that registers all Groups and Units within in the mission.</p>
<h3>Return value</h3> <h3>Return value</h3>
@ -1234,6 +1373,19 @@ self</p>
<p><em><a href="##(DATABASE)">#DATABASE</a>:</em> <p><em><a href="##(DATABASE)">#DATABASE</a>:</em>
self</p> self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(DATABASE)._RegisterStatics" >
<strong>DATABASE:_RegisterStatics()</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>
@ -71,12 +73,12 @@
<div id="content"> <div id="content">
<h1>Module <code>Group</code></h1> <h1>Module <code>Group</code></h1>
<p>GROUP class.</p> <p>This module contains the GROUP class.</p>
<h1><a href="GROUP.html">GROUP</a> class</h1> <h1>1) <a href="Group.html##(GROUP)">Group#GROUP</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="GROUP.html">GROUP</a> class is a wrapper class to handle the DCS Group objects:</p> <p>The <a href="Group.html##(GROUP)">Group#GROUP</a> class is a wrapper class to handle the DCS Group objects:</p>
<ul> <ul>
<li>Support all DCS Group APIs.</li> <li>Support all DCS Group APIs.</li>
@ -85,8 +87,9 @@
<li>Manage the "state" of the DCS Group.</li> <li>Manage the "state" of the DCS Group.</li>
</ul> </ul>
<p><strong>IMPORTANT: ONE SHOULD NEVER SANATIZE these GROUP OBJECT REFERENCES! (make the GROUP object references nil).</strong></p>
<h1>GROUP reference methods</h1> <h2>1.1) GROUP reference methods</h2>
<p>For each DCS Group object alive within a running mission, a GROUP wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object. <p>For each DCS Group object alive within a running mission, a GROUP wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object.
This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Group objects are spawned (using the <a href="SPAWN.html">SPAWN</a> class).</p> This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Group objects are spawned (using the <a href="SPAWN.html">SPAWN</a> class).</p>
@ -104,7 +107,136 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<li><a href="##(GROUP).FindByName">GROUP.FindByName</a>(): Find a GROUP instance from the _DATABASE object using a DCS Group name.</li> <li><a href="##(GROUP).FindByName">GROUP.FindByName</a>(): Find a GROUP instance from the _DATABASE object using a DCS Group name.</li>
</ul> </ul>
<p>IMPORTANT: ONE SHOULD NEVER SANATIZE these GROUP OBJECT REFERENCES! (make the GROUP object references nil).</p> <h2>1.2) GROUP task methods</h2>
<p>Several group task methods are available that help you to prepare tasks.
These methods return a string consisting of the task description, which can then be given to either a <a href="Group.html##(GROUP).PushTask">Group#GROUP.PushTask</a> or <a href="Group.html##(SetTask)">Group#SetTask</a> method to assign the task to the GROUP.
Tasks are specific for the category of the GROUP, more specific, for AIR, GROUND or AIR and GROUND.
Each task description where applicable indicates for which group category the task is valid.
There are 2 main subdivisions of tasks: Assigned tasks and EnRoute tasks.</p>
<h3>1.2.1) Assigned task methods</h3>
<p>Assigned task methods make the group execute the task where the location of the (possible) targets of the task are known before being detected.
This is different from the EnRoute tasks, where the targets of the task need to be detected before the task can be executed.</p>
<p>Find below a list of the <strong>assigned task</strong> methods:</p>
<ul>
<li><a href="##(GROUP).TaskAttackGroup">GROUP.TaskAttackGroup</a>: (AIR) Attack a Group.</li>
<li><a href="##(GROUP).TaskAttackMapObject">GROUP.TaskAttackMapObject</a>: (AIR) Attacking the map object (building, structure, e.t.c).</li>
<li><a href="##(GROUP).TaskAttackUnit">GROUP.TaskAttackUnit</a>: (AIR) Attack the Unit.</li>
<li><a href="##(GROUP).TaskBombing">GROUP.TaskBombing</a>: (AIR) Delivering weapon at the point on the ground.</li>
<li><a href="##(GROUP).TaskBombingRunway">GROUP.TaskBombingRunway</a>: (AIR) Delivering weapon on the runway.</li>
<li><a href="##(GROUP).TaskEmbarking">GROUP.TaskEmbarking</a>: (AIR) Move the group to a Vec2 Point, wait for a defined duration and embark a group.</li>
<li><a href="##(GROUP).TaskEmbarkToTransport">GROUP.TaskEmbarkToTransport</a>: (GROUND) Embark to a Transport landed at a location.</li>
<li><a href="##(GROUP).TaskEscort">GROUP.TaskEscort</a>: (AIR) Escort another airborne group. </li>
<li><a href="##(GROUP).TaskFAC_AttackGroup">GROUP.TaskFAC_AttackGroup</a>: (AIR + GROUND) The task makes the group/unit a FAC and orders the FAC to control the target (enemy ground group) destruction.</li>
<li><a href="##(GROUP).TaskFireAtPoint">GROUP.TaskFireAtPoint</a>: (GROUND) Fire at a VEC2 point until ammunition is finished.</li>
<li><a href="##(GROUP).TaskFollow">GROUP.TaskFollow</a>: (AIR) Following another airborne group.</li>
<li><a href="##(GROUP).TaskHold">GROUP.TaskHold</a>: (GROUND) Hold ground group from moving.</li>
<li><a href="##(GROUP).TaskHoldPosition">GROUP.TaskHoldPosition</a>: (AIR) Hold position at the current position of the first unit of the group.</li>
<li><a href="##(GROUP).TaskLand">GROUP.TaskLand</a>: (AIR HELICOPTER) Landing at the ground. For helicopters only.</li>
<li><a href="##(GROUP).TaskLandAtZone">GROUP.TaskLandAtZone</a>: (AIR) Land the group at a <a href="##(GROUP).TaskOrbitCircle">GROUP.TaskOrbitCircle</a>: (AIR) Orbit at the current position of the first unit of the group at a specified alititude.</li>
<li><a href="##(GROUP).TaskOrbitCircleAtVec2">GROUP.TaskOrbitCircleAtVec2</a>: (AIR) Orbit at a specified position at a specified alititude during a specified duration with a specified speed.</li>
<li><a href="##(GROUP).TaskRefueling">GROUP.TaskRefueling</a>: (AIR) Refueling from the nearest tanker. No parameters.</li>
<li><a href="##(GROUP).TaskRoute">GROUP.TaskRoute</a>: (AIR + GROUND) Return a Misson task to follow a given route defined by Points.</li>
<li><a href="##(GROUP).TaskRouteToVec2">GROUP.TaskRouteToVec2</a>: (AIR + GROUND) Make the Group move to a given point.</li>
<li><a href="##(GROUP).TaskRouteToVec3">GROUP.TaskRouteToVec3</a>: (AIR + GROUND) Make the Group move to a given point.</li>
<li><a href="##(GROUP).TaskRouteToZone">GROUP.TaskRouteToZone</a>: (AIR + GROUND) Route the group to a given zone.</li>
</ul>
<h3>1.2.2) EnRoute task methods</h3>
<p>EnRoute tasks require the targets of the task need to be detected by the group (using its sensors) before the task can be executed:</p>
<ul>
<li><a href="##(GROUP).EnRouteTaskAWACS">GROUP.EnRouteTaskAWACS</a>: (AIR) Aircraft will act as an AWACS for friendly units (will provide them with information about contacts). No parameters.</li>
<li><a href="##(GROUP).EnRouteTaskEngageGroup">GROUP.EnRouteTaskEngageGroup</a>: (AIR) Engaging a group. The task does not assign the target group to the unit/group to attack now; it just allows the unit/group to engage the target group as well as other assigned targets.</li>
<li><a href="##(GROUP).EnRouteTaskEngageTargets">GROUP.EnRouteTaskEngageTargets</a>: (AIR) Engaging targets of defined types.</li>
<li><a href="##(GROUP).EnRouteTaskEWR">GROUP.EnRouteTaskEWR</a>: (AIR) Attack the Unit.</li>
<li><a href="##(GROUP).EnRouteTaskFAC">GROUP.EnRouteTaskFAC</a>: (AIR + GROUND) The task makes the group/unit a FAC and lets the FAC to choose a targets (enemy ground group) around as well as other assigned targets.</li>
<li><a href="##(GROUP).EnRouteTaskFAC_EngageGroup">GROUP.EnRouteTaskFAC_EngageGroup</a>: (AIR + GROUND) The task makes the group/unit a FAC and lets the FAC to choose the target (enemy ground group) as well as other assigned targets.</li>
<li><a href="##(GROUP).EnRouteTaskTanker">GROUP.EnRouteTaskTanker</a>: (AIR) Aircraft will act as a tanker for friendly units. No parameters.</li>
</ul>
<h3>1.2.3) Preparation task methods</h3>
<p>There are certain task methods that allow to tailor the task behaviour:</p>
<ul>
<li><a href="##(GROUP).TaskWrappedAction">GROUP.TaskWrappedAction</a>: Return a WrappedAction Task taking a Command.</li>
<li><a href="##(GROUP).TaskCombo">GROUP.TaskCombo</a>: Return a Combo Task taking an array of Tasks.</li>
<li><a href="##(GROUP).TaskCondition">GROUP.TaskCondition</a>: Return a condition section for a controlled task.</li>
<li><a href="##(GROUP).TaskControlled">GROUP.TaskControlled</a>: Return a Controlled Task taking a Task and a TaskCondition.</li>
</ul>
<h3>1.2.4) Obtain the mission from group templates</h3>
<p>Group templates contain complete mission descriptions. Sometimes you want to copy a complete mission from a group and assign it to another:</p>
<ul>
<li><a href="##(GROUP).TaskMission">GROUP.TaskMission</a>: (AIR + GROUND) Return a mission task from a mission template.</li>
</ul>
<h2>1.3) GROUP Command methods</h2>
<p>Group <strong>command methods</strong> prepare the execution of commands using the <a href="##(GROUP).SetCommand">GROUP.SetCommand</a> method:</p>
<ul>
<li><a href="##(GROUP).CommandDoScript">GROUP.CommandDoScript</a>: Do Script command.</li>
<li><a href="##(GROUP).CommandSwitchWayPoint">GROUP.CommandSwitchWayPoint</a>: Perform a switch waypoint command.</li>
</ul>
<h2>1.4) GROUP Option methods</h2>
<p>Group <strong>Option methods</strong> change the behaviour of the Group while being alive.</p>
<h3>1.4.1) Rule of Engagement:</h3>
<ul>
<li><a href="##(GROUP).OptionROEWeaponFree">GROUP.OptionROEWeaponFree</a> </li>
<li><a href="##(GROUP).OptionROEOpenFire">GROUP.OptionROEOpenFire</a></li>
<li><a href="##(GROUP).OptionROEReturnFire">GROUP.OptionROEReturnFire</a></li>
<li><a href="##(GROUP).OptionROEEvadeFire">GROUP.OptionROEEvadeFire</a></li>
</ul>
<p>To check whether an ROE option is valid for a specific group, use:</p>
<ul>
<li><a href="##(GROUP).OptionROEWeaponFreePossible">GROUP.OptionROEWeaponFreePossible</a> </li>
<li><a href="##(GROUP).OptionROEOpenFirePossible">GROUP.OptionROEOpenFirePossible</a></li>
<li><a href="##(GROUP).OptionROEReturnFirePossible">GROUP.OptionROEReturnFirePossible</a></li>
<li><a href="##(GROUP).OptionROEEvadeFirePossible">GROUP.OptionROEEvadeFirePossible</a></li>
</ul>
<h3>1.4.2) Rule on thread:</h3>
<ul>
<li><a href="##(GROUP).OptionROTNoReaction">GROUP.OptionROTNoReaction</a></li>
<li><a href="##(GROUP).OptionROTPassiveDefense">GROUP.OptionROTPassiveDefense</a></li>
<li><a href="##(GROUP).OptionROTEvadeFire">GROUP.OptionROTEvadeFire</a></li>
<li><a href="##(GROUP).OptionROTVertical">GROUP.OptionROTVertical</a></li>
</ul>
<p>To test whether an ROT option is valid for a specific group, use:</p>
<ul>
<li><a href="##(GROUP).OptionROTNoReactionPossible">GROUP.OptionROTNoReactionPossible</a></li>
<li><a href="##(GROUP).OptionROTPassiveDefensePossible">GROUP.OptionROTPassiveDefensePossible</a></li>
<li><a href="##(GROUP).OptionROTEvadeFirePossible">GROUP.OptionROTEvadeFirePossible</a></li>
<li><a href="##(GROUP).OptionROTVerticalPossible">GROUP.OptionROTVerticalPossible</a></li>
</ul>
<h2>1.5) GROUP Zone validation methods</h2>
<p>The group can be validated whether it is completely, partly or not within a <a href="Zone.html">Zone</a>.
Use the following Zone validation methods on the group:</p>
<ul>
<li><a href="##(GROUP).IsCompletelyInZone">GROUP.IsCompletelyInZone</a>: Returns true if all units of the group are within a <a href="Zone.html">Zone</a>.</li>
<li><a href="##(GROUP).IsPartlyInZone">GROUP.IsPartlyInZone</a>: Returns true if some units of the group are within a <a href="Zone.html">Zone</a>.</li>
<li><a href="##(GROUP).IsNotInZone">GROUP.IsNotInZone</a>: Returns true if none of the group units of the group are within a <a href="Zone.html">Zone</a>.</li>
</ul>
<p>The zone can be of any <a href="Zone.html">Zone</a> class derived from <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a>. So, these methods are polymorphic to the zones tested on.</p>
<h2>Global(s)</h2> <h2>Global(s)</h2>
<table class="function_list"> <table class="function_list">
@ -409,6 +541,12 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsAlive">GROUP:IsAlive()</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).IsAlive">GROUP:IsAlive()</a></td>
<td class="summary"> <td class="summary">
<p>Returns if the DCS Group is alive.</p> <p>Returns if the DCS Group is alive.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsCompletelyInZone">GROUP:IsCompletelyInZone(Zone)</a></td>
<td class="summary">
<p>Returns true if all units of the group are within a <a href="Zone.html">Zone</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -421,6 +559,18 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsHelicopter">GROUP:IsHelicopter()</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).IsHelicopter">GROUP:IsHelicopter()</a></td>
<td class="summary"> <td class="summary">
<p>Returns if the DCS Group contains Helicopters.</p> <p>Returns if the DCS Group contains Helicopters.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsNotInZone">GROUP:IsNotInZone(Zone)</a></td>
<td class="summary">
<p>Returns true if none of the group units of the group are within a <a href="Zone.html">Zone</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).IsPartlyInZone">GROUP:IsPartlyInZone(Zone)</a></td>
<td class="summary">
<p>Returns true if some units of the group are within a <a href="Zone.html">Zone</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -630,31 +780,31 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskCombo">GROUP:TaskCombo(DCSTasks)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskCombo">GROUP:TaskCombo(DCSTasks)</a></td>
<td class="summary"> <td class="summary">
<p>Return a Combo Task taking an array of Tasks</p> <p>Return a Combo Task taking an array of Tasks.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskCondition">GROUP:TaskCondition(time, userFlag, userFlagValue, condition, duration, lastWayPoint)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskCondition">GROUP:TaskCondition(time, userFlag, userFlagValue, condition, duration, lastWayPoint)</a></td>
<td class="summary"> <td class="summary">
<p>Return a condition section for a controlled task</p> <p>Return a condition section for a controlled task.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskControlled">GROUP:TaskControlled(DCSTask, DCSStopCondition)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskControlled">GROUP:TaskControlled(DCSTask, DCSStopCondition)</a></td>
<td class="summary"> <td class="summary">
<p>Return a Controlled Task taking a Task and a TaskCondition</p> <p>Return a Controlled Task taking a Task and a TaskCondition.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskEmbarkToTransportAtVec2">GROUP:TaskEmbarkToTransportAtVec2(Point, Radius)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskEmbarkToTransport">GROUP:TaskEmbarkToTransport(Point, Radius)</a></td>
<td class="summary"> <td class="summary">
<p>Move to a defined Vec2 Point, and embark to a group when arrived within a defined Radius.</p> <p>Move to a defined Vec2 Point, and embark to a group when arrived within a defined Radius.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskEmbarkingAtVec2">GROUP:TaskEmbarkingAtVec2(Point, Duration, EmbarkingGroup)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskEmbarking">GROUP:TaskEmbarking(Point, Duration, EmbarkingGroup)</a></td>
<td class="summary"> <td class="summary">
<p>Move the group to a Vec2 Point, wait for a defined duration and embark a group.</p> <p>(AIR) Move the group to a Vec2 Point, wait for a defined duration and embark a group.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -708,19 +858,19 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskLandAtZone">GROUP:TaskLandAtZone(Zone, Duration, RandomPoint)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskLandAtZone">GROUP:TaskLandAtZone(Zone, Duration, RandomPoint)</a></td>
<td class="summary"> <td class="summary">
<p>(AIR) Land the group at a @{Zone#ZONE).</p> <p>(AIR) Land the group at a @{Zone#ZONE_RADIUS).</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskMission">GROUP:TaskMission(TaskMission)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskMission">GROUP:TaskMission(TaskMission)</a></td>
<td class="summary"> <td class="summary">
<p>Return a Misson task from a mission template.</p> <p>(AIR + GROUND) Return a mission task from a mission template.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskOrbitCircle">GROUP:TaskOrbitCircle(Altitude, Speed)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskOrbitCircle">GROUP:TaskOrbitCircle(Altitude, Speed)</a></td>
<td class="summary"> <td class="summary">
<p>(AIR) Orbit at the current position of the first unit of the group at a specified alititude</p> <p>(AIR) Orbit at the current position of the first unit of the group at a specified alititude.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -744,25 +894,25 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskRouteToVec2">GROUP:TaskRouteToVec2(Point, Speed)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskRouteToVec2">GROUP:TaskRouteToVec2(Point, Speed)</a></td>
<td class="summary"> <td class="summary">
<p>Make the DCS Group to fly to a given point and hover.</p> <p>(AIR + GROUND) Make the Group move to fly to a given point.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskRouteToVec3">GROUP:TaskRouteToVec3(Point, Speed)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskRouteToVec3">GROUP:TaskRouteToVec3(Point, Speed)</a></td>
<td class="summary"> <td class="summary">
<p>Make the DCS Group to fly to a given point and hover.</p> <p>(AIR + GROUND) Make the Group move to a given point.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskRouteToZone">GROUP:TaskRouteToZone(Zone, Randomize, Speed, Formation)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskRouteToZone">GROUP:TaskRouteToZone(Zone, Randomize, Speed, Formation)</a></td>
<td class="summary"> <td class="summary">
<p>Route the group to a given zone.</p> <p>(AIR + GROUND) Route the group to a given zone.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(GROUP).TaskWrappedAction">GROUP:TaskWrappedAction(DCSCommand, Index)</a></td> <td class="name" nowrap="nowrap"><a href="##(GROUP).TaskWrappedAction">GROUP:TaskWrappedAction(DCSCommand, Index)</a></td>
<td class="summary"> <td class="summary">
<p>Return a WrappedAction Task taking a Command</p> <p>Return a WrappedAction Task taking a Command.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -843,8 +993,6 @@ If the DCS Group object does not exist or is nil, the GROUP methods will return
<h2><a id="#(DCSStopCondition)" >Type <code>DCSStopCondition</code></a></h2> <h2><a id="#(DCSStopCondition)" >Type <code>DCSStopCondition</code></a></h2>
<h2><a id="#(Duration)" >Type <code>Duration</code></a></h2>
<h2><a id="#(GROUP)" >Type <code>GROUP</code></a></h2> <h2><a id="#(GROUP)" >Type <code>GROUP</code></a></h2>
<p>The GROUP class</p> <p>The GROUP class</p>
@ -1984,6 +2132,33 @@ true if the DCS Group is alive.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(GROUP).IsCompletelyInZone" >
<strong>GROUP:IsCompletelyInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Returns true if all units of the group are within a <a href="Zone.html">Zone</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a> Zone </em></code>:
The zone to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the Group is completely within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).IsGround" > <a id="#(GROUP).IsGround" >
<strong>GROUP:IsGround()</strong> <strong>GROUP:IsGround()</strong>
</a> </a>
@ -2020,6 +2195,60 @@ true if DCS Group contains Helicopters.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(GROUP).IsNotInZone" >
<strong>GROUP:IsNotInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Returns true if none of the group units of the group are within a <a href="Zone.html">Zone</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a> Zone </em></code>:
The zone to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the Group is completely within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).IsPartlyInZone" >
<strong>GROUP:IsPartlyInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Returns true if some units of the group are within a <a href="Zone.html">Zone</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a> Zone </em></code>:
The zone to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the Group is completely within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(GROUP).IsShip" > <a id="#(GROUP).IsShip" >
<strong>GROUP:IsShip()</strong> <strong>GROUP:IsShip()</strong>
</a> </a>
@ -2077,7 +2306,7 @@ The message text</p>
</li> </li>
<li> <li>
<p><code><em><a href="##(Duration)">#Duration</a> Duration </em></code>: <p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p> The duration of the message.</p>
</li> </li>
@ -2113,7 +2342,7 @@ The message text</p>
</li> </li>
<li> <li>
<p><code><em><a href="##(Duration)">#Duration</a> Duration </em></code>: <p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p> The duration of the message.</p>
</li> </li>
@ -2144,7 +2373,7 @@ The message text</p>
</li> </li>
<li> <li>
<p><code><em><a href="##(Duration)">#Duration</a> Duration </em></code>: <p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p> The duration of the message.</p>
</li> </li>
@ -2175,7 +2404,7 @@ The message text</p>
</li> </li>
<li> <li>
<p><code><em><a href="##(Duration)">#Duration</a> Duration </em></code>: <p><code><em><a href="DCSTypes.html##(Duration)">DCSTypes#Duration</a> Duration </em></code>:
The duration of the message.</p> The duration of the message.</p>
</li> </li>
@ -2212,7 +2441,7 @@ The message text</p>
</li> </li>
<li> <li>
<p><code><em><a href="##(Duration)">#Duration</a> Duration </em></code>: <p><code><em><a href="DCSTYpes.html##(Duration)">DCSTYpes#Duration</a> Duration </em></code>:
The duration of the message.</p> The duration of the message.</p>
</li> </li>
@ -2973,7 +3202,7 @@ The DCS task structure.</p>
</dt> </dt>
<dd> <dd>
<p>Return a Combo Task taking an array of Tasks</p> <p>Return a Combo Task taking an array of Tasks.</p>
<h3>Parameter</h3> <h3>Parameter</h3>
<ul> <ul>
@ -3000,7 +3229,7 @@ Array of <a href="DCSTask.html##(Task)">DCSTask#Task</a></p>
</dt> </dt>
<dd> <dd>
<p>Return a condition section for a controlled task</p> <p>Return a condition section for a controlled task.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3047,7 +3276,7 @@ return DCSTask#Task</p>
</dt> </dt>
<dd> <dd>
<p>Return a Controlled Task taking a Task and a TaskCondition</p> <p>Return a Controlled Task taking a Task and a TaskCondition.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3072,8 +3301,8 @@ return DCSTask#Task</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(GROUP).TaskEmbarkToTransportAtVec2" > <a id="#(GROUP).TaskEmbarkToTransport" >
<strong>GROUP:TaskEmbarkToTransportAtVec2(Point, Radius)</strong> <strong>GROUP:TaskEmbarkToTransport(Point, Radius)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@ -3105,13 +3334,13 @@ The DCS task structure.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(GROUP).TaskEmbarkingAtVec2" > <a id="#(GROUP).TaskEmbarking" >
<strong>GROUP:TaskEmbarkingAtVec2(Point, Duration, EmbarkingGroup)</strong> <strong>GROUP:TaskEmbarking(Point, Duration, EmbarkingGroup)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>Move the group to a Vec2 Point, wait for a defined duration and embark a group.</p> <p>(AIR) Move the group to a Vec2 Point, wait for a defined duration and embark a group.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3457,7 +3686,7 @@ self</p>
</dt> </dt>
<dd> <dd>
<p>(AIR) Land the group at a @{Zone#ZONE).</p> <p>(AIR) Land the group at a @{Zone#ZONE_RADIUS).</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3495,7 +3724,7 @@ self</p>
</dt> </dt>
<dd> <dd>
<p>Return a Misson task from a mission template.</p> <p>(AIR + GROUND) Return a mission task from a mission template.</p>
<h3>Parameter</h3> <h3>Parameter</h3>
<ul> <ul>
@ -3522,7 +3751,7 @@ A table containing the mission task.</p>
</dt> </dt>
<dd> <dd>
<p>(AIR) Orbit at the current position of the first unit of the group at a specified alititude</p> <p>(AIR) Orbit at the current position of the first unit of the group at a specified alititude.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3642,7 +3871,7 @@ A table of route points.</p>
</dt> </dt>
<dd> <dd>
<p>Make the DCS Group to fly to a given point and hover.</p> <p>(AIR + GROUND) Make the Group move to fly to a given point.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3675,7 +3904,7 @@ self</p>
</dt> </dt>
<dd> <dd>
<p>Make the DCS Group to fly to a given point and hover.</p> <p>(AIR + GROUND) Make the Group move to a given point.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>
@ -3708,7 +3937,7 @@ self</p>
</dt> </dt>
<dd> <dd>
<p>Route the group to a given zone.</p> <p>(AIR + GROUND) Route the group to a given zone.</p>
<p>The group final destination point can be randomized. <p>The group final destination point can be randomized.
@ -3753,7 +3982,7 @@ The formation string.</p>
</dt> </dt>
<dd> <dd>
<p>Return a WrappedAction Task taking a Command</p> <p>Return a WrappedAction Task taking a Command.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<ul> <ul>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li>Mission</li> <li>Mission</li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li>NOTASK</li> <li>NOTASK</li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li>PICKUPTASK</li> <li>PICKUPTASK</li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -0,0 +1,826 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="GroupSet.html">GroupSet</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li>Point</li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="UnitSet.html">UnitSet</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Point</code></h1>
<p>This module contains the POINT classes.</p>
<h1>1) <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a> class defines a 3D point in the simulator.</p>
<h2>1.1) POINT_VEC3 constructor</h2>
<p>A new POINT instance can be created with:</p>
<ul>
<li><a href="##(POINT_VEC3).New">POINT_VEC3.New</a>(): a 3D point.</li>
</ul>
<h1>2) <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> class, extends <a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a></h1>
<p>The <a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a> class defines a 2D point in the simulator. The height coordinate (if needed) will be the land height + an optional added height specified.</p>
<h2>2.1) POINT_VEC2 constructor</h2>
<p>A new POINT instance can be created with:</p>
<ul>
<li><a href="##(POINT_VEC2).New">POINT_VEC2.New</a>(): a 2D point.</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#POINT_VEC2">POINT_VEC2</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#POINT_VEC3">POINT_VEC3</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(POINT_VEC2)">Type <code>POINT_VEC2</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).ClassName">POINT_VEC2.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC2).New">POINT_VEC2:New(x, y, LandHeightAdd)</a></td>
<td class="summary">
<p>Create a new POINT_VEC2 object.</p>
</td>
</tr>
</table>
<h2><a id="#(POINT_VEC3)">Type <code>POINT_VEC3</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).ClassName">POINT_VEC3.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).Flare">POINT_VEC3:Flare(Point, (, FlareColor, Azimuth)</a></td>
<td class="summary">
<p>Flares the point in a color.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).FlareColor">POINT_VEC3.FlareColor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).FlareGreen">POINT_VEC3:FlareGreen((, Azimuth)</a></td>
<td class="summary">
<p>Flare the POINT_VEC3 Green.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).FlareRed">POINT_VEC3:FlareRed(Azimuth)</a></td>
<td class="summary">
<p>Flare the POINT_VEC3 Red.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).FlareWhite">POINT_VEC3:FlareWhite((, Azimuth)</a></td>
<td class="summary">
<p>Flare the POINT_VEC3 White.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).FlareYellow">POINT_VEC3:FlareYellow((, Azimuth)</a></td>
<td class="summary">
<p>Flare the POINT_VEC3 Yellow.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).New">POINT_VEC3:New(x, y, z)</a></td>
<td class="summary">
<p>Create a new POINT_VEC3 object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).Smoke">POINT_VEC3:Smoke(SmokeColor)</a></td>
<td class="summary">
<p>Smokes the point in a color.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).SmokeBlue">POINT_VEC3:SmokeBlue()</a></td>
<td class="summary">
<p>Smoke the POINT_VEC3 Blue.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).SmokeColor">POINT_VEC3.SmokeColor</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).SmokeGreen">POINT_VEC3:SmokeGreen()</a></td>
<td class="summary">
<p>Smoke the POINT_VEC3 Green.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).SmokeOrange">POINT_VEC3:SmokeOrange()</a></td>
<td class="summary">
<p>Smoke the POINT_VEC3 Orange.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).SmokeRed">POINT_VEC3:SmokeRed()</a></td>
<td class="summary">
<p>Smoke the POINT_VEC3 Red.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).SmokeWhite">POINT_VEC3:SmokeWhite()</a></td>
<td class="summary">
<p>Smoke the POINT_VEC3 White.</p>
</td>
</tr>
</table>
<h2><a id="#(POINT_VEC3.FlareColor)">Type <code>POINT_VEC3.FlareColor</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.FlareColor).Green">POINT_VEC3.FlareColor.Green</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.FlareColor).Red">POINT_VEC3.FlareColor.Red</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.FlareColor).White">POINT_VEC3.FlareColor.White</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.FlareColor).Yellow">POINT_VEC3.FlareColor.Yellow</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(POINT_VEC3.SmokeColor)">Type <code>POINT_VEC3.SmokeColor</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.SmokeColor).Blue">POINT_VEC3.SmokeColor.Blue</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.SmokeColor).Green">POINT_VEC3.SmokeColor.Green</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.SmokeColor).Orange">POINT_VEC3.SmokeColor.Orange</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.SmokeColor).Red">POINT_VEC3.SmokeColor.Red</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3.SmokeColor).White">POINT_VEC3.SmokeColor.White</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(POINT_VEC2)">#POINT_VEC2</a></em>
<a id="POINT_VEC2" >
<strong>POINT_VEC2</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(POINT_VEC3)">#POINT_VEC3</a></em>
<a id="POINT_VEC3" >
<strong>POINT_VEC3</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Point)" >Type <code>Point</code></a></h2>
<h2><a id="#(POINT_VEC2)" >Type <code>POINT_VEC2</code></a></h2>
<p>The POINT_VEC2 class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(POINT_VEC2).ClassName" >
<strong>POINT_VEC2.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC2).New" >
<strong>POINT_VEC2:New(x, y, LandHeightAdd)</strong>
</a>
</dt>
<dd>
<p>Create a new POINT_VEC2 object.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> x </em></code>:
The x coordinate of the Vec3 point, pointing to the North.</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> y </em></code>:
The y coordinate of the Vec3 point, pointing to the Right.</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> LandHeightAdd </em></code>:
(optional) The default height if required to be evaluated will be the land height of the x, y coordinate. You can specify an extra height to be added to the land height.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Point.html##(POINT_VEC2)">Point#POINT_VEC2</a>:</em></p>
</dd>
</dl>
<h2><a id="#(POINT_VEC3)" >Type <code>POINT_VEC3</code></a></h2>
<p>The POINT_VEC3 class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(POINT_VEC3).ClassName" >
<strong>POINT_VEC3.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).Flare" >
<strong>POINT_VEC3:Flare(Point, (, FlareColor, Azimuth)</strong>
</a>
</dt>
<dd>
<p>Flares the point in a color.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Point </em></code>:
POINT_VEC3.FlareColor</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Azimuth)">DCSTypes#Azimuth</a> ( </em></code>:
ptional) Azimuth The azimuth of the flare direction. The default azimuth is 0.</p>
</li>
<li>
<p><code><em> FlareColor </em></code>: </p>
</li>
<li>
<p><code><em> Azimuth </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(POINT_VEC3.FlareColor)">#POINT_VEC3.FlareColor</a></em>
<a id="#(POINT_VEC3).FlareColor" >
<strong>POINT_VEC3.FlareColor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).FlareGreen" >
<strong>POINT_VEC3:FlareGreen((, Azimuth)</strong>
</a>
</dt>
<dd>
<p>Flare the POINT_VEC3 Green.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Azimuth)">DCSTypes#Azimuth</a> ( </em></code>:
ptional) Azimuth The azimuth of the flare direction. The default azimuth is 0.</p>
</li>
<li>
<p><code><em> Azimuth </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).FlareRed" >
<strong>POINT_VEC3:FlareRed(Azimuth)</strong>
</a>
</dt>
<dd>
<p>Flare the POINT_VEC3 Red.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Azimuth </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).FlareWhite" >
<strong>POINT_VEC3:FlareWhite((, Azimuth)</strong>
</a>
</dt>
<dd>
<p>Flare the POINT_VEC3 White.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Azimuth)">DCSTypes#Azimuth</a> ( </em></code>:
ptional) Azimuth The azimuth of the flare direction. The default azimuth is 0.</p>
</li>
<li>
<p><code><em> Azimuth </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).FlareYellow" >
<strong>POINT_VEC3:FlareYellow((, Azimuth)</strong>
</a>
</dt>
<dd>
<p>Flare the POINT_VEC3 Yellow.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Azimuth)">DCSTypes#Azimuth</a> ( </em></code>:
ptional) Azimuth The azimuth of the flare direction. The default azimuth is 0.</p>
</li>
<li>
<p><code><em> Azimuth </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).New" >
<strong>POINT_VEC3:New(x, y, z)</strong>
</a>
</dt>
<dd>
<p>Create a new POINT_VEC3 object.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> x </em></code>:
The x coordinate of the Vec3 point, pointing to the North.</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> y </em></code>:
The y coordinate of the Vec3 point, pointing Upwards.</p>
</li>
<li>
<p><code><em><a href="DCSTypes.html##(Distance)">DCSTypes#Distance</a> z </em></code>:
The z coordinate of the Vec3 point, pointing to the Right.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="Point.html##(POINT_VEC3)">Point#POINT_VEC3</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).Smoke" >
<strong>POINT_VEC3:Smoke(SmokeColor)</strong>
</a>
</dt>
<dd>
<p>Smokes the point in a color.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Point.html##(POINT_VEC3.SmokeColor)">Point#POINT_VEC3.SmokeColor</a> SmokeColor </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).SmokeBlue" >
<strong>POINT_VEC3:SmokeBlue()</strong>
</a>
</dt>
<dd>
<p>Smoke the POINT_VEC3 Blue.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(POINT_VEC3.SmokeColor)">#POINT_VEC3.SmokeColor</a></em>
<a id="#(POINT_VEC3).SmokeColor" >
<strong>POINT_VEC3.SmokeColor</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).SmokeGreen" >
<strong>POINT_VEC3:SmokeGreen()</strong>
</a>
</dt>
<dd>
<p>Smoke the POINT_VEC3 Green.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).SmokeOrange" >
<strong>POINT_VEC3:SmokeOrange()</strong>
</a>
</dt>
<dd>
<p>Smoke the POINT_VEC3 Orange.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).SmokeRed" >
<strong>POINT_VEC3:SmokeRed()</strong>
</a>
</dt>
<dd>
<p>Smoke the POINT_VEC3 Red.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).SmokeWhite" >
<strong>POINT_VEC3:SmokeWhite()</strong>
</a>
</dt>
<dd>
<p>Smoke the POINT_VEC3 White.</p>
</dd>
</dl>
<h2><a id="#(POINT_VEC3.FlareColor)" >Type <code>POINT_VEC3.FlareColor</code></a></h2>
<p>FlareColor</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.FlareColor).Green" >
<strong>POINT_VEC3.FlareColor.Green</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.FlareColor).Red" >
<strong>POINT_VEC3.FlareColor.Red</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.FlareColor).White" >
<strong>POINT_VEC3.FlareColor.White</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.FlareColor).Yellow" >
<strong>POINT_VEC3.FlareColor.Yellow</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(POINT_VEC3.SmokeColor)" >Type <code>POINT_VEC3.SmokeColor</code></a></h2>
<p>SmokeColor</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.SmokeColor).Blue" >
<strong>POINT_VEC3.SmokeColor.Blue</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.SmokeColor).Green" >
<strong>POINT_VEC3.SmokeColor.Green</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.SmokeColor).Orange" >
<strong>POINT_VEC3.SmokeColor.Orange</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.SmokeColor).Red" >
<strong>POINT_VEC3.SmokeColor.Red</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3.SmokeColor).White" >
<strong>POINT_VEC3.SmokeColor.White</strong>
</a>
</dt>
<dd>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li>ROUTETASK</li> <li>ROUTETASK</li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li>STAGE</li> <li>STAGE</li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li>Scheduler</li> <li>Scheduler</li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li>Sead</li> <li>Sead</li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li>Set</li> <li>Set</li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li>Spawn</li> <li>Spawn</li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>
@ -71,11 +73,11 @@
<div id="content"> <div id="content">
<h1>Module <code>Spawn</code></h1> <h1>Module <code>Spawn</code></h1>
<p>Dynamic spawning of groups (and units).</p> <p>This module contains the SPAWN class.</p>
<h1><a href="##(SPAWN)">#SPAWN</a> class</h1> <h1>1) <a href="Spawn.html##(SPAWN)">Spawn#SPAWN</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="##(SPAWN)">#SPAWN</a> class allows to spawn dynamically new groups, based on pre-defined initialization settings, modifying the behaviour when groups are spawned. <p>The <a href="##(SPAWN)">#SPAWN</a> class allows to spawn dynamically new groups, based on pre-defined initialization settings, modifying the behaviour when groups are spawned.
For each group to be spawned, within the mission editor, a group has to be created with the "late activation flag" set. We call this group the <em>"Spawn Template"</em> of the SPAWN object. For each group to be spawned, within the mission editor, a group has to be created with the "late activation flag" set. We call this group the <em>"Spawn Template"</em> of the SPAWN object.
A reference to this Spawn Template needs to be provided when constructing the SPAWN object, by indicating the name of the group within the mission editor in the constructor methods.</p> A reference to this Spawn Template needs to be provided when constructing the SPAWN object, by indicating the name of the group within the mission editor in the constructor methods.</p>
@ -102,7 +104,7 @@ Groups will follow the following naming structure when spawned at run-time:</p>
<li>When designing a mission, NEVER name groups using a "#" within the name of the group Spawn Template(s), or the SPAWN module logic won't work anymore.</li> <li>When designing a mission, NEVER name groups using a "#" within the name of the group Spawn Template(s), or the SPAWN module logic won't work anymore.</li>
</ul> </ul>
<h1>SPAWN construction methods:</h1> <h2>1.1) SPAWN construction methods</h2>
<p>Create a new SPAWN object with the <a href="##(SPAWN).New">SPAWN.New</a> or the <a href="##(SPAWN).NewWithAlias">SPAWN.NewWithAlias</a> methods:</p> <p>Create a new SPAWN object with the <a href="##(SPAWN).New">SPAWN.New</a> or the <a href="##(SPAWN).NewWithAlias">SPAWN.NewWithAlias</a> methods:</p>
<ul> <ul>
@ -113,7 +115,7 @@ Groups will follow the following naming structure when spawned at run-time:</p>
The initialization functions will modify this list of groups so that when a group gets spawned, ALL information is already prepared when spawning. This is done for performance reasons. The initialization functions will modify this list of groups so that when a group gets spawned, ALL information is already prepared when spawning. This is done for performance reasons.
So in principle, the group list will contain all parameters and configurations after initialization, and when groups get actually spawned, this spawning can be done quickly and efficient.</p> So in principle, the group list will contain all parameters and configurations after initialization, and when groups get actually spawned, this spawning can be done quickly and efficient.</p>
<h1>SPAWN initialization methods: </h1> <h2>1.2) SPAWN initialization methods</h2>
<p>A spawn object will behave differently based on the usage of initialization methods: </p> <p>A spawn object will behave differently based on the usage of initialization methods: </p>
<ul> <ul>
@ -125,7 +127,7 @@ So in principle, the group list will contain all parameters and configurations a
<li><a href="##(SPAWN).InitRepeat">SPAWN.InitRepeat</a>: Re-spawn groups when they land at the home base. Similar functions are <a href="##(SPAWN).InitRepeatOnLanding">SPAWN.InitRepeatOnLanding</a> and <a href="##(SPAWN).InitRepeatOnEngineShutDown">SPAWN.InitRepeatOnEngineShutDown</a>.</li> <li><a href="##(SPAWN).InitRepeat">SPAWN.InitRepeat</a>: Re-spawn groups when they land at the home base. Similar functions are <a href="##(SPAWN).InitRepeatOnLanding">SPAWN.InitRepeatOnLanding</a> and <a href="##(SPAWN).InitRepeatOnEngineShutDown">SPAWN.InitRepeatOnEngineShutDown</a>.</li>
</ul> </ul>
<h1>SPAWN spawning methods:</h1> <h2>1.3) SPAWN spawning methods</h2>
<p>Groups can be spawned at different times and methods:</p> <p>Groups can be spawned at different times and methods:</p>
<ul> <ul>
@ -139,7 +141,7 @@ So in principle, the group list will contain all parameters and configurations a
<p>Note that <a href="##(SPAWN).Spawn">SPAWN.Spawn</a> and <a href="##(SPAWN).ReSpawn">SPAWN.ReSpawn</a> return a <a href="GROUP.html##(GROUP).New">GROUP#GROUP.New</a> object, that contains a reference to the DCSGroup object. <p>Note that <a href="##(SPAWN).Spawn">SPAWN.Spawn</a> and <a href="##(SPAWN).ReSpawn">SPAWN.ReSpawn</a> return a <a href="GROUP.html##(GROUP).New">GROUP#GROUP.New</a> object, that contains a reference to the DCSGroup object.
You can use the <a href="GROUP.html">GROUP</a> object to do further actions with the DCSGroup.</p> You can use the <a href="GROUP.html">GROUP</a> object to do further actions with the DCSGroup.</p>
<h1>SPAWN object cleaning:</h1> <h2>1.4) SPAWN object cleaning</h2>
<p>Sometimes, it will occur during a mission run-time, that ground or especially air objects get damaged, and will while being damged stop their activities, while remaining alive. <p>Sometimes, it will occur during a mission run-time, that ground or especially air objects get damaged, and will while being damged stop their activities, while remaining alive.
In such cases, the SPAWN object will just sit there and wait until that group gets destroyed, but most of the time it won't, In such cases, the SPAWN object will just sit there and wait until that group gets destroyed, but most of the time it won't,
and it may occur that no new groups are or can be spawned as limits are reached. and it may occur that no new groups are or can be spawned as limits are reached.
@ -150,7 +152,7 @@ In such a case, when the inactive group is cleaned, a new group will Re-spawned
This models AI that has succesfully returned to their airbase, to restart their combat activities. This models AI that has succesfully returned to their airbase, to restart their combat activities.
Check the <a href="##(SPAWN).CleanUp">SPAWN.CleanUp</a> for further info.</p> Check the <a href="##(SPAWN).CleanUp">SPAWN.CleanUp</a> for further info.</p>
<hr/>
<h2>Global(s)</h2> <h2>Global(s)</h2>
<table class="function_list"> <table class="function_list">

View File

@ -0,0 +1,253 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="Base.html">Base</a></li>
<li><a href="CARGO.html">CARGO</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="DCSAirbase.html">DCSAirbase</a></li>
<li><a href="DCSCoalitionObject.html">DCSCoalitionObject</a></li>
<li><a href="DCSCommand.html">DCSCommand</a></li>
<li><a href="DCSController.html">DCSController</a></li>
<li><a href="DCSGroup.html">DCSGroup</a></li>
<li><a href="DCSObject.html">DCSObject</a></li>
<li><a href="DCSTask.html">DCSTask</a></li>
<li><a href="DCSTypes.html">DCSTypes</a></li>
<li><a href="DCSUnit.html">DCSUnit</a></li>
<li><a href="DCSWorld.html">DCSWorld</a></li>
<li><a href="DCStimer.html">DCStimer</a></li>
<li><a href="DEPLOYTASK.html">DEPLOYTASK</a></li>
<li><a href="DESTROYBASETASK.html">DESTROYBASETASK</a></li>
<li><a href="DESTROYGROUPSTASK.html">DESTROYGROUPSTASK</a></li>
<li><a href="DESTROYRADARSTASK.html">DESTROYRADARSTASK</a></li>
<li><a href="DESTROYUNITTYPESTASK.html">DESTROYUNITTYPESTASK</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="GOHOMETASK.html">GOHOMETASK</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="GroupSet.html">GroupSet</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li>Static</li>
<li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="UnitSet.html">UnitSet</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="env.html">env</a></li>
<li><a href="land.html">land</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Static</code></h1>
<p>This module contains the STATIC class.</p>
<h1>1) <a href="Static.html##(STATIC)">Static#STATIC</a> class, extends <a href="Unit.html##(UNIT)">Unit#UNIT</a></h1>
<p>Statics are <strong>Static Units</strong> defined within the Mission Editor.
Note that Statics are almost the same as Units, but they don't have a controller.
The <a href="Static.html##(STATIC)">Static#STATIC</a> class is a wrapper class to handle the DCS Static objects:</p>
<ul>
<li>Wraps the DCS Static objects.</li>
<li>Support all DCS Static APIs.</li>
<li>Enhance with Static specific APIs not in the DCS API set.</li>
</ul>
<h2>1.1) STATIC reference methods</h2>
<p>For each DCS Static will have a STATIC wrapper object (instance) within the _<a href="DATABASE.html">DATABASE</a> object.
This is done at the beginning of the mission (when the mission starts).</p>
<p>The STATIC class does not contain a :New() method, rather it provides :Find() methods to retrieve the object reference
using the Static Name.</p>
<p>Another thing to know is that STATIC objects do not "contain" the DCS Static object.
The STATIc methods will reference the DCS Static object by name when it is needed during API execution.
If the DCS Static object does not exist or is nil, the STATIC methods will return nil and log an exception in the DCS.log file.</p>
<p>The STATIc class provides the following functions to retrieve quickly the relevant STATIC instance:</p>
<ul>
<li><a href="##(STATIC).FindByName">STATIC.FindByName</a>(): Find a STATIC instance from the _DATABASE object using a DCS Static name.</li>
</ul>
<p>IMPORTANT: ONE SHOULD NEVER SANATIZE these STATIC OBJECT REFERENCES! (make the STATIC object references nil).</p>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#STATIC">STATIC</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(STATIC)">Type <code>STATIC</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(STATIC).ClassName">STATIC.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(STATIC).FindByName">STATIC:FindByName(StaticName)</a></td>
<td class="summary">
<p>Finds a STATIC from the _DATABASE using the relevant Static Name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(STATIC).GetDCSUnit">STATIC:GetDCSUnit()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(STATIC).Register">STATIC:Register(StaticName)</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(STATIC)">#STATIC</a></em>
<a id="STATIC" >
<strong>STATIC</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Static)" >Type <code>Static</code></a></h2>
<h2><a id="#(STATIC)" >Type <code>STATIC</code></a></h2>
<p>The STATIC class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(STATIC).ClassName" >
<strong>STATIC.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(STATIC).FindByName" >
<strong>STATIC:FindByName(StaticName)</strong>
</a>
</dt>
<dd>
<p>Finds a STATIC from the _DATABASE using the relevant Static Name.</p>
<p>As an optional parameter, a briefing text can be given also.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string StaticName </em></code>:
Name of the DCS <strong>Static</strong> as defined within the Mission Editor.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(STATIC)">#STATIC</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(STATIC).GetDCSUnit" >
<strong>STATIC:GetDCSUnit()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(STATIC).Register" >
<strong>STATIC:Register(StaticName)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> StaticName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
</div>
</div>
</body>
</html>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li>StaticObject</li> <li>StaticObject</li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li>TASK</li> <li>TASK</li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li>Unit</li> <li>Unit</li>
@ -71,24 +73,22 @@
<div id="content"> <div id="content">
<h1>Module <code>Unit</code></h1> <h1>Module <code>Unit</code></h1>
<p>UNIT Class</p> <p>This module contains the UNIT class.</p>
<h1><a href="UNIT.html">UNIT</a> class</h1>
<p>The <a href="UNIT.html">UNIT</a> class is a wrapper class to handle the DCS Unit objects:</p>
<h1>1) <a href="Unit.html##(UNIT)">Unit#UNIT</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="Unit.html##(UNIT)">Unit#UNIT</a> class is a wrapper class to handle the DCS Unit objects:</p>
<ul> <ul>
<li>Support all DCS Unit APIs.</li> <li>Support all DCS Unit APIs.</li>
</ul>
<ul>
<li>Enhance with Unit specific APIs not in the DCS Unit API set.</li> <li>Enhance with Unit specific APIs not in the DCS Unit API set.</li>
<li>Handle local Unit Controller.</li> <li>Handle local Unit Controller.</li>
<li>Manage the "state" of the DCS Unit.</li> <li>Manage the "state" of the DCS Unit.</li>
</ul> </ul>
<h1>UNIT reference methods</h1> <h2>1.1) UNIT reference methods</h2>
<p>For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object. <p>For each DCS Unit object alive within a running mission, a UNIT wrapper object (instance) will be created within the _<a href="DATABASE.html">DATABASE</a> object.
This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Unit objects are spawned (using the <a href="SPAWN.html">SPAWN</a> class).</p> This is done at the beginning of the mission (when the mission starts), and dynamically when new DCS Unit objects are spawned (using the <a href="SPAWN.html">SPAWN</a> class).</p>
@ -108,16 +108,13 @@ If the DCS Unit object does not exist or is nil, the UNIT methods will return ni
<p>IMPORTANT: ONE SHOULD NEVER SANATIZE these UNIT OBJECT REFERENCES! (make the UNIT object references nil).</p> <p>IMPORTANT: ONE SHOULD NEVER SANATIZE these UNIT OBJECT REFERENCES! (make the UNIT object references nil).</p>
<h1>DCS UNIT APIs</h1> <h2>1.2) DCS UNIT APIs</h2>
<p>The DCS Unit APIs are used extensively within MOOSE. The UNIT class has for each DCS Unit API a corresponding method. <p>The DCS Unit APIs are used extensively within MOOSE. The UNIT class has for each DCS Unit API a corresponding method.
To be able to distinguish easily in your code the difference between a UNIT API call and a DCS Unit API call, To be able to distinguish easily in your code the difference between a UNIT API call and a DCS Unit API call,
the first letter of the method is also capitalized. So, by example, the DCS Unit method <a href="DCSUnit.html##(Unit).getName">DCSUnit#Unit.getName</a>() the first letter of the method is also capitalized. So, by example, the DCS Unit method <a href="DCSUnit.html##(Unit).getName">DCSUnit#Unit.getName</a>()
is implemented in the UNIT class as <a href="##(UNIT).GetName">UNIT.GetName</a>().</p> is implemented in the UNIT class as <a href="##(UNIT).GetName">UNIT.GetName</a>().</p>
<h1>Additional UNIT APIs</h1> <h2>1.3) Smoke, Flare Units</h2>
<p>The UNIT class comes with additional methods. Find below a summary.</p>
<h2>Smoke, Flare Units</h2>
<p>The UNIT class provides methods to smoke or flare units easily. <p>The UNIT class provides methods to smoke or flare units easily.
The <a href="##(UNIT).SmokeBlue">UNIT.SmokeBlue</a>(), <a href="##(UNIT).SmokeGreen">UNIT.SmokeGreen</a>(),<a href="##(UNIT).SmokeOrange">UNIT.SmokeOrange</a>(), <a href="##(UNIT).SmokeRed">UNIT.SmokeRed</a>(), <a href="##(UNIT).SmokeRed">UNIT.SmokeRed</a>() methods The <a href="##(UNIT).SmokeBlue">UNIT.SmokeBlue</a>(), <a href="##(UNIT).SmokeGreen">UNIT.SmokeGreen</a>(),<a href="##(UNIT).SmokeOrange">UNIT.SmokeOrange</a>(), <a href="##(UNIT).SmokeRed">UNIT.SmokeRed</a>(), <a href="##(UNIT).SmokeRed">UNIT.SmokeRed</a>() methods
will smoke the unit in the corresponding color. Note that smoking a unit is done at the current position of the DCS Unit. will smoke the unit in the corresponding color. Note that smoking a unit is done at the current position of the DCS Unit.
@ -125,22 +122,22 @@ When the DCS Unit moves for whatever reason, the smoking will still continue!
The <a href="##(UNIT).FlareGreen">UNIT.FlareGreen</a>(), <a href="##(UNIT).FlareRed">UNIT.FlareRed</a>(), <a href="##(UNIT).FlareWhite">UNIT.FlareWhite</a>(), <a href="##(UNIT).FlareYellow">UNIT.FlareYellow</a>() The <a href="##(UNIT).FlareGreen">UNIT.FlareGreen</a>(), <a href="##(UNIT).FlareRed">UNIT.FlareRed</a>(), <a href="##(UNIT).FlareWhite">UNIT.FlareWhite</a>(), <a href="##(UNIT).FlareYellow">UNIT.FlareYellow</a>()
methods will fire off a flare in the air with the corresponding color. Note that a flare is a one-off shot and its effect is of very short duration.</p> methods will fire off a flare in the air with the corresponding color. Note that a flare is a one-off shot and its effect is of very short duration.</p>
<h2>Position, Point</h2> <h2>1.4) Location Position, Point</h2>
<p>The UNIT class provides methods to obtain the current point or position of the DCS Unit. <p>The UNIT class provides methods to obtain the current point or position of the DCS Unit.
The <a href="##(UNIT).GetPointVec2">UNIT.GetPointVec2</a>(), <a href="##(UNIT).GetPointVec3">UNIT.GetPointVec3</a>() will obtain the current location of the DCS Unit in a Vec2 (2D) or a Vec3 (3D) vector respectively. The <a href="##(UNIT).GetPointVec2">UNIT.GetPointVec2</a>(), <a href="##(UNIT).GetPointVec3">UNIT.GetPointVec3</a>() will obtain the current <strong>location</strong> of the DCS Unit in a Vec2 (2D) or a <strong>point</strong> in a Vec3 (3D) vector respectively.
If you want to obtain the complete 3D position including oriëntation and direction vectors, consult the <a href="##(UNIT).GetPositionVec3">UNIT.GetPositionVec3</a>() method respectively.</p> If you want to obtain the complete <strong>3D position</strong> including oriëntation and direction vectors, consult the <a href="##(UNIT).GetPositionVec3">UNIT.GetPositionVec3</a>() method respectively.</p>
<h2>Alive</h2> <h2>1.5) Test if alive</h2>
<p>The <a href="##(UNIT).IsAlive">UNIT.IsAlive</a>(), <a href="##(UNIT).IsActive">UNIT.IsActive</a>() methods determines if the DCS Unit is alive, meaning, it is existing and active.</p> <p>The <a href="##(UNIT).IsAlive">UNIT.IsAlive</a>(), <a href="##(UNIT).IsActive">UNIT.IsActive</a>() methods determines if the DCS Unit is alive, meaning, it is existing and active.</p>
<h2>Test for other units in radius</h2> <h2>1.6) Test for proximity</h2>
<p>One can test if another DCS Unit is within a given radius of the current DCS Unit, by using the <a href="##(UNIT).OtherUnitInRadius">UNIT.OtherUnitInRadius</a>() method.</p> <p>The UNIT class contains methods to test the location or proximity against zones or other objects.</p>
<h2>More functions will be added</h2>
<p>During the MOOSE development, more functions will be added. A complete list of the current functions is below.</p>
<h3>1.6.1) Zones</h3>
<p>To test whether the Unit is within a <strong>zone</strong>, use the <a href="##(UNIT).IsInZone">UNIT.IsInZone</a>() or the <a href="##(UNIT).IsNotInZone">UNIT.IsNotInZone</a>() methods. Any zone can be tested on, but the zone must be derived from <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a>. </p>
<h3>1.6.2) Units</h3>
<p>Test if another DCS Unit is within a given radius of the current DCS Unit, use the <a href="##(UNIT).OtherUnitInRadius">UNIT.OtherUnitInRadius</a>() method.</p>
<h2>Global(s)</h2> <h2>Global(s)</h2>
@ -384,6 +381,18 @@ If you want to obtain the complete 3D position including ori
<td class="name" nowrap="nowrap"><a href="##(UNIT).IsAlive">UNIT:IsAlive()</a></td> <td class="name" nowrap="nowrap"><a href="##(UNIT).IsAlive">UNIT:IsAlive()</a></td>
<td class="summary"> <td class="summary">
<p>Returns if the unit is alive.</p> <p>Returns if the unit is alive.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).IsInZone">UNIT:IsInZone(Zone)</a></td>
<td class="summary">
<p>Returns true if the unit is within a <a href="Zone.html">Zone</a>.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(UNIT).IsNotInZone">UNIT:IsNotInZone(Zone)</a></td>
<td class="summary">
<p>Returns true if the unit is not within a <a href="Zone.html">Zone</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -1487,6 +1496,60 @@ The DCS Unit is not existing or alive. </p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(UNIT).IsInZone" >
<strong>UNIT:IsInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Returns true if the unit is within a <a href="Zone.html">Zone</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a> Zone </em></code>:
The zone to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the unit is within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).IsNotInZone" >
<strong>UNIT:IsNotInZone(Zone)</strong>
</a>
</dt>
<dd>
<p>Returns true if the unit is not within a <a href="Zone.html">Zone</a>.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a> Zone </em></code>:
The zone to test.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Returns true if the unit is not within the <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(UNIT).OtherUnitInRadius" > <a id="#(UNIT).OtherUnitInRadius" >
<strong>UNIT:OtherUnitInRadius(AwaitUnit, Radius)</strong> <strong>UNIT:OtherUnitInRadius(AwaitUnit, Radius)</strong>
</a> </a>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>
@ -105,7 +107,7 @@
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Client.html">Client</a></td> <td class="name" nowrap="nowrap"><a href="Client.html">Client</a></td>
<td class="summary"> <td class="summary">
<p>The CLIENT models client units in multi player missions.</p> <p>This module contains the CLIENT class.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -231,7 +233,7 @@
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Group.html">Group</a></td> <td class="name" nowrap="nowrap"><a href="Group.html">Group</a></td>
<td class="summary"> <td class="summary">
<p>GROUP class.</p> <p>This module contains the GROUP class.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -280,6 +282,12 @@
<td class="name" nowrap="nowrap"><a href="PICKUPTASK.html">PICKUPTASK</a></td> <td class="name" nowrap="nowrap"><a href="PICKUPTASK.html">PICKUPTASK</a></td>
<td class="summary"> <td class="summary">
<p>A PICKUPTASK orchestrates the loading of CARGO at a specific landing zone.</p> <p>A PICKUPTASK orchestrates the loading of CARGO at a specific landing zone.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="Point.html">Point</a></td>
<td class="summary">
<p>This module contains the POINT classes.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -321,7 +329,13 @@
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Spawn.html">Spawn</a></td> <td class="name" nowrap="nowrap"><a href="Spawn.html">Spawn</a></td>
<td class="summary"> <td class="summary">
<p>Dynamic spawning of groups (and units).</p> <p>This module contains the SPAWN class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="Static.html">Static</a></td>
<td class="summary">
<p>This module contains the STATIC class.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -339,14 +353,7 @@
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Unit.html">Unit</a></td> <td class="name" nowrap="nowrap"><a href="Unit.html">Unit</a></td>
<td class="summary"> <td class="summary">
<p>UNIT Class</p> <p>This module contains the UNIT class.</p>
<h1><a href="UNIT.html">UNIT</a> class</h1>
<p>The <a href="UNIT.html">UNIT</a> class is a wrapper class to handle the DCS Unit objects:</p>
<ul>
<li>Support all DCS Unit APIs.</li>
</ul>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -358,7 +365,7 @@
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Zone.html">Zone</a></td> <td class="name" nowrap="nowrap"><a href="Zone.html">Zone</a></td>
<td class="summary"> <td class="summary">
<p>ZONE Classes</p> <p>This module contains the ZONE classes, inherited from <a href="Zone.html##(ZONE_BASE)">Zone#ZONE_BASE</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>

View File

@ -51,6 +51,7 @@
<li><a href="Mission.html">Mission</a></li> <li><a href="Mission.html">Mission</a></li>
<li><a href="NOTASK.html">NOTASK</a></li> <li><a href="NOTASK.html">NOTASK</a></li>
<li><a href="PICKUPTASK.html">PICKUPTASK</a></li> <li><a href="PICKUPTASK.html">PICKUPTASK</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="ROUTETASK.html">ROUTETASK</a></li> <li><a href="ROUTETASK.html">ROUTETASK</a></li>
<li><a href="STAGE.html">STAGE</a></li> <li><a href="STAGE.html">STAGE</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
@ -58,6 +59,7 @@
<li><a href="Sead.html">Sead</a></li> <li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li> <li><a href="Set.html">Set</a></li>
<li><a href="Spawn.html">Spawn</a></li> <li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="StaticObject.html">StaticObject</a></li> <li><a href="StaticObject.html">StaticObject</a></li>
<li><a href="TASK.html">TASK</a></li> <li><a href="TASK.html">TASK</a></li>
<li><a href="Unit.html">Unit</a></li> <li><a href="Unit.html">Unit</a></li>