mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
commit
def44bde89
@ -4375,7 +4375,7 @@ do -- AI_A2G_DISPATCHER
|
|||||||
|
|
||||||
Report:Add( string.format( "\n - Squadron Resources: ", #self.DefenseQueue ) )
|
Report:Add( string.format( "\n - Squadron Resources: ", #self.DefenseQueue ) )
|
||||||
for DefenderSquadronName, DefenderSquadron in pairs( self.DefenderSquadrons ) do
|
for DefenderSquadronName, DefenderSquadron in pairs( self.DefenderSquadrons ) do
|
||||||
Report:Add( string.format( " - %s - %d", DefenderSquadronName, DefenderSquadron.ResourceCount and DefenderSquadron.ResourceCount or "n/a" ) )
|
Report:Add( string.format( " - %s - %s", DefenderSquadronName, DefenderSquadron.ResourceCount and tostring(DefenderSquadron.ResourceCount) or "n/a" ) )
|
||||||
end
|
end
|
||||||
|
|
||||||
self:F( Report:Text( "\n" ) )
|
self:F( Report:Text( "\n" ) )
|
||||||
|
|||||||
@ -555,6 +555,8 @@ function EVENT:Init( EventID, EventClass )
|
|||||||
if not self.Events[EventID][EventPriority][EventClass] then
|
if not self.Events[EventID][EventPriority][EventClass] then
|
||||||
self.Events[EventID][EventPriority][EventClass] = {}
|
self.Events[EventID][EventPriority][EventClass] = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
return self.Events[EventID][EventPriority][EventClass]
|
return self.Events[EventID][EventPriority][EventClass]
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -641,7 +643,7 @@ end
|
|||||||
-- @param EventID
|
-- @param EventID
|
||||||
-- @return #EVENT
|
-- @return #EVENT
|
||||||
function EVENT:OnEventGeneric( EventFunction, EventClass, EventID )
|
function EVENT:OnEventGeneric( EventFunction, EventClass, EventID )
|
||||||
self:F2( { EventID } )
|
self:F2( { EventID, EventClass, EventFunction } )
|
||||||
|
|
||||||
local EventData = self:Init( EventID, EventClass )
|
local EventData = self:Init( EventID, EventClass )
|
||||||
EventData.EventFunction = EventFunction
|
EventData.EventFunction = EventFunction
|
||||||
@ -960,13 +962,25 @@ function EVENT:onEvent( Event )
|
|||||||
end
|
end
|
||||||
|
|
||||||
if Event.IniObjectCategory == Object.Category.STATIC then
|
if Event.IniObjectCategory == Object.Category.STATIC then
|
||||||
Event.IniDCSUnit = Event.initiator
|
if Event.id==31 then
|
||||||
Event.IniDCSUnitName = Event.IniDCSUnit:getName()
|
--env.info("FF event 31")
|
||||||
Event.IniUnitName = Event.IniDCSUnitName
|
-- Event.initiator is a Static object representing the pilot. But getName() error due to DCS bug.
|
||||||
Event.IniUnit = STATIC:FindByName( Event.IniDCSUnitName, false )
|
Event.IniDCSUnit = Event.initiator
|
||||||
Event.IniCoalition = Event.IniDCSUnit:getCoalition()
|
local ID=Event.initiator.id_
|
||||||
Event.IniCategory = Event.IniDCSUnit:getDesc().category
|
Event.IniDCSUnitName = string.format("Ejected Pilot ID %s", tostring(ID))
|
||||||
Event.IniTypeName = Event.IniDCSUnit:getTypeName()
|
Event.IniUnitName = Event.IniDCSUnitName
|
||||||
|
Event.IniCoalition = 0
|
||||||
|
Event.IniCategory = 0
|
||||||
|
Event.IniTypeName = "Ejected Pilot"
|
||||||
|
else
|
||||||
|
Event.IniDCSUnit = Event.initiator
|
||||||
|
Event.IniDCSUnitName = Event.IniDCSUnit:getName()
|
||||||
|
Event.IniUnitName = Event.IniDCSUnitName
|
||||||
|
Event.IniUnit = STATIC:FindByName( Event.IniDCSUnitName, false )
|
||||||
|
Event.IniCoalition = Event.IniDCSUnit:getCoalition()
|
||||||
|
Event.IniCategory = Event.IniDCSUnit:getDesc().category
|
||||||
|
Event.IniTypeName = Event.IniDCSUnit:getTypeName()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if Event.IniObjectCategory == Object.Category.CARGO then
|
if Event.IniObjectCategory == Object.Category.CARGO then
|
||||||
@ -1048,7 +1062,9 @@ function EVENT:onEvent( Event )
|
|||||||
if Event.place then
|
if Event.place then
|
||||||
if Event.id==EVENTS.LandingAfterEjection then
|
if Event.id==EVENTS.LandingAfterEjection then
|
||||||
-- Place is here the UNIT of which the pilot ejected.
|
-- Place is here the UNIT of which the pilot ejected.
|
||||||
Event.Place=UNIT:Find(Event.place)
|
--local name=Event.place:getName() -- This returns a DCS error "Airbase doesn't exit" :(
|
||||||
|
-- However, this is not a big thing, as the aircraft the pilot ejected from is usually long crashed before the ejected pilot touches the ground.
|
||||||
|
--Event.Place=UNIT:Find(Event.place)
|
||||||
else
|
else
|
||||||
Event.Place=AIRBASE:Find(Event.place)
|
Event.Place=AIRBASE:Find(Event.place)
|
||||||
Event.PlaceName=Event.Place:GetName()
|
Event.PlaceName=Event.Place:GetName()
|
||||||
@ -1089,7 +1105,7 @@ function EVENT:onEvent( Event )
|
|||||||
|
|
||||||
-- Okay, we got the event from DCS. Now loop the SORTED self.EventSorted[] table for the received Event.id, and for each EventData registered, check if a function needs to be called.
|
-- Okay, we got the event from DCS. Now loop the SORTED self.EventSorted[] table for the received Event.id, and for each EventData registered, check if a function needs to be called.
|
||||||
for EventClass, EventData in pairs( self.Events[Event.id][EventPriority] ) do
|
for EventClass, EventData in pairs( self.Events[Event.id][EventPriority] ) do
|
||||||
|
|
||||||
--if Event.IniObjectCategory ~= Object.Category.STATIC then
|
--if Event.IniObjectCategory ~= Object.Category.STATIC then
|
||||||
-- self:E( { "Evaluating: ", EventClass:GetClassNameAndID() } )
|
-- self:E( { "Evaluating: ", EventClass:GetClassNameAndID() } )
|
||||||
--end
|
--end
|
||||||
@ -1145,10 +1161,11 @@ function EVENT:onEvent( Event )
|
|||||||
else
|
else
|
||||||
-- The EventClass is not alive anymore, we remove it from the EventHandlers...
|
-- The EventClass is not alive anymore, we remove it from the EventHandlers...
|
||||||
self:RemoveEvent( EventClass, Event.id )
|
self:RemoveEvent( EventClass, Event.id )
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
-- If the EventData is for a GROUP, the call directly the EventClass EventFunction for the UNIT in that GROUP.
|
--- If the EventData is for a GROUP, the call directly the EventClass EventFunction for the UNIT in that GROUP.
|
||||||
if EventData.EventGroup then
|
if EventData.EventGroup then
|
||||||
|
|
||||||
-- So now the EventClass must be a GROUP class!!! We check if it is still "Alive".
|
-- So now the EventClass must be a GROUP class!!! We check if it is still "Alive".
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user