mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Progress
This commit is contained in:
parent
961658ee9a
commit
314032ba3d
@ -62,6 +62,7 @@ DATABASE = {
|
|||||||
COUNTRY_ID = {},
|
COUNTRY_ID = {},
|
||||||
COUNTRY_NAME = {},
|
COUNTRY_NAME = {},
|
||||||
NavPoints = {},
|
NavPoints = {},
|
||||||
|
PLAYERSETTINGS = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
local _DATABASECoalition =
|
local _DATABASECoalition =
|
||||||
@ -107,27 +108,33 @@ function DATABASE:New()
|
|||||||
self:_RegisterGroupsAndUnits()
|
self:_RegisterGroupsAndUnits()
|
||||||
self:_RegisterClients()
|
self:_RegisterClients()
|
||||||
self:_RegisterStatics()
|
self:_RegisterStatics()
|
||||||
self:_RegisterPlayers()
|
--self:_RegisterPlayers()
|
||||||
self:_RegisterAirbases()
|
self:_RegisterAirbases()
|
||||||
|
|
||||||
self.UNITS_Position = 0
|
self.UNITS_Position = 0
|
||||||
|
|
||||||
--- @param #DATABASE self
|
--- @param #DATABASE self
|
||||||
local function CheckPlayers( self )
|
local function CheckPlayers( self )
|
||||||
|
|
||||||
|
local CoalitionsData = { AlivePlayersRed = coalition.getPlayers( coalition.side.RED ), AlivePlayersBlue = coalition.getPlayers( coalition.side.BLUE ) }
|
||||||
|
for CoalitionId, CoalitionData in pairs( CoalitionsData ) do
|
||||||
|
self:T( { "CoalitionData:", CoalitionData } )
|
||||||
|
for UnitId, UnitData in pairs( CoalitionData ) do
|
||||||
|
if UnitData and UnitData:isExist() then
|
||||||
|
|
||||||
|
local UnitName = UnitData:getName()
|
||||||
|
local PlayerName = UnitData:getPlayerName()
|
||||||
|
local PlayerUnit = UNIT:Find( UnitData )
|
||||||
|
self:T( { "UnitData:", UnitData, UnitName, PlayerName, PlayerUnit } )
|
||||||
|
|
||||||
local UNITS_Count = #self.UNITS_Index
|
if PlayerName and PlayerName ~= "" then
|
||||||
if UNITS_Count > 0 then
|
if self.PLAYERS[PlayerName] == nil or self.PLAYERS[PlayerName] ~= UnitName then
|
||||||
self.UNITS_Position = ( ( self.UNITS_Position <= UNITS_Count ) and self.UNITS_Position + 1 ) or 1
|
self:E( { "Add player for unit:", UnitName, PlayerName } )
|
||||||
local PlayerUnit = self.UNITS[self.UNITS_Index[self.UNITS_Position]]
|
self:AddPlayer( UnitName, PlayerName )
|
||||||
if PlayerUnit then
|
--_EVENTDISPATCHER:CreateEventPlayerEnterUnit( PlayerUnit )
|
||||||
local UnitName = PlayerUnit:GetName()
|
local Settings = SETTINGS:Set( PlayerName )
|
||||||
local PlayerName = PlayerUnit:GetPlayerName()
|
Settings:SetPlayerMenu( PlayerUnit )
|
||||||
--self:E( { UNITS_Count, self.UNITS_Position, UnitName, PlayerName } )
|
end
|
||||||
if PlayerName and PlayerName ~= "" then
|
|
||||||
if self.PLAYERS[PlayerName] == nil or self.PLAYERS[PlayerName] ~= UnitName then
|
|
||||||
self:E( { "Add player for unit:", UnitName, PlayerName } )
|
|
||||||
self:AddPlayer( UnitName, PlayerName )
|
|
||||||
--_EVENTDISPATCHER:CreateEventPlayerEnterUnit( PlayerUnit )
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -135,7 +142,7 @@ function DATABASE:New()
|
|||||||
end
|
end
|
||||||
|
|
||||||
self:E( "Scheduling" )
|
self:E( "Scheduling" )
|
||||||
--local PlayerCheckSchedule = SCHEDULER:New( nil, CheckPlayers, { self }, 2, 0.1 )
|
PlayerCheckSchedule = SCHEDULER:New( nil, CheckPlayers, { self }, 1, 1 )
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@ -667,7 +674,7 @@ function DATABASE:_EventOnBirth( Event )
|
|||||||
self:AddGroup( Event.IniDCSGroupName )
|
self:AddGroup( Event.IniDCSGroupName )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self:_EventOnPlayerEnterUnit( Event )
|
--self:_EventOnPlayerEnterUnit( Event )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -723,6 +730,8 @@ function DATABASE:_EventOnPlayerLeaveUnit( Event )
|
|||||||
if Event.IniObjectCategory == 1 then
|
if Event.IniObjectCategory == 1 then
|
||||||
local PlayerName = Event.IniUnit:GetPlayerName()
|
local PlayerName = Event.IniUnit:GetPlayerName()
|
||||||
if self.PLAYERS[PlayerName] then
|
if self.PLAYERS[PlayerName] then
|
||||||
|
local Settings = SETTINGS:Set( PlayerName )
|
||||||
|
Settings:RemovePlayerMenu( Event.IniUnit )
|
||||||
self:DeletePlayer( PlayerName )
|
self:DeletePlayer( PlayerName )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -891,6 +900,29 @@ function DATABASE:OnEventDeleteCargo( EventData )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Gets the player settings
|
||||||
|
-- @param #DATABASE self
|
||||||
|
-- @param #string PlayerName
|
||||||
|
-- @return Core.Settings#SETTINGS
|
||||||
|
function DATABASE:GetPlayerSettings( PlayerName )
|
||||||
|
self:E({PlayerName})
|
||||||
|
return self.PLAYERSETTINGS[PlayerName]
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Sets the player settings
|
||||||
|
-- @param #DATABASE self
|
||||||
|
-- @param #string PlayerName
|
||||||
|
-- @param Core.Settings#SETTINGS Settings
|
||||||
|
-- @return Core.Settings#SETTINGS
|
||||||
|
function DATABASE:SetPlayerSettings( PlayerName, Settings )
|
||||||
|
self:E({PlayerName, Settings})
|
||||||
|
self.PLAYERSETTINGS[PlayerName] = Settings
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- @param #DATABASE self
|
--- @param #DATABASE self
|
||||||
function DATABASE:_RegisterTemplates()
|
function DATABASE:_RegisterTemplates()
|
||||||
self:F2()
|
self:F2()
|
||||||
|
|||||||
@ -799,21 +799,28 @@ do -- COORDINATE
|
|||||||
|
|
||||||
self:E( { Controllable = Controllable } )
|
self:E( { Controllable = Controllable } )
|
||||||
|
|
||||||
local Settings = Settings or _SETTINGS
|
local Settings = Settings or ( Controllable and _DATABASE:GetPlayerSettings( Controllable:GetPlayerName() ) ) or _SETTINGS
|
||||||
|
|
||||||
local IsAir = Controllable and Controllable:IsAirPlane() or false
|
local IsAir = Controllable and Controllable:IsAirPlane() or false
|
||||||
|
|
||||||
if IsAir then
|
if IsAir then
|
||||||
local Coordinate = Controllable:GetCoordinate()
|
|
||||||
Coordinate:SetModeA2A()
|
|
||||||
if Settings:IsA2A_BRA() then
|
if Settings:IsA2A_BRA() then
|
||||||
return self:ToStringBRAA( Coordinate, Settings )
|
local Coordinate = Controllable:GetCoordinate()
|
||||||
|
Coordinate:SetModeA2A()
|
||||||
|
return self:ToStringBRAA( Coordinate, Settings )
|
||||||
end
|
end
|
||||||
|
|
||||||
if Settings:IsA2A_BULLS() then
|
if Settings:IsA2A_BULLS() then
|
||||||
|
local Coordinate = Controllable:GetCoordinate()
|
||||||
|
Coordinate:SetModeA2A()
|
||||||
return self:ToStringBULLS( Coordinate, Settings )
|
return self:ToStringBULLS( Coordinate, Settings )
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
if Settings:IsA2G_BRA() then
|
||||||
|
local Coordinate = Controllable:GetCoordinate()
|
||||||
|
Coordinate:SetModeA2A()
|
||||||
|
return Controllable and self:ToStringBRAA( Coordinate, Settings ) or self:ToStringMGRS( Settings )
|
||||||
|
end
|
||||||
if Settings:IsA2G_LL() then
|
if Settings:IsA2G_LL() then
|
||||||
return self:ToStringLL( Settings )
|
return self:ToStringLL( Settings )
|
||||||
end
|
end
|
||||||
|
|||||||
@ -42,12 +42,6 @@
|
|||||||
-- @field #SETTINGS
|
-- @field #SETTINGS
|
||||||
SETTINGS = {
|
SETTINGS = {
|
||||||
ClassName = "SETTINGS",
|
ClassName = "SETTINGS",
|
||||||
LL_Accuracy = 2,
|
|
||||||
LL_DMS = true,
|
|
||||||
MGRS_Accuracy = 5,
|
|
||||||
A2GSystem = "MGRS",
|
|
||||||
A2ASystem = "BRA",
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -57,17 +51,27 @@ do -- SETTINGS
|
|||||||
--- SETTINGS constructor.
|
--- SETTINGS constructor.
|
||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #SETTINGS
|
-- @return #SETTINGS
|
||||||
function SETTINGS:New()
|
function SETTINGS:Set( PlayerName )
|
||||||
|
|
||||||
local self = BASE:Inherit( self, BASE:New() ) -- #SETTINGS
|
if PlayerName == nil then
|
||||||
|
local self = BASE:Inherit( self, BASE:New() ) -- #SETTINGS
|
||||||
self:SetMetric() -- Defaults
|
self:SetMetric() -- Defaults
|
||||||
self:SetA2G_MGRS() -- Defaults
|
self:SetA2G_MGRS() -- Defaults
|
||||||
self:SetA2A_BRA() -- Defaults
|
self:SetA2A_BRA() -- Defaults
|
||||||
|
self:SetLL_Accuracy( 2 ) -- Defaults
|
||||||
return self
|
self:SetLL_DMS( true ) -- Defaults
|
||||||
|
self:SetMGRS_Accuracy( 5 ) -- Defaults
|
||||||
|
return self
|
||||||
|
else
|
||||||
|
local Settings = _DATABASE:GetPlayerSettings( PlayerName )
|
||||||
|
if not Settings then
|
||||||
|
Settings = BASE:Inherit( self, BASE:New() ) -- #SETTINGS
|
||||||
|
_DATABASE:SetPlayerSettings( PlayerName, Settings )
|
||||||
|
end
|
||||||
|
return Settings
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Sets the SETTINGS metric.
|
--- Sets the SETTINGS metric.
|
||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
@ -95,6 +99,54 @@ do -- SETTINGS
|
|||||||
return self.Metric == false
|
return self.Metric == false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Sets the SETTINGS LL accuracy.
|
||||||
|
-- @param #SETTINGS self
|
||||||
|
-- @param #number LL_Accuracy
|
||||||
|
-- @return #SETTINGS
|
||||||
|
function SETTINGS:SetLL_Accuracy( LL_Accuracy )
|
||||||
|
self.LL_Accuracy = LL_Accuracy
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Gets the SETTINGS LL accuracy.
|
||||||
|
-- @param #SETTINGS self
|
||||||
|
-- @return #number
|
||||||
|
function SETTINGS:GetLL_Accuracy()
|
||||||
|
return self.LL_Accuracy or _SETTINGS:GetLL_Accuracy()
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Sets the SETTINGS LL DMS.
|
||||||
|
-- @param #SETTINGS self
|
||||||
|
-- @param #number LL_DMS
|
||||||
|
-- @return #SETTINGS
|
||||||
|
function SETTINGS:SetLL_DMS( LL_DMS )
|
||||||
|
self.LL_DMS = LL_DMS
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Gets the SETTINGS LL DMS.
|
||||||
|
-- @param #SETTINGS self
|
||||||
|
-- @return #number
|
||||||
|
function SETTINGS:GetLL_DMS()
|
||||||
|
return self.LL_DMS or _SETTINGS:GetLL_DMS()
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Sets the SETTINGS MGRS accuracy.
|
||||||
|
-- @param #SETTINGS self
|
||||||
|
-- @param #number MGRS_Accuracy
|
||||||
|
-- @return #SETTINGS
|
||||||
|
function SETTINGS:SetMGRS_Accuracy( MGRS_Accuracy )
|
||||||
|
self.MGRS_Accuracy = MGRS_Accuracy
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Gets the SETTINGS MGRS accuracy.
|
||||||
|
-- @param #SETTINGS self
|
||||||
|
-- @return #number
|
||||||
|
function SETTINGS:GetMGRS_Accuracy()
|
||||||
|
return self.MGRS_Accuracy or _SETTINGS:GetMGRS_Accuracy()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Sets A2G LL
|
--- Sets A2G LL
|
||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #SETTINGS
|
-- @return #SETTINGS
|
||||||
@ -106,7 +158,7 @@ do -- SETTINGS
|
|||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #boolean true if LL
|
-- @return #boolean true if LL
|
||||||
function SETTINGS:IsA2G_LL()
|
function SETTINGS:IsA2G_LL()
|
||||||
return self.A2GSystem == "LL"
|
return ( self.A2GSystem and self.A2GSystem == "LL" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_LL() )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Sets A2G MGRS
|
--- Sets A2G MGRS
|
||||||
@ -120,7 +172,7 @@ do -- SETTINGS
|
|||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #boolean true if MGRS
|
-- @return #boolean true if MGRS
|
||||||
function SETTINGS:IsA2G_MGRS()
|
function SETTINGS:IsA2G_MGRS()
|
||||||
return self.A2GSystem == "MGRS"
|
return ( self.A2GSystem and self.A2GSystem == "MGRS" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_MGRS() )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Sets A2G BRA
|
--- Sets A2G BRA
|
||||||
@ -134,7 +186,8 @@ do -- SETTINGS
|
|||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #boolean true if BRA
|
-- @return #boolean true if BRA
|
||||||
function SETTINGS:IsA2G_BRA()
|
function SETTINGS:IsA2G_BRA()
|
||||||
return self.A2GSystem == "BRA"
|
self:E( { BRA = ( self.A2GSystem and self.A2GSystem == "BRA" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_BRA() ) } )
|
||||||
|
return ( self.A2GSystem and self.A2GSystem == "BRA" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_BRA() )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Sets A2A BRA
|
--- Sets A2A BRA
|
||||||
@ -148,7 +201,8 @@ do -- SETTINGS
|
|||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #boolean true if BRA
|
-- @return #boolean true if BRA
|
||||||
function SETTINGS:IsA2A_BRA()
|
function SETTINGS:IsA2A_BRA()
|
||||||
return self.A2ASystem == "BRA"
|
self:E( { BRA = ( self.A2ASystem and self.A2ASystem == "BRA" ) or ( not self.A2ASystem and _SETTINGS:IsA2A_BRA() ) } )
|
||||||
|
return ( self.A2ASystem and self.A2ASystem == "BRA" ) or ( not self.A2ASystem and _SETTINGS:IsA2A_BRA() )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Sets A2A BULLS
|
--- Sets A2A BULLS
|
||||||
@ -162,21 +216,24 @@ do -- SETTINGS
|
|||||||
-- @param #SETTINGS self
|
-- @param #SETTINGS self
|
||||||
-- @return #boolean true if BULLS
|
-- @return #boolean true if BULLS
|
||||||
function SETTINGS:IsA2A_BULLS()
|
function SETTINGS:IsA2A_BULLS()
|
||||||
return self.A2ASystem == "BULLS"
|
return ( self.A2ASystem and self.A2ASystem == "BULLS" ) or ( not self.A2ASystem and _SETTINGS:IsA2A_BULLS() )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #SETTINGS self
|
--- @param #SETTINGS self
|
||||||
-- @return #SETTINGS
|
-- @return #SETTINGS
|
||||||
function SETTINGS:SettingsMenu( RootMenu )
|
function SETTINGS:SystemSettingsMenu( RootMenu, MenuText )
|
||||||
|
|
||||||
if self.SystemMenu then
|
MenuText = MenuText or "System Settings"
|
||||||
self.SystemMenu:Remove()
|
|
||||||
self.SystemMenu = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
self.SystemMenu = MENU_MISSION:New( "Settings" )
|
self.SettingsMenu = MENU_MISSION:New( MenuText, RootMenu )
|
||||||
|
|
||||||
|
if self.DefaultMenu then
|
||||||
|
self.DefaultMenu:Remove()
|
||||||
|
self.DefaultMenu = nil
|
||||||
|
end
|
||||||
|
self.DefaultMenu = MENU_MISSION:New( "Default Settings", self.SettingsMenu )
|
||||||
|
|
||||||
local A2GCoordinateMenu = MENU_MISSION:New( "A2G Coordinate System", self.SystemMenu )
|
local A2GCoordinateMenu = MENU_MISSION:New( "A2G Coordinate System", self.DefaultMenu )
|
||||||
|
|
||||||
if self:IsA2G_LL() then
|
if self:IsA2G_LL() then
|
||||||
MENU_MISSION_COMMAND:New( "Activate BRA", A2GCoordinateMenu, self.A2GMenuSystem, self, "BRA" )
|
MENU_MISSION_COMMAND:New( "Activate BRA", A2GCoordinateMenu, self.A2GMenuSystem, self, "BRA" )
|
||||||
@ -203,7 +260,7 @@ do -- SETTINGS
|
|||||||
MENU_MISSION_COMMAND:New( "Activate LL", A2GCoordinateMenu, self.A2GMenuSystem, self, "LL" )
|
MENU_MISSION_COMMAND:New( "Activate LL", A2GCoordinateMenu, self.A2GMenuSystem, self, "LL" )
|
||||||
end
|
end
|
||||||
|
|
||||||
local A2ACoordinateMenu = MENU_MISSION:New( "A2A Coordinate System", self.SystemMenu )
|
local A2ACoordinateMenu = MENU_MISSION:New( "A2A Coordinate System", self.DefaultMenu )
|
||||||
|
|
||||||
if self:IsA2A_BULLS() then
|
if self:IsA2A_BULLS() then
|
||||||
MENU_MISSION_COMMAND:New( "Activate BRA", A2ACoordinateMenu, self.A2AMenuSystem, self, "BRA" )
|
MENU_MISSION_COMMAND:New( "Activate BRA", A2ACoordinateMenu, self.A2AMenuSystem, self, "BRA" )
|
||||||
@ -216,33 +273,151 @@ do -- SETTINGS
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
-- @param RootMenu
|
||||||
|
-- @param Wrapper.Client#CLIENT PlayerUnit
|
||||||
|
-- @param #string MenuText
|
||||||
|
-- @return #SETTINGS
|
||||||
|
function SETTINGS:SetPlayerMenu( PlayerUnit )
|
||||||
|
|
||||||
|
local MenuText = "Player Settings"
|
||||||
|
self.MenuText = MenuText
|
||||||
|
|
||||||
|
local SettingsMenu = _SETTINGS.SettingsMenu
|
||||||
|
|
||||||
|
local PlayerGroup = PlayerUnit:GetGroup()
|
||||||
|
local PlayerName = PlayerUnit:GetPlayerName()
|
||||||
|
local PlayerNames = PlayerGroup:GetPlayerNames()
|
||||||
|
|
||||||
|
local GroupMenu = MENU_GROUP:New( PlayerGroup, MenuText, SettingsMenu )
|
||||||
|
local PlayerMenu = MENU_GROUP:New( PlayerGroup, 'Settings "' .. PlayerName .. '"', GroupMenu )
|
||||||
|
|
||||||
|
self.PlayerMenu = PlayerMenu
|
||||||
|
|
||||||
|
local A2GCoordinateMenu = MENU_GROUP:New( PlayerGroup, "A2G Coordinate System", PlayerMenu )
|
||||||
|
|
||||||
|
if self:IsA2G_LL() then
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BRA", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BRA" )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate MGRS", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "MGRS" )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "LL Accuracy 1", A2GCoordinateMenu, self.GroupLL_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 1 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "LL Accuracy 2", A2GCoordinateMenu, self.GroupLL_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 2 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "LL Accuracy 3", A2GCoordinateMenu, self.GroupLL_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 3 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "LL Decimal On", A2GCoordinateMenu, self.GroupLL_DMSMenu, self, PlayerUnit, PlayerGroup, PlayerName, true )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "LL Decimal Off", A2GCoordinateMenu, self.GroupLL_DMSMenu, self, PlayerUnit, PlayerGroup, PlayerName, false )
|
||||||
|
end
|
||||||
|
|
||||||
|
if self:IsA2G_MGRS() then
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BRA", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BRA" )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate LL", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "LL" )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 1", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 1 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 2", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 2 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 3", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 3 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 4", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 4 )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 5", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 5 )
|
||||||
|
end
|
||||||
|
|
||||||
|
if self:IsA2G_BRA() then
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate MGRS", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "MGRS" )
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate LL", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "LL" )
|
||||||
|
end
|
||||||
|
|
||||||
|
local A2ACoordinateMenu = MENU_GROUP:New( PlayerGroup, "A2A Coordinate System", PlayerMenu )
|
||||||
|
|
||||||
|
if self:IsA2A_BULLS() then
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BRA", A2ACoordinateMenu, self.GroupA2AMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BRA" )
|
||||||
|
end
|
||||||
|
|
||||||
|
if self:IsA2A_BRA() then
|
||||||
|
MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BULLS", A2ACoordinateMenu, self.GroupA2AMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BULLS" )
|
||||||
|
end
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
-- @param RootMenu
|
||||||
|
-- @param Wrapper.Client#CLIENT PlayerUnit
|
||||||
|
-- @return #SETTINGS
|
||||||
|
function SETTINGS:RemovePlayerMenu( PlayerUnit )
|
||||||
|
|
||||||
|
if self.PlayerMenu then
|
||||||
|
self.PlayerMenu:Remove()
|
||||||
|
end
|
||||||
|
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- @param #SETTINGS self
|
--- @param #SETTINGS self
|
||||||
function SETTINGS:A2GMenuSystem( A2GSystem )
|
function SETTINGS:A2GMenuSystem( A2GSystem )
|
||||||
self.A2GSystem = A2GSystem
|
self.A2GSystem = A2GSystem
|
||||||
self:SettingsMenu()
|
self:SystemSettingsMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #SETTINGS self
|
--- @param #SETTINGS self
|
||||||
function SETTINGS:A2AMenuSystem( A2ASystem )
|
function SETTINGS:A2AMenuSystem( A2ASystem )
|
||||||
self.A2ASystem = A2ASystem
|
self.A2ASystem = A2ASystem
|
||||||
self:SettingsMenu()
|
self:SystemSettingsMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #SETTINGS self
|
--- @param #SETTINGS self
|
||||||
function SETTINGS:MenuLL_Accuracy( LL_Accuracy )
|
function SETTINGS:MenuLL_Accuracy( LL_Accuracy )
|
||||||
self.LL_Accuracy = LL_Accuracy
|
self.LL_Accuracy = LL_Accuracy
|
||||||
self:SettingsMenu()
|
self:SystemSettingsMenu()
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param #SETTINGS self
|
--- @param #SETTINGS self
|
||||||
function SETTINGS:MenuLL_DMS( LL_DMS )
|
function SETTINGS:MenuLL_DMS( LL_DMS )
|
||||||
self.LL_DMS = LL_DMS
|
self.LL_DMS = LL_DMS
|
||||||
self:SettingsMenu()
|
self:SystemSettingsMenu()
|
||||||
end
|
end
|
||||||
--- @param #SETTINGS self
|
--- @param #SETTINGS self
|
||||||
function SETTINGS:MenuMGRS_Accuracy( MGRS_Accuracy )
|
function SETTINGS:MenuMGRS_Accuracy( MGRS_Accuracy )
|
||||||
self.MGRS_Accuracy = MGRS_Accuracy
|
self.MGRS_Accuracy = MGRS_Accuracy
|
||||||
self:SettingsMenu()
|
self:SystemSettingsMenu()
|
||||||
|
end
|
||||||
|
|
||||||
|
do
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
function SETTINGS:GroupA2GMenu( PlayerUnit, PlayerGroup, PlayerName, A2GSystem )
|
||||||
|
BASE:E( {self, PlayerUnit:GetName(), A2GSystem} )
|
||||||
|
self.A2GSystem = A2GSystem
|
||||||
|
MESSAGE:New( string.format("Settings: A2G format set to %s for player %s.", A2GSystem, PlayerName ), 5 ):ToGroup( PlayerGroup )
|
||||||
|
self:RemovePlayerMenu(PlayerUnit)
|
||||||
|
self:SetPlayerMenu(PlayerUnit)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
function SETTINGS:GroupA2AMenu( PlayerUnit, PlayerGroup, PlayerName, A2ASystem )
|
||||||
|
self.A2ASystem = A2ASystem
|
||||||
|
MESSAGE:New( string.format("Settings: A2A format set to %s for player %s.", A2ASystem, PlayerName ), 5 ):ToGroup( PlayerGroup )
|
||||||
|
self:RemovePlayerMenu(PlayerUnit)
|
||||||
|
self:SetPlayerMenu(PlayerUnit)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
function SETTINGS:GroupLL_AccuracyMenu( PlayerUnit, PlayerGroup, PlayerName, LL_Accuracy )
|
||||||
|
self.LL_Accuracy = LL_Accuracy
|
||||||
|
MESSAGE:New( string.format("Settings: A2G LL format accuracy set to %d for player %s.", LL_Accuracy, PlayerName ), 5 ):ToGroup( PlayerGroup )
|
||||||
|
self:RemovePlayerMenu(PlayerUnit)
|
||||||
|
self:SetPlayerMenu(PlayerUnit)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
function SETTINGS:GroupLL_DMSMenu( PlayerUnit, PlayerGroup, PlayerName, LL_DMS )
|
||||||
|
self.LL_DMS = LL_DMS
|
||||||
|
MESSAGE:New( string.format("Settings: A2G LL format mode set to %s for player %s.", LL_DMS and "DMS" or "HMS", PlayerName ), 5 ):ToGroup( PlayerGroup )
|
||||||
|
self:RemovePlayerMenu(PlayerUnit)
|
||||||
|
self:SetPlayerMenu(PlayerUnit)
|
||||||
|
end
|
||||||
|
--- @param #SETTINGS self
|
||||||
|
function SETTINGS:GroupMGRS_AccuracyMenu( PlayerUnit, PlayerGroup, PlayerName, MGRS_Accuracy )
|
||||||
|
self.MGRS_Accuracy = MGRS_Accuracy
|
||||||
|
MESSAGE:New( string.format("Settings: A2G MGRS format accuracy set to %d for player %s.", MGRS_Accuracy, PlayerName ), 5 ):ToGroup( PlayerGroup )
|
||||||
|
self:RemovePlayerMenu(PlayerUnit)
|
||||||
|
self:SetPlayerMenu(PlayerUnit)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -125,6 +125,32 @@
|
|||||||
--
|
--
|
||||||
-- The above documents that 2 Scoring objects are created, ScoringFirstMission and ScoringSecondMission.
|
-- The above documents that 2 Scoring objects are created, ScoringFirstMission and ScoringSecondMission.
|
||||||
--
|
--
|
||||||
|
-- ### **IMPORTANT!!!*
|
||||||
|
-- In order to allow DCS world to write CSV files, you need to adapt a configuration file in your DCS world installation **on the server**.
|
||||||
|
-- For this, browse to the **missionscripting.lua** file in your DCS world installation folder.
|
||||||
|
-- For me, this installation folder is in _D:\\Program Files\\Eagle Dynamics\\DCS World\Scripts_.
|
||||||
|
--
|
||||||
|
-- Edit a few code lines in the MissionScripting.lua file. Comment out the lines **os**, **io** and **lfs**:
|
||||||
|
--
|
||||||
|
-- do
|
||||||
|
-- --sanitizeModule('os')
|
||||||
|
-- --sanitizeModule('io')
|
||||||
|
-- --sanitizeModule('lfs')
|
||||||
|
-- require = nil
|
||||||
|
-- loadlib = nil
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- When these lines are not sanitized, functions become available to check the time, and to write files to your system at the above specified location.
|
||||||
|
-- Note that the MissionScripting.lua file provides a warning. So please beware of this warning as outlined by Eagle Dynamics!
|
||||||
|
--
|
||||||
|
-- --Sanitize Mission Scripting environment
|
||||||
|
-- --This makes unavailable some unsecure functions.
|
||||||
|
-- --Mission downloaded from server to client may contain potentialy harmful lua code that may use these functions.
|
||||||
|
-- --You can remove the code below and make availble these functions at your own risk.
|
||||||
|
--
|
||||||
|
-- The MOOSE designer cannot take any responsibility of any damage inflicted as a result of the de-sanitization.
|
||||||
|
-- That being said, I hope that the SCORING class provides you with a great add-on to score your squad mates achievements.
|
||||||
|
--
|
||||||
-- ## 1.9) Configure messages.
|
-- ## 1.9) Configure messages.
|
||||||
--
|
--
|
||||||
-- When players hit or destroy targets, messages are sent.
|
-- When players hit or destroy targets, messages are sent.
|
||||||
|
|||||||
@ -9,5 +9,5 @@ _SCHEDULEDISPATCHER = SCHEDULEDISPATCHER:New() -- Core.Timer#SCHEDULEDISPATCHER
|
|||||||
--- Declare the main database object, which is used internally by the MOOSE classes.
|
--- Declare the main database object, which is used internally by the MOOSE classes.
|
||||||
_DATABASE = DATABASE:New() -- Database#DATABASE
|
_DATABASE = DATABASE:New() -- Database#DATABASE
|
||||||
|
|
||||||
_SETTINGS = SETTINGS:New()
|
_SETTINGS = SETTINGS:Set()
|
||||||
_SETTINGS:SettingsMenu(nil)
|
_SETTINGS:SystemSettingsMenu( nil )
|
||||||
|
|||||||
@ -122,6 +122,8 @@ function COMMANDCENTER:New( CommandCenterPositionable, CommandCenterName )
|
|||||||
local PlayerGroup = EventData.IniGroup -- The GROUP object should be filled!
|
local PlayerGroup = EventData.IniGroup -- The GROUP object should be filled!
|
||||||
Mission:JoinUnit( PlayerUnit, PlayerGroup )
|
Mission:JoinUnit( PlayerUnit, PlayerGroup )
|
||||||
end
|
end
|
||||||
|
self:SetMenu()
|
||||||
|
_DATABASE:PlayerSettingsMenu( PlayerUnit )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -265,8 +265,6 @@ function MISSION:JoinUnit( PlayerUnit, PlayerGroup )
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
self:GetCommandCenter():SetMenu()
|
|
||||||
|
|
||||||
return PlayerUnitAdded
|
return PlayerUnitAdded
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user