Module Ops.OpsZone
Ops - Strategic Zone.
Main Features:
- Monitor if a zone is captured
- Monitor if an airbase is captured
- Define conditions under which zones are captured/held
- Supports circular and polygon zone shapes
Author: funkyfranky
Global(s)
Global OPSZONE |
Gentlemen, when the enemy is committed to a mistake we must not interrupt him too soon. --- Horation Nelson The OPSZONE ConceptAn OPSZONE is a strategically important area. |
Type(s)
Fields and Methods inherited from OPSZONE | Description |
---|---|
Triggers the FSM event "Attacked". |
|
Triggers the FSM event "Captured". |
|
Name of the class. |
|
Triggers the FSM event "Defeated". |
|
Triggers the FSM event "Empty". |
|
Evaluate zone. |
|
Triggers the FSM event "Evaluated". |
|
Find an OPSZONE using the Zone Name. |
|
Get duration of the current attack. |
|
Get coordinate of zone. |
|
Get zone name. |
|
Get current owner of the zone. |
|
Get coalition name of current owner of the zone. |
|
Get previous owner of the zone. |
|
Returns a random coordinate in the zone. |
|
Get scanned groups inside the zone. |
|
Get scanned units inside the zone. |
|
Get the zone object. |
|
Triggers the FSM event "Guarded". |
|
Check if zone is being attacked by the opposite coalition. |
|
Check if the blue coalition is currently owning the zone. |
|
Check if a certain coalition is currently owning the zone. |
|
Check if zone is contested. |
|
Check if zone is empty. |
|
Check if zone is guarded. |
|
Check if the neutral coalition is currently owning the zone. |
|
Check if the red coalition is currently owning the zone. |
|
Check if zone is started (not stopped). |
|
Check if zone is stopped. |
|
Missions that are attached to this OpsZone. |
|
Number of blue units in the zone. |
|
Number of units in zone for each coalition. |
|
Create a new OPSZONE class object. |
|
Number of neutral units in the zone. |
|
Number of red units in the zone. |
|
Object categories for the scan. |
|
On after "Attacked" event. |
|
On after "Captured" event. |
|
On after "Defeated" event. |
|
On after "Empty" event. |
|
On after "Evaluated" event. |
|
On after "Guarded" event. |
|
Monitor base captured events. |
|
Monitor hit events. |
|
Scan zone. |
|
Set of scanned groups. |
|
Set of scanned units. |
|
Set how many units must be present in a zone to capture it. |
|
Set threat level threshold that the offending units must have to capture a zone. |
|
Set time how long an attacking coalition must have troops inside a zone before it captures the zone. |
|
Set if zone is drawn on the F10 map. |
|
Set if zone is drawn on the F10 map for the owner coalition only. |
|
Set if a marker on the F10 map shows the current zone status. |
|
Set whether neutral units can capture the zone. |
|
Set categories of objects that can capture or hold the zone. |
|
Set categories of units that can capture or hold the zone. |
|
Set verbosity level. |
|
Set custom RGB color of zone depending on current owner. |
|
Triggers the FSM event "Start". |
|
Update status. |
|
Triggers the FSM event "Stop". |
|
Abs. mission time stamp when an attack was started. |
|
Threat level of blue units in the zone. |
|
Time stamp (abs.) when the attacker destroyed all owning troops. |
|
Time interval in seconds how long an attacker must have troops inside the zone to capture. |
|
Threat level of neutral units in the zone. |
|
Threat level of red units in the zone. |
|
Unit categories for the scan. |
|
Add a chief that monitors this zone. |
|
Add an entry to the OpsZone mission table |
|
Clean mission table from missions that are over. |
|
Add an entry to the OpsZone mission table. |
|
Get marker text. |
|
Get the OpsZone mission table. |
|
Get RGB color of zone depending on current owner. |
|
Update marker on the F10 map. |
|
Triggers the FSM event "Attacked" after a delay. |
|
Triggers the FSM event "Captured" after a delay. |
|
Triggers the FSM event "Defeated" after a delay. |
|
Triggers the FSM event "Empty" after a delay. |
|
Triggers the FSM event "Evaluated" after a delay. |
|
Triggers the FSM event "Guarded" after a delay. |
|
Triggers the FSM event "Start" after a delay. |
|
Triggers the FSM event "Stop" after a delay. |
|
The airbase that is monitored. |
|
Name of the airbase that is monitored. |
|
Chiefs that monitor this zone. |
|
Time interval in seconds until a zone is captured. |
|
If |
|
DCS log ID string. |
|
If |
|
Marker on the F10 map. |
|
Text shown in the maker. |
|
Neutral units can capture. Default |
|
Number of units necessary to capture a zone. |
|
On after "Attacked" event. |
|
On after "Captured" event. |
|
On after "Defeated" event. |
|
On after "Empty" event. |
|
Start OPSZONE FSM. |
|
Stop OPSZONE FSM. |
|
OPSZONE:onbeforeCaptured(From, Event, To, NewOwnerCoalition) |
On before "Captured" event. |
On enter "Attacked" state. |
|
On enter "Empty" event. |
|
On enter "Guarded" state. |
|
Coalition of the current owner of the zone. |
|
Coalition of the previous owner of the zone. |
|
Threat level necessary to capture a zone. |
|
Timer for calling the status update. |
|
Verbosity of output. |
|
OPSZONE class version. |
|
The zone. |
|
The circular zone. |
|
Name of the zone. |
|
Radius of the zone in meters. |
|
Fields and Methods inherited from FSM | Description |
---|---|
Adds an End state. |
|
Set the default #FSM_PROCESS template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task. |
|
Adds a score for the FSM to be achieved. |
|
OPSZONE:AddScoreProcess(From, Event, State, ScoreText, Score) |
Adds a score for the FSM_PROCESS to be achieved. |
Add a new transition rule to the FSM. |
|
Get current state. |
|
Returns the End states. |
|
Returns a table of the SubFSM rules defined within the FSM. |
|
Returns a table with the scores defined. |
|
Returns the start state of the FSM. |
|
Get current state. |
|
Returns a table with the Subs defined. |
|
Returns a table of the transition rules defined within the FSM. |
|
Check if FSM is in state. |
|
Load call backs. |
|
Creates a new FSM object. |
|
Sets the start state of the FSM. |
|
Add to map. |
|
Call handler. |
|
Create transition. |
|
Delayed transition. |
|
Event map. |
|
Go sub. |
|
Handler. |
|
Is end state. |
|
Sub maps. |
|
Check if can do an event. |
|
Check if cannot do an event. |
|
Check if FSM is in state. |
|
Fields and Methods inherited from OPSZONE.MISSION | Description |
---|---|
Coalition |
|
The actual attached mission |
|
Type of mission |
Fields and Methods inherited from OPSZONE.ZoneType | Description |
---|---|
Zone is circular. |
|
Zone is a polygon. |
OPSZONE class.
Field(s)
Name of the class.
Update last hit time.
Missions that are attached to this OpsZone.
Number of blue units in the zone.
Number of units in zone for each coalition.
Number of neutral units in the zone.
Number of red units in the zone.
Object categories for the scan.
Abs. mission time stamp when an attack was started.
Threat level of blue units in the zone.
Time stamp (abs.) when the attacker destroyed all owning troops.
Time interval in seconds how long an attacker must have troops inside the zone to capture.
Threat level of neutral units in the zone.
Threat level of red units in the zone.
Unit categories for the scan.
Name of the airbase that is monitored.
Chiefs that monitor this zone.
Time interval in seconds until a zone is captured.
If true
, draw the zone on the F10 map.
DCS log ID string.
If true
, mark the zone on the F10 map.
Text shown in the maker.
Neutral units can capture. Default false
.
Number of units necessary to capture a zone.
Coalition of the current owner of the zone.
Coalition of the previous owner of the zone.
Threat level necessary to capture a zone.
Verbosity of output.
OPSZONE class version.
Name of the zone.
Radius of the zone in meters.
Function(s)
Triggers the FSM event "Attacked".
Defined in:
OPSZONE
Parameter:
#number AttackerCoalition
Coalition side that is attacking the zone.
Triggers the FSM event "Captured".
Defined in:
OPSZONE
Parameter:
#number Coalition
Coalition side that captured the zone.
Triggers the FSM event "Defeated".
Defined in:
OPSZONE
Parameter:
#number DefeatedCoalition
Coalition side that was defeated.
Find an OPSZONE using the Zone Name.
Defined in:
OPSZONE
Parameter:
#string ZoneName
The zone name.
Return value:
The OPSZONE or nil if not found.
Get duration of the current attack.
Defined in:
OPSZONE
Return value:
#number:
Duration in seconds since when the last attack began. Is nil
if the zone is not under attack currently.
Get coordinate of zone.
Get current owner of the zone.
Defined in:
OPSZONE
Return value:
#number:
Owner coalition.
Get coalition name of current owner of the zone.
Defined in:
OPSZONE
Return value:
#string:
Owner coalition.
Get previous owner of the zone.
Defined in:
OPSZONE
Return value:
#number:
Previous owner coalition.
Returns a random coordinate in the zone.
Defined in:
OPSZONE
Parameters:
#number inner
(Optional) Minimal distance from the center of the zone in meters. Default is 0 m.
#number outer
(Optional) Maximal distance from the outer edge of the zone in meters. Default is the radius of the zone.
#table surfacetypes
(Optional) Table of surface types. Can also be a single surface type. We will try max 1000 times to find the right type!
Return value:
The random coordinate.
Get scanned groups inside the zone.
Get scanned units inside the zone.
Check if zone is being attacked by the opposite coalition.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is being attacked.
Check if the blue coalition is currently owning the zone.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is blue.
Check if a certain coalition is currently owning the zone.
Defined in:
OPSZONE
Parameter:
#number Coalition
The Coalition that is supposed to own the zone.
Return value:
#boolean:
If true
, zone is owned by the given coalition.
Check if zone is contested.
Contested here means red and blue units are present in the zone.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is contested.
Check if zone is empty.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is empty.
Check if zone is guarded.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is guarded.
Check if the neutral coalition is currently owning the zone.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is neutral.
Check if the red coalition is currently owning the zone.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is red.
Check if zone is started (not stopped).
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is started.
Check if zone is stopped.
Defined in:
OPSZONE
Return value:
#boolean:
If true
, zone is stopped.
Create a new OPSZONE class object.
Defined in:
OPSZONE
Parameters:
Core.Zone#ZONE Zone
The zone. Can be passed as ZONE_RADIUS, ZONE_POLYGON, ZONE_AIRBASE or simply as the name of the airbase.
#number CoalitionOwner
Initial owner of the coaliton. Default coalition.side.NEUTRAL
.
Return value:
self
Usage:
myopszone = OPSZONE:New(ZONE:FindByName("OpsZoneOne"), coalition.side.RED) -- base zone from the mission editor
myopszone = OPSZONE:New(ZONE_RADIUS:New("OpsZoneTwo", mycoordinate:GetVec2(),5000),coalition.side.BLUE) -- radius zone of 5km at a coordinate
myopszone = OPSZONE:New(ZONE_RADIUS:New("Batumi")) -- airbase zone from Batumi Airbase, ca 2500m radius
myopszone = OPSZONE:New(ZONE_AIRBASE:New("Batumi",6000),coalition.side.BLUE) -- airbase zone from Batumi Airbase, but with a specific radius of 6km
On after "Attacked" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number AttackerCoalition
Coalition side that is attacking the zone.
On after "Captured" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number Coalition
Coalition side that captured the zone.
On after "Defeated" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number DefeatedCoalition
Coalition side that was defeated.
On after "Empty" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
On after "Evaluated" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
On after "Guarded" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
Monitor base captured events.
Monitor hit events.
Set how many units must be present in a zone to capture it.
By default, one unit is enough.
Defined in:
OPSZONE
Parameter:
#number Nunits
Number of units. Default 1.
Return value:
self
Set threat level threshold that the offending units must have to capture a zone.
The reason why you might want to set this is that unarmed units (e.g. fuel trucks) should not be able to capture a zone as they do not pose a threat.
Defined in:
OPSZONE
Parameter:
#number Threatlevel
Threat level threshold. Default 0.
Return value:
self
Set time how long an attacking coalition must have troops inside a zone before it captures the zone.
Defined in:
OPSZONE
Parameter:
#number Tcapture
Time in seconds. Default 0.
Return value:
self
Set if zone is drawn on the F10 map.
Color will change depending on current owning coalition.
Defined in:
OPSZONE
Parameter:
#boolean Switch
If true
or nil
, draw zone. If false
, zone is not drawn.
Return value:
self
Set if zone is drawn on the F10 map for the owner coalition only.
Defined in:
OPSZONE
Parameter:
#boolean Switch
If false
or nil
, draw zone for all coalitions. If true
, zone is drawn for the owning coalition only if drawZone is true.
Return value:
self
Set if a marker on the F10 map shows the current zone status.
Defined in:
OPSZONE
Parameters:
#boolean Switch
If true
, zone is marked. If false
or nil
, zone is not marked.
#boolean ReadOnly
If true
or nil
then mark is read only.
Return value:
self
Set whether neutral units can capture the zone.
Defined in:
OPSZONE
Parameter:
#boolean CanCapture
If true
, neutral units can.
Return value:
self
Set categories of objects that can capture or hold the zone.
- Default is {Object.Category.UNIT, Object.Category.STATIC} so units and statics can capture and hold zones.
- Set to
{Object.Category.UNIT}
if only units should be able to capture and hold zones
Which units can capture zones can be further refined by :SetUnitCategories()
.
Defined in:
OPSZONE
Parameter:
#table Categories
Object categories. Default is {Object.Category.UNIT, Object.Category.STATIC}
.
Return value:
self
Set categories of units that can capture or hold the zone.
See DCS Class Unit.
Defined in:
OPSZONE
Parameter:
#table Categories
Table of unit categories. Default {Unit.Category.GROUND_UNIT}
.
Return value:
self
Set verbosity level.
Defined in:
OPSZONE
Parameter:
#number VerbosityLevel
Level of output (higher=more). Default 0.
Return value:
self
Set custom RGB color of zone depending on current owner.
Defined in:
OPSZONE
Parameters:
#table Neutral
Color is a table of RGB values 0..1 for Red, Green, and Blue respectively, e.g. {1,0,0} for red.
#table Blue
Color is a table of RGB values 0..1 for Red, Green, and Blue respectively, e.g. {0,1,0} for green.
#table Red
Color is a table of RGB values 0..1 for Red, Green, and Blue respectively, e.g. {0,0,1} for blue.
Return value:
self
Add a chief that monitors this zone.
Chief will be informed about capturing etc.
Add an entry to the OpsZone mission table
Defined in:
OPSZONE
Parameters:
#number Coalition
Coalition of type e.g. coalition.side.NEUTRAL
#string Type
Type of mission, e.g. AUFTRAG.Type.CAS
Ops.Auftrag#AUFTRAG Auftrag
The Auftrag itself
Return value:
self
Clean mission table from missions that are over.
Add an entry to the OpsZone mission table.
Defined in:
OPSZONE
Parameters:
#number Coalition
Coalition of type e.g. coalition.side.NEUTRAL
.
#string Type
Type of mission, e.g. AUFTRAG.Type.CAS
.
Return values:
#boolean:
found True if we have that kind of mission, else false.
#table:
Missions Table of Ops.Auftrag#AUFTRAG
entries.
Get the OpsZone mission table.
table of #OPSZONE.MISSION entries
Defined in:
OPSZONE
Return value:
#table:
Missions
Get RGB color of zone depending on current owner.
Defined in:
OPSZONE
Return value:
#table:
RGB color.
Triggers the FSM event "Attacked" after a delay.
Defined in:
OPSZONE
Parameters:
#number delay
Delay in seconds.
#number AttackerCoalition
Coalition side that is attacking the zone.
Triggers the FSM event "Captured" after a delay.
Defined in:
OPSZONE
Parameters:
#number delay
Delay in seconds.
#number Coalition
Coalition side that captured the zone.
Triggers the FSM event "Defeated" after a delay.
Defined in:
OPSZONE
Parameters:
#number delay
Delay in seconds.
#number DefeatedCoalition
Coalition side that was defeated.
Triggers the FSM event "Empty" after a delay.
Defined in:
OPSZONE
Parameter:
#number delay
Delay in seconds.
Triggers the FSM event "Evaluated" after a delay.
Defined in:
OPSZONE
Parameter:
#number delay
Delay in seconds.
Triggers the FSM event "Guarded" after a delay.
Defined in:
OPSZONE
Parameter:
#number delay
Delay in seconds.
Triggers the FSM event "Start" after a delay.
Defined in:
OPSZONE
Parameter:
#number delay
Delay in seconds.
Triggers the FSM event "Stop" after a delay.
Defined in:
OPSZONE
Parameter:
#number delay
Delay in seconds.
On after "Attacked" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number AttackerCoalition
Coalition of the attacking ground troops.
On after "Captured" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number NewOwnerCoalition
Coalition of the new owner.
On after "Defeated" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number DefeatedCoalition
Coalition side that was defeated.
On after "Empty" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
Start OPSZONE FSM.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
Stop OPSZONE FSM.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
On before "Captured" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number NewOwnerCoalition
Coalition of the new owner.
On enter "Attacked" state.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
#number AttackerCoalition
Coalition of the attacking ground troops.
On enter "Empty" event.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
On enter "Guarded" state.
Defined in:
OPSZONE
Parameters:
#string From
From state.
#string Event
Event.
#string To
To state.
Field(s)
Name of the class.
Update last hit time.
Missions that are attached to this OpsZone.
Number of blue units in the zone.
Number of units in zone for each coalition.
Number of neutral units in the zone.
Number of red units in the zone.
Object categories for the scan.
Abs. mission time stamp when an attack was started.
Threat level of blue units in the zone.
Time stamp (abs.) when the attacker destroyed all owning troops.
Time interval in seconds how long an attacker must have troops inside the zone to capture.
Threat level of neutral units in the zone.
Threat level of red units in the zone.
Unit categories for the scan.
Name of the airbase that is monitored.
Chiefs that monitor this zone.
Time interval in seconds until a zone is captured.
If true
, draw the zone on the F10 map.
DCS log ID string.
If true
, mark the zone on the F10 map.
Text shown in the maker.
Neutral units can capture. Default false
.
Number of units necessary to capture a zone.
Coalition of the current owner of the zone.
Coalition of the previous owner of the zone.
Threat level necessary to capture a zone.
Verbosity of output.
OPSZONE class version.
Name of the zone.
Radius of the zone in meters.
Function(s)
Adds an End state.
Set the default #FSM_PROCESS template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.
Defined in:
Parameters:
#table From
Can contain a string indicating the From state or a table of strings containing multiple From states.
#string Event
The Event name.
Core.Fsm#FSM_PROCESS Process
An sub-process FSM.
#table ReturnEvents
A table indicating for which returned events of the SubFSM which Event must be triggered in the FSM.
Return value:
The SubFSM.
Adds a score for the FSM to be achieved.
Defined in:
Parameters:
#string State
is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).
#string ScoreText
is a text describing the score that is given according the status.
#number Score
is a number providing the score of the status.
Return value:
#FSM:
self
Adds a score for the FSM_PROCESS to be achieved.
Defined in:
Parameters:
#string From
is the From State of the main process.
#string Event
is the Event of the main process.
#string State
is the state of the process when the score needs to be given. (See the relevant state descriptions of the process).
#string ScoreText
is a text describing the score that is given according the status.
#number Score
is a number providing the score of the status.
Return value:
#FSM:
self
Add a new transition rule to the FSM.
A transition rule defines when and if the FSM can transition from a state towards another state upon a triggered event.
Defined in:
Parameters:
#table From
Can contain a string indicating the From state or a table of strings containing multiple From states.
#string Event
The Event name.
#string To
The To state.
Get current state.
Returns the End states.
Returns a table of the SubFSM rules defined within the FSM.
Returns a table with the scores defined.
Returns the start state of the FSM.
Get current state.
Returns a table with the Subs defined.
Returns a table of the transition rules defined within the FSM.
Check if FSM is in state.
Defined in:
Parameter:
#string State
State name.
Return value:
#boolean:
If true, FSM is in this state.
Load call backs.
Sets the start state of the FSM.
Add to map.
Call handler.
Defined in:
Parameters:
#string step
Step "onafter", "onbefore", "onenter", "onleave".
#string trigger
Trigger.
#table params
Parameters.
#string EventName
Event name.
Return value:
Value.
Create transition.
Defined in:
Parameter:
#string EventName
Event name.
Return value:
#function:
Function.
Delayed transition.
Defined in:
Parameter:
#string EventName
Event name.
Return value:
#function:
Function.
Event map.
Go sub.
Defined in:
Parameters:
#string ParentFrom
Parent from state.
#string ParentEvent
Parent event name.
Return value:
#table:
Subs.
Handler.
Is end state.
Defined in:
Parameter:
#string Current
Current state name.
Return values:
#table:
FSM parent.
#string:
Event name.
Sub maps.
Check if can do an event.
Defined in:
Parameter:
#string e
Event name.
Return values:
#boolean:
If true, FSM can do the event.
#string:
To state.
Check if cannot do an event.
Defined in:
Parameter:
#string e
Event name.
Return value:
#boolean:
If true, FSM cannot do the event.
Check if FSM is in state.
Defined in:
Parameters:
#string State
State name.
state
Return value:
#boolean:
If true, FSM is in this state.
OPSZONE.MISSION
Field(s)
Coalition
Type of mission
Function(s)
Type of zone we are dealing with.
Field(s)
Zone is circular.
Zone is a polygon.