mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Try to get the DCS bug in 1.5.3 resolved with :isExist for a Client Group
Client groups connected remotely to a server, are not generating any birth events on the server. The server therefore thinks that the Group does not exist ... This bug is present since 1.5. Currently building a logic to go "around" that problem using other functions (the coalition:getPlayerUnits() is key for resolvement)
This commit is contained in:
parent
4a52422fe1
commit
c81e7c2488
@ -65,16 +65,45 @@ trace.f(self.ClassName)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- ClientGroup returns the Group of a Client.
|
--- ClientGroup returns the Group of a Client.
|
||||||
|
-- This function is modified to deal with a couple of bugs in DCS 1.5.3
|
||||||
-- @treturn Group
|
-- @treturn Group
|
||||||
function CLIENT:ClientGroup()
|
function CLIENT:ClientGroup()
|
||||||
--trace.f(self.ClassName)
|
--trace.f(self.ClassName)
|
||||||
local ClientData = Group.getByName( self.ClientName )
|
-- local ClientData = Group.getByName( self.ClientName )
|
||||||
if ClientData and ClientData:isExist() then
|
-- if ClientData and ClientData:isExist() then
|
||||||
trace.i( self.ClassName, self.ClientName .. " : group found!" )
|
-- trace.i( self.ClassName, self.ClientName .. " : group found!" )
|
||||||
return ClientData
|
-- return ClientData
|
||||||
else
|
-- else
|
||||||
return nil
|
-- return nil
|
||||||
|
-- end
|
||||||
|
|
||||||
|
local ClientGroup = Group.getByName( self.ClientName )
|
||||||
|
|
||||||
|
if ClientGroup then
|
||||||
|
|
||||||
|
local ClientUnits = ClientGroup:getUnits()
|
||||||
|
|
||||||
|
if ClientGroup:isExist() then
|
||||||
|
trace.i( self.ClassName, self.ClientName .. " : group found!" )
|
||||||
|
return ClientGroup
|
||||||
|
else
|
||||||
|
-- Now we need to resolve the bugs in DCS 1.5 ...
|
||||||
|
local CoalitionsData = { AlivePlayersRed = coalition.getPlayers( coalition.side.RED ), AlivePlayersBlue = coalition.getPlayers( coalition.side.BLUE ) }
|
||||||
|
for CoalitionId, CoalitionData in pairs( CoalitionsData ) do
|
||||||
|
trace.i( self.ClassName, CoalitionData )
|
||||||
|
for UnitId, UnitData in pairs( CoalitionData ) do
|
||||||
|
trace.i( self.ClassName, UnitData )
|
||||||
|
if UnitData and UnitData:isExist() then
|
||||||
|
if UnitData:getID() == ClientUnits[1]:getID() then
|
||||||
|
trace.i( self.ClassName, self.ClientName .. " : group found in bug 1.5 resolvement logic!" )
|
||||||
|
return self.ClientGroup
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Returns the Unit of the @{CLIENT}.
|
--- Returns the Unit of the @{CLIENT}.
|
||||||
|
|||||||
@ -13,6 +13,7 @@ DATABASE = {
|
|||||||
NavPoints = {},
|
NavPoints = {},
|
||||||
Statics = {},
|
Statics = {},
|
||||||
Players = {},
|
Players = {},
|
||||||
|
ActivePlayers = {},
|
||||||
ClientsByName = {},
|
ClientsByName = {},
|
||||||
ClientsByID = {},
|
ClientsByID = {},
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user