mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Merge branch 'develop' into FF/OpsDev
This commit is contained in:
commit
9bdacfbcf7
@ -177,40 +177,22 @@ end
|
||||
--
|
||||
-- -- Send the 2 messages created with the @{New} method to the Client Group.
|
||||
-- -- Note that the Message of MessageClient2 is overwriting the Message of MessageClient1.
|
||||
-- ClientGroup = Group.getByName( "ClientGroup" )
|
||||
-- Client = CLIENT:FindByName("UnitNameOfMyClient")
|
||||
--
|
||||
-- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25, "Score" ):ToClient( ClientGroup )
|
||||
-- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25, "Score" ):ToClient( ClientGroup )
|
||||
-- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25, "Score" ):ToClient( Client )
|
||||
-- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25, "Score" ):ToClient( Client )
|
||||
-- or
|
||||
-- MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25 ):ToClient( ClientGroup )
|
||||
-- MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25 ):ToClient( ClientGroup )
|
||||
-- MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25 ):ToClient( Client )
|
||||
-- MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25 ):ToClient( Client )
|
||||
-- or
|
||||
-- MessageClient1 = MESSAGE:New( "Congratulations, you've just hit a target", "Score", 25 )
|
||||
-- MessageClient2 = MESSAGE:New( "Congratulations, you've just killed a target", "Score", 25 )
|
||||
-- MessageClient1:ToClient( ClientGroup )
|
||||
-- MessageClient2:ToClient( ClientGroup )
|
||||
-- MessageClient1:ToClient( Client )
|
||||
-- MessageClient2:ToClient( Client )
|
||||
--
|
||||
function MESSAGE:ToClient( Client, Settings )
|
||||
self:F( Client )
|
||||
|
||||
if Client and Client:GetClientGroupID() then
|
||||
|
||||
if self.MessageType then
|
||||
local Settings = Settings or ( Client and _DATABASE:GetPlayerSettings( Client:GetPlayerName() ) ) or _SETTINGS -- Core.Settings#SETTINGS
|
||||
self.MessageDuration = Settings:GetMessageTime( self.MessageType )
|
||||
self.MessageCategory = "" -- self.MessageType .. ": "
|
||||
end
|
||||
|
||||
local Unit = Client:GetClient()
|
||||
|
||||
if self.MessageDuration ~= 0 then
|
||||
local ClientGroupID = Client:GetClientGroupID()
|
||||
self:T( self.MessageCategory .. self.MessageText:gsub("\n$",""):gsub("\n$","") .. " / " .. self.MessageDuration )
|
||||
--trigger.action.outTextForGroup( ClientGroupID, self.MessageCategory .. self.MessageText:gsub("\n$",""):gsub("\n$",""), self.MessageDuration , self.ClearScreen)
|
||||
trigger.action.outTextForUnit( Unit:GetID(), self.MessageCategory .. self.MessageText:gsub("\n$",""):gsub("\n$",""), self.MessageDuration , self.ClearScreen)
|
||||
end
|
||||
end
|
||||
|
||||
self:ToUnit(Client, Settings)
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
@ -58,7 +58,7 @@ do -- UserFlag
|
||||
|
||||
--- Set the userflag to a given Number.
|
||||
-- @param #USERFLAG self
|
||||
-- @param #number Number The number value to be checked if it is the same as the userflag.
|
||||
-- @param #number Number The number value to set the flag to.
|
||||
-- @param #number Delay Delay in seconds, before the flag is set.
|
||||
-- @return #USERFLAG The userflag instance.
|
||||
-- @usage
|
||||
@ -104,4 +104,4 @@ do -- UserFlag
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@ -63,6 +63,8 @@
|
||||
-- @field #number power Radio power in Watts. Default 100 W.
|
||||
-- @field Sound.RadioQueue#RADIOQUEUE radioqueue Radio queue for broadcasing messages.
|
||||
-- @field #string soundpath Path to sound files.
|
||||
-- @field #string soundpathAirports Path to airport names sound files.
|
||||
-- @field #string soundpathNato Path to NATO alphabet sound files.
|
||||
-- @field #string relayunitname Name of the radio relay unit.
|
||||
-- @field #table towerfrequency Table with tower frequencies.
|
||||
-- @field #string activerunway The active runway specified by the user.
|
||||
@ -1078,12 +1080,24 @@ function ATIS:SetLocale(locale)
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set sound files folder within miz file.
|
||||
--- Set sound files folder within miz file (not your local hard drive!).
|
||||
-- @param #ATIS self
|
||||
-- @param #string path Path for sound files. Default "ATIS Soundfiles/". Mind the slash "/" at the end!
|
||||
-- @param #string pathMain Path to folder containing main sound files. Default "ATIS Soundfiles/". Mind the slash "/" at the end!
|
||||
-- @param #string pathAirports Path folder containing the airport names sound files. Default is `"ATIS Soundfiles/<Map Name>"`, *e.g.* `"ATIS Soundfiles/Caucasus/"`.
|
||||
-- @param #string pathNato Path folder containing the NATO alphabet sound files. Default is "ATIS Soundfiles/NATO Alphabet/".
|
||||
-- @return #ATIS self
|
||||
function ATIS:SetSoundfilesPath( path )
|
||||
self.soundpath = tostring( path or "ATIS Soundfiles/" )
|
||||
function ATIS:SetSoundfilesPath( pathMain, pathAirports, pathNato )
|
||||
self.soundpath = tostring( pathMain or "ATIS Soundfiles/" )
|
||||
if pathAirports==nil then
|
||||
self.soundpathAirports=self.soundpath..env.mission.theatre.."/"
|
||||
else
|
||||
self.soundpathAirports=pathAirports
|
||||
end
|
||||
if pathNato==nil then
|
||||
self.soundpathNato=self.soundpath.."NATO Alphabet/"
|
||||
else
|
||||
self.soundpathNato=pathNato
|
||||
end
|
||||
self:T( self.lid .. string.format( "Setting sound files path to %s", self.soundpath ) )
|
||||
return self
|
||||
end
|
||||
@ -2009,11 +2023,46 @@ function ATIS:onafterBroadcast( From, Event, To )
|
||||
|
||||
-- Cloud preset (DCS 2.7)
|
||||
local cloudspreset = clouds.preset or "Nothing"
|
||||
|
||||
env.info("FF cloud preset "..cloudspreset)
|
||||
|
||||
-- Precepitation: 0=None, 1=Rain, 2=Thunderstorm, 3=Snow, 4=Snowstorm.
|
||||
local precepitation = 0
|
||||
|
||||
if cloudspreset:find( "Preset10" ) then
|
||||
if cloudspreset:find( "RainyPreset1" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
elseif cloudspreset:find( "RainyPreset2" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
elseif cloudspreset:find( "RainyPreset3" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
env.info("Fprecipt "..precepitation)
|
||||
elseif cloudspreset:find( "RainyPreset" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
elseif cloudspreset:find( "Preset10" ) then
|
||||
-- Scattered 5
|
||||
clouddens = 4
|
||||
elseif cloudspreset:find( "Preset11" ) then
|
||||
@ -2094,38 +2143,8 @@ function ATIS:onafterBroadcast( From, Event, To )
|
||||
elseif cloudspreset:find( "Preset9" ) then
|
||||
-- Scattered 4
|
||||
clouddens = 4
|
||||
elseif cloudspreset:find( "RainyPreset" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
elseif cloudspreset:find( "RainyPreset1" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
elseif cloudspreset:find( "RainyPreset2" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
elseif cloudspreset:find( "RainyPreset3" ) then
|
||||
-- Overcast + Rain
|
||||
clouddens = 9
|
||||
if temperature > 5 then
|
||||
precepitation = 1 -- rain
|
||||
else
|
||||
precepitation = 3 -- snow
|
||||
end
|
||||
else
|
||||
self:E(string.format("WARNING! Unknown weather preset: %s", tostring(cloudspreset)))
|
||||
end
|
||||
|
||||
local CLOUDBASE = string.format( "%d", UTILS.MetersToFeet( cloudbase ) )
|
||||
@ -2200,7 +2219,7 @@ function ATIS:onafterBroadcast( From, Event, To )
|
||||
end
|
||||
if not self.useSRS then
|
||||
--self:I(string.format( "%s/%s.ogg", self.theatre, self.airbasename ))
|
||||
self.radioqueue:NewTransmission( string.format( "%s/%s.ogg", self.theatre, self.airbasename ), 3.0, self.soundpath, nil, nil, subtitle, self.subduration )
|
||||
self.radioqueue:NewTransmission( string.format( "%s.ogg", self.airbasename ), 3.0, self.soundpathAirports, nil, nil, subtitle, self.subduration )
|
||||
end
|
||||
local alltext = subtitle
|
||||
|
||||
@ -2211,7 +2230,7 @@ function ATIS:onafterBroadcast( From, Event, To )
|
||||
local _INFORMATION = subtitle
|
||||
if not self.useSRS then
|
||||
self:Transmission( ATIS.Sound.Information, 0.5, subtitle )
|
||||
self.radioqueue:NewTransmission( string.format( "NATO Alphabet/%s.ogg", NATO ), 0.75, self.soundpath )
|
||||
self.radioqueue:NewTransmission( string.format( "%s.ogg", NATO ), 0.75, self.soundpathNato )
|
||||
end
|
||||
alltext = alltext .. ";\n" .. subtitle
|
||||
|
||||
@ -2811,7 +2830,7 @@ function ATIS:onafterBroadcast( From, Event, To )
|
||||
if not self.useSRS then
|
||||
self:Transmission( ATIS.Sound.TACANChannel, 1.0, subtitle )
|
||||
self.radioqueue:Number2Transmission( tostring( self.tacan ), nil, 0.2 )
|
||||
self.radioqueue:NewTransmission( "NATO Alphabet/Xray.ogg", 0.75, self.soundpath, nil, 0.2 )
|
||||
self.radioqueue:NewTransmission( "Xray.ogg", 0.75, self.soundpathNato, nil, 0.2 )
|
||||
end
|
||||
alltext = alltext .. ";\n" .. subtitle
|
||||
end
|
||||
@ -2852,7 +2871,7 @@ function ATIS:onafterBroadcast( From, Event, To )
|
||||
subtitle = string.format( "%s %s", advtxt, NATO )
|
||||
if not self.useSRS then
|
||||
self:Transmission( ATIS.Sound.AdviceOnInitial, 0.5, subtitle )
|
||||
self.radioqueue:NewTransmission( string.format( "NATO Alphabet/%s.ogg", NATO ), 0.75, self.soundpath )
|
||||
self.radioqueue:NewTransmission( string.format( "%s.ogg", NATO ), 0.75, self.soundpathNato )
|
||||
end
|
||||
alltext = alltext .. ";\n" .. subtitle
|
||||
|
||||
@ -2916,7 +2935,7 @@ function ATIS:onafterReport( From, Event, To, Text )
|
||||
self:T( "SRS TTS: " .. text )
|
||||
|
||||
-- Play text-to-speech report.
|
||||
local duration = STTS.getSpeechTime(text,0.95)
|
||||
local duration = MSRS.getSpeechTime(text,0.95)
|
||||
self.msrsQ:NewTransmission(text,duration,self.msrs,nil,2)
|
||||
--self.msrs:PlayText( text )
|
||||
self.SRSText = text
|
||||
@ -3107,7 +3126,7 @@ end
|
||||
-- @param #ATIS.Soundfile sound ATIS sound object.
|
||||
-- @param #number interval Interval in seconds after the last transmission finished.
|
||||
-- @param #string subtitle Subtitle of the transmission.
|
||||
-- @param #string path Path to sound file. Default self.soundpath.
|
||||
-- @param #string path Path to sound file. Default `self.soundpath`.
|
||||
function ATIS:Transmission( sound, interval, subtitle, path )
|
||||
self.radioqueue:NewTransmission( sound.filename, sound.duration, path or self.soundpath, nil, interval, subtitle, self.subduration )
|
||||
end
|
||||
|
||||
@ -1626,7 +1626,7 @@ function AWACS:_NewRadioEntry(TextTTS, TextScreen,GID,IsGroup,ToScreen,IsNew,Fro
|
||||
RadioEntry.TextScreen = TextScreen or TextTTS
|
||||
RadioEntry.GroupID = GID
|
||||
RadioEntry.ToScreen = ToScreen
|
||||
RadioEntry.Duration = STTS.getSpeechTime(TextTTS,0.95,false) or 8
|
||||
RadioEntry.Duration = MSRS.getSpeechTime(TextTTS,0.95,false) or 8
|
||||
RadioEntry.FromAI = FromAI
|
||||
RadioEntry.IsGroup = IsGroup
|
||||
if Tactical then
|
||||
|
||||
@ -356,7 +356,7 @@ do -- Text-To-Speech
|
||||
local self=BASE:Inherit(self, BASE:New()) -- #SOUNDTEXT
|
||||
|
||||
self:SetText(Text)
|
||||
self:SetDuration(Duration or STTS.getSpeechTime(Text))
|
||||
self:SetDuration(Duration or MSRS.getSpeechTime(Text))
|
||||
--self:SetGender()
|
||||
--self:SetCulture()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user