Module Event
+
+Core - EVENT models DCS event dispatching using a publish-subscribe model.
+ + + ++ +
1) Event Handling Overview
+ +Within a running mission, various DCS events occur. Units are dynamically created, crash, die, shoot stuff, get hit etc. +This module provides a mechanism to dispatch those events occuring within your running mission, to the different objects orchestrating your mission.
+ +Objects can subscribe to different events. The Event dispatcher will publish the received DCS events to the subscribed MOOSE objects, in a specified order. +In this way, the subscribed MOOSE objects are kept in sync with your evolving running mission.
+ +1.1) Event Dispatching
+ +The _EVENTDISPATCHER object is automatically created within MOOSE, +and handles the dispatching of DCS Events occurring +in the simulator to the subscribed objects +in the correct processing order.
+ +There are 5 levels of kind of objects that the _EVENTDISPATCHER services:
+ +-
+
- _DATABASE object: The core of the MOOSE objects. Any object that is created, deleted or updated, is done in this database. +
- SET_ derived classes: Subsets of the _DATABASE object. These subsets are updated by the _EVENTDISPATCHER as the second priority. +
- UNIT objects: UNIT objects can subscribe to DCS events. Each DCS event will be directly published to teh subscribed UNIT object. +
- GROUP objects: GROUP objects can subscribe to DCS events. Each DCS event will be directly published to the subscribed GROUP object. +
- Any other object: Various other objects can subscribe to DCS events. Each DCS event triggered will be published to each subscribed object. +
For most DCS events, the above order of updating will be followed.
+ +But for some DCS events, the publishing order is reversed. This is due to the fact that objects need to be erased instead of added.
+ +1.2) Event Handling
+ +The actual event subscribing and handling is not facilitated through the _EVENTDISPATCHER, but it is done through the BASE class, UNIT class and GROUP class. +The _EVENTDISPATCHER is a component that is quietly working in the background of MOOSE.
+ +The BASE class provides methods to catch DCS Events. These are events that are triggered from within the DCS simulator, +and handled through lua scripting. MOOSE provides an encapsulation to handle these events more efficiently.
+ +1.2.1 Subscribe / Unsubscribe to DCS Events
+ +At first, the mission designer will need to Subscribe to a specific DCS event for the class. +So, when the DCS event occurs, the class will be notified of that event. +There are two functions which you use to subscribe to or unsubscribe from an event.
+ +-
+
- Base#BASE.HandleEvent(): Subscribe to a DCS Event. +
- Base#BASE.UnHandleEvent(): Unsubscribe from a DCS Event. +
Note that for a UNIT, the event will be handled for that UNIT only! +Note that for a GROUP, the event will be handled for all the UNITs in that GROUP only!
+ +For all objects of other classes, the subscribed events will be handled for all UNITs within the Mission! +So if a UNIT within the mission has the subscribed event for that object, +then the object event handler will receive the event for that UNIT!
+ +1.3.2 Event Handling of DCS Events
+ +Once the class is subscribed to the event, an Event Handling method on the object or class needs to be written that will be called +when the DCS event occurs. The Event Handling method receives an Event#EVENTDATA structure, which contains a lot of information +about the event that occurred.
+ +Find below an example of the prototype how to write an event handling function for two units:
+ + local Tank1 = UNIT:FindByName( "Tank A" )
+ local Tank2 = UNIT:FindByName( "Tank B" )
+
+ -- Here we subscribe to the Dead events. So, if one of these tanks dies, the Tank1 or Tank2 objects will be notified.
+ Tank1:HandleEvent( EVENTS.Dead )
+ Tank2:HandleEvent( EVENTS.Dead )
+
+ --- This function is an Event Handling function that will be called when Tank1 is Dead.
+ -- @param Wrapper.Unit#UNIT self
+ -- @param Core.Event#EVENTDATA EventData
+ function Tank1:OnEventDead( EventData )
+
+ self:SmokeGreen()
+ end
+
+ --- This function is an Event Handling function that will be called when Tank2 is Dead.
+ -- @param Wrapper.Unit#UNIT self
+ -- @param Core.Event#EVENTDATA EventData
+ function Tank2:OnEventDead( EventData )
+
+ self:SmokeBlue()
+ end
+
+
+1.3.3 Event Handling methods that are automatically called upon subscribed DCS events
+ +The following list outlines which EVENTS item in the structure corresponds to which Event Handling method. +Always ensure that your event handling methods align with the events being subscribed to, or nothing will be executed.
+ +2) EVENTS type
+ +The EVENTS structure contains names for all the different DCS events that objects can subscribe to using the +Base#BASE.HandleEvent() method.
+ +3) EVENTDATA type
+ +The Event#EVENTDATA structure contains all the fields that are populated with event information before +an Event Handler method is being called by the event dispatcher. +The Event Handler received the EVENTDATA object as a parameter, and can be used to investigate further the different events. +There are basically 4 main categories of information stored in the EVENTDATA structure:
+ +-
+
Initiator Unit data: Several fields documenting the initiator unit related to the event.
+ Target Unit data: Several fields documenting the target unit related to the event.
+ Weapon data: Certain events populate weapon information.
+ Place data: Certain events populate place information.
+ +--- This function is an Event Handling function that will be called when Tank1 is Dead. + -- EventData is an EVENTDATA structure. + -- We use the EventData.IniUnit to smoke the tank Green. + -- @param Wrapper.Unit#UNIT self + -- @param Core.Event#EVENTDATA EventData + function Tank1:OnEventDead( EventData )
+ +EventData.IniUnit:SmokeGreen() + end
+
Find below an overview which events populate which information categories:
+ +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
+ +The underlying change log documents the API changes. Please read this carefully. The following notation is used:
+ +-
+
- Added parts are expressed in bold type face. +
- Removed parts are expressed in italic type face. +
YYYY-MM-DD: CLASS:NewFunction( Params ) replaces CLASS:OldFunction( Params ) +YYYY-MM-DD: CLASS:NewFunction( Params ) added
+ +Hereby the change log:
+ +-
+
2017-03-07: Added the correct event dispatching in case the event is subscribed by a GROUP.
+ 2017-02-07: Did a complete revision of the Event Handing API and underlying mechanisms.
+
+ +
AUTHORS and CONTRIBUTIONS
+ +Contributions:
+ +Authors:
+ +-
+
- FlightControl: Design & Programming & documentation. +
Global(s)
+| EVENT | ++ + | +
| EVENTHANDLER | ++ + | +
| EVENTS | ++ + | +
Type EVENT
+ Type EVENT.Events
+ | EVENT.Events.IniUnit | ++ + | +
Type EVENTDATA
+ | EVENTDATA.Cargo | ++ + | +
| EVENTDATA.CargoName | ++ + | +
| EVENTDATA.IniCategory | +
+ (UNIT) The category of the initiator. + |
+
| EVENTDATA.IniCoalition | +
+ (UNIT) The coalition of the initiator. + |
+
| EVENTDATA.IniDCSGroup | +
+ (UNIT) The initiating {DCSGroup#Group}. + |
+
| EVENTDATA.IniDCSGroupName | +
+ (UNIT) The initiating Group name. + |
+
| EVENTDATA.IniDCSUnit | +
+ (UNIT/STATIC) The initiating DCSUnit#Unit or DCSStaticObject#StaticObject. + |
+
| EVENTDATA.IniDCSUnitName | +
+ (UNIT/STATIC) The initiating Unit name. + |
+
| EVENTDATA.IniGroup | +
+ (UNIT) The initiating MOOSE wrapper Group#GROUP of the initiator Group object. + |
+
| EVENTDATA.IniGroupName | +
+ UNIT) The initiating GROUP name (same as IniDCSGroupName). + |
+
| EVENTDATA.IniObjectCategory | +
+ (UNIT/STATIC/SCENERY) The initiator object category ( Object.Category.UNIT or Object.Category.STATIC ). + |
+
| EVENTDATA.IniPlayerName | +
+ (UNIT) The name of the initiating player in case the Unit is a client or player slot. + |
+
| EVENTDATA.IniTypeName | +
+ (UNIT) The type name of the initiator. + + |
+
| EVENTDATA.IniUnit | +
+ (UNIT/STATIC) The initiating MOOSE wrapper Unit#UNIT of the initiator Unit object. + |
+
| EVENTDATA.IniUnitName | +
+ (UNIT/STATIC) The initiating UNIT name (same as IniDCSUnitName). + |
+
| EVENTDATA.TgtCategory | +
+ (UNIT) The category of the target. + |
+
| EVENTDATA.TgtCoalition | +
+ (UNIT) The coalition of the target. + |
+
| EVENTDATA.TgtDCSGroup | +
+ (UNIT) The target {DCSGroup#Group}. + |
+
| EVENTDATA.TgtDCSGroupName | +
+ (UNIT) The target Group name. + |
+
| EVENTDATA.TgtDCSUnit | +
+ (UNIT/STATIC) The target DCSUnit#Unit or DCSStaticObject#StaticObject. + |
+
| EVENTDATA.TgtDCSUnitName | +
+ (UNIT/STATIC) The target Unit name. + |
+
| EVENTDATA.TgtGroup | +
+ (UNIT) The target MOOSE wrapper Group#GROUP of the target Group object. + |
+
| EVENTDATA.TgtGroupName | +
+ (UNIT) The target GROUP name (same as TgtDCSGroupName). + |
+
| EVENTDATA.TgtObjectCategory | +
+ (UNIT/STATIC) The target object category ( Object.Category.UNIT or Object.Category.STATIC ). + |
+
| EVENTDATA.TgtPlayerName | +
+ (UNIT) The name of the target player in case the Unit is a client or player slot. + |
+
| EVENTDATA.TgtTypeName | +
+ (UNIT) The type name of the target. + + |
+
| EVENTDATA.TgtUnit | +
+ (UNIT/STATIC) The target MOOSE wrapper Unit#UNIT of the target Unit object. + |
+
| EVENTDATA.TgtUnitName | +
+ (UNIT/STATIC) The target UNIT name (same as TgtDCSUnitName). + |
+
| EVENTDATA.Weapon | ++ + | +
| EVENTDATA.WeaponCategory | ++ + | +
| EVENTDATA.WeaponCoalition | ++ + | +
| EVENTDATA.WeaponName | ++ + | +
| EVENTDATA.WeaponPlayerName | ++ + | +
| EVENTDATA.WeaponTgtDCSUnit | ++ + | +
| EVENTDATA.WeaponTypeName | ++ + | +
| EVENTDATA.WeaponUNIT | ++ + | +
| EVENTDATA.id | +
+ The identifier of the event. + + |
+
| EVENTDATA.initiator | +
+ (UNIT/STATIC/SCENERY) The initiating Dcs.DCSUnit#Unit or Dcs.DCSStaticObject#StaticObject. + |
+
| EVENTDATA.target | +
+ (UNIT/STATIC) The target Dcs.DCSUnit#Unit or DCSStaticObject#StaticObject. + |
+
| EVENTDATA.weapon | +
+ The weapon used during the event. + |
+
Type EVENTHANDLER
+ | EVENTHANDLER.ClassID | ++ + | +
| EVENTHANDLER.ClassName | ++ + | +
| EVENTHANDLER:New() | +
+ The EVENTHANDLER constructor + |
+
Type EVENTS
+ | EVENTS.BaseCaptured | ++ + | +
| EVENTS.Birth | ++ + | +
| EVENTS.Crash | ++ + | +
| EVENTS.Dead | ++ + | +
| EVENTS.DeleteCargo | ++ + | +
| EVENTS.Ejection | ++ + | +
| EVENTS.EngineShutdown | ++ + | +
| EVENTS.EngineStartup | ++ + | +
| EVENTS.Hit | ++ + | +
| EVENTS.HumanFailure | ++ + | +
| EVENTS.Land | ++ + | +
| EVENTS.MissionEnd | ++ + | +
| EVENTS.MissionStart | ++ + | +
| EVENTS.NewCargo | ++ + | +
| EVENTS.PilotDead | ++ + | +
| EVENTS.PlayerComment | ++ + | +
| EVENTS.PlayerEnterUnit | ++ + | +
| EVENTS.PlayerLeaveUnit | ++ + | +
| EVENTS.Refueling | ++ + | +
| EVENTS.RefuelingStop | ++ + | +
| EVENTS.ShootingEnd | ++ + | +
| EVENTS.ShootingStart | ++ + | +
| EVENTS.Shot | ++ + | +
| EVENTS.Takeoff | ++ + | +
| EVENTS.TookControl | ++ + | +
Global(s)
+ +-
+
- + + #EVENTHANDLER + +EVENTHANDLER + + +
- + + + + +
Type Event
+
+ Type EVENT
+
+The EVENT structure
+ +Field(s)
+-
+
- + + #number + +EVENT.ClassID + + +
- + + + + +
-
+
- + + #string + +EVENT.ClassName + + +
- + + + + +
-
+
- + + +EVENT:CreateEventDeleteCargo(Cargo) + + +
-
+
+
Creation of a Cargo Deletion Event.
+ +Parameter
+-
+
-
+
+
+ +AI.AICargo#AICARGO Cargo: +The Cargo created.
+
+ -
+
+
-
+
- + + +EVENT:CreateEventNewCargo(Cargo) + + +
-
+
+
Creation of a New Cargo Event.
+ +Parameter
+-
+
-
+
+
+ +AI.AICargo#AICARGO Cargo: +The Cargo created.
+
+ -
+
+
-
+
- + + #EVENT.Events + +EVENT.Events + + +
- + + + + +
-
+
- + + +EVENT.EventsDead + + +
- + + + + +
-
+
- + + +EVENT:Init(EventID, EventClass) + + +
-
+
+
Initializes the Events structure for the event
+ +Parameters
+-
+
-
+
+
+ +Dcs.DCSWorld#world.event EventID:
+ -
+
+
+ +Core.Base#BASE EventClass:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:New() + + +
- + + + + +
-
+
- + + +EVENT:OnBirthForTemplate(EventGroup, EventFunction, EventClass, EventTemplate) + + +
-
+
+
Create an OnBirth event handler for a group
+ +Parameters
+-
+
-
+
+
+ +Wrapper.Group#GROUP EventGroup:
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the unit.
+ -
+
+
+ +EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +EventTemplate:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnCrashForTemplate(EventGroup, EventFunction, EventClass, EventTemplate) + + +
-
+
+
Create an OnCrash event handler for a group
+ +Parameters
+-
+
-
+
+
+ +Wrapper.Group#GROUP EventGroup:
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the unit.
+ -
+
+
+ +EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +EventTemplate:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnDeadForTemplate(EventGroup, EventFunction, EventClass, EventTemplate) + + +
-
+
+
Create an OnDead event handler for a group
+ +Parameters
+-
+
-
+
+
+ +Wrapper.Group#GROUP EventGroup:
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the unit.
+ -
+
+
+ +EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +EventTemplate:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnEngineShutDownForTemplate(EventTemplate, EventFunction, EventClass) + + +
-
+
+
Create an OnDead event handler for a group
+ +Parameters
+-
+
-
+
+
+ +#table EventTemplate:
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the unit.
+ -
+
+
+ +EventClass: +The self instance of the class for which the event is.
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnEventForGroup(GroupName, EventFunction, EventClass, EventID) + + +
-
+
+
Set a new listener for an SEVENTX event for a GROUP.
+ +Parameters
+-
+
-
+
+
+ +#string GroupName: +The name of the GROUP.
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the GROUP.
+ -
+
+
+ +Core.Base#BASE EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +EventID:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnEventForTemplate(EventTemplate, EventFunction, EventClass, OnEventFunction, EventID) + + +
-
+
+
Create an OnDead event handler for a group
+ +Parameters
+-
+
-
+
+
+ +#table EventTemplate:
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the unit.
+ -
+
+
+ +EventClass: +The instance of the class for which the event is.
+ -
+
+
+ +#function OnEventFunction:
+ -
+
+
+ +EventID:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnEventForUnit(UnitName, EventFunction, EventClass, EventID) + + +
-
+
+
Set a new listener for an SEVENTX event for a UNIT.
+ +Parameters
+-
+
-
+
+
+ +#string UnitName: +The name of the UNIT.
+ -
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the GROUP.
+ -
+
+
+ +Core.Base#BASE EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +EventID:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnEventGeneric(EventFunction, EventClass, EventID) + + +
-
+
+
Set a new listener for an SEVENTX event independent from a unit or a weapon.
+ +Parameters
+-
+
-
+
+
+ +#function EventFunction: +The function to be called when the event occurs for the unit.
+ -
+
+
+ +Core.Base#BASE EventClass: +The self instance of the class for which the event is captured. When the event happens, the event process will be called in this class provided.
+ -
+
+
+ +EventID:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:OnLandForTemplate(EventTemplate, EventFunction, EventClass) + + +
-
+
+
+
+
Parameters
+-
+
-
+
+
+ +EventTemplate:
+ -
+
+
+ +EventFunction:
+ -
+
+
+ +EventClass:
+
+ -
+
+
-
+
- + + +EVENT:OnTakeOffForTemplate(EventTemplate, EventFunction, EventClass) + + +
-
+
+
+
+
Parameters
+-
+
-
+
+
+ +EventTemplate:
+ -
+
+
+ +EventFunction:
+ -
+
+
+ +EventClass:
+
+ -
+
+
-
+
- + + +EVENT:Remove(EventClass, EventID) + + +
-
+
+
Removes a subscription
+ +Parameters
+-
+
-
+
+
+ +Core.Base#BASE EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +Dcs.DCSWorld#world.event EventID:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:RemoveAll(EventObject) + + +
-
+
+
Clears all event subscriptions for a Base#BASE derived object.
+ +Parameter
+-
+
-
+
+
+ +Core.Base#BASE EventObject:
+
+ -
+
+
-
+
- + + +EVENT:Reset(EventClass, EventID, EventObject) + + +
-
+
+
Resets subscriptions
+ +Parameters
+-
+
-
+
+
+ +Core.Base#BASE EventClass: +The self instance of the class for which the event is.
+ -
+
+
+ +Dcs.DCSWorld#world.event EventID:
+ -
+
+
+ +EventObject:
+
Return value
+ + + + +
+ -
+
+
-
+
- + + +EVENT:onEvent(Event) + + +
-
+
+
+
+
Parameter
+-
+
-
+
+
+ +#EVENTDATA Event:
+
+ -
+
+
Type EVENT.Events
+
+The Events structure
+ +Field(s)
+-
+
- + + #number + +EVENT.Events.IniUnit + + +
- + + + + +
Type EVENTDATA
+
+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.ยต + +
Field(s)
+-
+
- + + + +EVENTDATA.Cargo + + +
- + + + + +
-
+
- + + + +EVENTDATA.CargoName + + +
- + + + + +
-
+
- + + Dcs.DCSUnit#Unit.Category + +EVENTDATA.IniCategory + + +
-
+
+
(UNIT) The category of the initiator.
+ +
+
-
+
- + + Dcs.DCScoalition#coalition.side + +EVENTDATA.IniCoalition + + +
-
+
+
(UNIT) The coalition of the initiator.
+ +
+
-
+
- + + Dcs.DCSGroup#Group + +EVENTDATA.IniDCSGroup + + +
-
+
+
(UNIT) The initiating {DCSGroup#Group}.
+ +
+
-
+
- + + #string + +EVENTDATA.IniDCSGroupName + + +
-
+
+
(UNIT) The initiating Group name.
+ +
+
-
+
- + + Dcs.DCSUnit#Unit + +EVENTDATA.IniDCSUnit + + +
-
+
+
(UNIT/STATIC) The initiating DCSUnit#Unit or DCSStaticObject#StaticObject.
+ +
+
-
+
- + + #string + +EVENTDATA.IniDCSUnitName + + +
-
+
+
(UNIT/STATIC) The initiating Unit name.
+ +
+
-
+
- + + Wrapper.Group#GROUP + +EVENTDATA.IniGroup + + +
-
+
+
(UNIT) The initiating MOOSE wrapper Group#GROUP of the initiator Group object.
+ +
+
-
+
- + + #string + +EVENTDATA.IniGroupName + + +
-
+
+
UNIT) The initiating GROUP name (same as IniDCSGroupName).
+ +
+
-
+
- + + Dcs.DCSObject#Object.Category + +EVENTDATA.IniObjectCategory + + +
-
+
+
(UNIT/STATIC/SCENERY) The initiator object category ( Object.Category.UNIT or Object.Category.STATIC ).
+ +
+
-
+
- + + #string + +EVENTDATA.IniPlayerName + + +
-
+
+
(UNIT) The name of the initiating player in case the Unit is a client or player slot.
+ +
+
-
+
- + + #string + +EVENTDATA.IniTypeName + + +
-
+
+
(UNIT) The type name of the initiator.
+ + +
+
-
+
- + + Wrapper.Unit#UNIT + +EVENTDATA.IniUnit + + +
-
+
+
(UNIT/STATIC) The initiating MOOSE wrapper Unit#UNIT of the initiator Unit object.
+ +
+
-
+
- + + #string + +EVENTDATA.IniUnitName + + +
-
+
+
(UNIT/STATIC) The initiating UNIT name (same as IniDCSUnitName).
+ +
+
-
+
- + + Dcs.DCSUnit#Unit.Category + +EVENTDATA.TgtCategory + + +
-
+
+
(UNIT) The category of the target.
+ +
+
-
+
- + + Dcs.DCScoalition#coalition.side + +EVENTDATA.TgtCoalition + + +
-
+
+
(UNIT) The coalition of the target.
+ +
+
-
+
- + + Dcs.DCSGroup#Group + +EVENTDATA.TgtDCSGroup + + +
-
+
+
(UNIT) The target {DCSGroup#Group}.
+ +
+
-
+
- + + #string + +EVENTDATA.TgtDCSGroupName + + +
-
+
+
(UNIT) The target Group name.
+ +
+
-
+
- + + Dcs.DCSUnit#Unit + +EVENTDATA.TgtDCSUnit + + +
-
+
+
(UNIT/STATIC) The target DCSUnit#Unit or DCSStaticObject#StaticObject.
+ +
+
-
+
- + + #string + +EVENTDATA.TgtDCSUnitName + + +
-
+
+
(UNIT/STATIC) The target Unit name.
+ +
+
-
+
- + + Wrapper.Group#GROUP + +EVENTDATA.TgtGroup + + +
-
+
+
(UNIT) The target MOOSE wrapper Group#GROUP of the target Group object.
+ +
+
-
+
- + + #string + +EVENTDATA.TgtGroupName + + +
-
+
+
(UNIT) The target GROUP name (same as TgtDCSGroupName).
+ +
+
-
+
- + + Dcs.DCSObject#Object.Category + +EVENTDATA.TgtObjectCategory + + +
-
+
+
(UNIT/STATIC) The target object category ( Object.Category.UNIT or Object.Category.STATIC ).
+ +
+
-
+
- + + #string + +EVENTDATA.TgtPlayerName + + +
-
+
+
(UNIT) The name of the target player in case the Unit is a client or player slot.
+ +
+
-
+
- + + #string + +EVENTDATA.TgtTypeName + + +
-
+
+
(UNIT) The type name of the target.
+ + +
+
-
+
- + + Wrapper.Unit#UNIT + +EVENTDATA.TgtUnit + + +
-
+
+
(UNIT/STATIC) The target MOOSE wrapper Unit#UNIT of the target Unit object.
+ +
+
-
+
- + + #string + +EVENTDATA.TgtUnitName + + +
-
+
+
(UNIT/STATIC) The target UNIT name (same as TgtDCSUnitName).
+ +
+
-
+
- + + +EVENTDATA.Weapon + + +
- + + + + +
-
+
- + + +EVENTDATA.WeaponCategory + + +
- + + + + +
-
+
- + + +EVENTDATA.WeaponCoalition + + +
- + + + + +
-
+
- + + +EVENTDATA.WeaponName + + +
- + + + + +
-
+
- + + +EVENTDATA.WeaponPlayerName + + +
- + + + + +
-
+
- + + +EVENTDATA.WeaponTgtDCSUnit + + +
- + + + + +
-
+
- + + +EVENTDATA.WeaponTypeName + + +
- + + + + +
-
+
- + + + +EVENTDATA.WeaponUNIT + + +
-
+
+
+
+
+
Sometimes, the weapon is a player unit!
+ +
+
-
+
- + + #number + +EVENTDATA.id + + +
-
+
+
The identifier of the event.
+ + +
+
-
+
- + + Dcs.DCSUnit#Unit + +EVENTDATA.initiator + + +
-
+
+
(UNIT/STATIC/SCENERY) The initiating Dcs.DCSUnit#Unit or Dcs.DCSStaticObject#StaticObject.
+ +
+
-
+
- + + Dcs.DCSUnit#Unit + +EVENTDATA.target + + +
-
+
+
(UNIT/STATIC) The target Dcs.DCSUnit#Unit or DCSStaticObject#StaticObject.
+ +
+
-
+
- + + +EVENTDATA.weapon + + +
-
+
+
The weapon used during the event.
+ +
+
Type EVENTHANDLER
+
+The EVENTHANDLER structure
+ +Field(s)
+-
+
- + + #number + +EVENTHANDLER.ClassID + + +
- + + + + +
-
+
- + + #string + +EVENTHANDLER.ClassName + + +
- + + + + +
-
+
- + + +EVENTHANDLER:New() + + +
-
+
+
The EVENTHANDLER constructor
+ +Return value
+ + + + +
+
Type EVENTS
+
+The different types of events supported by MOOSE.
+ + +Use this structure to subscribe to events using the Base#BASE.HandleEvent() method.
+ +Field(s)
+-
+
- + + + +EVENTS.BaseCaptured + + +
- + + + + +
-
+
- + + + +EVENTS.Birth + + +
- + + + + +
-
+
- + + + +EVENTS.Crash + + +
- + + + + +
-
+
- + + + +EVENTS.Dead + + +
- + + + + +
-
+
- + + + +EVENTS.DeleteCargo + + +
- + + + + +
-
+
- + + + +EVENTS.Ejection + + +
- + + + + +
-
+
- + + + +EVENTS.EngineShutdown + + +
- + + + + +
-
+
- + + + +EVENTS.EngineStartup + + +
- + + + + +
-
+
- + + + +EVENTS.Hit + + +
- + + + + +
-
+
- + + + +EVENTS.HumanFailure + + +
- + + + + +
-
+
- + + + +EVENTS.Land + + +
- + + + + +
-
+
- + + + +EVENTS.MissionEnd + + +
- + + + + +
-
+
- + + + +EVENTS.MissionStart + + +
- + + + + +
-
+
- + + + +EVENTS.NewCargo + + +
- + + + + +
-
+
- + + + +EVENTS.PilotDead + + +
- + + + + +
-
+
- + + + +EVENTS.PlayerComment + + +
- + + + + +
-
+
- + + + +EVENTS.PlayerEnterUnit + + +
- + + + + +
-
+
- + + + +EVENTS.PlayerLeaveUnit + + +
- + + + + +
-
+
- + + + +EVENTS.Refueling + + +
- + + + + +
-
+
- + + + +EVENTS.RefuelingStop + + +
- + + + + +
-
+
- + + + +EVENTS.ShootingEnd + + +
- + + + + +
-
+
- + + + +EVENTS.ShootingStart + + +
- + + + + +
-
+
- + + + +EVENTS.Shot + + +
- + + + + +
-
+
- + + + +EVENTS.Takeoff + + +
- + + + + +
-
+
- + + + +EVENTS.TookControl + + +
- + + + + +