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
6dd4bc638e
commit
d1b3de1940
@ -9,12 +9,12 @@ copy /b Moose_Embedded.lua + ..\Moose\Menu.lua Moose_Embedded.l
|
|||||||
copy /b Moose_Embedded.lua + ..\Moose\Group.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Group.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Unit.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Unit.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Zone.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Zone.lua Moose_Embedded.lua
|
||||||
|
copy /b Moose_Embedded.lua + ..\Moose\Client.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Database.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Database.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Moose.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Moose.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Scheduler.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Scheduler.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Scoring.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Scoring.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Cargo.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Cargo.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Client.lua Moose_Embedded.lua
|
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Message.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Message.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Stage.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Stage.lua Moose_Embedded.lua
|
||||||
copy /b Moose_Embedded.lua + ..\Moose\Task.lua Moose_Embedded.lua
|
copy /b Moose_Embedded.lua + ..\Moose\Task.lua Moose_Embedded.lua
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -190,7 +190,7 @@ function CLIENT:GetDCSGroup()
|
|||||||
local ClientGroup = ClientUnit:getGroup()
|
local ClientGroup = ClientUnit:getGroup()
|
||||||
if ClientGroup then
|
if ClientGroup then
|
||||||
self:T3( "ClientGroup = " .. self.ClientName )
|
self:T3( "ClientGroup = " .. self.ClientName )
|
||||||
if ClientGroup:isExist() then
|
if ClientGroup:isExist() and UnitData:getGroup():isExist() then
|
||||||
if ClientGroup:getID() == UnitData:getGroup():getID() then
|
if ClientGroup:getID() == UnitData:getGroup():getID() then
|
||||||
self:T3( "Normal logic" )
|
self:T3( "Normal logic" )
|
||||||
self:T3( self.ClientName .. " : group found!" )
|
self:T3( self.ClientName .. " : group found!" )
|
||||||
@ -244,7 +244,7 @@ function CLIENT:GetClientGroupID()
|
|||||||
|
|
||||||
local ClientGroup = self:GetDCSGroup()
|
local ClientGroup = self:GetDCSGroup()
|
||||||
|
|
||||||
self:E( self.ClientGroupID ) -- Determined in GetDCSGroup()
|
--self:E( self.ClientGroupID ) -- Determined in GetDCSGroup()
|
||||||
return self.ClientGroupID
|
return self.ClientGroupID
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ function MISSILETRAINER:New( Distance )
|
|||||||
self.MessageInterval = 2
|
self.MessageInterval = 2
|
||||||
self.MessageLastTime = timer.getTime()
|
self.MessageLastTime = timer.getTime()
|
||||||
|
|
||||||
self.Distance = Distance
|
self.Distance = Distance / 1000
|
||||||
|
|
||||||
_EVENTDISPATCHER:OnShot( self._EventShot, self )
|
_EVENTDISPATCHER:OnShot( self._EventShot, self )
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ function MISSILETRAINER:New( Distance )
|
|||||||
|
|
||||||
local function _Alive( Client )
|
local function _Alive( Client )
|
||||||
|
|
||||||
Client:Message( "Welcome to the Missile Trainer", 10, "ID", "TEST" )
|
Client:Message( "Hello trainee, welcome to the Missile Trainer.\nUse the F10->F2 menu options in the radio menu to change the Missile Trainer settings.\nGood luck!", 10, "ID", "Trainer" )
|
||||||
|
|
||||||
Client.MainMenu = MENU_CLIENT:New( Client, "Missile Trainer", nil )
|
Client.MainMenu = MENU_CLIENT:New( Client, "Missile Trainer", nil )
|
||||||
|
|
||||||
@ -66,6 +66,23 @@ function MISSILETRAINER:New( Distance )
|
|||||||
Client.MenuDetailsDistanceOff = MENU_CLIENT_COMMAND:New( Client, "Range Off", Client.MenuDetails, self._MenuMessages, { MenuSelf = self, DetailsRange = false } )
|
Client.MenuDetailsDistanceOff = MENU_CLIENT_COMMAND:New( Client, "Range Off", Client.MenuDetails, self._MenuMessages, { MenuSelf = self, DetailsRange = false } )
|
||||||
Client.MenuDetailsBearingOn = MENU_CLIENT_COMMAND:New( Client, "Bearing On", Client.MenuDetails, self._MenuMessages, { MenuSelf = self, DetailsBearing = true } )
|
Client.MenuDetailsBearingOn = MENU_CLIENT_COMMAND:New( Client, "Bearing On", Client.MenuDetails, self._MenuMessages, { MenuSelf = self, DetailsBearing = true } )
|
||||||
Client.MenuDetailsBearingOff = MENU_CLIENT_COMMAND:New( Client, "Bearing Off", Client.MenuDetails, self._MenuMessages, { MenuSelf = self, DetailsBearing = false } )
|
Client.MenuDetailsBearingOff = MENU_CLIENT_COMMAND:New( Client, "Bearing Off", Client.MenuDetails, self._MenuMessages, { MenuSelf = self, DetailsBearing = false } )
|
||||||
|
|
||||||
|
Client.MenuDistance = MENU_CLIENT:New( Client, "Set distance to plane", Client.MainMenu )
|
||||||
|
Client.MenuDistance50 = MENU_CLIENT_COMMAND:New( Client, "50 meter", Client.MenuDistance, self._MenuMessages, { MenuSelf = self, Distance = 50 / 1000 } )
|
||||||
|
Client.MenuDistance100 = MENU_CLIENT_COMMAND:New( Client, "100 meter", Client.MenuDistance, self._MenuMessages, { MenuSelf = self, Distance = 100 / 1000 } )
|
||||||
|
Client.MenuDistance150 = MENU_CLIENT_COMMAND:New( Client, "150 meter", Client.MenuDistance, self._MenuMessages, { MenuSelf = self, Distance = 150 / 1000 } )
|
||||||
|
Client.MenuDistance200 = MENU_CLIENT_COMMAND:New( Client, "200 meter", Client.MenuDistance, self._MenuMessages, { MenuSelf = self, Distance = 200 / 1000 } )
|
||||||
|
|
||||||
|
|
||||||
|
local ClientID = Client:GetID()
|
||||||
|
self:T( ClientID )
|
||||||
|
if not self.TrackingMissiles[ClientID] then
|
||||||
|
self.TrackingMissiles[ClientID] = {}
|
||||||
|
end
|
||||||
|
self.TrackingMissiles[ClientID].Client = Client
|
||||||
|
if not self.TrackingMissiles[ClientID].MissileData then
|
||||||
|
self.TrackingMissiles[ClientID].MissileData = {}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Client:Alive( _Alive )
|
Client:Alive( _Alive )
|
||||||
@ -97,40 +114,86 @@ function MISSILETRAINER:New( Distance )
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
function MISSILETRAINER:_MenuMessages( MenuParameters )
|
function MISSILETRAINER._MenuMessages( MenuParameters )
|
||||||
|
|
||||||
local self = MenuParameters.MenuSelf
|
local self = MenuParameters.MenuSelf
|
||||||
|
|
||||||
if MenuParameters.MessagesOnOff then
|
if MenuParameters.MessagesOnOff ~= nil then
|
||||||
self.MessagesOnOff = MenuParameters.MessagesOnOff
|
self.MessagesOnOff = MenuParameters.MessagesOnOff
|
||||||
|
if self.MessagesOnOff == true then
|
||||||
|
MESSAGE:New( "Messages ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Messages OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.TrackingToAll then
|
if MenuParameters.TrackingToAll ~= nil then
|
||||||
self.TrackingToAll = MenuParameters.TrackingToAll
|
self.TrackingToAll = MenuParameters.TrackingToAll
|
||||||
|
if self.TrackingToAll == true then
|
||||||
|
MESSAGE:New( "Missile tracking to all players ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Missile tracking to all players OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.Tracking then
|
if MenuParameters.Tracking ~= nil then
|
||||||
self.Tracking = MenuParameters.Tracking
|
self.Tracking = MenuParameters.Tracking
|
||||||
|
if self.Tracking == true then
|
||||||
|
MESSAGE:New( "Missile tracking ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Missile tracking OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.AlertsToAll then
|
if MenuParameters.AlertsToAll ~= nil then
|
||||||
self.AlertsToAll = MenuParameters.AlertsToAll
|
self.AlertsToAll = MenuParameters.AlertsToAll
|
||||||
|
if self.AlertsToAll == true then
|
||||||
|
MESSAGE:New( "Alerts to all players ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Alerts to all players OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.AlertsHits then
|
if MenuParameters.AlertsHits ~= nil then
|
||||||
self.AlertsHits = MenuParameters.AlertsHits
|
self.AlertsHits = MenuParameters.AlertsHits
|
||||||
|
if self.AlertsHits == true then
|
||||||
|
MESSAGE:New( "Alerts Hits ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Alerts Hits OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.AlertsLaunches then
|
if MenuParameters.AlertsLaunches ~= nil then
|
||||||
self.AlertsLaunches = MenuParameters.AlertsLaunches
|
self.AlertsLaunches = MenuParameters.AlertsLaunches
|
||||||
|
if self.AlertsLaunches == true then
|
||||||
|
MESSAGE:New( "Alerts Launches ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Alerts Launches OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.DetailsRange then
|
if MenuParameters.DetailsRange ~= nil then
|
||||||
self.DetailsRange = MenuParameters.DetailsRange
|
self.DetailsRange = MenuParameters.DetailsRange
|
||||||
|
if self.DetailsRange == true then
|
||||||
|
MESSAGE:New( "Range display ON", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Range display OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if MenuParameters.DetailsBearing then
|
if MenuParameters.DetailsBearing ~= nil then
|
||||||
self.DetailsBearing = MenuParameters.DetailsBearing
|
self.DetailsBearing = MenuParameters.DetailsBearing
|
||||||
|
if self.DetailsBearing == true then
|
||||||
|
MESSAGE:New( "Bearing display OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
else
|
||||||
|
MESSAGE:New( "Bearing display OFF", "Menu", 15, "ID" ):ToAll()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if MenuParameters.Distance ~= nil then
|
||||||
|
self.Distance = MenuParameters.Distance
|
||||||
|
MESSAGE:New( "Hit detection distance set to " .. self.Distance .. " meters", "Menu", 15, "ID" ):ToAll()
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -166,7 +229,7 @@ function MISSILETRAINER:_EventShot( Event )
|
|||||||
string.format( "%s launched a %s",
|
string.format( "%s launched a %s",
|
||||||
TrainerSourceUnit:GetTypeName(),
|
TrainerSourceUnit:GetTypeName(),
|
||||||
TrainerWeaponName
|
TrainerWeaponName
|
||||||
) .. self:AddRange( Client, TrainerWeapon ) .. self:AddBearing( Client, TrainerWeapon ),"Launch", 5, "ID" )
|
) .. self:AddRange( Client, TrainerWeapon ) .. self:AddBearing( Client, TrainerWeapon ),"Launch Alert", 5, "ID" )
|
||||||
|
|
||||||
if self.AlertsToAll then
|
if self.AlertsToAll then
|
||||||
Message:ToAll()
|
Message:ToAll()
|
||||||
@ -176,18 +239,12 @@ function MISSILETRAINER:_EventShot( Event )
|
|||||||
end
|
end
|
||||||
|
|
||||||
local ClientID = Client:GetID()
|
local ClientID = Client:GetID()
|
||||||
self:T( ClientID )
|
|
||||||
if not self.TrackingMissiles[ClientID] then
|
|
||||||
self.TrackingMissiles[ClientID] = {}
|
|
||||||
end
|
|
||||||
self.TrackingMissiles[ClientID].Client = Client
|
|
||||||
if not self.TrackingMissiles[ClientID].MissileData then
|
|
||||||
self.TrackingMissiles[ClientID].MissileData = {}
|
|
||||||
end
|
|
||||||
local MissileData = {}
|
local MissileData = {}
|
||||||
MissileData.TrainerSourceUnit = TrainerSourceUnit
|
MissileData.TrainerSourceUnit = TrainerSourceUnit
|
||||||
MissileData.TrainerWeapon = TrainerWeapon
|
MissileData.TrainerWeapon = TrainerWeapon
|
||||||
MissileData.TrainerTargetUnit = TrainerTargetUnit
|
MissileData.TrainerTargetUnit = TrainerTargetUnit
|
||||||
|
MissileData.TrainerWeaponTypeName = TrainerWeapon:getTypeName()
|
||||||
|
MissileData.TrainerWeaponLaunched = true
|
||||||
table.insert( self.TrackingMissiles[ClientID].MissileData, MissileData )
|
table.insert( self.TrackingMissiles[ClientID].MissileData, MissileData )
|
||||||
--self:T( self.TrackingMissiles )
|
--self:T( self.TrackingMissiles )
|
||||||
end
|
end
|
||||||
@ -205,7 +262,7 @@ function MISSILETRAINER:AddRange( Client, TrainerWeapon )
|
|||||||
local Range = ( ( PositionMissile.x - PositionTarget.x )^2 +
|
local Range = ( ( PositionMissile.x - PositionTarget.x )^2 +
|
||||||
( PositionMissile.y - PositionTarget.y )^2 +
|
( PositionMissile.y - PositionTarget.y )^2 +
|
||||||
( PositionMissile.z - PositionTarget.z )^2
|
( PositionMissile.z - PositionTarget.z )^2
|
||||||
) ^ 0.5
|
) ^ 0.5 / 1000
|
||||||
|
|
||||||
RangeText = string.format( ", at %4.2fkm", Range )
|
RangeText = string.format( ", at %4.2fkm", Range )
|
||||||
end
|
end
|
||||||
@ -222,7 +279,7 @@ function MISSILETRAINER:AddBearing( Client, TrainerWeapon )
|
|||||||
local PositionMissile = TrainerWeapon:getPoint()
|
local PositionMissile = TrainerWeapon:getPoint()
|
||||||
local PositionTarget = Client:GetPositionVec3()
|
local PositionTarget = Client:GetPositionVec3()
|
||||||
|
|
||||||
self:T( { PositionTarget, PositionMissile })
|
self:T2( { PositionTarget, PositionMissile })
|
||||||
|
|
||||||
local DirectionVector = { x = PositionMissile.x - PositionTarget.x, y = PositionMissile.y - PositionTarget.y, z = PositionMissile.z - PositionTarget.z }
|
local DirectionVector = { x = PositionMissile.x - PositionTarget.x, y = PositionMissile.y - PositionTarget.y, z = PositionMissile.z - PositionTarget.z }
|
||||||
local DirectionRadians = math.atan2( DirectionVector.z, DirectionVector.x )
|
local DirectionRadians = math.atan2( DirectionVector.z, DirectionVector.x )
|
||||||
@ -261,28 +318,28 @@ function MISSILETRAINER:_TrackMissiles()
|
|||||||
self:T2( { Client:GetName() } )
|
self:T2( { Client:GetName() } )
|
||||||
|
|
||||||
|
|
||||||
ClientData.MessageToAll = "Missiles to Other Players:\n"
|
ClientData.MessageToClient = ""
|
||||||
ClientData.MessageToClient = "Missiles to You:\n"
|
ClientData.MessageToAll = ""
|
||||||
|
|
||||||
for TrackingDataID, TrackingData in pairs( self.TrackingMissiles ) do
|
for TrackingDataID, TrackingData in pairs( self.TrackingMissiles ) do
|
||||||
|
|
||||||
self:T( #TrackingData.MissileData )
|
|
||||||
|
|
||||||
for MissileDataID, MissileData in pairs( TrackingData.MissileData ) do
|
for MissileDataID, MissileData in pairs( TrackingData.MissileData ) do
|
||||||
self:T( MissileDataID )
|
self:T3( MissileDataID )
|
||||||
|
|
||||||
local TrainerSourceUnit = MissileData.TrainerSourceUnit
|
local TrainerSourceUnit = MissileData.TrainerSourceUnit
|
||||||
local TrainerWeapon = MissileData.TrainerWeapon
|
local TrainerWeapon = MissileData.TrainerWeapon
|
||||||
local TrainerTargetUnit = MissileData.TrainerTargetUnit
|
local TrainerTargetUnit = MissileData.TrainerTargetUnit
|
||||||
|
local TrainerWeaponTypeName = MissileData.TrainerWeaponTypeName
|
||||||
|
local TrainerWeaponLaunched = MissileData.TrainerWeaponLaunched
|
||||||
|
|
||||||
if TrainerSourceUnit and TrainerSourceUnit:IsAlive() and TrainerWeapon and TrainerWeapon:isExist() and TrainerTargetUnit and TrainerTargetUnit:IsAlive() then
|
if Client and Client:IsAlive() and TrainerSourceUnit and TrainerSourceUnit:IsAlive() and TrainerWeapon and TrainerWeapon:isExist() and TrainerTargetUnit and TrainerTargetUnit:IsAlive() then
|
||||||
local PositionMissile = TrainerWeapon:getPosition().p
|
local PositionMissile = TrainerWeapon:getPosition().p
|
||||||
local PositionTarget = Client:GetPositionVec3()
|
local PositionTarget = Client:GetPositionVec3()
|
||||||
|
|
||||||
local Distance = ( ( PositionMissile.x - PositionTarget.x )^2 +
|
local Distance = ( ( PositionMissile.x - PositionTarget.x )^2 +
|
||||||
( PositionMissile.y - PositionTarget.y )^2 +
|
( PositionMissile.y - PositionTarget.y )^2 +
|
||||||
( PositionMissile.z - PositionTarget.z )^2
|
( PositionMissile.z - PositionTarget.z )^2
|
||||||
) ^ 0.5
|
) ^ 0.5 / 1000
|
||||||
|
|
||||||
if Distance <= self.Distance then
|
if Distance <= self.Distance then
|
||||||
-- Hit alert
|
-- Hit alert
|
||||||
@ -292,11 +349,11 @@ function MISSILETRAINER:_TrackMissiles()
|
|||||||
self:T( "killed" )
|
self:T( "killed" )
|
||||||
|
|
||||||
local Message = MESSAGE:New(
|
local Message = MESSAGE:New(
|
||||||
string.format( "%s launched by %s killed '%s'",
|
string.format( "%s launched by %s killed %s",
|
||||||
TrainerWeapon:getTypeName(),
|
TrainerWeapon:getTypeName(),
|
||||||
TrainerSourceUnit:GetTypeName(),
|
TrainerSourceUnit:GetTypeName(),
|
||||||
TrainerSourceUnit:GetPlayerName()
|
TrainerTargetUnit:GetPlayerName()
|
||||||
),"Tracking", 15, "ID" )
|
),"Hit Alert", 15, "ID" )
|
||||||
|
|
||||||
if self.AlertsToAll then
|
if self.AlertsToAll then
|
||||||
Message:ToAll()
|
Message:ToAll()
|
||||||
@ -309,15 +366,25 @@ function MISSILETRAINER:_TrackMissiles()
|
|||||||
self:T(TrackingData.MissileData)
|
self:T(TrackingData.MissileData)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local TrackingTo = string.format( " -> %s launched by %s",
|
if ShowMessages then
|
||||||
TrainerWeapon:getTypeName(),
|
local TrackingTo
|
||||||
TrainerSourceUnit:GetName()
|
TrackingTo = string.format( " -> %s",
|
||||||
)
|
TrainerWeaponTypeName
|
||||||
|
)
|
||||||
if ClientDataID == TrackingDataID then
|
|
||||||
ClientData.MessageToClient = ClientData.MessageToClient .. TrackingTo .. self:AddRange( ClientData.Client, TrainerWeapon ) .. self:AddBearing( ClientData.Client, TrainerWeapon ) .. "\n"
|
if ClientDataID == TrackingDataID then
|
||||||
else
|
if ClientData.MessageToClient == "" then
|
||||||
ClientData.MessageToAll = ClientData.MessageToAll .. TrackingTo .. self:AddRange( TrackingData.Client, TrainerWeapon ) .. self:AddBearing( TrackingData.Client, TrainerWeapon ) .. "\n"
|
ClientData.MessageToClient = "Missiles to You:\n"
|
||||||
|
end
|
||||||
|
ClientData.MessageToClient = ClientData.MessageToClient .. TrackingTo .. self:AddRange( ClientData.Client, TrainerWeapon ) .. self:AddBearing( ClientData.Client, TrainerWeapon ) .. "\n"
|
||||||
|
else
|
||||||
|
if self.TrackingToAll then
|
||||||
|
if ClientData.MessageToAll == "" then
|
||||||
|
ClientData.MessageToAll = "Missiles to other Players:\n"
|
||||||
|
end
|
||||||
|
ClientData.MessageToAll = ClientData.MessageToAll .. TrackingTo .. self:AddRange( ClientData.Client, TrainerWeapon ) .. self:AddBearing( ClientData.Client, TrainerWeapon ) .. " ( " .. TrainerTargetUnit:GetPlayerName() .. " )\n"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -325,8 +392,8 @@ function MISSILETRAINER:_TrackMissiles()
|
|||||||
if self.MessagesOnOff and self.AlertsLaunches then
|
if self.MessagesOnOff and self.AlertsLaunches then
|
||||||
-- Weapon does not exist anymore. Delete from Table
|
-- Weapon does not exist anymore. Delete from Table
|
||||||
local Message = MESSAGE:New(
|
local Message = MESSAGE:New(
|
||||||
string.format( "%s launched by %s is self destructed!",
|
string.format( "%s launched by %s self destructed!",
|
||||||
TrainerWeapon:getTypeName(),
|
TrainerWeaponTypeName,
|
||||||
TrainerSourceUnit:GetTypeName()
|
TrainerSourceUnit:GetTypeName()
|
||||||
),"Tracking", 5, "ID" )
|
),"Tracking", 5, "ID" )
|
||||||
|
|
||||||
@ -345,7 +412,9 @@ function MISSILETRAINER:_TrackMissiles()
|
|||||||
end
|
end
|
||||||
|
|
||||||
if self.MessagesOnOff and self.Tracking and ShowMessages then
|
if self.MessagesOnOff and self.Tracking and ShowMessages then
|
||||||
local Message = MESSAGE:New( ClientData.MessageToClient .. ClientData.MessageToAll, "Tracking", 1, "ID" ):ToClient( Client )
|
if ClientData.MessageToClient ~= "" or ClientData.MessageToAll ~= "" then
|
||||||
|
local Message = MESSAGE:New( ClientData.MessageToClient .. ClientData.MessageToAll, "Tracking", 1, "ID" ):ToClient( Client )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -96,7 +96,14 @@ end
|
|||||||
function UNIT:GetPlayerName()
|
function UNIT:GetPlayerName()
|
||||||
self:F( self.UnitName )
|
self:F( self.UnitName )
|
||||||
|
|
||||||
return self.DCSUnit:getPlayerName()
|
local DCSUnit = Unit.getByName( self.UnitName )
|
||||||
|
|
||||||
|
local PlayerName = DCSUnit:getPlayerName()
|
||||||
|
if PlayerName == nil then
|
||||||
|
PlayerName = ""
|
||||||
|
end
|
||||||
|
|
||||||
|
return PlayerName
|
||||||
end
|
end
|
||||||
function UNIT:GetTypeName()
|
function UNIT:GetTypeName()
|
||||||
self:F( self.UnitName )
|
self:F( self.UnitName )
|
||||||
|
|||||||
BIN
Presentations/DCS World - MOOSE - Missile Trainer.pptx
Normal file
BIN
Presentations/DCS World - MOOSE - Missile Trainer.pptx
Normal file
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user