mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Progress
This commit is contained in:
parent
4d40f28cf8
commit
01531f0c73
@ -242,9 +242,7 @@ end
|
|||||||
-- @return DCSTypes#Group.ID
|
-- @return DCSTypes#Group.ID
|
||||||
function CLIENT:GetClientGroupID()
|
function CLIENT:GetClientGroupID()
|
||||||
|
|
||||||
if not self.ClientGroupID then
|
local ClientGroup = self:GetDCSGroup()
|
||||||
local ClientGroup = self:GetDCSGroup()
|
|
||||||
end
|
|
||||||
|
|
||||||
self:E( self.ClientGroupID ) -- Determined in GetDCSGroup()
|
self:E( self.ClientGroupID ) -- Determined in GetDCSGroup()
|
||||||
return self.ClientGroupID
|
return self.ClientGroupID
|
||||||
@ -256,9 +254,7 @@ end
|
|||||||
-- @return #string
|
-- @return #string
|
||||||
function CLIENT:GetClientGroupName()
|
function CLIENT:GetClientGroupName()
|
||||||
|
|
||||||
if not self.ClientGroupName then
|
local ClientGroup = self:GetDCSGroup()
|
||||||
local ClientGroup = self:GetDCSGroup()
|
|
||||||
end
|
|
||||||
|
|
||||||
self:T( self.ClientGroupName ) -- Determined in GetDCSGroup()
|
self:T( self.ClientGroupName ) -- Determined in GetDCSGroup()
|
||||||
return self.ClientGroupName
|
return self.ClientGroupName
|
||||||
|
|||||||
@ -24,6 +24,9 @@ function MISSILETRAINER:New( Distance )
|
|||||||
self.Schedulers = {}
|
self.Schedulers = {}
|
||||||
self.SchedulerID = 0
|
self.SchedulerID = 0
|
||||||
|
|
||||||
|
self.MessageInterval = 2
|
||||||
|
self.MessageLastTime = timer.getTime()
|
||||||
|
|
||||||
self.Distance = Distance
|
self.Distance = Distance
|
||||||
|
|
||||||
_EVENTDISPATCHER:OnShot( self._EventShot, self )
|
_EVENTDISPATCHER:OnShot( self._EventShot, self )
|
||||||
@ -32,28 +35,47 @@ function MISSILETRAINER:New( Distance )
|
|||||||
self.DBClients = self.DB.Clients
|
self.DBClients = self.DB.Clients
|
||||||
self.DBUnits = self.DB.Units
|
self.DBUnits = self.DB.Units
|
||||||
|
|
||||||
self.DB:ForEachClient(
|
for ClientID, Client in pairs( self.DBClients ) do
|
||||||
--- @param Client#CLIENT Client
|
Client:Message( "Welcome to the Missile Trainer", 10, "ID", "TEST" )
|
||||||
function( Client )
|
Client.MainMenu = MENU_CLIENT:New( Client, "Missile Trainer", nil )
|
||||||
Client:Message( "Welcome to the Missile Trainer", 10, "ID", "TEST" )
|
Client.MenuMessages = MENU_CLIENT:New( Client, "Messages", Client.MainMenu )
|
||||||
--Client.MainMenu = MENU_CLIENT:New( Client, "Missile Trainer", nil )
|
Client.MenuOn = MENU_CLIENT_COMMAND:New( Client, "Messages On", Client.MenuMessages, self._MenuMessages, { MenuSelf = self, MessagesOnOff = true } )
|
||||||
--Client.MenuOnOff = MENU_CLIENT:New( Client, "On/Off", Client.MainMenu )
|
Client.MenuOff = MENU_CLIENT_COMMAND:New( Client, "Messages Off", Client.MenuMessages, self._MenuMessages, { MenuSelf = self, MessagesOnOff = false } )
|
||||||
--Client.MenuOn = MENU_CLIENT_COMMAND:New( Client, "Messages On", Client.MenuOnOff, MISSILETRAINER._MenuMessages, { MenuSelf = self, MessagesOnOff = true } )
|
Client.MenuToAll = MENU_CLIENT_COMMAND:New( Client, "To All", Client.MenuMessages, self._MenuMessages, { MenuSelf = self, MessagesToAll = true } )
|
||||||
--Client.MenuOff = MENU_CLIENT_COMMAND:New( Client, "Messages Off", Client.MenuOnOff, MISSILETRAINER._MenuMessages, { MenuSelf = self, MessagesOnOff = false } )
|
Client.MenuToTarget = MENU_CLIENT_COMMAND:New( Client, "To Target", Client.MenuMessages, self._MenuMessages, { MenuSelf = self, MessagesToAll = false } )
|
||||||
end
|
Client.MenuTrackOn = MENU_CLIENT_COMMAND:New( Client, "Tracking On", Client.MenuMessages, self._MenuMessages, { MenuSelf = self, MessagesTrack = true } )
|
||||||
)
|
Client.MenuTrackOff = MENU_CLIENT_COMMAND:New( Client, "Tracking Off", Client.MenuMessages, self._MenuMessages, { MenuSelf = self, MessagesTrack = false } )
|
||||||
|
end
|
||||||
|
-- self.DB:ForEachClient(
|
||||||
|
-- --- @param Client#CLIENT Client
|
||||||
|
-- function( Client )
|
||||||
|
--
|
||||||
|
-- end
|
||||||
|
-- )
|
||||||
|
|
||||||
self.DisplayMessages = true
|
self.MessagesOnOff = true
|
||||||
|
self.MessagesToAll = false
|
||||||
|
self.MessagesTrack = true
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
function MISSILETRAINER._MenuMessages( MenuParameters )
|
function MISSILETRAINER:_MenuMessages( MenuParameters )
|
||||||
|
|
||||||
local self = MenuParameters.MenuSelf
|
local self = MenuParameters.MenuSelf
|
||||||
local MessagesOnOff = MenuParameters.MessagesOnOff
|
|
||||||
|
|
||||||
self.DisplayMessages = MessagesOnOff
|
if MenuParameters.MessagesOnOff then
|
||||||
|
self.MessagesOnOff = MenuParameters.MessagesOnOff
|
||||||
|
end
|
||||||
|
|
||||||
|
if MenuParameters.MessagesToAll then
|
||||||
|
self.MessagesToAll = MenuParameters.MessagesToAll
|
||||||
|
end
|
||||||
|
|
||||||
|
if MenuParameters.MessagesTrack then
|
||||||
|
self.MessagesTrack = MenuParameters.MessagesTrack
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Detects if an SA site was shot with an anti radiation missile. In this case, take evasive actions based on the skill level set within the ME.
|
--- Detects if an SA site was shot with an anti radiation missile. In this case, take evasive actions based on the skill level set within the ME.
|
||||||
@ -86,9 +108,9 @@ end
|
|||||||
|
|
||||||
---
|
---
|
||||||
-- @param #MISSILETRAINER self
|
-- @param #MISSILETRAINER self
|
||||||
-- @param DCSUnit#Unit TrainerSourceDCSUnit
|
-- @param Unit#UNIT TrainerSourceDCSUnit
|
||||||
-- @param DCSWeapon#Weapon TrainerWeapon
|
-- @param DCSWeapon#Weapon TrainerWeapon
|
||||||
-- @param DCSUnit#Unit TrainerTargetDCSUnit
|
-- @param Unit#UNIT TrainerTargetDCSUnit
|
||||||
-- @param Client#CLIENT Client
|
-- @param Client#CLIENT Client
|
||||||
function MISSILETRAINER:_FollowMissile( TrainerSourceUnit, TrainerWeapon, TrainerTargetUnit, Client )
|
function MISSILETRAINER:_FollowMissile( TrainerSourceUnit, TrainerWeapon, TrainerTargetUnit, Client )
|
||||||
self:F( { TrainerSourceUnit, TrainerWeapon, TrainerTargetUnit, Client } )
|
self:F( { TrainerSourceUnit, TrainerWeapon, TrainerTargetUnit, Client } )
|
||||||
@ -101,16 +123,39 @@ function MISSILETRAINER:_FollowMissile( TrainerSourceUnit, TrainerWeapon, Traine
|
|||||||
( PositionMissile.z - PositionTarget.z )^2
|
( PositionMissile.z - PositionTarget.z )^2
|
||||||
) ^ 0.5
|
) ^ 0.5
|
||||||
|
|
||||||
if self.DisplayMessages then
|
|
||||||
|
if self.MessagesOnOff and self.MessagesTrack and self.MessageLastTime + 2 <= timer.getTime() then
|
||||||
self:T( Distance )
|
self:T( Distance )
|
||||||
MESSAGE:New( "Distance Missile = " .. Distance, "TEST", 0.2, "ID" ):ToAll()
|
self.MessageLastTime = timer.getTime()
|
||||||
|
local Message = MESSAGE:New(
|
||||||
|
string.format( "%s launched by %s: %4.2f km",
|
||||||
|
TrainerWeapon:getTypeName(),
|
||||||
|
TrainerSourceUnit:GetName(),
|
||||||
|
Distance
|
||||||
|
),"Tracking", 2, "ID" )
|
||||||
|
|
||||||
|
if self.MessagesToAll then
|
||||||
|
Message:ToAll()
|
||||||
|
else
|
||||||
|
Message:ToClient( Client )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if Distance <= self.Distance then
|
if Distance <= self.Distance then
|
||||||
TrainerWeapon:destroy()
|
TrainerWeapon:destroy()
|
||||||
if self.DisplayMessages then
|
if self.MessagesOnOff then
|
||||||
self:T( "Destroyed" )
|
self:T( "Destroyed" )
|
||||||
MESSAGE:New( "Missile Destroyed", "TEST", 5, "ID" ):ToAll()
|
local Message = MESSAGE:New(
|
||||||
|
string.format( "%s launched by %s destroyed",
|
||||||
|
TrainerWeapon:getTypeName(),
|
||||||
|
TrainerSourceUnit:GetName(),
|
||||||
|
Distance
|
||||||
|
),"Tracking", 2, "ID" )
|
||||||
|
if self.MessagesToAll then
|
||||||
|
Message:ToAll()
|
||||||
|
else
|
||||||
|
Message:ToClient( Client )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user