From aac8bf31ef7779a2a7aa5b64873540e3de2457c3 Mon Sep 17 00:00:00 2001
From: FlightControl-User The Defender Default Settings over all Squadrons.
The Defender Default Settings over all Squadrons.
- - - -The Defender Default Settings over all Squadrons.
- - - -The Defender Default Settings over all Squadrons.
- - - -The Defender Default Settings over all Squadrons.
- - - -The Defender Default Settings over all Squadrons.
- - - -The Defender Default Settings over all Squadrons.
- - - -The Defender Default Settings over all Squadrons.
- - - -Aircraft is on a depoly mission.
+Aircraft is on a pickup mission.
+Aircraft is on a depoly mission.
+Aircraft is on a pickup mission.
+Aircraft is on a depoly mission.
+ @@ -4926,6 +4941,9 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau + +Aircraft is on a pickup mission.
+ @@ -6409,6 +6427,9 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau + +Aircraft is on a depoly mission.
+ @@ -6434,6 +6455,9 @@ When Moose is loaded statically, (as one file), tracing is switched off by defau + +Aircraft is on a pickup mission.
+ diff --git a/Documentation/AI.AI_Cargo_Dispatcher_Ship.html b/Documentation/AI.AI_Cargo_Dispatcher_Ship.html index 51d8ab0dc..a939eb36a 100644 --- a/Documentation/AI.AI_Cargo_Dispatcher_Ship.html +++ b/Documentation/AI.AI_Cargo_Dispatcher_Ship.html @@ -1431,7 +1431,7 @@ Controls a network of SAM sites.A dynamic cargo transportation capability for AI groups.
A dynamic cargo transportation capability for AI groups.
-@field #AI_CARGO_DISPATCHER_SHIP
+ +Naval vessels can be mobilized to semi-intelligently transport cargo within the simulation.
+ +The AI_CARGO_DISPATCHER_SHIP module is derived from the AI_CARGO_DISPATCHER module.
+ +This will be particularly helpful in order to determine how to Tailor the different cargo handling events.
+ +The AI_CARGO_DISPATCHER_SHIP class uses the Cargo.Cargo capabilities within the MOOSE framwork. +Also ensure that you fully understand how to declare and setup Cargo objects within the MOOSE framework before using this class. +CARGO derived objects must generally be declared within the mission to make the AI_CARGO_DISPATCHER_SHIP object recognize the cargo.
+ + +This section must be read as follows... Each of the rows indicate a state transition, triggered through an event, and with an ending state of the event was executed. +The first column is the From state, the second column the Event, and the third column the To state.
+ +So, each of the rows have the following structure.
+ +Important to know is that an event can only be executed if the current state is the From state. +This, when an Event that is being triggered has a From state that is equal to the Current state of the state machine, the event will be executed, +and the resulting state will be the To state.
+ +These are the different possible state transitions of this state machine implementation:
+ +Idle => Start => Monitoring
Monitoring => Monitor => Monitoring
Monitoring => Stop => Idle
Monitoring => Pickup => Monitoring
Monitoring => Load => Monitoring
Monitoring => Loading => Monitoring
Monitoring => Loaded => Monitoring
Monitoring => PickedUp => Monitoring
Monitoring => Deploy => Monitoring
Monitoring => Unload => Monitoring
Monitoring => Unloaded => Monitoring
Monitoring => Deployed => Monitoring
Monitoring => Home => Monitoring
Start: Start the transport process.
Stop: Stop the transport process.
Monitor: Monitor and take action.
Pickup: Pickup cargo.
Load: Load the cargo.
Loading: The dispatcher is coordinating the loading of a cargo.
Loaded: Flag that the cargo is loaded.
PickedUp: The dispatcher has loaded all requested cargo into the CarrierGroup.
Deploy: Deploy cargo to a location.
Unload: Unload the cargo.
Unloaded: Flag that the cargo is unloaded.
Deployed: All cargo is unloaded from the carriers in the group.
Home: A Carrier is going home.
Within your mission, you can capture these events when triggered, and tailor the events with your own code! +Check out the AI.AI_Cargo_Dispatcher#AI_CARGO_DISPATCHER class at chapter 3 for details on the different event handlers that are available and how to use them.
+ +There are a lot of templates available that allows you to quickly setup an event handler for a specific event type!
+ +Several parameters can be set to pickup cargo:
+ +Several parameters can be set to deploy cargo:
+ +A home zone can be specified to where the Ship will move when there isn't any cargo left for pickup. +Use AI_CARGO_DISPATCHER_SHIP.SetHomeZone() to specify the home zone.
+ +If no home zone is specified, the Ship will wait near the deploy zone for a new pickup command.
+ +| Fields and Methods inherited from AI_CARGO_DISPATCHER_SHIP | +Description | +
|---|---|
| + | + + | +
AI_CARGO_DISPATCHER_SHIP:New(ShipSet, CargoSet, PickupZoneSet, DeployZoneSet, ShippingLane) |
+
+ Creates a new AI_CARGO_DISPATCHER_SHIP object. + |
+
| + | + + | +
| Fields and Methods inherited from AI_CARGO_DISPATCHER | +Description | +
|---|---|
| + | + + | +
| + |
+ The set of Cargo.Cargo#CARGO objects, which can be CARGO_GROUP, CARGO_CRATE, CARGO_SLINGLOAD objects. + |
+
| + | + + | +
| + |
+ The set of Wrapper.Group#GROUP objects of carriers that will transport the cargo. + |
+
| + |
+ The inner radius in meters around the cargo coordinate to deploy the cargo. + |
+
| + |
+ The maximum height to fly to the cargo deploy location. + |
+
| + |
+ The maximum speed to move to the cargo deploy location. + |
+
| + |
+ The minimum height to fly to the cargo deploy location. + |
+
| + |
+ The minimum speed to move to the cargo deploy location. + |
+
| + |
+ The outer radius in meters around the cargo coordinate to deploy the cargo. + |
+
| + |
+ The set of deploy zones, which are used to where the cargo will be deployed by the carriers. + |
+
| + |
+ The home zone where the carriers will return when there is no more cargo to pickup. + |
+
| + |
+ The interval in seconds when the cargo dispatcher will search for new cargo to be picked up. + |
+
AI_CARGO_DISPATCHER_SHIP:New(CarrierSet, CargoSet, PickupZoneSet, DeployZoneSet) |
+
+ Creates a new AI_CARGO_DISPATCHER object. + |
+
| + |
+ Deploy event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
AI_CARGO_DISPATCHER_SHIP:OnAfterDeployed(From, Event, To, CarrierGroup, DeployZone) |
+
+ Deployed event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + |
+ Home event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
AI_CARGO_DISPATCHER_SHIP:OnAfterLoad(From, Event, To, CarrierGroup, PickupZone) |
+
+ Load event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + |
+ Loaded event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + |
+ Loading event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
AI_CARGO_DISPATCHER_SHIP:OnAfterPickedUp(From, Event, To, CarrierGroup, PickupZone) |
+
+ PickedUp event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + |
+ Pickup event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
AI_CARGO_DISPATCHER_SHIP:OnAfterUnload(From, Event, To, CarrierGroup, DeployZone) |
+
+ Unload event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + |
+ Unloaded event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + |
+ UnLoading event handler OnAfter for AI_CARGO_DISPATCHER. + |
+
| + | + + | +
| + |
+ The inner radius in meters around the cargo coordinate to pickup the cargo. + |
+
| + |
+ The maximum height to fly to the cargo pickup location. + |
+
| + |
+ The maximum speed to move to the cargo pickup location. + |
+
| + |
+ The minimum height to fly to the cargo pickup location. + |
+
| + |
+ The minimum speed to move to the cargo pickup location. + |
+
| + |
+ The outer radius in meters around the cargo coordinate to pickup the cargo. + |
+
| + |
+ The set of pickup zones, which are used to where the cargo can be picked up by the carriers. If nil, then cargo can be picked up everywhere. + |
+
| + | + + | +
| + | + + | +
AI_CARGO_DISPATCHER_SHIP:SetDeployHeight(MaxHeight, MinHeight) |
+
+ Set the height or randomizes the height in meters to fly and deploy the cargo. + |
+
AI_CARGO_DISPATCHER_SHIP:SetDeployRadius(OuterRadius, InnerRadius) |
+
+ Sets or randomizes the deploy location for the carrier around the cargo coordinate in a radius defined an outer and an optional inner radius. + |
+
| + |
+ Sets or randomizes the speed in km/h to deploy the cargo. + |
+
| + |
+ Set the home zone. + |
+
AI_CARGO_DISPATCHER_SHIP:SetMonitorTimeInterval(MonitorTimeInterval) |
+
+ Set the monitor time interval. + |
+
AI_CARGO_DISPATCHER_SHIP:SetPickupHeight(MaxHeight, MinHeight) |
+
+ Set the height or randomizes the height in meters to fly and pickup the cargo. + |
+
AI_CARGO_DISPATCHER_SHIP:SetPickupRadius(OuterRadius, InnerRadius) |
+
+ Sets or randomizes the pickup location for the carrier around the cargo coordinate in a radius defined an outer and optional inner radius. + |
+
| + |
+ Set the speed or randomizes the speed in km/h to pickup the cargo. + |
+
| + |
+ Start Trigger for AI_CARGO_DISPATCHER + |
+
| + |
+ Stop Trigger for AI_CARGO_DISPATCHER + |
+
| + |
+ Start Asynchronous Trigger for AI_CARGO_DISPATCHER + |
+
| + |
+ Stop Asynchronous Trigger for AI_CARGO_DISPATCHER + |
+
| + |
+ The Start trigger event, which actually takes action at the specified time interval. + |
+
| + | + + | +
AI_CARGO_DISPATCHER_SHIP:onafterTransport(From, Event, To, Carrier, Cargo) |
+
+ Make a Carrier run for a cargo deploy action after the cargo has been loaded, by default. + |
+
| Fields and Methods inherited from FSM | +Description | +
|---|---|
| + |
+ Adds an End state. + |
+
AI_CARGO_DISPATCHER_SHIP:AddProcess(From, Event, Process, ReturnEvents) |
+
+ Set the default 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. + |
+
AI_CARGO_DISPATCHER_SHIP:AddScoreProcess(From, Event, State, ScoreText, Score) |
+
+ Adds a score for the FSM_PROCESS to be achieved. + |
+
| + |
+ Add a new transition rule to the FSM. + |
+
| + |
+ Call scheduler. + |
+
| + |
+ Name of the class. + |
+
| + | + + | +
| + |
+ 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. + |
+
| + |
+ Scores. + |
+
| + | + + | +
| + |
+ Sets the start state of the FSM. + |
+
| + | + + | +
| + | + + | +
| + | + + | +
| + | + + | +
| + | + + | +
| + | + + | +
| + |
+ Add to map. + |
+
AI_CARGO_DISPATCHER_SHIP:_call_handler(step, trigger, params, EventName) |
+
+ 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. + |
+
| + |
+ Current state name. + |
+
| + | + + | +
| + |
+ Check if FSM is in state. + |
+
| + |
+ Options. + |
+
| + |
+ Subs. + |
+
| Fields and Methods inherited from BASE | +Description | +
|---|---|
| + |
+ The ID number of the class. + |
+
| + |
+ The name of the class. + |
+
| + |
+ The name of the class concatenated with the ID number of the class. + |
+
| + |
+ Clear the state of an object. + |
+
AI_CARGO_DISPATCHER_SHIP:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace) |
+
+ Creation of a Birth Event. + |
+
AI_CARGO_DISPATCHER_SHIP:CreateEventCrash(EventTime, Initiator) |
+
+ Creation of a Crash Event. + |
+
AI_CARGO_DISPATCHER_SHIP:CreateEventDead(EventTime, Initiator) |
+
+ Creation of a Dead Event. + |
+
AI_CARGO_DISPATCHER_SHIP:CreateEventRemoveUnit(EventTime, Initiator) |
+
+ Creation of a Remove Unit Event. + |
+
AI_CARGO_DISPATCHER_SHIP:CreateEventTakeoff(EventTime, Initiator) |
+
+ Creation of a Takeoff Event. + |
+
| + |
+ Log an exception which will be traced always. + |
+
| + |
+ Returns the event dispatcher + |
+
| + |
+ Remove all subscribed events + |
+
| + |
+ Trace a function call. + |
+
| + |
+ Trace a function call level 2. + |
+
| + |
+ Trace a function call level 3. + |
+
| + |
+ Get the ClassID of the class instance. + |
+
| + |
+ Get the ClassName of the class instance. + |
+
| + |
+ Get the ClassName + ClassID of the class instance. + |
+
| + |
+ Get the Class Event processing Priority. + |
+
| + |
+ This is the worker method to retrieve the Parent class. + |
+
| + |
+ Get a Value given a Key from the Object. + |
+
AI_CARGO_DISPATCHER_SHIP:HandleEvent(EventID, EventFunction) |
+
+ Subscribe to a DCS Event. + |
+
| + |
+ Log an information which will be traced always. + |
+
| + |
+ This is the worker method to inherit from a parent class. + |
+
| + |
+ This is the worker method to check if an object is an (sub)instance of a class. + |
+
| + |
+ Enquires if tracing is on (for the class). + |
+
| + |
+ BASE constructor. + |
+
| + |
+ Occurs when an object is completely destroyed. + |
+
| + |
+ Occurs when a ground unit captures either an airbase or a farp. + |
+
| + |
+ Occurs when any object is spawned into the mission. + |
+
| + |
+ Occurs when any aircraft crashes into the ground and is completely destroyed. + |
+
| + |
+ Occurs when an object is dead. + |
+
| + |
+ Unknown precisely what creates this event, likely tied into newer damage model. + |
+
| + |
+ Occurs when a pilot ejects from an aircraft +initiator : The unit that has ejected + |
+
| + |
+ Occurs when any aircraft shuts down its engines. + |
+
| + |
+ Occurs when any aircraft starts its engines. + |
+
| + |
+ Occurs whenever an object is hit by a weapon. + |
+
| + |
+ Occurs when any system fails on a human controlled aircraft. + |
+
| + |
+ Occurs on the death of a unit. + |
+
| + |
+ Occurs when an aircraft lands at an airbase, farp or ship +initiator : The unit that has landed +place: Object that the unit landed on. + |
+
AI_CARGO_DISPATCHER_SHIP:OnEventLandingAfterEjection(EventData) |
+
+ Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up. + |
+
| + |
+ Occurs when a new mark was added. + |
+
| + |
+ Occurs when a mark text was changed. + |
+
| + |
+ Occurs when a mark was removed. + |
+
| + |
+ Occurs when a mission ends + |
+
| + |
+ Occurs when a mission starts + |
+
| + |
+ Occurs when the pilot of an aircraft is killed. + |
+
| + |
+ Occurs when any player assumes direct control of a unit. + |
+
| + |
+ Occurs when any player relieves control of a unit to the AI. + |
+
| + |
+ Occurs when an aircraft connects with a tanker and begins taking on fuel. + |
+
| + |
+ Occurs when an aircraft is finished taking fuel. + |
+
| + |
+ Occurs when any modification to the "Score" as seen on the debrief menu would occur. + |
+
| + |
+ Occurs when any unit stops firing its weapon. + |
+
| + |
+ Occurs when any unit begins firing a weapon that has a high rate of fire. + |
+
| + |
+ Occurs whenever any unit in a mission fires a weapon. + |
+
| + |
+ Occurs when an aircraft takes off from an airbase, farp, or ship. + |
+
| + |
+ Occurs when the game thinks an object is destroyed. + |
+
AI_CARGO_DISPATCHER_SHIP:ScheduleOnce(Start, SchedulerFunction, ...) |
+
+ Schedule a new time event. + |
+
| + |
+ Schedule a new time event. + |
+
| + |
+ Stops the Schedule. + |
+
| + | + + | +
| + |
+ Set the Class Event processing Priority. + |
+
| + |
+ Set a state or property of the Object given a Key and a Value. + |
+
| + |
+ Trace a function logic level 1. + |
+
| + |
+ Trace a function logic level 2. + |
+
| + |
+ Trace a function logic level 3. + |
+
| + |
+ Trace all methods in MOOSE + |
+
| + |
+ Set tracing for a class + |
+
| + |
+ Set tracing for a specific method of class + |
+
| + |
+ Set trace level + |
+
| + |
+ Set trace off. + |
+
| + |
+ Set trace on. + |
+
| + |
+ Set trace on or off +Note that when trace is off, no BASE.Debug statement is performed, increasing performance! +When Moose is loaded statically, (as one file), tracing is switched off by default. + |
+
| + |
+ UnSubscribe to a DCS event. + |
+
| + | + + | +
AI_CARGO_DISPATCHER_SHIP:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam) |
+
+ Trace a function call. + |
+
AI_CARGO_DISPATCHER_SHIP:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam) |
+
+ Trace a function logic. + |
+
| + | + + | +
| + | + + | +
AI_CARGO_DISPATCHER_SHIP
++ Ship +
++ CargoSet +
+Creates a new AI_CARGO_DISPATCHER_SHIP object.
+ +AI_CARGO_DISPATCHER_SHIP
++ Core.Set#SET_GROUP + ShipSet +
+The set of Wrapper.Group#GROUP objects of Ships that will transport the cargo
+ ++ Core.Set#SET_CARGO + CargoSet +
+The set of Cargo.Cargo#CARGO objects, which can be CARGO_GROUP, CARGO_CRATE, or CARGO_SLINGLOAD objects.
+ ++ Core.Set#SET_ZONE + PickupZoneSet +
+The set of pickup zones which are used to determine from where the cargo can be picked up by the Ship.
+ ++ Core.Set#SET_ZONE + DeployZoneSet +
+The set of deploy zones which determine where the cargo will be deployed by the Ship.
+ ++ #table + ShippingLane +
+Table containing list of Shipping Lanes to be used
+ +
+ -- An AI dispatcher object for a naval group, moving cargo from pickup zones to deploy zones via a predetermined Shipping Lane
+
+ local SetCargoInfantry = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
+ local SetShip = SET_GROUP:New():FilterPrefixes( "Ship" ):FilterStart()
+ local SetPickupZones = SET_ZONE:New():FilterPrefixes( "Pickup" ):FilterStart()
+ local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
+ NEED MORE THOUGHT - ShippingLane is part of Warehouse.......
+ local ShippingLane = GROUP:New():FilterPrefixes( "ShippingLane" ):FilterStart()
+
+ AICargoDispatcherShip = AI_CARGO_DISPATCHER_SHIP:New( SetShip, SetCargoInfantry, SetPickupZones, SetDeployZones, ShippingLane )
+ AICargoDispatcherShip:Start()
+
+
+AI_CARGO_DISPATCHER_SHIP
++ ShippingLane +
+Creates a new AI_CARGO_DISPATCHER object.
+ ++ Core.Set#SET_GROUP + CarrierSet +
+The set of Wrapper.Group#GROUP objects of carriers that will transport the cargo.
+ ++ Core.Set#SET_CARGO + CargoSet +
+The set of Cargo.Cargo#CARGO objects, which can be CARGO_GROUP, CARGO_CRATE, CARGO_SLINGLOAD objects.
+ ++ Core.Set#SET_ZONE + PickupZoneSet +
+(optional) The set of pickup zones, which are used to where the cargo can be picked up by the carriers. If nil, then cargo can be picked up everywhere.
+ ++ Core.Set#SET_ZONE + DeployZoneSet +
+The set of deploy zones, which are used to where the cargo will be deployed by the carriers.
+ +
+ -- An AI dispatcher object for a helicopter squadron, moving infantry from pickup zones to deploy zones.
+
+ local SetCargoInfantry = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
+ local SetHelicopter = SET_GROUP:New():FilterPrefixes( "Helicopter" ):FilterStart()
+ local SetPickupZones = SET_ZONE:New():FilterPrefixes( "Pickup" ):FilterStart()
+ local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
+
+ AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+ AICargoDispatcherHelicopter:Start()
+
+ -- An AI dispatcher object for a vehicle squadron, moving infantry from pickup zones to deploy zones.
+
+ local SetCargoInfantry = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
+ local SetAPC = SET_GROUP:New():FilterPrefixes( "APC" ):FilterStart()
+ local SetDeployZones = SET_ZONE:New():FilterPrefixes( "Deploy" ):FilterStart()
+
+ AICargoDispatcherAPC = AI_CARGO_DISPATCHER_APC:New( SetAPC, SetCargoInfantry, nil, SetDeployZones )
+ AICargoDispatcherAPC:Start()
+
+ -- An AI dispatcher object for an airplane squadron, moving infantry and vehicles from pickup airbases to deploy airbases.
+
+ local CargoInfantrySet = SET_CARGO:New():FilterTypes( "Infantry" ):FilterStart()
+ local AirplanesSet = SET_GROUP:New():FilterPrefixes( "Airplane" ):FilterStart()
+ local PickupZoneSet = SET_ZONE:New()
+ local DeployZoneSet = SET_ZONE:New()
+
+ PickupZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Gudauta ) )
+ DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Sochi_Adler ) )
+ DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Maykop_Khanskaya ) )
+ DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Mineralnye_Vody ) )
+ DeployZoneSet:AddZone( ZONE_AIRBASE:New( AIRBASE.Caucasus.Vaziani ) )
+
+ AICargoDispatcherAirplanes = AI_CARGO_DISPATCHER_AIRPLANE:New( AirplanesSet, CargoInfantrySet, PickupZoneSet, DeployZoneSet )
+ AICargoDispatcherAirplanes:Start()
+Deploy event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierGroup is routed to a deploy coordinate, to Unload all cargo objects in each CarrierUnit. +You can use this event handler to post messages to players, or provide status updates etc.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Point#COORDINATE + Coordinate +
+The deploy coordinate.
+ ++ #number + Speed +
+The velocity in meters per second on which the CarrierGroup is routed towards the deploy Coordinate.
+ ++ #number + Height +
+Height in meters to move to the deploy coordinate.
+ ++ Core.Zone#ZONE + DeployZone +
+The zone wherein the cargo is deployed. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
+ +Deployed event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a carrier has deployed all cargo objects from the CarrierGroup. +You can use this event handler to post messages to players, or provide status updates etc.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Zone#ZONE + DeployZone +
+The zone wherein the cargo is deployed. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
+ +Home event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierGroup is returning to the HomeZone, after it has deployed all cargo objects from the CarrierGroup. +You can use this event handler to post messages to players, or provide status updates etc. +If there is no HomeZone is specified, the CarrierGroup will stay at the current location after having deployed all cargo.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Point#COORDINATE + Coordinate +
+The home coordinate the Carrier will arrive and stop it's activities.
+ ++ #number + Speed +
+The velocity in meters per second on which the CarrierGroup is routed towards the home Coordinate.
+ ++ #number + Height +
+Height in meters to move to the home coordinate.
+ ++ Core.Zone#ZONE + HomeZone +
+The zone wherein the carrier will return when all cargo has been transported. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
+ +Load event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierGroup has initiated the loading or boarding of cargo within reporting or near range. +You can use this event handler to post messages to players, or provide status updates etc.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Zone#ZONE_AIRBASE + PickupZone +
+(optional) The zone from where the cargo is picked up. Note that the zone is optional and may not be provided, but for AI_CARGO_DISPATCHER_AIRBASE there will always be a PickupZone, as the pickup location is an airbase zone.
+ +Loaded event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierUnit of a CarrierGroup has loaded a cargo object. +You can use this event handler to post messages to players, or provide status updates etc. +Note that if more cargo objects were loading or boarding into the CarrierUnit, then this event can be triggered multiple times for each different Cargo/CarrierUnit. +A CarrierUnit can be part of the larger CarrierGroup.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Cargo.Cargo#CARGO + Cargo +
+The cargo object.
+ ++ Wrapper.Unit#UNIT + CarrierUnit +
+The carrier unit that is executing the cargo loading operation.
+ ++ Core.Zone#ZONE_AIRBASE + PickupZone +
+(optional) The zone from where the cargo is picked up. Note that the zone is optional and may not be provided, but for AI_CARGO_DISPATCHER_AIRBASE there will always be a PickupZone, as the pickup location is an airbase zone.
+ +Loading event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierUnit of a CarrierGroup is in the process of loading or boarding of a cargo object. +You can use this event handler to post messages to players, or provide status updates etc. +Note that this event is triggered repeatedly until all cargo (units) have been boarded into the carrier.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Cargo.Cargo#CARGO + Cargo +
+The cargo object.
+ ++ Wrapper.Unit#UNIT + CarrierUnit +
+The carrier unit that is executing the cargo loading operation.
+ ++ Core.Zone#ZONE_AIRBASE + PickupZone +
+(optional) The zone from where the cargo is picked up. Note that the zone is optional and may not be provided, but for AI_CARGO_DISPATCHER_AIRBASE there will always be a PickupZone, as the pickup location is an airbase zone.
+ +PickedUp event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a carrier has picked up all cargo objects into the CarrierGroup. +You can use this event handler to post messages to players, or provide status updates etc.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Zone#ZONE_AIRBASE + PickupZone +
+(optional) The zone from where the cargo is picked up. Note that the zone is optional and may not be provided, but for AI_CARGO_DISPATCHER_AIRBASE there will always be a PickupZone, as the pickup location is an airbase zone.
+ +Pickup event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierGroup is routed towards a new pickup Coordinate and a specified Speed. +You can use this event handler to post messages to players, or provide status updates etc.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Point#COORDINATE + Coordinate +
+The coordinate of the pickup location.
+ ++ #number + Speed +
+The velocity in meters per second on which the CarrierGroup is routed towards the pickup Coordinate.
+ ++ #number + Height +
+Height in meters to move to the pickup coordinate.
+ ++ Core.Zone#ZONE_AIRBASE + PickupZone +
+(optional) The zone from where the cargo is picked up. Note that the zone is optional and may not be provided, but for AI_CARGO_DISPATCHER_AIRBASE there will always be a PickupZone, as the pickup location is an airbase zone.
+ +Unload event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierGroup has initiated the unloading or unboarding of cargo. +You can use this event handler to post messages to players, or provide status updates etc.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Core.Zone#ZONE + DeployZone +
+The zone wherein the cargo is deployed. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
+ +Unloaded event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierUnit of a CarrierGroup has unloaded a cargo object. +You can use this event handler to post messages to players, or provide status updates etc. +Note that if more cargo objects were unloading or unboarding from the CarrierUnit, then this event can be triggered multiple times for each different Cargo/CarrierUnit. +A CarrierUnit can be part of the larger CarrierGroup.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Cargo.Cargo#CARGO + Cargo +
+The cargo object.
+ ++ Wrapper.Unit#UNIT + CarrierUnit +
+The carrier unit that is executing the cargo unloading operation.
+ ++ Core.Zone#ZONE + DeployZone +
+The zone wherein the cargo is deployed. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
+ +UnLoading event handler OnAfter for AI_CARGO_DISPATCHER.
+ + +Use this event handler to tailor the event when a CarrierUnit of a CarrierGroup is in the process of unloading or unboarding of a cargo object. +You can use this event handler to post messages to players, or provide status updates etc. +Note that this event is triggered repeatedly until all cargo (units) have been unboarded from the CarrierUnit.
+ ++ #string + From +
+A string that contains the "from state name" when the event was triggered.
+ ++ #string + Event +
+A string that contains the "event name" when the event was triggered.
+ ++ #string + To +
+A string that contains the "to state name" when the event was triggered.
+ ++ Wrapper.Group#GROUP + CarrierGroup +
+The group object that contains the CarrierUnits.
+ ++ Cargo.Cargo#CARGO + Cargo +
+The cargo object.
+ ++ Wrapper.Unit#UNIT + CarrierUnit +
+The carrier unit that is executing the cargo unloading operation.
+ ++ Core.Zone#ZONE + DeployZone +
+The zone wherein the cargo is deployed. This can be any zone type, like a ZONE, ZONE_GROUP, ZONE_AIRBASE.
+ +Set the height or randomizes the height in meters to fly and deploy the cargo.
+ + +The default height is 200 meters.
+ ++ #number + MaxHeight +
+(optional) The maximum height to fly to the cargo deploy location.
+ ++ #number + MinHeight +
+(optional) The minimum height to fly to the cargo deploy location.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the minimum deploy fly height to be 50 meters and the maximum height to be 200 meters.
+AICargoDispatcherHelicopter:SetDeployHeight( 200, 50 )
+
+
+Sets or randomizes the deploy location for the carrier around the cargo coordinate in a radius defined an outer and an optional inner radius.
+ + +This radius is influencing the location where the carrier will land to deploy the cargo. +There is an aspect that is very important to remember and take into account:
+ +The default radius is 0, so the center. In case of a polygon zone, a random location will be selected as the center in the zone.
+ ++ #number + OuterRadius +
+The outer radius in meters around the cargo coordinate.
+ ++ #number + InnerRadius +
+(optional) The inner radius in meters around the cargo coordinate.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the carrier to land within a band around the cargo coordinate between 500 and 300 meters!
+AICargoDispatcherHelicopter:SetDeployRadius( 500, 300 )
+
+
+Sets or randomizes the speed in km/h to deploy the cargo.
+ ++ #number + MaxSpeed +
+The maximum speed to move to the cargo deploy location.
+ ++ #number + MinSpeed +
+(optional) The minimum speed to move to the cargo deploy location.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the minimum deploy speed to be 100 km/h and the maximum speed to be 200 km/h.
+AICargoDispatcherHelicopter:SetDeploySpeed( 200, 100 )
+
+
+Set the home zone.
+ + +When there is nothing anymore to pickup, the carriers will go to a random coordinate in this zone. +They will await here new orders.
+ ++ Core.Zone#ZONE_BASE + HomeZone +
+The home zone where the carriers will return when there is no more cargo to pickup.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the home coordinate
+local HomeZone = ZONE:New( "Home" )
+AICargoDispatcherHelicopter:SetHomeZone( HomeZone )
+
+
+Set the monitor time interval.
+ ++ #number + MonitorTimeInterval +
+The interval in seconds when the cargo dispatcher will search for new cargo to be picked up.
+ +Set the height or randomizes the height in meters to fly and pickup the cargo.
+ + +The default height is 200 meters.
+ ++ #number + MaxHeight +
+(optional) The maximum height to fly to the cargo pickup location.
+ ++ #number + MinHeight +
+(optional) The minimum height to fly to the cargo pickup location.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the minimum pickup fly height to be 50 meters and the maximum height to be 200 meters.
+AICargoDispatcherHelicopter:SetPickupHeight( 200, 50 )
+
+
+Sets or randomizes the pickup location for the carrier around the cargo coordinate in a radius defined an outer and optional inner radius.
+ + +This radius is influencing the location where the carrier will land to pickup the cargo. +There are two aspects that are very important to remember and take into account:
+ +The default radius is 0, so the center. In case of a polygon zone, a random location will be selected as the center in the zone.
+ ++ #number + OuterRadius +
+The outer radius in meters around the cargo coordinate.
+ ++ #number + InnerRadius +
+(optional) The inner radius in meters around the cargo coordinate.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the carrier to land within a band around the cargo coordinate between 500 and 300 meters!
+AICargoDispatcherHelicopter:SetPickupRadius( 500, 300 )
+
+
+Set the speed or randomizes the speed in km/h to pickup the cargo.
+ ++ #number + MaxSpeed +
+(optional) The maximum speed to move to the cargo pickup location.
+ ++ #number + MinSpeed +
+The minimum speed to move to the cargo pickup location.
+ +
+-- Create a new cargo dispatcher
+AICargoDispatcherHelicopter = AI_CARGO_DISPATCHER_HELICOPTER:New( SetHelicopter, SetCargoInfantry, SetPickupZones, SetDeployZones )
+
+-- Set the minimum pickup speed to be 100 km/h and the maximum speed to be 200 km/h.
+AICargoDispatcherHelicopter:SetPickupSpeed( 200, 100 )
+
+
+Start Trigger for AI_CARGO_DISPATCHER
+ +Stop Trigger for AI_CARGO_DISPATCHER
+ +Start Asynchronous Trigger for AI_CARGO_DISPATCHER
+ ++ #number + Delay +
+Stop Asynchronous Trigger for AI_CARGO_DISPATCHER
+ ++ #number + Delay +
+The Start trigger event, which actually takes action at the specified time interval.
+ ++ From +
++ Event +
++ To +
+Make a Carrier run for a cargo deploy action after the cargo has been loaded, by default.
+ ++ From +
++ Event +
++ To +
++ Wrapper.Group#GROUP + Carrier +
++ Cargo.Cargo#CARGO + Cargo +
+Adds an End state.
+ ++ #string + State +
+The FSM state.
+ +Set the default Process template with key ProcessName providing the ProcessClass and the process object when it is assigned to a Wrapper.Controllable by the task.
+ ++ #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.
+ +The SubFSM.
+ +Adds a score for the FSM to be achieved.
+ ++ #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.
+ +#FSM:
+self
+ +Adds a score for the FSM_PROCESS to be achieved.
+ ++ #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.
+ +#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.
+ ++ #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.
+ +#string:
+A string containing the start state.
+ +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.
+ ++ #string + State +
+State name.
+ ++ #boolean + If +
+true, FSM is in this state.
+ +Load call backs.
+ ++ #table + CallBackTable +
+Table of call backs.
+ +Creates a new FSM object.
+ ++ From +
++ Event +
++ Fsm +
+Sets the start state of the FSM.
+ ++ #string + State +
+A string defining the start state.
+ +Add to map.
+ ++ #table + Map +
+Map.
+ ++ #table + Event +
+Event table.
+ +Call handler.
+ ++ #string + step +
+Step "onafter", "onbefore", "onenter", "onleave".
+ ++ #string + trigger +
+Trigger.
+ ++ #table + params +
+Parameters.
+ ++ #string + EventName +
+Event name.
+ +Value.
+ +Create transition.
+ ++ #string + EventName +
+Event name.
+ +#function:
+Function.
+ +Delayed transition.
+ ++ #string + EventName +
+Event name.
+ +#function:
+Function.
+ +Event map.
+ ++ #table + Events +
+Events.
+ ++ #table + EventStructure +
+Event structure.
+ +Go sub.
+ ++ #string + ParentFrom +
+Parent from state.
+ ++ #string + ParentEvent +
+Parent event name.
+ +#table:
+Subs.
+ +Handler.
+ ++ #string + EventName +
+Event name.
+ ++ ... +
+Arguments.
+ +Is end state.
+ ++ #string + Current +
+Current state name.
+ +#table:
+FSM parent.
+ +#string:
+Event name.
+ +Sub maps.
+ ++ #table + subs +
+Subs.
+ ++ #table + sub +
+Sub.
+ ++ #string + name +
+Name.
+ +Check if can do an event.
+ ++ #string + e +
+Event name.
+ +#boolean:
+If true, FSM can do the event.
+ +#string:
+To state.
+ +Check if cannot do an event.
+ ++ #string + e +
+Event name.
+ +#boolean:
+If true, FSM cannot do the event.
+ +Check if FSM is in state.
+ ++ #string + State +
+State name.
+ ++ #boolean + If +
+true, FSM is in this state.
+ ++ state +
+Clear the state of an object.
+ ++ Object +
+The object that holds the Value set by the Key.
+ ++ StateName +
+The key that is should be cleared.
+ +Creation of a Birth Event.
+ ++ DCS#Time + EventTime +
+The time stamp of the event.
+ ++ DCS#Object + Initiator +
+The initiating object of the event.
+ ++ #string + IniUnitName +
+The initiating unit name.
+ ++ place +
++ subplace +
+Creation of a Crash Event.
+ ++ DCS#Time + EventTime +
+The time stamp of the event.
+ ++ DCS#Object + Initiator +
+The initiating object of the event.
+ +Creation of a Dead Event.
+ ++ DCS#Time + EventTime +
+The time stamp of the event.
+ ++ DCS#Object + Initiator +
+The initiating object of the event.
+ +Creation of a Remove Unit Event.
+ ++ DCS#Time + EventTime +
+The time stamp of the event.
+ ++ DCS#Object + Initiator +
+The initiating object of the event.
+ +Creation of a Takeoff Event.
+ ++ DCS#Time + EventTime +
+The time stamp of the event.
+ ++ DCS#Object + Initiator +
+The initiating object of the event.
+ +Log an exception which will be traced always.
+ + +Can be anywhere within the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Returns the event dispatcher
+ +Remove all subscribed events
+ +Trace a function call.
+ + +Must be at the beginning of the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Trace a function call level 2.
+ + +Must be at the beginning of the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Trace a function call level 3.
+ + +Must be at the beginning of the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Get the ClassID of the class instance.
+ +#string:
+The ClassID of the class instance.
+ +Get the ClassName of the class instance.
+ +#string:
+The ClassName of the class instance.
+ +Get the ClassName + ClassID of the class instance.
+ + +The ClassName + ClassID is formatted as '%s#%09d'.
+ +#string:
+The ClassName + ClassID of the class instance.
+ +Get the Class Event processing Priority.
+ + +The Event processing Priority is a number from 1 to 10, +reflecting the order of the classes subscribed to the Event to be processed.
+ +This is the worker method to retrieve the Parent class.
+ + +Note that the Parent class must be passed to call the parent class method.
+ +self:GetParent(self):ParentMethod()
+
+
+
+
+
+Get a Value given a Key from the Object.
+ + +Note that if the Object is destroyed, nillified or garbage collected, then the Values and Keys will also be gone.
+ ++ Object +
+The object that holds the Value set by the Key.
+ ++ Key +
+The key that is used to retrieve the value. Note that the key can be a #string, but it can also be any other type!
+ +The Value retrieved or nil if the Key was not found and thus the Value could not be retrieved.
+ +Subscribe to a DCS Event.
+ ++ Core.Event#EVENTS + EventID +
+Event ID.
+ ++ #function + EventFunction +
+(optional) The function to be called when the event occurs for the unit.
+ +Log an information which will be traced always.
+ + +Can be anywhere within the function logic.
+ ++ Arguments +
+A #table or any field.
+ +This is the worker method to inherit from a parent class.
+ ++ Child +
+is the Child class that inherits.
+ ++ #BASE + Parent +
+is the Parent class that the Child inherits from.
+ +Child
+ +This is the worker method to check if an object is an (sub)instance of a class.
+ + + +ZONE:New( 'some zone' ):IsInstanceOf( ZONE ) will return true
ZONE:New( 'some zone' ):IsInstanceOf( 'ZONE' ) will return true
ZONE:New( 'some zone' ):IsInstanceOf( 'zone' ) will return true
ZONE:New( 'some zone' ):IsInstanceOf( 'BASE' ) will return true
ZONE:New( 'some zone' ):IsInstanceOf( 'GROUP' ) will return false
+ ClassName +
+is the name of the class or the class itself to run the check against
+ +#boolean:
+Enquires if tracing is on (for the class).
+ +BASE constructor.
+ + + +This is an example how to use the BASE:New() constructor in a new class definition when inheriting from BASE.
+ +function EVENT:New()
+ local self = BASE:Inherit( self, BASE:New() ) -- #EVENT
+ return self
+end
+
+
+
+Occurs when an object is completely destroyed.
+ + +initiator : The unit that is was destroyed.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a ground unit captures either an airbase or a farp.
+ + +initiator : The unit that captured the base +place: The airbase that was captured, can be a FARP or Airbase. When calling place:getCoalition() the faction will already be the new owning faction.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any object is spawned into the mission.
+ + +initiator : The unit that was spawned
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any aircraft crashes into the ground and is completely destroyed.
+ + +initiator : The unit that has crashed
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when an object is dead.
+ + +initiator : The unit that is dead.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Unknown precisely what creates this event, likely tied into newer damage model.
+ + +Will update this page when new information become available.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a pilot ejects from an aircraft +initiator : The unit that has ejected
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any aircraft shuts down its engines.
+ + +initiator : The unit that is stopping its engines.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any aircraft starts its engines.
+ + +initiator : The unit that is starting its engines.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs whenever an object is hit by a weapon.
+ + +initiator : The unit object the fired the weapon +weapon: Weapon object that hit the target +target: The Object that was hit.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any system fails on a human controlled aircraft.
+ + +initiator : The unit that had the failure
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs on the death of a unit.
+ + +Contains more and different information. Similar to unit_lost it will occur for aircraft before the aircraft crash event occurs.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when an aircraft lands at an airbase, farp or ship +initiator : The unit that has landed +place: Object that the unit landed on.
+ + +Can be an Airbase Object, FARP, or Ships
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs shortly after the landing animation of an ejected pilot touching the ground and standing up.
+ + +Event does not occur if the pilot lands in the water and sub combs to Davey Jones Locker.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a new mark was added.
+ + +MarkID: ID of the mark.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a mark text was changed.
+ + +MarkID: ID of the mark.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a mark was removed.
+ + +MarkID: ID of the mark.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a mission ends
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when a mission starts
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when the pilot of an aircraft is killed.
+ + +Can occur either if the player is alive and crashes or if a weapon kills the pilot without completely destroying the plane. +initiator : The unit that the pilot has died in.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any player assumes direct control of a unit.
+ + +initiator : The unit that is being taken control of.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any player relieves control of a unit to the AI.
+ + +initiator : The unit that the player left.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when an aircraft connects with a tanker and begins taking on fuel.
+ + +initiator : The unit that is receiving fuel.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when an aircraft is finished taking fuel.
+ + +initiator : The unit that was receiving fuel.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any modification to the "Score" as seen on the debrief menu would occur.
+ + +There is no information on what values the score was changed to. Event is likely similar to player_comment in this regard.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any unit stops firing its weapon.
+ + +Event will always correspond with a shooting start event. +initiator : The unit that was doing the shooting.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when any unit begins firing a weapon that has a high rate of fire.
+ + +Most common with aircraft cannons (GAU-8), autocannons, and machine guns. +initiator : The unit that is doing the shooting. +target: The unit that is being targeted.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs whenever any unit in a mission fires a weapon.
+ + +But not any machine gun or autocannon based weapon, those are handled by EVENT.ShootingStart.
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when an aircraft takes off from an airbase, farp, or ship.
+ + +initiator : The unit that tookoff +place: Object from where the AI took-off from. Can be an Airbase Object, FARP, or Ships
+ ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Occurs when the game thinks an object is destroyed.
+ + + ++ Core.Event#EVENTDATA + EventData +
+The EventData structure.
+ +Schedule a new time event.
+ + +Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.
+ ++ #number + Start +
+Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.
+ ++ #function + SchedulerFunction +
+The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.
+ ++ #table + ... +
+Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.
+ +#number:
+The ScheduleID of the planned schedule.
+ +Schedule a new time event.
+ + +Note that the schedule will only take place if the scheduler is started. Even for a single schedule event, the scheduler needs to be started also.
+ ++ #number + Start +
+Specifies the amount of seconds that will be waited before the scheduling is started, and the event function is called.
+ ++ #number + Repeat +
+Specifies the interval in seconds when the scheduler will call the event function.
+ ++ #number + RandomizeFactor +
+Specifies a randomization factor between 0 and 1 to randomize the Repeat.
+ ++ #number + Stop +
+Specifies the amount of seconds when the scheduler will be stopped.
+ ++ #function + SchedulerFunction +
+The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.
+ ++ #table + ... +
+Optional arguments that can be given as part of scheduler. The arguments need to be given as a table { param1, param 2, ... }.
+ +#number:
+The ScheduleID of the planned schedule.
+ +Stops the Schedule.
+ ++ #function + SchedulerFunction +
+The event function to be called when a timer event occurs. The event function needs to accept the parameters specified in SchedulerArguments.
+ +Set the Class Event processing Priority.
+ + +The Event processing Priority is a number from 1 to 10, +reflecting the order of the classes subscribed to the Event to be processed.
+ ++ #number + EventPriority +
+The Event processing Priority.
+ +self
+ +Set a state or property of the Object given a Key and a Value.
+ + +Note that if the Object is destroyed, nillified or garbage collected, then the Values and Keys will also be gone.
+ ++ Object +
+The object that will hold the Value set by the Key.
+ ++ Key +
+The key that is used as a reference of the value. Note that the key can be a #string, but it can also be any other type!
+ ++ Value +
+The value to is stored in the object.
+ +The Value set.
+ +Trace a function logic level 1.
+ + +Can be anywhere within the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Trace a function logic level 2.
+ + +Can be anywhere within the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Trace a function logic level 3.
+ + +Can be anywhere within the function logic.
+ ++ Arguments +
+A #table or any field.
+ +Trace all methods in MOOSE
+ ++ #boolean + TraceAll +
+true = trace all methods in MOOSE.
+ +Set tracing for a class
+ +Set tracing for a specific method of class
+ ++ #string + Class +
++ #string + Method +
+Set trace level
+ +Set trace off.
+ +Set trace on.
+ +Set trace on or off +Note that when trace is off, no BASE.Debug statement is performed, increasing performance! +When Moose is loaded statically, (as one file), tracing is switched off by default.
+ + +So tracing must be switched on manually in your mission if you are using Moose statically. +When moose is loading dynamically (for moose class development), tracing is switched on by default.
+ ++ #boolean + TraceOnOff +
+Switch the tracing on or off.
+ +-- Switch the tracing On
+BASE:TraceOnOff( true )
+
+-- Switch the tracing Off
+BASE:TraceOnOff( false )
+
+UnSubscribe to a DCS event.
+ ++ Core.Event#EVENTS + EventID +
+Event ID.
+ +Trace a function call.
+ + +This function is private.
+ ++ Arguments +
+A #table or any field.
+ ++ DebugInfoCurrentParam +
++ DebugInfoFromParam +
+Trace a function logic.
+ ++ Arguments +
+A #table or any field.
+ ++ DebugInfoCurrentParam +
++ DebugInfoFromParam +
+ TODO: Complete DCS#Event structure.
+- The main event handling function... This function captures all events generated for the class.
+ @param #BASE self
+ @param DCS#Event event