Merge remote-tracking branch 'refs/remotes/origin/master' into FlightControl

# Conflicts:
#	Moose Mission Setup/Moose Mission Update/l10n/DEFAULT/Moose.lua
#	Moose Mission Setup/Moose.lua
#	Moose Test Missions/SPA - Spawning/SPA-010 - Spawn Demo/SPA-010 -
Spawn Demo.miz
#	Moose Test Missions/SPA - Spawning/SPA-011 - Ground Ops - Simple
Spawning/SPA-011 - Ground Ops - Simple Spawning.miz
#	Moose Test Missions/SPA - Spawning/SPA-012 - Ground Ops - Multiple
Spawns/SPA-012 - Ground Ops - Multiple Spawns.miz
#	Moose Test Missions/SPA - Spawning/SPA-013 - Ground Ops - Scheduled
Spawns/SPA-013 - Ground Ops - Scheduled Spawns.miz
#	Moose Test Missions/SPA - Spawning/SPA-014 - Ground Ops - Scheduled
Spawns Limited/SPA-014 - Ground Ops - Scheduled Spawns Limited.miz
#	Moose Test Missions/SPA - Spawning/SPA-015 - Ground Ops - Randomize
Route/SPA-015 - Ground Ops - Randomize Route.miz
#	Moose Test Missions/SPA - Spawning/SPA-016 - Ground Ops - Randomize
Zones/SPA-016 - Ground Ops - Randomize Zones.miz
#	Moose Test Missions/SPA - Spawning/SPA-017 - Ground Ops - Set AI
inactive while spawning/SPA-017 - Ground Ops - Set AI inactive while
spawning.miz
#	Moose Test Missions/SPA - Spawning/SPA-018 - Ground Ops - Randomize
Templates/SPA-018 - Ground Ops - Randomize Templates.miz
#	Moose Test Missions/SPA - Spawning/SPA-100 - CleanUp Inactive
Units/SPA-100 - CleanUp Inactive Units.miz
#	Moose Test Missions/SPA - Spawning/SPA-110 - Limit Spawning/SPA-110 -
Limit Spawning.miz
#	Moose Test Missions/SPA - Spawning/SPA-121 - Air Ops - Scheduled
Spawns with Repeat on Landing with Limit/SPA-121 - Air Ops - Scheduled
Spawns with Repeat on Landing with Limit.miz
#	Moose Test Missions/SPA - Spawning/SPA-130 - Uncontrolled
Spawning/SPA-130 - Uncontrolled Spawning.miz
#	Moose Test Missions/SPA - Spawning/SPA-200 - Randomize Unit
Types/SPA-200 - Randomize Unit Types.miz
#	Moose Test Missions/SPA - Spawning/SPA-220 - Randomize Zones/SPA-220 -
Randomize Zones.miz
#	Moose Test Missions/SPA - Spawning/SPA-310 - Spawn at Static
position/SPA-310 - Spawn at Static position.miz
#	Moose Test Missions/SPA - Spawning/SPA-320 - Spawn at Unit
position/SPA-320 - Spawn at Unit position.miz
#	Moose Test Missions/SPA - Spawning/SPA-330 - Spawn at Vec2
position/SPA-330 - Spawn at Vec2 position.miz
#	Moose Test Missions/SPA - Spawning/SPA-340 - Spawn at Vec3
position/SPA-340 - Spawn at Vec3 position.miz
#	Moose Test Missions/ZON - Zones/ZON-100 - Normal Zone/ZON-100 - Normal
Zone.miz
#	docs/Documentation/Zone.html
This commit is contained in:
FlightControl
2017-03-03 09:51:17 +01:00
102 changed files with 4247 additions and 659 deletions
Binary file not shown.
+11 -8
View File
@@ -1,4 +1,4 @@
--- Single-Player:**No** / Mulit-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**All** -- **AI Balancing will replace in multi player missions --- Single-Player:**No** / Multi-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**All** -- **AI Balancing will replace in multi player missions
-- non-occupied human slots with AI groups, in order to provide an engaging simulation environment, -- non-occupied human slots with AI groups, in order to provide an engaging simulation environment,
-- even when there are hardly any players in the mission.** -- even when there are hardly any players in the mission.**
-- --
@@ -116,6 +116,7 @@ function AI_BALANCER:New( SetClient, SpawnAI )
-- Inherits from BASE -- Inherits from BASE
local self = BASE:Inherit( self, FSM_SET:New( SET_GROUP:New() ) ) -- AI.AI_Balancer#AI_BALANCER local self = BASE:Inherit( self, FSM_SET:New( SET_GROUP:New() ) ) -- AI.AI_Balancer#AI_BALANCER
-- TODO: Define the OnAfterSpawned event
self:SetStartState( "None" ) self:SetStartState( "None" )
self:AddTransition( "*", "Monitor", "Monitoring" ) self:AddTransition( "*", "Monitor", "Monitoring" )
self:AddTransition( "*", "Spawn", "Spawning" ) self:AddTransition( "*", "Spawn", "Spawning" )
@@ -179,15 +180,17 @@ function AI_BALANCER:onenterSpawning( SetGroup, From, Event, To, ClientName )
-- OK, Spawn a new group from the default SpawnAI object provided. -- OK, Spawn a new group from the default SpawnAI object provided.
local AIGroup = self.SpawnAI:Spawn() -- Wrapper.Group#GROUP local AIGroup = self.SpawnAI:Spawn() -- Wrapper.Group#GROUP
AIGroup:E( "Spawning new AIGroup" ) if AIGroup then
--TODO: need to rework UnitName thing ... AIGroup:E( "Spawning new AIGroup" )
--TODO: need to rework UnitName thing ...
SetGroup:Add( ClientName, AIGroup ) SetGroup:Add( ClientName, AIGroup )
self.SpawnQueue[ClientName] = nil self.SpawnQueue[ClientName] = nil
-- Fire the Spawned event. The first parameter is the AIGroup just Spawned. -- Fire the Spawned event. The first parameter is the AIGroup just Spawned.
-- Mission designers can catch this event to bind further actions to the AIGroup. -- Mission designers can catch this event to bind further actions to the AIGroup.
self:Spawned( AIGroup ) self:Spawned( AIGroup )
end
end end
--- @param #AI_BALANCER self --- @param #AI_BALANCER self
+1 -1
View File
@@ -1,4 +1,4 @@
--- Single-Player:**Yes** / Mulit-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Air** -- **Execute Combat Air Patrol (CAP).** --- Single-Player:**Yes** / Multi-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Air** -- **Execute Combat Air Patrol (CAP).**
-- --
-- ![Banner Image](..\Presentations\AI_CAP\Dia1.JPG) -- ![Banner Image](..\Presentations\AI_CAP\Dia1.JPG)
-- --
+2 -2
View File
@@ -1,4 +1,4 @@
--- Single-Player:**Yes** / Mulit-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Air** -- --- Single-Player:**Yes** / Multi-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Air** --
-- **Provide Close Air Support to friendly ground troops.** -- **Provide Close Air Support to friendly ground troops.**
-- --
-- ![Banner Image](..\Presentations\AI_CAS\Dia1.JPG) -- ![Banner Image](..\Presentations\AI_CAS\Dia1.JPG)
@@ -136,8 +136,8 @@ AI_CAS_ZONE = {
-- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol. -- @param Dcs.DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
-- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h. -- @param Dcs.DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Controllable} in km/h.
-- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h. -- @param Dcs.DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Controllable} in km/h.
-- @param Core.Zone#ZONE_BASE EngageZone The zone where the engage will happen.
-- @param Dcs.DCSTypes#AltitudeType PatrolAltType The altitude type ("RADIO"=="AGL", "BARO"=="ASL"). Defaults to RADIO -- @param Dcs.DCSTypes#AltitudeType PatrolAltType The altitude type ("RADIO"=="AGL", "BARO"=="ASL"). Defaults to RADIO
-- @param Core.Zone#ZONE EngageZone
-- @return #AI_CAS_ZONE self -- @return #AI_CAS_ZONE self
function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone, PatrolAltType ) function AI_CAS_ZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone, PatrolAltType )
+1 -1
View File
@@ -1,4 +1,4 @@
---Single-Player:**Yes** / Mulit-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Ground** -- ---Single-Player:**Yes** / Multi-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Ground** --
-- **Management of logical cargo objects, that can be transported from and to transportation carriers.** -- **Management of logical cargo objects, that can be transported from and to transportation carriers.**
-- --
-- ![Banner Image](..\Presentations\AI_CARGO\CARGO.JPG) -- ![Banner Image](..\Presentations\AI_CARGO\CARGO.JPG)
+1 -1
View File
@@ -1,4 +1,4 @@
--- Single-Player:**Yes** / Mulit-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Air** -- --- Single-Player:**Yes** / Multi-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**Air** --
-- **Air Patrolling or Staging.** -- **Air Patrolling or Staging.**
-- --
-- ![Banner Image](..\Presentations\AI_PATROL\Dia1.JPG) -- ![Banner Image](..\Presentations\AI_PATROL\Dia1.JPG)
+130 -33
View File
@@ -38,7 +38,7 @@
-- --
-- ![Objects](..\Presentations\EVENT\Dia6.JPG) -- ![Objects](..\Presentations\EVENT\Dia6.JPG)
-- --
-- For most DCS events, the above order of updating will be followed.1 -- For most DCS events, the above order of updating will be followed.
-- --
-- ![Objects](..\Presentations\EVENT\Dia7.JPG) -- ![Objects](..\Presentations\EVENT\Dia7.JPG)
-- --
@@ -124,6 +124,22 @@
-- --
-- ![Objects](..\Presentations\EVENT\Dia14.JPG) -- ![Objects](..\Presentations\EVENT\Dia14.JPG)
-- --
-- **IMPORTANT NOTE:** Some events can involve not just UNIT objects, but also STATIC objects!!!
-- In that case the initiator or target unit fields will refer to a STATIC object!
-- In case a STATIC object is involved, the documentation indicates which fields will and won't not be populated.
-- The fields **IniObjectCategory** and **TgtObjectCategory** contain the indicator which **kind of object is involved** in the event.
-- You can use the enumerator **Object.Category.UNIT** and **Object.Category.STATIC** to check on IniObjectCategory and TgtObjectCategory.
-- Example code snippet:
--
-- if Event.IniObjectCategory == Object.Category.UNIT then
-- ...
-- end
-- if Event.IniObjectCategory == Object.Category.STATIC then
-- ...
-- end
--
-- When a static object is involved in the event, the Group and Player fields won't be populated.
--
-- ==== -- ====
-- --
-- # **API CHANGE HISTORY** -- # **API CHANGE HISTORY**
@@ -152,7 +168,8 @@
-- --
-- @module Event -- @module Event
-- TODO: Need to update the EVENTDATA documentation with IniPlayerName and TgtPlayerName
-- TODO: Need to update the EVENTDATA documentation with IniObjectCategory and TgtObjectCategory
@@ -195,23 +212,45 @@ EVENTS = {
} }
--- The Event structure --- The Event structure
-- Note that at the beginning of each field description, there is an indication which field will be populated depending on the object type involved in the Event:
--
-- * A (Object.Category.)UNIT : A UNIT object type is involved in the Event.
-- * A (Object.Category.)STATIC : A STATIC object type is involved in the Event.µ
--
-- @type EVENTDATA -- @type EVENTDATA
-- @field id -- @field #number id The identifier of the event.
-- @field initiator --
-- @field target -- @field Dcs.DCSUnit#Unit initiator (UNIT/STATIC/SCENERY) The initiating @{Dcs.DCSUnit#Unit} or @{Dcs.DCSStaticObject#StaticObject}.
-- @field weapon -- @field Dcs.DCSObject#Object.Category IniObjectCategory (UNIT/STATIC/SCENERY) The initiator object category ( Object.Category.UNIT or Object.Category.STATIC ).
-- @field IniDCSUnit -- @field Dcs.DCSUnit#Unit IniDCSUnit (UNIT/STATIC) The initiating @{Dcs.DCSUnit#Unit} or @{Dcs.DCSStaticObject#StaticObject}.
-- @field IniDCSUnitName -- @field #string IniDCSUnitName (UNIT/STATIC) The initiating Unit name.
-- @field Wrapper.Unit#UNIT IniUnit -- @field Wrapper.Unit#UNIT IniUnit (UNIT/STATIC) The initiating MOOSE wrapper @{Wrapper.Unit#UNIT} of the initiator Unit object.
-- @field #string IniUnitName -- @field #string IniUnitName (UNIT/STATIC) The initiating UNIT name (same as IniDCSUnitName).
-- @field IniDCSGroup -- @field Dcs.DCSGroup#Group IniDCSGroup (UNIT) The initiating {Dcs.DCSGroup#Group}.
-- @field IniDCSGroupName -- @field #string IniDCSGroupName (UNIT) The initiating Group name.
-- @field TgtDCSUnit -- @field Wrapper.Group#GROUP IniGroup (UNIT) The initiating MOOSE wrapper @{Wrapper.Group#GROUP} of the initiator Group object.
-- @field TgtDCSUnitName -- @field #string IniGroupName (UNIT) The initiating GROUP name (same as IniDCSGroupName).
-- @field Wrapper.Unit#UNIT TgtUnit -- @field #string IniPlayerName (UNIT) The name of the initiating player in case the Unit is a client or player slot.
-- @field #string TgtUnitName -- @field Dcs.DCScoalition#coalition.side IniCoalition (UNIT) The coalition of the initiator.
-- @field TgtDCSGroup -- @field Dcs.DCSUnit#Unit.Category IniCategory (UNIT) The category of the initiator.
-- @field TgtDCSGroupName -- @field #string IniTypeName (UNIT) The type name of the initiator.
--
-- @field Dcs.DCSUnit#Unit target (UNIT/STATIC) The target @{Dcs.DCSUnit#Unit} or @{Dcs.DCSStaticObject#StaticObject}.
-- @field Dcs.DCSObject#Object.Category TgtObjectCategory (UNIT/STATIC) The target object category ( Object.Category.UNIT or Object.Category.STATIC ).
-- @field Dcs.DCSUnit#Unit TgtDCSUnit (UNIT/STATIC) The target @{Dcs.DCSUnit#Unit} or @{Dcs.DCSStaticObject#StaticObject}.
-- @field #string TgtDCSUnitName (UNIT/STATIC) The target Unit name.
-- @field Wrapper.Unit#UNIT TgtUnit (UNIT/STATIC) The target MOOSE wrapper @{Wrapper.Unit#UNIT} of the target Unit object.
-- @field #string TgtUnitName (UNIT/STATIC) The target UNIT name (same as TgtDCSUnitName).
-- @field Dcs.DCSGroup#Group TgtDCSGroup (UNIT) The target {Dcs.DCSGroup#Group}.
-- @field #string TgtDCSGroupName (UNIT) The target Group name.
-- @field Wrapper.Group#GROUP TgtGroup (UNIT) The target MOOSE wrapper @{Wrapper.Group#GROUP} of the target Group object.
-- @field #string TgtGroupName (UNIT) The target GROUP name (same as TgtDCSGroupName).
-- @field #string TgtPlayerName (UNIT) The name of the target player in case the Unit is a client or player slot.
-- @field Dcs.DCScoalition#coalition.side TgtCoalition (UNIT) The coalition of the target.
-- @field Dcs.DCSUnit#Unit.Category TgtCategory (UNIT) The category of the target.
-- @field #string TgtTypeName (UNIT) The type name of the target.
--
-- @field weapon The weapon used during the event.
-- @field Weapon -- @field Weapon
-- @field WeaponName -- @field WeaponName
-- @field WeaponTgtDCSUnit -- @field WeaponTgtDCSUnit
@@ -598,25 +637,59 @@ function EVENT:onEvent( Event )
end end
if self and self.Events and self.Events[Event.id] then if self and self.Events and self.Events[Event.id] then
if Event.initiator and Event.initiator:getCategory() == Object.Category.UNIT then
Event.IniDCSUnit = Event.initiator
Event.IniDCSGroup = Event.IniDCSUnit:getGroup() if Event.initiator then
Event.IniDCSUnitName = Event.IniDCSUnit:getName()
Event.IniUnitName = Event.IniDCSUnitName Event.IniObjectCategory = Event.initiator:getCategory()
Event.IniUnit = UNIT:FindByName( Event.IniDCSUnitName )
if not Event.IniUnit then if Event.IniObjectCategory == Object.Category.UNIT then
-- Unit can be a CLIENT. Most likely this will be the case ... Event.IniDCSUnit = Event.initiator
Event.IniUnit = CLIENT:FindByName( Event.IniDCSUnitName, '', true ) Event.IniDCSUnitName = Event.IniDCSUnit:getName()
Event.IniUnitName = Event.IniDCSUnitName
Event.IniDCSGroup = Event.IniDCSUnit:getGroup()
Event.IniUnit = UNIT:FindByName( Event.IniDCSUnitName )
if not Event.IniUnit then
-- Unit can be a CLIENT. Most likely this will be the case ...
Event.IniUnit = CLIENT:FindByName( Event.IniDCSUnitName, '', true )
end
Event.IniDCSGroupName = ""
if Event.IniDCSGroup and Event.IniDCSGroup:isExist() then
Event.IniDCSGroupName = Event.IniDCSGroup:getName()
Event.IniGroup = GROUP:FindByName( Event.IniDCSGroupName )
self:E( { IniGroup = Event.IniGroup } )
end
Event.IniPlayerName = Event.IniDCSUnit:getPlayerName()
Event.IniCoalition = Event.IniDCSUnit:getCoalition()
Event.IniTypeName = Event.IniDCSUnit:getTypeName()
Event.IniCategory = Event.IniDCSUnit:getDesc().category
end end
Event.IniDCSGroupName = ""
if Event.IniDCSGroup and Event.IniDCSGroup:isExist() then if Event.IniObjectCategory == Object.Category.STATIC then
Event.IniDCSGroupName = Event.IniDCSGroup:getName() Event.IniDCSUnit = Event.initiator
Event.IniGroup = GROUP:FindByName( Event.IniDCSGroupName ) Event.IniDCSUnitName = Event.IniDCSUnit:getName()
self:E( { IniGroup = Event.IniGroup } ) Event.IniUnitName = Event.IniDCSUnitName
Event.IniUnit = STATIC:FindByName( Event.IniDCSUnitName )
Event.IniCoalition = Event.IniDCSUnit:getCoalition()
Event.IniCategory = Event.IniDCSUnit:getDesc().category
Event.IniTypeName = Event.IniDCSUnit:getTypeName()
end
if Event.IniObjectCategory == Object.Category.SCENERY then
Event.IniDCSUnit = Event.initiator
Event.IniDCSUnitName = Event.IniDCSUnit:getName()
Event.IniUnitName = Event.IniDCSUnitName
Event.IniUnit = SCENERY:Register( Event.IniDCSUnitName, Event.initiator )
Event.IniCategory = Event.IniDCSUnit:getDesc().category
Event.IniTypeName = Event.IniDCSUnit:getTypeName()
end end
end end
if Event.target then if Event.target then
if Event.target and Event.target:getCategory() == Object.Category.UNIT then
Event.TgtObjectCategory = Event.target:getCategory()
if Event.TgtObjectCategory == Object.Category.UNIT then
Event.TgtDCSUnit = Event.target Event.TgtDCSUnit = Event.target
Event.TgtDCSGroup = Event.TgtDCSUnit:getGroup() Event.TgtDCSGroup = Event.TgtDCSUnit:getGroup()
Event.TgtDCSUnitName = Event.TgtDCSUnit:getName() Event.TgtDCSUnitName = Event.TgtDCSUnit:getName()
@@ -626,8 +699,32 @@ function EVENT:onEvent( Event )
if Event.TgtDCSGroup and Event.TgtDCSGroup:isExist() then if Event.TgtDCSGroup and Event.TgtDCSGroup:isExist() then
Event.TgtDCSGroupName = Event.TgtDCSGroup:getName() Event.TgtDCSGroupName = Event.TgtDCSGroup:getName()
end end
Event.TgtPlayerName = Event.TgtDCSUnit:getPlayerName()
Event.TgtCoalition = Event.TgtDCSUnit:getCoalition()
Event.TgtCategory = Event.TgtDCSUnit:getDesc().category
Event.TgtTypeName = Event.TgtDCSUnit:getTypeName()
end
if Event.TgtObjectCategory == Object.Category.STATIC then
Event.TgtDCSUnit = Event.target
Event.TgtDCSUnitName = Event.TgtDCSUnit:getName()
Event.TgtUnitName = Event.TgtDCSUnitName
Event.TgtUnit = STATIC:FindByName( Event.TgtDCSUnitName )
Event.TgtCoalition = Event.TgtDCSUnit:getCoalition()
Event.TgtCategory = Event.TgtDCSUnit:getDesc().category
Event.TgtTypeName = Event.TgtDCSUnit:getTypeName()
end
if Event.TgtObjectCategory == Object.Category.SCENERY then
Event.TgtDCSUnit = Event.target
Event.TgtDCSUnitName = Event.TgtDCSUnit:getName()
Event.TgtUnitName = Event.TgtDCSUnitName
Event.TgtUnit = SCENERY:Register( Event.TgtDCSUnitName, Event.target )
Event.TgtCategory = Event.TgtDCSUnit:getDesc().category
Event.TgtTypeName = Event.TgtDCSUnit:getTypeName()
end end
end end
if Event.weapon then if Event.weapon then
Event.Weapon = Event.weapon Event.Weapon = Event.weapon
Event.WeaponName = Event.Weapon:getTypeName() Event.WeaponName = Event.Weapon:getTypeName()
+31 -3
View File
@@ -182,6 +182,20 @@ function MESSAGE:ToCoalition( CoalitionSide )
return self return self
end end
--- Sends a MESSAGE to a Coalition if the given Condition is true.
-- @param #MESSAGE self
-- @param CoalitionSide needs to be filled out by the defined structure of the standard scripting engine @{coalition.side}.
-- @return #MESSAGE
function MESSAGE:ToCoalitionIf( CoalitionSide, Condition )
self:F( CoalitionSide )
if Condition and Condition == true then
self:ToCoalition( CoalitionSide )
end
return self
end
--- Sends a MESSAGE to all players. --- Sends a MESSAGE to all players.
-- @param #MESSAGE self -- @param #MESSAGE self
-- @return #MESSAGE -- @return #MESSAGE
@@ -194,10 +208,24 @@ end
-- MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" ) -- MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" )
-- MessageAll:ToAll() -- MessageAll:ToAll()
function MESSAGE:ToAll() function MESSAGE:ToAll()
self:F() self:F()
self:ToCoalition( coalition.side.RED ) self:ToCoalition( coalition.side.RED )
self:ToCoalition( coalition.side.BLUE ) self:ToCoalition( coalition.side.BLUE )
return self
end
--- Sends a MESSAGE to all players if the given Condition is true.
-- @param #MESSAGE self
-- @return #MESSAGE
function MESSAGE:ToAllIf( Condition )
if Condition and Condition == true then
self:ToCoalition( coalition.side.RED )
self:ToCoalition( coalition.side.BLUE )
end
return self return self
end end
+51 -4
View File
@@ -7,13 +7,42 @@
-- **Important Note:** Most of the functions in this section were taken from MIST, and reworked to OO concepts. -- **Important Note:** Most of the functions in this section were taken from MIST, and reworked to OO concepts.
-- In order to keep the credibility of the the author, I want to emphasize that the of the MIST framework was created by Grimes, who you can find on the Eagle Dynamics Forums. -- In order to keep the credibility of the the author, I want to emphasize that the of the MIST framework was created by Grimes, who you can find on the Eagle Dynamics Forums.
-- --
-- 1.1) POINT_VEC3 constructor -- ## 1.1) POINT_VEC3 constructor
-- --------------------------- --
-- A new POINT_VEC3 instance can be created with: -- A new POINT_VEC3 instance can be created with:
-- --
-- * @{Point#POINT_VEC3.New}(): a 3D point. -- * @{Point#POINT_VEC3.New}(): a 3D point.
-- * @{Point#POINT_VEC3.NewFromVec3}(): a 3D point created from a @{DCSTypes#Vec3}. -- * @{Point#POINT_VEC3.NewFromVec3}(): a 3D point created from a @{DCSTypes#Vec3}.
-- --
-- ## 1.2) Smoke, flare, explode, illuminate
--
-- At the point a smoke, flare, explosion and illumination bomb can be triggered. Use the following methods:
--
-- ### 1.2.1) Smoke
--
-- * @{#POINT_VEC3.Smoke}(): To smoke the point in a certain color.
-- * @{#POINT_VEC3.SmokeBlue}(): To smoke the point in blue.
-- * @{#POINT_VEC3.SmokeRed}(): To smoke the point in red.
-- * @{#POINT_VEC3.SmokeOrange}(): To smoke the point in orange.
-- * @{#POINT_VEC3.SmokeWhite}(): To smoke the point in white.
-- * @{#POINT_VEC3.SmokeGreen}(): To smoke the point in green.
--
-- ### 1.2.2) Flare
--
-- * @{#POINT_VEC3.Flare}(): To flare the point in a certain color.
-- * @{#POINT_VEC3.FlareRed}(): To flare the point in red.
-- * @{#POINT_VEC3.FlareYellow}(): To flare the point in yellow.
-- * @{#POINT_VEC3.FlareWhite}(): To flare the point in white.
-- * @{#POINT_VEC3.FlareGreen}(): To flare the point in green.
--
-- ### 1.2.3) Explode
--
-- * @{#POINT_VEC3.Explosion}(): To explode the point with a certain intensity.
--
-- ### 1.2.4) Illuminate
--
-- * @{#POINT_VEC3.IlluminationBomb}(): To illuminate the point.
--
-- --
-- 2) @{Point#POINT_VEC2} class, extends @{Point#POINT_VEC3} -- 2) @{Point#POINT_VEC2} class, extends @{Point#POINT_VEC3}
-- ========================================================= -- =========================================================
@@ -38,9 +67,12 @@
-- --
-- Hereby the change log: -- Hereby the change log:
-- --
-- 2017-02-18: POINT_VEC3:**NewFromVec2( Vec2, LandHeightAdd )** added. -- 2017-03-03: POINT\_VEC3:**Explosion( ExplosionIntensity )** added.
-- 2017-03-03: POINT\_VEC3:**IlluminationBomb()** added.
-- --
-- 2016-08-12: POINT_VEC3:**Translate( Distance, Angle )** added. -- 2017-02-18: POINT\_VEC3:**NewFromVec2( Vec2, LandHeightAdd )** added.
--
-- 2016-08-12: POINT\_VEC3:**Translate( Distance, Angle )** added.
-- --
-- 2016-08-06: Made PointVec3 and Vec3, PointVec2 and Vec2 terminology used in the code consistent. -- 2016-08-06: Made PointVec3 and Vec3, PointVec2 and Vec2 terminology used in the code consistent.
-- --
@@ -501,6 +533,21 @@ function POINT_VEC3:RoutePointGround( Speed, Formation )
return RoutePoint return RoutePoint
end end
--- Creates an explosion at the point of a certain intensity.
-- @param #POINT_VEC3 self
-- @param #number ExplosionIntensity
function POINT_VEC3:Explosion( ExplosionIntensity )
self:F2( { ExplosionIntensity } )
trigger.action.explosion( self:GetVec3(), ExplosionIntensity )
end
--- Creates an illumination bomb at the point.
-- @param #POINT_VEC3 self
function POINT_VEC3:IlluminationBomb()
self:F2()
trigger.action.illuminationBomb( self:GetVec3() )
end
--- Smokes the point in a color. --- Smokes the point in a color.
-- @param #POINT_VEC3 self -- @param #POINT_VEC3 self
@@ -64,7 +64,7 @@ function SCHEDULEDISPATCHER:AddSchedule( Scheduler, ScheduleFunction, ScheduleAr
-- Initialize the ObjectSchedulers array, which is a weakly coupled table. -- Initialize the ObjectSchedulers array, which is a weakly coupled table.
-- If the object used as the key is nil, then the garbage collector will remove the item from the Functions array. -- If the object used as the key is nil, then the garbage collector will remove the item from the Functions array.
self.ObjectSchedulers = self.ObjectSchedulers or setmetatable( {}, { __mode = "v" } ) self.ObjectSchedulers = self.ObjectSchedulers or {} -- setmetatable( {}, { __mode = "v" } )
if Scheduler.MasterObject then if Scheduler.MasterObject then
self.ObjectSchedulers[self.CallID] = Scheduler self.ObjectSchedulers[self.CallID] = Scheduler
+25 -18
View File
@@ -35,8 +35,8 @@
-- --
-- ## 1.2) Each zone implements two polymorphic functions defined in @{Zone#ZONE_BASE}: -- ## 1.2) Each zone implements two polymorphic functions defined in @{Zone#ZONE_BASE}:
-- --
-- * @{#ZONE_BASE.IsPointVec2InZone}(): Returns if a @{Point#POINT_VEC2} is within the zone. -- * @{#ZONE_BASE.IsVec2InZone}(): Returns if a Vec2 is within the zone.
-- * @{#ZONE_BASE.IsPointVec3InZone}(): Returns if a @{Point#POINT_VEC3} is within the zone. -- * @{#ZONE_BASE.IsVec3InZone}(): Returns if a Vec3 is within the zone.
-- --
-- ## 1.3) A zone has a probability factor that can be set to randomize a selection between zones: -- ## 1.3) A zone has a probability factor that can be set to randomize a selection between zones:
-- --
@@ -145,21 +145,28 @@
-- --
-- Hereby the change log: -- Hereby the change log:
-- --
-- 2017-02-18: ZONE_POLYGON_BASE:**GetRandomPointVec2()** added. -- 2017-02-28: ZONE\_BASE:**IsVec2InZone()** replaces ZONE\_BASE:_IsPointVec2InZone()_.
-- 2017-02-28: ZONE\_BASE:**IsVec3InZone()** replaces ZONE\_BASE:_IsPointVec3InZone()_.
-- 2017-02-28: ZONE\_RADIUS:**IsVec2InZone()** replaces ZONE\_RADIUS:_IsPointVec2InZone()_.
-- 2017-02-28: ZONE\_RADIUS:**IsVec3InZone()** replaces ZONE\_RADIUS:_IsPointVec3InZone()_.
-- 2017-02-28: ZONE\_POLYGON:**IsVec2InZone()** replaces ZONE\_POLYGON:_IsPointVec2InZone()_.
-- 2017-02-28: ZONE\_POLYGON:**IsVec3InZone()** replaces ZONE\_POLYGON:_IsPointVec3InZone()_.
-- --
-- 2017-02-18: ZONE_POLYGON_BASE:**GetRandomPointVec3()** added. -- 2017-02-18: ZONE\_POLYGON_BASE:**GetRandomPointVec2()** added.
-- --
-- 2017-02-18: ZONE_RADIUS:**GetRandomPointVec3( inner, outer )** added. -- 2017-02-18: ZONE\_POLYGON_BASE:**GetRandomPointVec3()** added.
-- --
-- 2017-02-18: ZONE_RADIUS:**GetRandomPointVec2( inner, outer )** added. -- 2017-02-18: ZONE\_RADIUS:**GetRandomPointVec3( inner, outer )** added.
-- --
-- 2016-08-15: ZONE_BASE:**GetName()** added. -- 2017-02-18: ZONE\_RADIUS:**GetRandomPointVec2( inner, outer )** added.
-- --
-- 2016-08-15: ZONE_BASE:**SetZoneProbability( ZoneProbability )** added. -- 2016-08-15: ZONE\_BASE:**GetName()** added.
-- --
-- 2016-08-15: ZONE_BASE:**GetZoneProbability()** added. -- 2016-08-15: ZONE\_BASE:**SetZoneProbability( ZoneProbability )** added.
-- --
-- 2016-08-15: ZONE_BASE:**GetZoneMaybe()** added. -- 2016-08-15: ZONE\_BASE:**GetZoneProbability()** added.
--
-- 2016-08-15: ZONE\_BASE:**GetZoneMaybe()** added.
-- --
-- === -- ===
-- --
@@ -212,7 +219,7 @@ end
-- @param #ZONE_BASE self -- @param #ZONE_BASE self
-- @param Dcs.DCSTypes#Vec2 Vec2 The location to test. -- @param Dcs.DCSTypes#Vec2 Vec2 The location to test.
-- @return #boolean true if the location is within the zone. -- @return #boolean true if the location is within the zone.
function ZONE_BASE:IsPointVec2InZone( Vec2 ) function ZONE_BASE:IsVec2InZone( Vec2 )
self:F2( Vec2 ) self:F2( Vec2 )
return false return false
@@ -222,10 +229,10 @@ end
-- @param #ZONE_BASE self -- @param #ZONE_BASE self
-- @param Dcs.DCSTypes#Vec3 Vec3 The point to test. -- @param Dcs.DCSTypes#Vec3 Vec3 The point to test.
-- @return #boolean true if the point is within the zone. -- @return #boolean true if the point is within the zone.
function ZONE_BASE:IsPointVec3InZone( Vec3 ) function ZONE_BASE:IsVec3InZone( Vec3 )
self:F2( Vec3 ) self:F2( Vec3 )
local InZone = self:IsPointVec2InZone( { x = Vec3.x, y = Vec3.z } ) local InZone = self:IsVec2InZone( { x = Vec3.x, y = Vec3.z } )
return InZone return InZone
end end
@@ -514,7 +521,7 @@ end
-- @param #ZONE_RADIUS self -- @param #ZONE_RADIUS self
-- @param Dcs.DCSTypes#Vec2 Vec2 The location to test. -- @param Dcs.DCSTypes#Vec2 Vec2 The location to test.
-- @return #boolean true if the location is within the zone. -- @return #boolean true if the location is within the zone.
function ZONE_RADIUS:IsPointVec2InZone( Vec2 ) function ZONE_RADIUS:IsVec2InZone( Vec2 )
self:F2( Vec2 ) self:F2( Vec2 )
local ZoneVec2 = self:GetVec2() local ZoneVec2 = self:GetVec2()
@@ -532,10 +539,10 @@ end
-- @param #ZONE_RADIUS self -- @param #ZONE_RADIUS self
-- @param Dcs.DCSTypes#Vec3 Vec3 The point to test. -- @param Dcs.DCSTypes#Vec3 Vec3 The point to test.
-- @return #boolean true if the point is within the zone. -- @return #boolean true if the point is within the zone.
function ZONE_RADIUS:IsPointVec3InZone( Vec3 ) function ZONE_RADIUS:IsVec3InZone( Vec3 )
self:F2( Vec3 ) self:F2( Vec3 )
local InZone = self:IsPointVec2InZone( { x = Vec3.x, y = Vec3.z } ) local InZone = self:IsVec2InZone( { x = Vec3.x, y = Vec3.z } )
return InZone return InZone
end end
@@ -854,7 +861,7 @@ end
-- @param #ZONE_POLYGON_BASE self -- @param #ZONE_POLYGON_BASE self
-- @param Dcs.DCSTypes#Vec2 Vec2 The location to test. -- @param Dcs.DCSTypes#Vec2 Vec2 The location to test.
-- @return #boolean true if the location is within the zone. -- @return #boolean true if the location is within the zone.
function ZONE_POLYGON_BASE:IsPointVec2InZone( Vec2 ) function ZONE_POLYGON_BASE:IsVec2InZone( Vec2 )
self:F2( Vec2 ) self:F2( Vec2 )
local Next local Next
@@ -896,7 +903,7 @@ function ZONE_POLYGON_BASE:GetRandomVec2()
while Vec2Found == false do while Vec2Found == false do
Vec2 = { x = math.random( BS.x1, BS.x2 ), y = math.random( BS.y1, BS.y2 ) } Vec2 = { x = math.random( BS.x1, BS.x2 ), y = math.random( BS.y1, BS.y2 ) }
self:T2( Vec2 ) self:T2( Vec2 )
if self:IsPointVec2InZone( Vec2 ) then if self:IsVec2InZone( Vec2 ) then
Vec2Found = true Vec2Found = true
end end
end end
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -1,4 +1,4 @@
--- Single-Player:**Yes** / Mulit-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**All** -- --- Single-Player:**Yes** / Multi-Player:**Yes** / AI:**Yes** / Human:**No** / Types:**All** --
-- **Spawn groups of units dynamically in your missions.** -- **Spawn groups of units dynamically in your missions.**
-- --
-- ![Banner Image](..\Presentations\SPAWN\SPAWN.JPG) -- ![Banner Image](..\Presentations\SPAWN\SPAWN.JPG)
@@ -1304,10 +1304,12 @@ function SPAWN:_RandomizeTemplate( SpawnIndex )
self.SpawnGroups[SpawnIndex].SpawnTemplate.x = self.SpawnTemplate.x self.SpawnGroups[SpawnIndex].SpawnTemplate.x = self.SpawnTemplate.x
self.SpawnGroups[SpawnIndex].SpawnTemplate.y = self.SpawnTemplate.y self.SpawnGroups[SpawnIndex].SpawnTemplate.y = self.SpawnTemplate.y
self.SpawnGroups[SpawnIndex].SpawnTemplate.start_time = self.SpawnTemplate.start_time self.SpawnGroups[SpawnIndex].SpawnTemplate.start_time = self.SpawnTemplate.start_time
local OldX = self.SpawnGroups[SpawnIndex].SpawnTemplate.units[1].x
local OldY = self.SpawnGroups[SpawnIndex].SpawnTemplate.units[1].y
for UnitID = 1, #self.SpawnGroups[SpawnIndex].SpawnTemplate.units do for UnitID = 1, #self.SpawnGroups[SpawnIndex].SpawnTemplate.units do
self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].heading = self.SpawnTemplate.units[1].heading self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].heading = self.SpawnTemplate.units[1].heading
self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].x = self.SpawnTemplate.units[1].x self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].x = self.SpawnTemplate.units[1].x + ( self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].x - OldX )
self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].y = self.SpawnTemplate.units[1].y self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].y = self.SpawnTemplate.units[1].y + ( self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].y - OldY )
self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].alt = self.SpawnTemplate.units[1].alt self.SpawnGroups[SpawnIndex].SpawnTemplate.units[UnitID].alt = self.SpawnTemplate.units[1].alt
end end
end end
+1
View File
@@ -27,6 +27,7 @@ Include.File( "Wrapper/Unit" )
Include.File( "Wrapper/Client" ) Include.File( "Wrapper/Client" )
Include.File( "Wrapper/Static" ) Include.File( "Wrapper/Static" )
Include.File( "Wrapper/Airbase" ) Include.File( "Wrapper/Airbase" )
Include.File( "Wrapper/Scenery" )
--- Functional Classes --- Functional Classes
Include.File( "Functional/Scoring" ) Include.File( "Functional/Scoring" )
+38
View File
@@ -14,6 +14,7 @@
-- * @{#TASK.HasStateMachine}():Enquire if the task has a @{Fsm} -- * @{#TASK.HasStateMachine}():Enquire if the task has a @{Fsm}
-- * @{#TASK.AssignToUnit}(): Assign a task to a unit. (Needs to be implemented in the derived classes from @{#TASK}. -- * @{#TASK.AssignToUnit}(): Assign a task to a unit. (Needs to be implemented in the derived classes from @{#TASK}.
-- * @{#TASK.UnAssignFromUnit}(): Unassign the task from a unit. -- * @{#TASK.UnAssignFromUnit}(): Unassign the task from a unit.
-- * @{#TASK.SetTimeOut}(): Set timer in seconds before task gets cancelled if not assigned.
-- --
-- 1.2) Set and enquire task status (beyond the task state machine processing). -- 1.2) Set and enquire task status (beyond the task state machine processing).
-- ---------------------------------------------------------------------------- -- ----------------------------------------------------------------------------
@@ -70,6 +71,7 @@ TASK = {
FsmTemplate = nil, FsmTemplate = nil,
Mission = nil, Mission = nil,
CommandCenter = nil, CommandCenter = nil,
TimeOut = 0,
} }
--- FSM PlayerAborted event handler prototype for TASK. --- FSM PlayerAborted event handler prototype for TASK.
@@ -163,6 +165,7 @@ function TASK:New( Mission, SetGroupAssign, TaskName, TaskType )
self:AddTransition( "*", "PlayerAborted", "*" ) self:AddTransition( "*", "PlayerAborted", "*" )
self:AddTransition( "*", "PlayerDead", "*" ) self:AddTransition( "*", "PlayerDead", "*" )
self:AddTransition( { "Failed", "Aborted", "Cancelled" }, "Replan", "Planned" ) self:AddTransition( { "Failed", "Aborted", "Cancelled" }, "Replan", "Planned" )
self:AddTransition( "*", "TimeOut", "Cancelled" )
self:E( "New TASK " .. TaskName ) self:E( "New TASK " .. TaskName )
@@ -403,6 +406,17 @@ function TASK:UnAssignFromUnit( TaskUnit )
return self return self
end end
--- Sets the TimeOut for the @{Task}. If @{Task} stayed planned for longer than TimeOut, it gets into Cancelled status.
-- @param #TASK self
-- @param #integer Timer in seconds
-- @return #TASK self
function TASK:SetTimeOut ( Timer )
self:F( Timer )
self.TimeOut = Timer
self:__TimeOut( self.TimeOut )
return self
end
--- Send a message of the @{Task} to the assigned @{Group}s. --- Send a message of the @{Task} to the assigned @{Group}s.
-- @param #TASK self -- @param #TASK self
function TASK:MessageToGroups( Message ) function TASK:MessageToGroups( Message )
@@ -934,6 +948,30 @@ function TASK:onstatechange( From, Event, To )
end end
--- FSM function for a TASK
-- @param #TASK self
-- @param #string Event
-- @param #string From
-- @param #string To
function TASK:onenterPlanned( From, Event, To)
if not self.TimeOut == 0 then
self.__TimeOut( self.TimeOut )
end
end
--- FSM function for a TASK
-- @param #TASK self
-- @param #string Event
-- @param #string From
-- @param #string To
function TASK:onbeforeTimeOut( From, Event, To )
if From == "Planned" then
self:RemoveMenu()
return true
end
return false
end
do -- Reporting do -- Reporting
--- Create a summary report of the Task. --- Create a summary report of the Task.
+3 -4
View File
@@ -455,8 +455,7 @@ function GROUP:IsCompletelyInZone( Zone )
for UnitID, UnitData in pairs( self:GetUnits() ) do for UnitID, UnitData in pairs( self:GetUnits() ) do
local Unit = UnitData -- Wrapper.Unit#UNIT local Unit = UnitData -- Wrapper.Unit#UNIT
-- TODO: Rename IsPointVec3InZone to IsVec3InZone if Zone:IsVec3InZone( Unit:GetVec3() ) then
if Zone:IsPointVec3InZone( Unit:GetVec3() ) then
else else
return false return false
end end
@@ -474,7 +473,7 @@ function GROUP:IsPartlyInZone( Zone )
for UnitID, UnitData in pairs( self:GetUnits() ) do for UnitID, UnitData in pairs( self:GetUnits() ) do
local Unit = UnitData -- Wrapper.Unit#UNIT local Unit = UnitData -- Wrapper.Unit#UNIT
if Zone:IsPointVec3InZone( Unit:GetVec3() ) then if Zone:IsVec3InZone( Unit:GetVec3() ) then
return true return true
end end
end end
@@ -491,7 +490,7 @@ function GROUP:IsNotInZone( Zone )
for UnitID, UnitData in pairs( self:GetUnits() ) do for UnitID, UnitData in pairs( self:GetUnits() ) do
local Unit = UnitData -- Wrapper.Unit#UNIT local Unit = UnitData -- Wrapper.Unit#UNIT
if Zone:IsPointVec3InZone( Unit:GetVec3() ) then if Zone:IsVec3InZone( Unit:GetVec3() ) then
return false return false
end end
end end
@@ -217,10 +217,7 @@ function IDENTIFIABLE:GetCallsign()
end end
function IDENTIFIABLE:GetThreatLevel()
return 0, "Scenery"
end
@@ -0,0 +1,39 @@
--- This module contains the SCENERY class.
--
-- 1) @{Scenery#SCENERY} class, extends @{Positionable#POSITIONABLE}
-- ===============================================================
-- Scenery objects are defined on the map.
-- The @{Scenery#SCENERY} class is a wrapper class to handle the DCS Scenery objects:
--
-- * Wraps the DCS Scenery objects.
-- * Support all DCS Scenery APIs.
-- * Enhance with Scenery specific APIs not in the DCS API set.
--
-- @module Scenery
-- @author FlightControl
--- The SCENERY class
-- @type SCENERY
-- @extends Wrapper.Positionable#POSITIONABLE
SCENERY = {
ClassName = "SCENERY",
}
function SCENERY:Register( SceneryName, SceneryObject )
local self = BASE:Inherit( self, POSITIONABLE:New( SceneryName ) )
self.SceneryName = SceneryName
self.SceneryObject = SceneryObject
return self
end
function SCENERY:GetDCSObject()
return self.SceneryObject
end
function SCENERY:GetThreatLevel()
return 0, "Scenery"
end
@@ -79,3 +79,8 @@ function STATIC:GetDCSObject()
return nil return nil
end end
function STATIC:GetThreatLevel()
return 1, "Static"
end
+115 -31
View File
@@ -536,45 +536,129 @@ end
-- * Threat level 8: Unit is a Short Range SAM, radar guided. -- * Threat level 8: Unit is a Short Range SAM, radar guided.
-- * Threat level 9: Unit is a Medium Range SAM, radar guided. -- * Threat level 9: Unit is a Medium Range SAM, radar guided.
-- * Threat level 10: Unit is a Long Range SAM, radar guided. -- * Threat level 10: Unit is a Long Range SAM, radar guided.
-- @param #UNIT self
function UNIT:GetThreatLevel() function UNIT:GetThreatLevel()
local Attributes = self:GetDesc().attributes local Attributes = self:GetDesc().attributes
self:E( Attributes )
local ThreatLevel = 0 local ThreatLevel = 0
local ThreatText = ""
local ThreatLevels = { if self:IsGround() then
"Unarmed",
"Infantry",
"Old Tanks & APCs",
"Tanks & IFVs without ATGM",
"Tanks & IFV with ATGM",
"Modern Tanks",
"AAA",
"IR Guided SAMs",
"SR SAMs",
"MR SAMs",
"LR SAMs"
}
self:T2( Attributes ) self:E( "Ground" )
if Attributes["LR SAM"] then ThreatLevel = 10 local ThreatLevels = {
elseif Attributes["MR SAM"] then ThreatLevel = 9 "Unarmed",
elseif Attributes["SR SAM"] and "Infantry",
not Attributes["IR Guided SAM"] then ThreatLevel = 8 "Old Tanks & APCs",
elseif ( Attributes["SR SAM"] or Attributes["MANPADS"] ) and "Tanks & IFVs without ATGM",
Attributes["IR Guided SAM"] then ThreatLevel = 7 "Tanks & IFV with ATGM",
elseif Attributes["AAA"] then ThreatLevel = 6 "Modern Tanks",
elseif Attributes["Modern Tanks"] then ThreatLevel = 5 "AAA",
elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and "IR Guided SAMs",
Attributes["ATGM"] then ThreatLevel = 4 "SR SAMs",
elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and "MR SAMs",
not Attributes["ATGM"] then ThreatLevel = 3 "LR SAMs"
elseif Attributes["Old Tanks"] or Attributes["APC"] then ThreatLevel = 2 }
elseif Attributes["Infantry"] then ThreatLevel = 1
if Attributes["LR SAM"] then ThreatLevel = 10
elseif Attributes["MR SAM"] then ThreatLevel = 9
elseif Attributes["SR SAM"] and
not Attributes["IR Guided SAM"] then ThreatLevel = 8
elseif ( Attributes["SR SAM"] or Attributes["MANPADS"] ) and
Attributes["IR Guided SAM"] then ThreatLevel = 7
elseif Attributes["AAA"] then ThreatLevel = 6
elseif Attributes["Modern Tanks"] then ThreatLevel = 5
elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and
Attributes["ATGM"] then ThreatLevel = 4
elseif ( Attributes["Tanks"] or Attributes["IFV"] ) and
not Attributes["ATGM"] then ThreatLevel = 3
elseif Attributes["Old Tanks"] or Attributes["APC"] or Attributes["Artillery"] then ThreatLevel = 2
elseif Attributes["Infantry"] then ThreatLevel = 1
end
ThreatText = ThreatLevels[ThreatLevel+1]
end
if self:IsAir() then
self:E( "Air" )
local ThreatLevels = {
"Unarmed",
"Tanker",
"AWACS",
"Transport Helicpter",
"UAV",
"Bomber",
"Strategic Bomber",
"Attack Helicopter",
"Interceptor",
"Multirole Fighter",
"Fighter"
}
if Attributes["Fighters"] then ThreatLevel = 10
elseif Attributes["Multirole fighters"] then ThreatLevel = 9
elseif Attributes["Battleplanes"] then ThreatLevel = 8
elseif Attributes["Attack helicopters"] then ThreatLevel = 7
elseif Attributes["Strategic bombers"] then ThreatLevel = 6
elseif Attributes["Bombers"] then ThreatLevel = 5
elseif Attributes["UAVs"] then ThreatLevel = 4
elseif Attributes["Transport helicopters"] then ThreatLevel = 3
elseif Attributes["AWACS"] then ThreatLevel = 2
elseif Attributes["Tankers"] then ThreatLevel = 1
end
ThreatText = ThreatLevels[ThreatLevel+1]
end
if self:IsShip() then
self:E( "Ship" )
--["Aircraft Carriers"] = {"Heavy armed ships",},
--["Cruisers"] = {"Heavy armed ships",},
--["Destroyers"] = {"Heavy armed ships",},
--["Frigates"] = {"Heavy armed ships",},
--["Corvettes"] = {"Heavy armed ships",},
--["Heavy armed ships"] = {"Armed ships", "Armed Air Defence", "HeavyArmoredUnits",},
--["Light armed ships"] = {"Armed ships","NonArmoredUnits"},
--["Armed ships"] = {"Ships"},
--["Unarmed ships"] = {"Ships","HeavyArmoredUnits",},
local ThreatLevels = {
"Unarmed ship",
"Light armed ships",
"Corvettes",
"",
"Frigates",
"",
"Cruiser",
"",
"Destroyer",
"",
"Aircraft Carrier"
}
if Attributes["Aircraft Carriers"] then ThreatLevel = 10
elseif Attributes["Destroyers"] then ThreatLevel = 8
elseif Attributes["Cruisers"] then ThreatLevel = 6
elseif Attributes["Frigates"] then ThreatLevel = 4
elseif Attributes["Corvettes"] then ThreatLevel = 2
elseif Attributes["Light armed ships"] then ThreatLevel = 1
end
ThreatText = ThreatLevels[ThreatLevel+1]
end end
self:T2( ThreatLevel ) self:T2( ThreatLevel )
return ThreatLevel, ThreatLevels[ThreatLevel+1] return ThreatLevel, ThreatText
end end
@@ -589,7 +673,7 @@ function UNIT:IsInZone( Zone )
self:F2( { self.UnitName, Zone } ) self:F2( { self.UnitName, Zone } )
if self:IsAlive() then if self:IsAlive() then
local IsInZone = Zone:IsPointVec3InZone( self:GetVec3() ) local IsInZone = Zone:IsVec3InZone( self:GetVec3() )
self:T( { IsInZone } ) self:T( { IsInZone } )
return IsInZone return IsInZone
@@ -606,7 +690,7 @@ function UNIT:IsNotInZone( Zone )
self:F2( { self.UnitName, Zone } ) self:F2( { self.UnitName, Zone } )
if self:IsAlive() then if self:IsAlive() then
local IsInZone = not Zone:IsPointVec3InZone( self:GetVec3() ) local IsInZone = not Zone:IsVec3InZone( self:GetVec3() )
self:T( { IsInZone } ) self:T( { IsInZone } )
return IsInZone return IsInZone
+1
View File
@@ -65,6 +65,7 @@ COPY /b Moose.lua + %1\Wrapper\Unit.lua Moose.lua
COPY /b Moose.lua + %1\Wrapper\Client.lua Moose.lua COPY /b Moose.lua + %1\Wrapper\Client.lua Moose.lua
COPY /b Moose.lua + %1\Wrapper\Static.lua Moose.lua COPY /b Moose.lua + %1\Wrapper\Static.lua Moose.lua
COPY /b Moose.lua + %1\Wrapper\Airbase.lua Moose.lua COPY /b Moose.lua + %1\Wrapper\Airbase.lua Moose.lua
COPY /b Moose.lua + %1\Wrapper\Scenery.lua Moose.lua
rem Functional Classes rem Functional Classes
COPY /b Moose.lua + %1\Functional\Scoring.lua Moose.lua COPY /b Moose.lua + %1\Functional\Scoring.lua Moose.lua
Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

@@ -0,0 +1,38 @@
---
-- Name: SCO-100 - Scoring of Statics
-- Author: FlightControl
-- Date Created: 21 Feb 2017
--
-- # Situation:
--
-- A shooting range has been setup. Fly the Ka-50 or the Su-25T to the statics located near the airport, and shoot them.
--
-- # Test cases:
--
-- 1. Observe the scoring granted to your flight when you hit and kill targets.
local HQ = GROUP:FindByName( "HQ", "Bravo HQ" )
local CommandCenter = COMMANDCENTER:New( HQ, "Bravo" )
local Scoring = SCORING:New( "Shooting Range 1" )
Scoring:SetMultiplierDestroyScore( 10 )
Scoring:SetMultiplierDestroyPenalty( 40 )
Scoring:AddUnitScore( UNIT:FindByName( "Unit #001" ), 200 )
-- Test for zone scores.
-- This one is to test scoring on normal units.
local ShootingRangeZone = ZONE:New( "ScoringZone1" )
Scoring:AddZoneScore( ShootingRangeZone, 200 )
-- This one is to test scoring on scenery.
-- Note that you can only destroy scenery with heavy weapons.
local SceneryZone = ZONE:New( "ScoringZone2" )
Scoring:AddZoneScore( SceneryZone, 200 )
@@ -0,0 +1,21 @@
---
-- Name: SCO-101 - Scoring Client to Client
-- Author: FlightControl
-- Date Created: 24 Feb 2017
--
-- # Situation:
--
-- A shooting range has been setup to test client to client scoring.
--
-- # Test cases:
--
-- 1. Observe the scoring granted to your flight when you hit and kill other clients.
local HQ = GROUP:FindByName( "HQ", "Bravo HQ" )
local CommandCenter = COMMANDCENTER:New( HQ, "Lima" )
local Scoring = SCORING:New( "Detect Demo" )
@@ -1,6 +1,7 @@
---
-- Name: SPA-018 - Ground Ops - Randomize Templates -- Name: SPA-018 - Ground Ops - Randomize Templates
-- Author: FlightControl -- Author: FlightControl
-- Date Created: 10 January 2017 -- Date Created: 10 Jan 2017
-- --
-- # Situation: -- # Situation:
-- --
@@ -0,0 +1,27 @@
---
-- Name: SPA-019 - Ground Ops - Randomize Templates with Waypoints
-- Author: FlightControl
-- Date Created: 24 Feb 2017
--
-- # Situation:
--
-- At Gudauta spawn multiple ground vehicles, in a scheduled fashion.
--
-- # Test cases:
--
-- 1. Observe that the ground vehicles are spawned with randomized templates.
-- 2. Observe that the ground vehicles are spread around the spawning area and are not stacked upon each other.
-- Tests Gudauta
-- -------------
-- Create a zone table of the 2 zones.
ZoneTable = { ZONE:New( "Zone1" ), ZONE:New( "Zone2" ) }
TemplateTable = { "A", "B", "C" }
Spawn_Vehicle_1 = SPAWN:New( "Spawn Vehicle 1" )
:InitLimit( 10, 10 )
:InitRandomizeTemplate( TemplateTable )
:SpawnScheduled( 5, .5 )
@@ -0,0 +1,29 @@
---
-- Name: SPA-020 - Ground Ops - Randomize Templates in Random Zones without Waypoints
-- Author: FlightControl
-- Date Created: 24 Feb 2017
--
-- # Situation:
--
-- At Gudauta spawn multiple ground vehicles, in a scheduled fashion.
--
-- # Test cases:
--
-- 1. Observe that the ground vehicles are spawned with randomized templates.
-- 2. Observe that the ground vehicles are spread around the spawning area and are not stacked upon each other.
-- 3. Observe that the ground vehicles are spread over the random zones, and that the initial templates formations are kept.
-- Tests Gudauta
-- -------------
-- Create a zone table of the 2 zones.
ZoneTable = { ZONE:New( "Zone1" ), ZONE:New( "Zone2" ) }
TemplateTable = { "A", "B", "C" }
Spawn_Vehicle_1 = SPAWN:New( "Spawn Vehicle 1" )
:InitLimit( 100, 10 )
:InitRandomizeTemplate( TemplateTable )
:InitRandomizeZones( ZoneTable )
:SpawnScheduled( 5, .5 )
+1 -1
View File
@@ -8,7 +8,7 @@ MOOSE works with DCS world 1.5. and 2.0.
The goal of MOOSE is to allow mission designers to enhance their scripting with mission orchestration objects, which can be instantiated from defined classes within the framework. This will allow to write mission scripts with minimal code embedded. Of course, the richness of the framework will determine the richness of the misson scenarios. The goal of MOOSE is to allow mission designers to enhance their scripting with mission orchestration objects, which can be instantiated from defined classes within the framework. This will allow to write mission scripts with minimal code embedded. Of course, the richness of the framework will determine the richness of the misson scenarios.
The MOOSE is a service that is produced while being consumed ... , it will evolve further as more classes are developed for the framework, and as more users are using it. The MOOSE is a service that is produced while being consumed ... , it will evolve further as more classes are developed for the framework, and as more users are using it.
MOOSE is meant to be a one-man show, it is meant to evolve within a growing community around the framework. MOOSE is not a one-man show, it is a collaborative effort and meant to evolve within a growing community around the framework.
Within the community, key users will start supporting, documenting, explaining and even creating new classes for the framework. Within the community, key users will start supporting, documenting, explaining and even creating new classes for the framework.
It is the ambition to grow this framework as a de-facto standard for mission designers to use. It is the ambition to grow this framework as a de-facto standard for mission designers to use.
+2 -1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -71,7 +72,7 @@
<div id="content"> <div id="content">
<h1>Module <code>AI_Balancer</code></h1> <h1>Module <code>AI_Balancer</code></h1>
<p>Single-Player:<strong>No</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <strong>AI Balancing will replace in multi player missions <p>Single-Player:<strong>No</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <strong>AI Balancing will replace in multi player missions
non-occupied human slots with AI groups, in order to provide an engaging simulation environment, non-occupied human slots with AI groups, in order to provide an engaging simulation environment,
even when there are hardly any players in the mission.</strong></p> even when there are hardly any players in the mission.</strong></p>
+2 -1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -71,7 +72,7 @@
<div id="content"> <div id="content">
<h1>Module <code>AI_Cap</code></h1> <h1>Module <code>AI_Cap</code></h1>
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <strong>Execute Combat Air Patrol (CAP).</strong></p> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <strong>Execute Combat Air Patrol (CAP).</strong></p>
<p><img src="..\Presentations\AI_CAP\Dia1.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_CAP\Dia1.JPG" alt="Banner Image"/></p>
+8 -6
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -71,7 +72,7 @@
<div id="content"> <div id="content">
<h1>Module <code>AI_Cas</code></h1> <h1>Module <code>AI_Cas</code></h1>
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> --
<strong>Provide Close Air Support to friendly ground troops.</strong></p> <strong>Provide Close Air Support to friendly ground troops.</strong></p>
<p><img src="..\Presentations\AI_CAS\Dia1.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_CAS\Dia1.JPG" alt="Banner Image"/></p>
@@ -307,7 +308,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).New">AI_CAS_ZONE:New(PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType, EngageZone)</a></td> <td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).New">AI_CAS_ZONE:New(PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone, PatrolAltType)</a></td>
<td class="summary"> <td class="summary">
<p>Creates a new AI<em>CAS</em>ZONE object</p> <p>Creates a new AI<em>CAS</em>ZONE object</p>
</td> </td>
@@ -739,7 +740,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
<dt> <dt>
<a id="#(AI_CAS_ZONE).New" > <a id="#(AI_CAS_ZONE).New" >
<strong>AI_CAS_ZONE:New(PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, PatrolAltType, EngageZone)</strong> <strong>AI_CAS_ZONE:New(PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed, EngageZone, PatrolAltType)</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
@@ -780,13 +781,14 @@ The maximum speed of the <a href="Controllable.html">Controllable</a> in km/h.</
</li> </li>
<li> <li>
<p><code><em><a href="Dcs.DCSTypes.html##(AltitudeType)">Dcs.DCSTypes#AltitudeType</a> PatrolAltType </em></code>: <p><code><em><a href="Core.Zone.html##(ZONE_BASE)">Core.Zone#ZONE_BASE</a> EngageZone </em></code>:
The altitude type ("RADIO"=="AGL", "BARO"=="ASL"). Defaults to RADIO</p> The zone where the engage will happen.</p>
</li> </li>
<li> <li>
<p><code><em><a href="Core.Zone.html##(ZONE)">Core.Zone#ZONE</a> EngageZone </em></code>: </p> <p><code><em><a href="Dcs.DCSTypes.html##(AltitudeType)">Dcs.DCSTypes#AltitudeType</a> PatrolAltType </em></code>:
The altitude type ("RADIO"=="AGL", "BARO"=="ASL"). Defaults to RADIO</p>
</li> </li>
</ul> </ul>
+2 -1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -71,7 +72,7 @@
<div id="content"> <div id="content">
<h1>Module <code>AI_Patrol</code></h1> <h1>Module <code>AI_Patrol</code></h1>
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> --
<strong>Air Patrolling or Staging.</strong></p> <strong>Air Patrolling or Staging.</strong></p>
<p><img src="..\Presentations\AI_PATROL\Dia1.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_PATROL\Dia1.JPG" alt="Banner Image"/></p>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+2 -1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -71,7 +72,7 @@
<div id="content"> <div id="content">
<h1>Module <code>Cargo</code></h1> <h1>Module <code>Cargo</code></h1>
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Ground</strong> -- <br/> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Ground</strong> -- <br/>
<strong>Management of logical cargo objects, that can be transported from and to transportation carriers.</strong></p> <strong>Management of logical cargo objects, that can be transported from and to transportation carriers.</strong></p>
<p><img src="..\Presentations\AI_CARGO\CARGO.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_CARGO\CARGO.JPG" alt="Banner Image"/></p>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+383 -31
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -115,7 +116,7 @@ in the correct processing order.</p>
<p><img src="..\Presentations\EVENT\Dia6.JPG" alt="Objects"/></p> <p><img src="..\Presentations\EVENT\Dia6.JPG" alt="Objects"/></p>
<p>For most DCS events, the above order of updating will be followed.1</p> <p>For most DCS events, the above order of updating will be followed.</p>
<p><img src="..\Presentations\EVENT\Dia7.JPG" alt="Objects"/></p> <p><img src="..\Presentations\EVENT\Dia7.JPG" alt="Objects"/></p>
@@ -206,6 +207,23 @@ There are basically 4 main categories of information stored in the EVENTDATA str
<p><img src="..\Presentations\EVENT\Dia14.JPG" alt="Objects"/></p> <p><img src="..\Presentations\EVENT\Dia14.JPG" alt="Objects"/></p>
<p><strong>IMPORTANT NOTE:</strong> Some events can involve not just UNIT objects, but also STATIC objects!!!
In that case the initiator or target unit fields will refer to a STATIC object!
In case a STATIC object is involved, the documentation indicates which fields will and won't not be populated.
The fields <strong>IniObjectCategory</strong> and <strong>TgtObjectCategory</strong> contain the indicator which <strong>kind of object is involved</strong> in the event.
You can use the enumerator <strong>Object.Category.UNIT</strong> and <strong>Object.Category.STATIC</strong> to check on IniObjectCategory and TgtObjectCategory.
Example code snippet:</p>
<pre><code> if Event.IniObjectCategory == Object.Category.UNIT then
...
end
if Event.IniObjectCategory == Object.Category.STATIC then
...
end
</code></pre>
<p>When a static object is involved in the event, the Group and Player fields won't be populated.</p>
<hr/> <hr/>
<h1><strong>API CHANGE HISTORY</strong></h1> <h1><strong>API CHANGE HISTORY</strong></h1>
@@ -391,81 +409,182 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<h2><a id="#(EVENTDATA)">Type <code>EVENTDATA</code></a></h2> <h2><a id="#(EVENTDATA)">Type <code>EVENTDATA</code></a></h2>
<table class="function_list"> <table class="function_list">
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniCategory">EVENTDATA.IniCategory</a></td>
<td class="summary">
<pre><code> (UNIT) The category of the initiator.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniCoalition">EVENTDATA.IniCoalition</a></td>
<td class="summary">
<pre><code> (UNIT) The coalition of the initiator.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSGroup">EVENTDATA.IniDCSGroup</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSGroup">EVENTDATA.IniDCSGroup</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT) The initiating {Dcs.DCSGroup#Group}.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSGroupName">EVENTDATA.IniDCSGroupName</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSGroupName">EVENTDATA.IniDCSGroupName</a></td>
<td class="summary"> <td class="summary">
<p> (UNIT) The initiating Group name.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSUnit">EVENTDATA.IniDCSUnit</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSUnit">EVENTDATA.IniDCSUnit</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The initiating &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSUnitName">EVENTDATA.IniDCSUnitName</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniDCSUnitName">EVENTDATA.IniDCSUnitName</a></td>
<td class="summary"> <td class="summary">
<p> (UNIT/STATIC) The initiating Unit name.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniGroup">EVENTDATA.IniGroup</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniGroup">EVENTDATA.IniGroup</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT) The initiating MOOSE wrapper &lt;a href="Wrapper.Group.html##(GROUP)"&gt;Wrapper.Group#GROUP&lt;/a&gt; of the initiator Group object.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniGroupName">EVENTDATA.IniGroupName</a></td>
<td class="summary">
<pre><code> (UNIT) The initiating GROUP name (same as IniDCSGroupName).
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniObjectCategory">EVENTDATA.IniObjectCategory</a></td>
<td class="summary">
<p>(UNIT/STATIC/SCENERY) The initiator object category ( Object.Category.UNIT or Object.Category.STATIC ).</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniPlayerName">EVENTDATA.IniPlayerName</a></td>
<td class="summary">
<pre><code>(UNIT) The name of the initiating player in case the Unit is a client or player slot.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniTypeName">EVENTDATA.IniTypeName</a></td>
<td class="summary">
<pre><code> (UNIT) The type name of the initiator.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniUnit">EVENTDATA.IniUnit</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniUnit">EVENTDATA.IniUnit</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The initiating MOOSE wrapper &lt;a href="Wrapper.Unit.html##(UNIT)"&gt;Wrapper.Unit#UNIT&lt;/a&gt; of the initiator Unit object.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniUnitName">EVENTDATA.IniUnitName</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).IniUnitName">EVENTDATA.IniUnitName</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The initiating UNIT name (same as IniDCSUnitName).
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtCategory">EVENTDATA.TgtCategory</a></td>
<td class="summary">
<pre><code> (UNIT) The category of the target.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtCoalition">EVENTDATA.TgtCoalition</a></td>
<td class="summary">
<pre><code> (UNIT) The coalition of the target.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSGroup">EVENTDATA.TgtDCSGroup</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSGroup">EVENTDATA.TgtDCSGroup</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT) The target {Dcs.DCSGroup#Group}.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSGroupName">EVENTDATA.TgtDCSGroupName</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSGroupName">EVENTDATA.TgtDCSGroupName</a></td>
<td class="summary"> <td class="summary">
<p> (UNIT) The target Group name.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSUnit">EVENTDATA.TgtDCSUnit</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSUnit">EVENTDATA.TgtDCSUnit</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The target &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSUnitName">EVENTDATA.TgtDCSUnitName</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtDCSUnitName">EVENTDATA.TgtDCSUnitName</a></td>
<td class="summary"> <td class="summary">
<p> (UNIT/STATIC) The target Unit name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtGroup">EVENTDATA.TgtGroup</a></td>
<td class="summary">
<pre><code> (UNIT) The target MOOSE wrapper &lt;a href="Wrapper.Group.html##(GROUP)"&gt;Wrapper.Group#GROUP&lt;/a&gt; of the target Group object.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtGroupName">EVENTDATA.TgtGroupName</a></td>
<td class="summary">
<pre><code> (UNIT) The target GROUP name (same as TgtDCSGroupName).
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtObjectCategory">EVENTDATA.TgtObjectCategory</a></td>
<td class="summary">
<pre><code> (UNIT/STATIC) The target object category ( Object.Category.UNIT or Object.Category.STATIC ).
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtPlayerName">EVENTDATA.TgtPlayerName</a></td>
<td class="summary">
<pre><code>(UNIT) The name of the target player in case the Unit is a client or player slot.
</code></pre>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtTypeName">EVENTDATA.TgtTypeName</a></td>
<td class="summary">
<pre><code> (UNIT) The type name of the target.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtUnit">EVENTDATA.TgtUnit</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtUnit">EVENTDATA.TgtUnit</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The target MOOSE wrapper &lt;a href="Wrapper.Unit.html##(UNIT)"&gt;Wrapper.Unit#UNIT&lt;/a&gt; of the target Unit object.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtUnitName">EVENTDATA.TgtUnitName</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).TgtUnitName">EVENTDATA.TgtUnitName</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The target UNIT name (same as TgtDCSUnitName).
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -489,25 +608,28 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).id">EVENTDATA.id</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).id">EVENTDATA.id</a></td>
<td class="summary"> <td class="summary">
<p>The identifier of the event.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).initiator">EVENTDATA.initiator</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).initiator">EVENTDATA.initiator</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC/SCENERY) The initiating &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).target">EVENTDATA.target</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).target">EVENTDATA.target</a></td>
<td class="summary"> <td class="summary">
<pre><code> (UNIT/STATIC) The target &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="##(EVENTDATA).weapon">EVENTDATA.weapon</a></td> <td class="name" nowrap="nowrap"><a href="##(EVENTDATA).weapon">EVENTDATA.weapon</a></td>
<td class="summary"> <td class="summary">
<p>The weapon used during the event.</p>
</td> </td>
</tr> </tr>
</table> </table>
@@ -1325,71 +1447,179 @@ The self instance of the class for which the event is.</p>
<h2><a id="#(EVENTDATA)" >Type <code>EVENTDATA</code></a></h2> <h2><a id="#(EVENTDATA)" >Type <code>EVENTDATA</code></a></h2>
<p>The Event structure</p> <p>The Event structure
Note that at the beginning of each field description, there is an indication which field will be populated depending on the object type involved in the Event:</p>
<ul>
<li>A (Object.Category.)UNIT : A UNIT object type is involved in the Event.</li>
</ul>
<ul>
<li>A (Object.Category.)STATIC : A STATIC object type is involved in the Event.µ
</li>
</ul>
<h3>Field(s)</h3> <h3>Field(s)</h3>
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Dcs.DCSUnit.html##(Unit.Category)">Dcs.DCSUnit#Unit.Category</a></em>
<a id="#(EVENTDATA).IniCategory" >
<strong>EVENTDATA.IniCategory</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The category of the initiator.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCScoalition.html##(coalition.side)">Dcs.DCScoalition#coalition.side</a></em>
<a id="#(EVENTDATA).IniCoalition" >
<strong>EVENTDATA.IniCoalition</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The coalition of the initiator.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSGroup.html##(Group)">Dcs.DCSGroup#Group</a></em>
<a id="#(EVENTDATA).IniDCSGroup" > <a id="#(EVENTDATA).IniDCSGroup" >
<strong>EVENTDATA.IniDCSGroup</strong> <strong>EVENTDATA.IniDCSGroup</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT) The initiating {Dcs.DCSGroup#Group}.
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#string</em>
<a id="#(EVENTDATA).IniDCSGroupName" > <a id="#(EVENTDATA).IniDCSGroupName" >
<strong>EVENTDATA.IniDCSGroupName</strong> <strong>EVENTDATA.IniDCSGroupName</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p> (UNIT) The initiating Group name.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Dcs.DCSUnit.html##(Unit)">Dcs.DCSUnit#Unit</a></em>
<a id="#(EVENTDATA).IniDCSUnit" > <a id="#(EVENTDATA).IniDCSUnit" >
<strong>EVENTDATA.IniDCSUnit</strong> <strong>EVENTDATA.IniDCSUnit</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The initiating &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#string</em>
<a id="#(EVENTDATA).IniDCSUnitName" > <a id="#(EVENTDATA).IniDCSUnitName" >
<strong>EVENTDATA.IniDCSUnitName</strong> <strong>EVENTDATA.IniDCSUnitName</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p> (UNIT/STATIC) The initiating Unit name.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a></em>
<a id="#(EVENTDATA).IniGroup" > <a id="#(EVENTDATA).IniGroup" >
<strong>EVENTDATA.IniGroup</strong> <strong>EVENTDATA.IniGroup</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT) The initiating MOOSE wrapper &lt;a href="Wrapper.Group.html##(GROUP)"&gt;Wrapper.Group#GROUP&lt;/a&gt; of the initiator Group object.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(EVENTDATA).IniGroupName" >
<strong>EVENTDATA.IniGroupName</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The initiating GROUP name (same as IniDCSGroupName).
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSObject.html##(Object.Category)">Dcs.DCSObject#Object.Category</a></em>
<a id="#(EVENTDATA).IniObjectCategory" >
<strong>EVENTDATA.IniObjectCategory</strong>
</a>
</dt>
<dd>
<p>(UNIT/STATIC/SCENERY) The initiator object category ( Object.Category.UNIT or Object.Category.STATIC ).</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(EVENTDATA).IniPlayerName" >
<strong>EVENTDATA.IniPlayerName</strong>
</a>
</dt>
<dd>
<pre><code>(UNIT) The name of the initiating player in case the Unit is a client or player slot.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(EVENTDATA).IniTypeName" >
<strong>EVENTDATA.IniTypeName</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The type name of the initiator.
</code></pre>
</dd> </dd>
@@ -1404,7 +1634,8 @@ The self instance of the class for which the event is.</p>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The initiating MOOSE wrapper &lt;a href="Wrapper.Unit.html##(UNIT)"&gt;Wrapper.Unit#UNIT&lt;/a&gt; of the initiator Unit object.
</code></pre>
</dd> </dd>
</dl> </dl>
@@ -1418,58 +1649,171 @@ The self instance of the class for which the event is.</p>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The initiating UNIT name (same as IniDCSUnitName).
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Dcs.DCSUnit.html##(Unit.Category)">Dcs.DCSUnit#Unit.Category</a></em>
<a id="#(EVENTDATA).TgtCategory" >
<strong>EVENTDATA.TgtCategory</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The category of the target.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCScoalition.html##(coalition.side)">Dcs.DCScoalition#coalition.side</a></em>
<a id="#(EVENTDATA).TgtCoalition" >
<strong>EVENTDATA.TgtCoalition</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The coalition of the target.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSGroup.html##(Group)">Dcs.DCSGroup#Group</a></em>
<a id="#(EVENTDATA).TgtDCSGroup" > <a id="#(EVENTDATA).TgtDCSGroup" >
<strong>EVENTDATA.TgtDCSGroup</strong> <strong>EVENTDATA.TgtDCSGroup</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT) The target {Dcs.DCSGroup#Group}.
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#string</em>
<a id="#(EVENTDATA).TgtDCSGroupName" > <a id="#(EVENTDATA).TgtDCSGroupName" >
<strong>EVENTDATA.TgtDCSGroupName</strong> <strong>EVENTDATA.TgtDCSGroupName</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p> (UNIT) The target Group name.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Dcs.DCSUnit.html##(Unit)">Dcs.DCSUnit#Unit</a></em>
<a id="#(EVENTDATA).TgtDCSUnit" > <a id="#(EVENTDATA).TgtDCSUnit" >
<strong>EVENTDATA.TgtDCSUnit</strong> <strong>EVENTDATA.TgtDCSUnit</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The target &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#string</em>
<a id="#(EVENTDATA).TgtDCSUnitName" > <a id="#(EVENTDATA).TgtDCSUnitName" >
<strong>EVENTDATA.TgtDCSUnitName</strong> <strong>EVENTDATA.TgtDCSUnitName</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p> (UNIT/STATIC) The target Unit name.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Wrapper.Group.html##(GROUP)">Wrapper.Group#GROUP</a></em>
<a id="#(EVENTDATA).TgtGroup" >
<strong>EVENTDATA.TgtGroup</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The target MOOSE wrapper &lt;a href="Wrapper.Group.html##(GROUP)"&gt;Wrapper.Group#GROUP&lt;/a&gt; of the target Group object.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(EVENTDATA).TgtGroupName" >
<strong>EVENTDATA.TgtGroupName</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The target GROUP name (same as TgtDCSGroupName).
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Dcs.DCSObject.html##(Object.Category)">Dcs.DCSObject#Object.Category</a></em>
<a id="#(EVENTDATA).TgtObjectCategory" >
<strong>EVENTDATA.TgtObjectCategory</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT/STATIC) The target object category ( Object.Category.UNIT or Object.Category.STATIC ).
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(EVENTDATA).TgtPlayerName" >
<strong>EVENTDATA.TgtPlayerName</strong>
</a>
</dt>
<dd>
<pre><code>(UNIT) The name of the target player in case the Unit is a client or player slot.
</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(EVENTDATA).TgtTypeName" >
<strong>EVENTDATA.TgtTypeName</strong>
</a>
</dt>
<dd>
<pre><code> (UNIT) The type name of the target.
</code></pre>
</dd> </dd>
@@ -1484,7 +1828,8 @@ The self instance of the class for which the event is.</p>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The target MOOSE wrapper &lt;a href="Wrapper.Unit.html##(UNIT)"&gt;Wrapper.Unit#UNIT&lt;/a&gt; of the target Unit object.
</code></pre>
</dd> </dd>
</dl> </dl>
@@ -1498,7 +1843,8 @@ The self instance of the class for which the event is.</p>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The target UNIT name (same as TgtDCSUnitName).
</code></pre>
</dd> </dd>
</dl> </dl>
@@ -1544,12 +1890,14 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em>#number</em>
<a id="#(EVENTDATA).id" > <a id="#(EVENTDATA).id" >
<strong>EVENTDATA.id</strong> <strong>EVENTDATA.id</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<p>The identifier of the event.</p>
</dd> </dd>
@@ -1557,26 +1905,30 @@ The self instance of the class for which the event is.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Dcs.DCSUnit.html##(Unit)">Dcs.DCSUnit#Unit</a></em>
<a id="#(EVENTDATA).initiator" > <a id="#(EVENTDATA).initiator" >
<strong>EVENTDATA.initiator</strong> <strong>EVENTDATA.initiator</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC/SCENERY) The initiating &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
<dt> <dt>
<em><a href="Dcs.DCSUnit.html##(Unit)">Dcs.DCSUnit#Unit</a></em>
<a id="#(EVENTDATA).target" > <a id="#(EVENTDATA).target" >
<strong>EVENTDATA.target</strong> <strong>EVENTDATA.target</strong>
</a> </a>
</dt> </dt>
<dd> <dd>
<pre><code> (UNIT/STATIC) The target &lt;a href="Dcs.DCSUnit.html##(Unit)"&gt;Dcs.DCSUnit#Unit&lt;/a&gt; or &lt;a href="Dcs.DCSStaticObject.html##(StaticObject)"&gt;Dcs.DCSStaticObject#StaticObject&lt;/a&gt;.
</code></pre>
</dd> </dd>
</dl> </dl>
@@ -1589,7 +1941,7 @@ The self instance of the class for which the event is.</p>
</dt> </dt>
<dd> <dd>
<p>The weapon used during the event.</p>
</dd> </dd>
</dl> </dl>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+20
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -164,6 +165,12 @@
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetName">IDENTIFIABLE:GetName()</a></td> <td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetName">IDENTIFIABLE:GetName()</a></td>
<td class="summary"> <td class="summary">
<p>Returns DCS Identifiable object name.</p> <p>Returns DCS Identifiable object name.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(IDENTIFIABLE).GetThreatLevel">IDENTIFIABLE:GetThreatLevel()</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -398,6 +405,19 @@ The DCS Identifiable is not existing or alive. </p>
</li> </li>
</ol> </ol>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(IDENTIFIABLE).GetThreatLevel" >
<strong>IDENTIFIABLE:GetThreatLevel()</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+71
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -133,6 +134,12 @@ To send messages, you need to use the To functions.</p>
<td class="name" nowrap="nowrap"><a href="##(MESSAGE).ToAll">MESSAGE:ToAll()</a></td> <td class="name" nowrap="nowrap"><a href="##(MESSAGE).ToAll">MESSAGE:ToAll()</a></td>
<td class="summary"> <td class="summary">
<p>Sends a MESSAGE to all players. </p> <p>Sends a MESSAGE to all players. </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MESSAGE).ToAllIf">MESSAGE:ToAllIf(Condition)</a></td>
<td class="summary">
<p>Sends a MESSAGE to all players if the given Condition is true.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -151,6 +158,12 @@ To send messages, you need to use the To functions.</p>
<td class="name" nowrap="nowrap"><a href="##(MESSAGE).ToCoalition">MESSAGE:ToCoalition(CoalitionSide)</a></td> <td class="name" nowrap="nowrap"><a href="##(MESSAGE).ToCoalition">MESSAGE:ToCoalition(CoalitionSide)</a></td>
<td class="summary"> <td class="summary">
<p>Sends a MESSAGE to a Coalition. </p> <p>Sends a MESSAGE to a Coalition. </p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MESSAGE).ToCoalitionIf">MESSAGE:ToCoalitionIf(CoalitionSide, Condition)</a></td>
<td class="summary">
<p>Sends a MESSAGE to a Coalition if the given Condition is true. </p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -309,6 +322,32 @@ or
MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" ) MessageAll = MESSAGE:New( "To all Players: BLUE has won! Each player of BLUE wins 50 points!", "End of Mission", 25, "Win" )
MessageAll:ToAll()</code></pre> MessageAll:ToAll()</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MESSAGE).ToAllIf" >
<strong>MESSAGE:ToAllIf(Condition)</strong>
</a>
</dt>
<dd>
<p>Sends a MESSAGE to all players if the given Condition is true.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Condition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MESSAGE)">#MESSAGE</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@@ -418,6 +457,38 @@ or
MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" ) MessageRED = MESSAGE:New( "To the RED Players: You receive a penalty because you've killed one of your own units", "Penalty", 25, "Score" )
MessageRED:ToCoalition( coalition.side.RED )</code></pre> MessageRED:ToCoalition( coalition.side.RED )</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MESSAGE).ToCoalitionIf" >
<strong>MESSAGE:ToCoalitionIf(CoalitionSide, Condition)</strong>
</a>
</dt>
<dd>
<p>Sends a MESSAGE to a Coalition if the given Condition is true. </p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> CoalitionSide </em></code>:
needs to be filled out by the defined structure of the standard scripting engine <a href="coalition.side.html">coalition.side</a>. </p>
</li>
<li>
<p><code><em> Condition </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(MESSAGE)">#MESSAGE</a>:</em></p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+88
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -82,6 +83,7 @@
In order to keep the credibility of the the author, I want to emphasize that the of the MIST framework was created by Grimes, who you can find on the Eagle Dynamics Forums.</p> In order to keep the credibility of the the author, I want to emphasize that the of the MIST framework was created by Grimes, who you can find on the Eagle Dynamics Forums.</p>
<h2>1.1) POINT_VEC3 constructor</h2> <h2>1.1) POINT_VEC3 constructor</h2>
<p>A new POINT_VEC3 instance can be created with:</p> <p>A new POINT_VEC3 instance can be created with:</p>
<ul> <ul>
@@ -89,6 +91,43 @@ In order to keep the credibility of the the author, I want to emphasize that the
<li><a href="Point.html##(POINT_VEC3).NewFromVec3">Point#POINT_VEC3.NewFromVec3</a>(): a 3D point created from a <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a>.</li> <li><a href="Point.html##(POINT_VEC3).NewFromVec3">Point#POINT_VEC3.NewFromVec3</a>(): a 3D point created from a <a href="DCSTypes.html##(Vec3)">DCSTypes#Vec3</a>.</li>
</ul> </ul>
<h2>1.2) Smoke, flare, explode, illuminate</h2>
<p>At the point a smoke, flare, explosion and illumination bomb can be triggered. Use the following methods:</p>
<h3>1.2.1) Smoke</h3>
<ul>
<li><a href="##(POINT_VEC3).Smoke">POINT_VEC3.Smoke</a>(): To smoke the point in a certain color.</li>
<li><a href="##(POINT_VEC3).SmokeBlue">POINT_VEC3.SmokeBlue</a>(): To smoke the point in blue.</li>
<li><a href="##(POINT_VEC3).SmokeRed">POINT_VEC3.SmokeRed</a>(): To smoke the point in red.</li>
<li><a href="##(POINT_VEC3).SmokeOrange">POINT_VEC3.SmokeOrange</a>(): To smoke the point in orange.</li>
<li><a href="##(POINT_VEC3).SmokeWhite">POINT_VEC3.SmokeWhite</a>(): To smoke the point in white.</li>
<li><a href="##(POINT_VEC3).SmokeGreen">POINT_VEC3.SmokeGreen</a>(): To smoke the point in green.</li>
</ul>
<h3>1.2.2) Flare</h3>
<ul>
<li><a href="##(POINT_VEC3).Flare">POINT_VEC3.Flare</a>(): To flare the point in a certain color.</li>
<li><a href="##(POINT_VEC3).FlareRed">POINT_VEC3.FlareRed</a>(): To flare the point in red.</li>
<li><a href="##(POINT_VEC3).FlareYellow">POINT_VEC3.FlareYellow</a>(): To flare the point in yellow.</li>
<li><a href="##(POINT_VEC3).FlareWhite">POINT_VEC3.FlareWhite</a>(): To flare the point in white.</li>
<li><a href="##(POINT_VEC3).FlareGreen">POINT_VEC3.FlareGreen</a>(): To flare the point in green.</li>
</ul>
<h3>1.2.3) Explode</h3>
<ul>
<li><a href="##(POINT_VEC3).Explosion">POINT_VEC3.Explosion</a>(): To explode the point with a certain intensity.</li>
</ul>
<h3>1.2.4) Illuminate</h3>
<ul>
<li><a href="##(POINT_VEC3).IlluminationBomb">POINT_VEC3.IlluminationBomb</a>(): To illuminate the 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> <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> <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>
@@ -114,6 +153,9 @@ In order to keep the credibility of the the author, I want to emphasize that the
<p>Hereby the change log:</p> <p>Hereby the change log:</p>
<p>2017-03-03: POINT_VEC3:<strong>Explosion( ExplosionIntensity )</strong> added. <br/>
2017-03-03: POINT_VEC3:<strong>IlluminationBomb()</strong> added. </p>
<p>2017-02-18: POINT_VEC3:<strong>NewFromVec2( Vec2, LandHeightAdd )</strong> added.</p> <p>2017-02-18: POINT_VEC3:<strong>NewFromVec2( Vec2, LandHeightAdd )</strong> added.</p>
<p>2016-08-12: POINT_VEC3:<strong>Translate( Distance, Angle )</strong> added.</p> <p>2016-08-12: POINT_VEC3:<strong>Translate( Distance, Angle )</strong> added.</p>
@@ -251,6 +293,12 @@ In order to keep the credibility of the the author, I want to emphasize that the
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).ClassName">POINT_VEC3.ClassName</a></td> <td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).ClassName">POINT_VEC3.ClassName</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).Explosion">POINT_VEC3:Explosion(ExplosionIntensity)</a></td>
<td class="summary">
<p>Creates an explosion at the point of a certain intensity.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -383,6 +431,12 @@ In order to keep the credibility of the the author, I want to emphasize that the
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).GetZ">POINT_VEC3:GetZ()</a></td> <td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).GetZ">POINT_VEC3:GetZ()</a></td>
<td class="summary"> <td class="summary">
<p>Return the z coordinate of the POINT_VEC3.</p> <p>Return the z coordinate of the POINT_VEC3.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(POINT_VEC3).IlluminationBomb">POINT_VEC3:IlluminationBomb()</a></td>
<td class="summary">
<p>Creates an illumination bomb at the point.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -998,6 +1052,27 @@ The new calculated POINT_VEC2.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).Explosion" >
<strong>POINT_VEC3:Explosion(ExplosionIntensity)</strong>
</a>
</dt>
<dd>
<p>Creates an explosion at the point of a certain intensity.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number ExplosionIntensity </em></code>: </p>
</li>
</ul>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@@ -1536,6 +1611,19 @@ The z coodinate.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(POINT_VEC3).IlluminationBomb" >
<strong>POINT_VEC3:IlluminationBomb()</strong>
</a>
</dt>
<dd>
<p>Creates an illumination bomb at the point.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(POINT_VEC3).IsMetric" > <a id="#(POINT_VEC3).IsMetric" >
<strong>POINT_VEC3:IsMetric()</strong> <strong>POINT_VEC3:IsMetric()</strong>
</a> </a>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li>Process_JTAC</li> <li>Process_JTAC</li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li>Process_Pickup</li> <li>Process_Pickup</li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li>Route</li> <li>Route</li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+220
View File
@@ -0,0 +1,220 @@
<!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="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="AI_Cap.html">AI_Cap</a></li>
<li><a href="AI_Cas.html">AI_Cas</a></li>
<li><a href="AI_Patrol.html">AI_Patrol</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Assign.html">Assign</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="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="DetectionManager.html">DetectionManager</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</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="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li>
<li>Scenery</li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</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="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="Task.html">Task</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Task_SEAD.html">Task_SEAD</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Scenery</code></h1>
<p>This module contains the SCENERY class.</p>
<h1>1) <a href="Scenery.html##(SCENERY)">Scenery#SCENERY</a> class, extends <a href="Positionable.html##(POSITIONABLE)">Positionable#POSITIONABLE</a></h1>
<p>Scenery objects are defined on the map.
The <a href="Scenery.html##(SCENERY)">Scenery#SCENERY</a> class is a wrapper class to handle the DCS Scenery objects:</p>
<ul>
<li>Wraps the DCS Scenery objects.</li>
<li>Support all DCS Scenery APIs.</li>
<li>Enhance with Scenery specific APIs not in the DCS API set.</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#SCENERY">SCENERY</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(SCENERY)">Type <code>SCENERY</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCENERY).ClassName">SCENERY.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCENERY).GetDCSObject">SCENERY:GetDCSObject()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCENERY).GetThreatLevel">SCENERY:GetThreatLevel()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCENERY).Register">SCENERY:Register(SceneryName, SceneryObject)</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(SCENERY)">#SCENERY</a></em>
<a id="SCENERY" >
<strong>SCENERY</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Scenery)" >Type <code>Scenery</code></a></h2>
<h2><a id="#(SCENERY)" >Type <code>SCENERY</code></a></h2>
<p>The SCENERY class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(SCENERY).ClassName" >
<strong>SCENERY.ClassName</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCENERY).GetDCSObject" >
<strong>SCENERY:GetDCSObject()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCENERY).GetThreatLevel" >
<strong>SCENERY:GetThreatLevel()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCENERY).Register" >
<strong>SCENERY:Register(SceneryName, SceneryObject)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> SceneryName </em></code>: </p>
</li>
<li>
<p><code><em> SceneryObject </em></code>: </p>
</li>
</ul>
</dd>
</dl>
</div>
</div>
</body>
</html>
+2 -2
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li>ScheduleDispatcher</li> <li>ScheduleDispatcher</li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -341,8 +342,7 @@ Nothing of this code should be modified without testing it thoroughly.</p>
<p> Initialize the ObjectSchedulers array, which is a weakly coupled table. <p> setmetatable( {}, { __mode = "v" } )</p>
If the object used as the key is nil, then the garbage collector will remove the item from the Functions array.</p>
</dd> </dd>
</dl> </dl>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li>Scheduler</li> <li>Scheduler</li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
File diff suppressed because it is too large Load Diff
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+8 -4
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -71,7 +72,7 @@
<div id="content"> <div id="content">
<h1>Module <code>Spawn</code></h1> <h1>Module <code>Spawn</code></h1>
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <br/> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <br/>
<strong>Spawn groups of units dynamically in your missions.</strong></p> <strong>Spawn groups of units dynamically in your missions.</strong></p>
<p><img src="..\Presentations\SPAWN\SPAWN.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\SPAWN\SPAWN.JPG" alt="Banner Image"/></p>
@@ -1758,6 +1759,9 @@ The group that was spawned. You can use this group for further actions.</p>
<p> Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.</p>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@@ -2232,7 +2236,7 @@ when nothing was spawned.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em>#number</em>
<a id="#(SPAWN).SpawnMaxGroups" > <a id="#(SPAWN).SpawnMaxGroups" >
<strong>SPAWN.SpawnMaxGroups</strong> <strong>SPAWN.SpawnMaxGroups</strong>
</a> </a>
@@ -2249,7 +2253,7 @@ when nothing was spawned.</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em>#number</em>
<a id="#(SPAWN).SpawnMaxUnitsAlive" > <a id="#(SPAWN).SpawnMaxUnitsAlive" >
<strong>SPAWN.SpawnMaxUnitsAlive</strong> <strong>SPAWN.SpawnMaxUnitsAlive</strong>
</a> </a>
@@ -2528,7 +2532,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
<dl class="function"> <dl class="function">
<dt> <dt>
<em></em> <em>#boolean</em>
<a id="#(SPAWN).SpawnUnControlled" > <a id="#(SPAWN).SpawnUnControlled" >
<strong>SPAWN.SpawnUnControlled</strong> <strong>SPAWN.SpawnUnControlled</strong>
</a> </a>
+20
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -133,6 +134,12 @@ If the DCS Static object does not exist or is nil, the STATIC methods will retur
<td class="name" nowrap="nowrap"><a href="##(STATIC).GetDCSObject">STATIC:GetDCSObject()</a></td> <td class="name" nowrap="nowrap"><a href="##(STATIC).GetDCSObject">STATIC:GetDCSObject()</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(STATIC).GetThreatLevel">STATIC:GetThreatLevel()</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -226,6 +233,19 @@ Name of the DCS <strong>Static</strong> as defined within the Mission Editor.</p
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(STATIC).GetThreatLevel" >
<strong>STATIC:GetThreatLevel()</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
+134
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -88,6 +89,7 @@
<li><a href="##(TASK).HasStateMachine">TASK.HasStateMachine</a>():Enquire if the task has a <a href="Fsm.html">Fsm</a></li> <li><a href="##(TASK).HasStateMachine">TASK.HasStateMachine</a>():Enquire if the task has a <a href="Fsm.html">Fsm</a></li>
<li><a href="##(TASK).AssignToUnit">TASK.AssignToUnit</a>(): Assign a task to a unit. (Needs to be implemented in the derived classes from <a href="##(TASK)">#TASK</a>.</li> <li><a href="##(TASK).AssignToUnit">TASK.AssignToUnit</a>(): Assign a task to a unit. (Needs to be implemented in the derived classes from <a href="##(TASK)">#TASK</a>.</li>
<li><a href="##(TASK).UnAssignFromUnit">TASK.UnAssignFromUnit</a>(): Unassign the task from a unit.</li> <li><a href="##(TASK).UnAssignFromUnit">TASK.UnAssignFromUnit</a>(): Unassign the task from a unit.</li>
<li><a href="##(TASK).SetTimeOut">TASK.SetTimeOut</a>(): Set timer in seconds before task gets cancelled if not assigned.</li>
</ul> </ul>
<h2>1.2) Set and enquire task status (beyond the task state machine processing).</h2> <h2>1.2) Set and enquire task status (beyond the task state machine processing).</h2>
@@ -511,6 +513,12 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).SetStateMachine">TASK:SetStateMachine(TaskUnit, Fsm)</a></td> <td class="name" nowrap="nowrap"><a href="##(TASK).SetStateMachine">TASK:SetStateMachine(TaskUnit, Fsm)</a></td>
<td class="summary"> <td class="summary">
<p>Add a FiniteStateMachine to <a href="Task.html">Task</a> with key Task<a href="Unit.html">Unit</a></p> <p>Add a FiniteStateMachine to <a href="Task.html">Task</a> with key Task<a href="Unit.html">Unit</a></p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).SetTimeOut">TASK:SetTimeOut(Timer)</a></td>
<td class="summary">
<p>Sets the TimeOut for the <a href="Task.html">Task</a>.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -595,6 +603,12 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).TaskType">TASK.TaskType</a></td> <td class="name" nowrap="nowrap"><a href="##(TASK).TaskType">TASK.TaskType</a></td>
<td class="summary"> <td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).TimeOut">TASK.TimeOut</a></td>
<td class="summary">
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -643,6 +657,12 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).onafterReplan">TASK:onafterReplan(From, Event, To)</a></td> <td class="name" nowrap="nowrap"><a href="##(TASK).onafterReplan">TASK:onafterReplan(From, Event, To)</a></td>
<td class="summary"> <td class="summary">
<p>FSM function for a TASK</p> <p>FSM function for a TASK</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).onbeforeTimeOut">TASK:onbeforeTimeOut(Event, From, To)</a></td>
<td class="summary">
<p>FSM function for a TASK</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -661,6 +681,12 @@ Use the method <a href="##(TASK).AddScore">TASK.AddScore</a>() to add scores whe
<td class="name" nowrap="nowrap"><a href="##(TASK).onenterFailed">TASK:onenterFailed(From, Event, To)</a></td> <td class="name" nowrap="nowrap"><a href="##(TASK).onenterFailed">TASK:onenterFailed(From, Event, To)</a></td>
<td class="summary"> <td class="summary">
<p>FSM function for a TASK</p> <p>FSM function for a TASK</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(TASK).onenterPlanned">TASK:onenterPlanned(Event, From, To)</a></td>
<td class="summary">
<p>FSM function for a TASK</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -1993,6 +2019,36 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(TASK).SetTimeOut" >
<strong>TASK:SetTimeOut(Timer)</strong>
</a>
</dt>
<dd>
<p>Sets the TimeOut for the <a href="Task.html">Task</a>.</p>
<p>If <a href="Task.html">Task</a> stayed planned for longer than TimeOut, it gets into Cancelled status.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(integer)">#integer</a> Timer </em></code>:
in seconds</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(TASK)">#TASK</a>:</em>
self</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).SetType" > <a id="#(TASK).SetType" >
<strong>TASK:SetType(TaskType)</strong> <strong>TASK:SetType(TaskType)</strong>
</a> </a>
@@ -2200,6 +2256,20 @@ Fsm#FSM_PROCESS</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(TASK).TimeOut" >
<strong>TASK.TimeOut</strong>
</a>
</dt>
<dd>
</dd> </dd>
</dl> </dl>
<dl class="function"> <dl class="function">
@@ -2355,6 +2425,37 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(TASK).onbeforeTimeOut" >
<strong>TASK:onbeforeTimeOut(Event, From, To)</strong>
</a>
</dt>
<dd>
<p>FSM function for a TASK</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).onenterAborted" > <a id="#(TASK).onenterAborted" >
<strong>TASK:onenterAborted(From, Event, To)</strong> <strong>TASK:onenterAborted(From, Event, To)</strong>
</a> </a>
@@ -2448,6 +2549,37 @@ self</p>
<dl class="function"> <dl class="function">
<dt> <dt>
<a id="#(TASK).onenterPlanned" >
<strong>TASK:onenterPlanned(Event, From, To)</strong>
</a>
</dt>
<dd>
<p>FSM function for a TASK</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Event </em></code>: </p>
</li>
<li>
<p><code><em>#string From </em></code>: </p>
</li>
<li>
<p><code><em>#string To </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(TASK).onenterSuccess" > <a id="#(TASK).onenterSuccess" >
<strong>TASK:onenterSuccess(Event, From, To)</strong> <strong>TASK:onenterSuccess(Event, From, To)</strong>
</a> </a>
@@ -2508,6 +2640,8 @@ self</p>
</dd> </dd>
</dl> </dl>
<h2><a id="#(integer)" >Type <code>integer</code></a></h2>
</div> </div>
</div> </div>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
+24 -7
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
@@ -74,7 +75,7 @@
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="AI_Balancer.html">AI_Balancer</a></td> <td class="name" nowrap="nowrap"><a href="AI_Balancer.html">AI_Balancer</a></td>
<td class="summary"> <td class="summary">
<p>Single-Player:<strong>No</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <strong>AI Balancing will replace in multi player missions <p>Single-Player:<strong>No</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <strong>AI Balancing will replace in multi player missions
non-occupied human slots with AI groups, in order to provide an engaging simulation environment, non-occupied human slots with AI groups, in order to provide an engaging simulation environment,
even when there are hardly any players in the mission.</strong></p> even when there are hardly any players in the mission.</strong></p>
@@ -91,7 +92,7 @@ CLIENTS in a SET_CLIENT collection, which are not occupied by human players.</p>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="AI_Cap.html">AI_Cap</a></td> <td class="name" nowrap="nowrap"><a href="AI_Cap.html">AI_Cap</a></td>
<td class="summary"> <td class="summary">
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <strong>Execute Combat Air Patrol (CAP).</strong></p> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <strong>Execute Combat Air Patrol (CAP).</strong></p>
<p><img src="..\Presentations\AI_CAP\Dia1.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_CAP\Dia1.JPG" alt="Banner Image"/></p>
@@ -106,7 +107,7 @@ and automatically engage any airborne enemies that are within a certain range or
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="AI_Cas.html">AI_Cas</a></td> <td class="name" nowrap="nowrap"><a href="AI_Cas.html">AI_Cas</a></td>
<td class="summary"> <td class="summary">
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> --
<strong>Provide Close Air Support to friendly ground troops.</strong></p> <strong>Provide Close Air Support to friendly ground troops.</strong></p>
<p><img src="..\Presentations\AI_CAS\Dia1.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_CAS\Dia1.JPG" alt="Banner Image"/></p>
@@ -121,7 +122,7 @@ and automatically engage any airborne enemies that are within a certain range or
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="AI_Patrol.html">AI_Patrol</a></td> <td class="name" nowrap="nowrap"><a href="AI_Patrol.html">AI_Patrol</a></td>
<td class="summary"> <td class="summary">
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> -- <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Air</strong> --
<strong>Air Patrolling or Staging.</strong></p> <strong>Air Patrolling or Staging.</strong></p>
<p><img src="..\Presentations\AI_PATROL\Dia1.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_PATROL\Dia1.JPG" alt="Banner Image"/></p>
@@ -166,7 +167,7 @@ and automatically engage any airborne enemies that are within a certain range or
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Cargo.html">Cargo</a></td> <td class="name" nowrap="nowrap"><a href="Cargo.html">Cargo</a></td>
<td class="summary"> <td class="summary">
<p>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Ground</strong> -- <br/> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>Ground</strong> -- <br/>
<strong>Management of logical cargo objects, that can be transported from and to transportation carriers.</strong></p> <strong>Management of logical cargo objects, that can be transported from and to transportation carriers.</strong></p>
<p><img src="..\Presentations\AI_CARGO\CARGO.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\AI_CARGO\CARGO.JPG" alt="Banner Image"/></p>
@@ -317,6 +318,12 @@ following a given priority.</p>
<td class="name" nowrap="nowrap"><a href="Route.html">Route</a></td> <td class="name" nowrap="nowrap"><a href="Route.html">Route</a></td>
<td class="summary"> <td class="summary">
<p>(SP) (MP) (FSM) Route AI or players through waypoints or to zones.</p> <p>(SP) (MP) (FSM) Route AI or players through waypoints or to zones.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="Scenery.html">Scenery</a></td>
<td class="summary">
<p>This module contains the SCENERY class.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -334,7 +341,17 @@ following a given priority.</p>
<tr> <tr>
<td class="name" nowrap="nowrap"><a href="Scoring.html">Scoring</a></td> <td class="name" nowrap="nowrap"><a href="Scoring.html">Scoring</a></td>
<td class="summary"> <td class="summary">
<p>Scoring system for MOOSE.</p> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / Core:<strong>Yes</strong> -- <strong>Administer the scoring of player achievements,
and create a CSV file logging the scoring events for use at team or squadron websites.</strong></p>
<p><img src="..\Presentations\SCORING\Dia1.JPG" alt="Banner Image"/></p>
<hr/>
<h1>1) <a href="Scoring.html##(SCORING)">Scoring#SCORING</a> class, extends <a href="Base.html##(BASE)">Base#BASE</a></h1>
<p>The <a href="##(SCORING)">#SCORING</a> class administers the scoring of player achievements,
and creates a CSV file logging the scoring events and results for use at team or squadron websites.</p>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -358,7 +375,7 @@ following a given priority.</p>
<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>Single-Player:<strong>Yes</strong> / Mulit-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <br/> <p>Single-Player:<strong>Yes</strong> / Multi-Player:<strong>Yes</strong> / AI:<strong>Yes</strong> / Human:<strong>No</strong> / Types:<strong>All</strong> -- <br/>
<strong>Spawn groups of units dynamically in your missions.</strong></p> <strong>Spawn groups of units dynamically in your missions.</strong></p>
<p><img src="..\Presentations\SPAWN\SPAWN.JPG" alt="Banner Image"/></p> <p><img src="..\Presentations\SPAWN\SPAWN.JPG" alt="Banner Image"/></p>
+1
View File
@@ -50,6 +50,7 @@
<li><a href="Process_JTAC.html">Process_JTAC</a></li> <li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li> <li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li> <li><a href="Route.html">Route</a></li>
<li><a href="Scenery.html">Scenery</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li> <li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li> <li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li> <li><a href="Scoring.html">Scoring</a></li>
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Some files were not shown because too many files have changed in this diff Show More