mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Add Moose's Soundhandler Plugin (#558)
* Soundhandler: Adds sounds for weapons fired at or by blue units as well as destruction sounds for enemy jets and ground units. By default plays only to the groups involved. * Added Specific Options and removed 0.1 from mnemonic * Update was incomplete before, use this one * Linked in UI choices and consolidated logging functions * Remove soundhandler duplicate --------- Co-authored-by: Raffson <Raffson@users.noreply.github.com>
This commit is contained in:
parent
ea80ddc321
commit
1216c90891
833
resources/plugins/Soundhandler/Plugin_Soundhandler.lua
Normal file
833
resources/plugins/Soundhandler/Plugin_Soundhandler.lua
Normal file
@ -0,0 +1,833 @@
|
||||
-- Do not edit this line or the following line
|
||||
-- assert(loadfile("C:\\Users\\Taco\\Documents\\Github\\SoundHandler\\SoundHandlerByTaco.lua"))()
|
||||
MESSAGE:New("*SOUNDHANDLER 0.1 LOADING*", 5, "MISSION", false):ToAll():ToLog()
|
||||
|
||||
Soundhandler_options = {
|
||||
["SoundsToGroupOnly"] = true,
|
||||
["ShipSamSounds"] = false,
|
||||
["RedShootingSounds"] = true,
|
||||
["Debug"] = false
|
||||
}
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- USER SETTINGS
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- On/Off?
|
||||
SoundHandler = true
|
||||
-- Do you want ALL Clients to hear sounds, or only those associated with the sound event?
|
||||
SoundOnlyToGroup = Soundhandler_options
|
||||
.SoundsToGroupOnly -- true means only the affected group will hear the sound. False will play to all. If no valid group is associated with the EVENT, sound will play to all.
|
||||
-- Quick fix: SAMs and Red Missiles will play to Target Group ONLY
|
||||
|
||||
-- Do you want ship firing SAMs to play SAM Sounds?
|
||||
ShipSamSounds = Soundhandler_options.ShipSamSounds -- true means they will play sounds with each missile launched
|
||||
|
||||
-- Do you want red airplanes to play sounds when they fire their gun cannons?
|
||||
PlayRedShootingGuns = Soundhandler_options.RedShootingSounds -- true means they will play sounds with each gun burst
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- DEBUG
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
SoundDebug = Soundhandler_options.Debug -- Will enable messages on-screen and in log
|
||||
|
||||
if SoundDebug then
|
||||
trigger.action.outText("---SOUND DEBUG IS ON!---", 10)
|
||||
|
||||
if SoundHandler then
|
||||
trigger.action.outText("Soundhandler ON!", 10)
|
||||
else
|
||||
trigger.action.outText("Soundhandler OFF!", 10)
|
||||
end
|
||||
|
||||
if SoundOnlyToGroup then
|
||||
trigger.action.outText("Sounds will only play to the involved GROUP", 10)
|
||||
else
|
||||
trigger.action.outText("Sounds will play to ALL Clients", 10)
|
||||
end
|
||||
|
||||
if ShipSamSounds then
|
||||
trigger.action.outText("Ships firing SAMs will play sounds", 10)
|
||||
else
|
||||
trigger.action.outText("Ships firing SAMs will NOT play sounds", 10)
|
||||
end
|
||||
|
||||
if PlayRedShootingGuns then
|
||||
trigger.action.outText("Red Airplane Gun Bursts will play sounds", 10)
|
||||
else
|
||||
trigger.action.outText("Red Airplane Gun Bursts will NOT play sounds", 10)
|
||||
end
|
||||
end
|
||||
|
||||
-- Debug output to DCS log
|
||||
env.info("--------- SoundsToGroupOnly=" .. tostring(SoundOnlyToGroup) ..
|
||||
" | ShipSamSounds=" .. tostring(ShipSamSounds) ..
|
||||
" | RedShootingSounds=" .. tostring(PlayRedShootingGuns) ..
|
||||
" | Debug=" .. tostring(SoundDebug))
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- SOUNDS FILEPATH
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
SoundFilePath = ""
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- SOUND FILES
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- Global Sound Tables (make sure you have all these files, named exactly like these, loaded into the .mix file)
|
||||
Sounds = {}
|
||||
-- A2A Kill Sound Table
|
||||
Sounds.Air_Unit_Sound_Table = { "AAGoodKill", "AAKill4", "AAKillGoodhiton1", "AAKillSplash", "AAKillSplashone",
|
||||
"AASplashOne", "AASplashOne_2" }
|
||||
-- Red Jet Missile Sound Table
|
||||
Sounds.RedMissile_Sound_Table = { "Misil1", "Misil2", "Misil3", "Misil4", "Misil5", "Misil6" }
|
||||
-- Red Ground Unit Dead Sound Table
|
||||
Sounds.Ground_Unit_Sound_Table = { "AGKillBOOM1", "AGKillCOMEONBABY", "AGKillGoodBOOM", "AGKillSeeTheSmoke",
|
||||
"AGKill_TARGET_DESTROYED", "AGKillBeautiful_beautiful", "AGKillMotherFucker" }
|
||||
-- SAM Sound Table
|
||||
Sounds.SamSoundTable = { "SAM1", "SAM2", "SAM3", "SAM4", "SAM5", "SAM6", "SAM7", "Defending", "Singer" }
|
||||
-- Balistic Missile Launch Table
|
||||
Sounds.Ballistic = { "SCUD_Long", "Fireball" }
|
||||
-- AGM_154 Sound Table
|
||||
Sounds.PigsAway_Sound_Table = { "PigsAway", "PigsAway2" }
|
||||
-- Paveway_Sound_Table for LGBs
|
||||
Sounds.Paveway_Sound_Table = { "Paveway" }
|
||||
-- Bruiser Sound Table for Harpoons
|
||||
Sounds.Bruiser_Sound_Table = { "Bruiser", "Bruiser2", "Bruiser3" }
|
||||
-- Fox 2 Sound Table
|
||||
Sounds.Fox2_Sound_Table = { "Fox2A", "Fox2B", "Fox2C", "Fox2D", "Fox2E" }
|
||||
-- Fox 3 Sound Table
|
||||
Sounds.Fox3_Sound_Table = { "Fox3A", "Fox3B", "Fox3C", "Fox3D", "Fox3E", "Fox3F" }
|
||||
-- Fox 1 Sound Table
|
||||
Sounds.Fox1_Sound_Table = { "Fox1A", "Fox1B" }
|
||||
-- Magnum Sound Table
|
||||
Sounds.Magnum_Sound_Table = { "Magnum", "Magnum2" }
|
||||
-- Rifle Sound Table
|
||||
Sounds.Rifle_Sound_Table = { "RifleA", "RifleB", "RifleC", "RifleD", "RifleE" }
|
||||
-- Pickle Sound Table
|
||||
Sounds.Pickle_Sound_Table = { "Pickle1", "Pickle2", "Pickle3", "Pickle4", "Pickle5", "Pickle6", "Pickle7" }
|
||||
-- Blue Air Unit Dead Sound Table
|
||||
Sounds.Blue_Air_Unit_Sound_Table = { "OhJesus", "SOS_Beacon", "HitEjecting1", "HitEjecting2", "HitEjecting3" } -- just for fun
|
||||
-- Blue Guns Sounds
|
||||
Sounds.Blue_Guns_Table = { "BlueGuns1", "BlueGuns2", "BlueGuns3" }
|
||||
-- Red Guns Sounds
|
||||
Sounds.Red_Guns_Table = { "Guns_Break_Right", "Guns_Break_Left" }
|
||||
-- Blue Decoy Sounds
|
||||
Sounds.Decoy_Table = { "A2G_Duck1" }
|
||||
-- Blue Cruise Missile Sounds
|
||||
Sounds.CruiseMissile_Table = { "A2G_Greyhound1" }
|
||||
-- Red Anti-Ship Missile Sounds
|
||||
Sounds.Vampires_Table = { "A2G_Vampires1" }
|
||||
-- Blue Tomahawk/Ship-Launched Cruise Missile Sounds
|
||||
Sounds.Tomahawk_Table = { "S2G_Tomahawk1" }
|
||||
-- Friendly Fire Sounds
|
||||
Sounds.Friendly_Fire_Table = { "FriendlyFire1", "FriendlyFire2" }
|
||||
-- Friendly SAM Sounds
|
||||
Sounds.Friendly_SAM_Table = { "BirdsAway" }
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- PRINT SOUNDS
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
if SoundDebug then
|
||||
for _, tbl in pairs(Sounds) do
|
||||
local txt = UTILS.OneLineSerialize(tbl)
|
||||
env.info("EventData Debug: " .. txt)
|
||||
trigger.action.outText("Sounds Loaded: " .. txt, 10)
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- EVENT HANDLERS
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
EventHandler = EVENTHANDLER:New()
|
||||
EventHandler:HandleEvent(EVENTS.Shot)
|
||||
EventHandler:HandleEvent(EVENTS.Kill)
|
||||
EventHandler:HandleEvent(EVENTS.Dead)
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- KILL EVENTS
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
function EventHandler:OnEventKill(EventData)
|
||||
-- UTILS.PrintTableToLog(EventData)
|
||||
|
||||
if SoundHandler then
|
||||
if SoundDebug then
|
||||
BASE:I("---------KILL DETECTED: EVALUATING FOR COALITION & TYPE----------")
|
||||
BASE:I(EventData)
|
||||
end
|
||||
|
||||
-- KILL SECTION (BLUE KILLS RED)
|
||||
if EventData.IniCoalition == coalition.side.BLUE or EventData.TgtCoalition == coalition.side.RED then
|
||||
if SoundDebug then BASE:I("BLUE UNIT KILLED RED...") end
|
||||
if (EventData.TgtCategory == 0 or EventData.TgtCategory == 1) and EventData.TgtObjectCategory == 1 and
|
||||
GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then -- 0 is plane, 1 is helo https://wiki.hoggitworld.com/view/DCS_Class_Unit
|
||||
if SoundDebug then BASE:I("...AIRPLANE") end
|
||||
|
||||
random_Air_Unit_Sound = Sounds.Air_Unit_Sound_Table[math.random(1, #Sounds.Air_Unit_Sound_Table)]
|
||||
local Air_Unit_Sound_Ogg = random_Air_Unit_Sound .. ".ogg"
|
||||
-- Sound Chosen
|
||||
RedA2ASound = USERSOUND:New(SoundFilePath .. Air_Unit_Sound_Ogg)
|
||||
-- Determine who to play sound to
|
||||
if EventData.IniGroup and SoundOnlyToGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
if SoundDebug then
|
||||
BASE:I("-----SOUNDFILE PLAYED is " ..
|
||||
random_Air_Unit_Sound .. " TO " .. SoundGroup:GetName())
|
||||
end
|
||||
RedA2ASound:ToGroup(SoundGroup)
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Air_Unit_Sound .. " TO " ..
|
||||
SoundGroup:GetName(), 10)
|
||||
end
|
||||
else
|
||||
RedA2ASound:ToCoalition(coalition.side.BLUE)
|
||||
if SoundDebug then BASE:I("-----SOUNDFILE PLAYED is " .. random_Air_Unit_Sound .. " TO ALL-----") end
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Air_Unit_Sound .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if EventData.IniGroupName then -- If we don't have an IniGroupName, then don't proceed
|
||||
if EventData.TgtCategory == 2 and EventData.IniCoalition ~= EventData.TgtCoalition and
|
||||
GROUP:FindByName(EventData.IniGroupName):IsAirPlane() and EventData.TgtObjectCategory == 1 then -- TgtCategory 2 is Ground, TgtObjectCategory is Unit
|
||||
if SoundDebug then BASE:I("...GROUND UNIT (KILLED BY A BLUE AIRPLANE)") end
|
||||
|
||||
math.random()
|
||||
random_Ground_Unit_Sound = Sounds.Ground_Unit_Sound_Table[math.random(1,
|
||||
#Sounds.Ground_Unit_Sound_Table)]
|
||||
local Ground_Unit_Sound_Ogg = random_Ground_Unit_Sound .. ".ogg"
|
||||
-- Sound Chosen
|
||||
RedGroundKillSound = USERSOUND:New(SoundFilePath .. Ground_Unit_Sound_Ogg)
|
||||
-- Determine who to play sound to
|
||||
if EventData.IniGroup and SoundOnlyToGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. SoundGroup:GetName())
|
||||
RedGroundKillSound:ToGroup(SoundGroup)
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " ..
|
||||
SoundGroup:GetName(), 10)
|
||||
end
|
||||
else
|
||||
RedGroundKillSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL-----")
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL",
|
||||
10)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
env.info("-----No EventData.IniGroupName-----")
|
||||
end
|
||||
|
||||
if EventData.IniGroupName then -- If we don't have an IniGroupName, then don't proceed
|
||||
if EventData.TgtCategory == 3 and EventData.TgtObjectCategory == 1 and
|
||||
GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then -- 3 is Ship
|
||||
BASE:I("...SHIP")
|
||||
math.random()
|
||||
random_Ground_Unit_Sound = Sounds.Ground_Unit_Sound_Table[math.random(1,
|
||||
#Sounds.Ground_Unit_Sound_Table)]
|
||||
local Ground_Unit_Sound_Ogg = random_Ground_Unit_Sound .. ".ogg"
|
||||
-- Sound Chosen
|
||||
RedGroundKillSound = USERSOUND:New(SoundFilePath .. Ground_Unit_Sound_Ogg)
|
||||
-- Determine who to play sound to
|
||||
if EventData.IniGroup and SoundOnlyToGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. SoundGroup:GetName())
|
||||
RedGroundKillSound:ToGroup(SoundGroup)
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " ..
|
||||
SoundGroup:GetName(), 10)
|
||||
end
|
||||
else
|
||||
RedGroundKillSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL-----")
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL",
|
||||
10)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
env.info("-----No EventData.IniGroupName-----")
|
||||
end
|
||||
end
|
||||
|
||||
-- Blue Dead, and/or Initiated by Red, and its a Plane
|
||||
if (EventData.IniCoalition == coalition.side.RED and EventData.TgtCoalition == coalition.side.BLUE) and
|
||||
EventData.TgtCategory == 0 then
|
||||
if EventData.TgtGroupName then
|
||||
BASE:I("---------BLUE UNIT GOT KILLED---------(" .. EventData.TgtGroupName .. ")")
|
||||
else
|
||||
BASE:I("---------BLUE UNIT GOT KILLED--------- (No Name)")
|
||||
end
|
||||
random_Blue_Air_Unit_Sound = Sounds.Blue_Air_Unit_Sound_Table[math.random(1,
|
||||
#Sounds.Blue_Air_Unit_Sound_Table)]
|
||||
local Blue_Air_Unit_Sound_Ogg = random_Blue_Air_Unit_Sound .. ".ogg"
|
||||
|
||||
A2GSound = USERSOUND:New(SoundFilePath .. Blue_Air_Unit_Sound_Ogg)
|
||||
A2GSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Blue_Air_Unit_Sound_Ogg)
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Blue_Air_Unit_Sound_Ogg .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
|
||||
-- Blue Dead, and Initiated by Blue, and its a Plane
|
||||
if (EventData.IniCoalition == coalition.side.BLUE and EventData.TgtCoalition == coalition.side.BLUE) and
|
||||
EventData.TgtCategory == 0 then
|
||||
if EventData.TgtGroupName then
|
||||
BASE:I("---------BLUE ON BLUE---------(" .. EventData.TgtGroupName .. ")")
|
||||
else
|
||||
BASE:I("---------BLUE ON BLUE--------- (No Name)")
|
||||
end
|
||||
random_Friendly_Fire_Sound = Sounds.Friendly_Fire_Table[math.random(1, #Sounds.Friendly_Fire_Table)]
|
||||
local Friendly_Fire_Sound_Ogg = random_Friendly_Fire_Sound .. ".ogg"
|
||||
FFSound = USERSOUND:New(SoundFilePath .. Friendly_Fire_Sound_Ogg)
|
||||
|
||||
if EventData.IniGroup and SoundOnlyToGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO " .. SoundGroup:GetName())
|
||||
FFSound:ToGroup(SoundGroup)
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO " ..
|
||||
SoundGroup:GetName(), 10)
|
||||
end
|
||||
else
|
||||
FFSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO ALL-----")
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
end -- end of If SoundHandler
|
||||
end -- KILL EventHandler Function End
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- DEAD EVENTS
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
function EventHandler:OnEventDead(EventData)
|
||||
if SoundHandler then
|
||||
if SoundDebug then
|
||||
BASE:I("---------DEAD DETECTED: EVALUATING FOR COALITION & TYPE----------")
|
||||
BASE:I(EventData)
|
||||
end
|
||||
|
||||
-- STATIC SECTION
|
||||
if EventData.IniObjectCategory == 3 then -- STATIC DEAD
|
||||
if EventData.IniCoalition == 1 then -- RED STATIC DEAD
|
||||
BASE:I("RED STATIC DEAD")
|
||||
random_Ground_Unit_Sound =
|
||||
Sounds.Ground_Unit_Sound_Table[math.random(1, #Sounds.Ground_Unit_Sound_Table)]
|
||||
local Ground_Unit_Sound_Ogg = random_Ground_Unit_Sound .. ".ogg"
|
||||
-- Sounnd Chosen
|
||||
RedStaticKillSound = USERSOUND:New(SoundFilePath .. Ground_Unit_Sound_Ogg)
|
||||
-- Determine who to play sound to
|
||||
if EventData.IniGroup and SoundOnlyToGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. SoundGroup:GetName())
|
||||
RedStaticKillSound:ToGroup(SoundGroup)
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " ..
|
||||
SoundGroup:GetName(), 10)
|
||||
end
|
||||
elseif not EventData.IniGroup and SoundOnlyToGroup then
|
||||
env.info("-----NO EventData.IniGroup Available-----")
|
||||
end
|
||||
|
||||
if not SoundOnlyToGroup then
|
||||
env.info("-----SOUND INTENDED FOR ALL-----")
|
||||
RedStaticKillSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL-----")
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if EventData.IniCoalition == 2 then -- BLUE STATIC DEAD
|
||||
-- Consider if we want sounds for this
|
||||
BASE:I("---------BLUE STATIC DEAD, NO SOUND FOR NOW----------")
|
||||
end
|
||||
end -- Static Logic End
|
||||
end -- End of If Soundhandler
|
||||
end -- DEAD EventHandler Function End
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- SHOT EVENTS
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
function EventHandler:OnEventShot(EventData)
|
||||
if SoundDebug then
|
||||
BASE:I("---------SHOT DETECTED: EVALUATING FOR COALITION & WEAPON----------")
|
||||
-- UTILS.PrintTableToLog(EventData)
|
||||
BASE:I(EventData)
|
||||
end
|
||||
math.random()
|
||||
local WeaponDesc = EventData.Weapon:getDesc()
|
||||
if SoundDebug then
|
||||
BASE:I({ WeaponDesc })
|
||||
end
|
||||
local Brevity = "none"
|
||||
soundDelay = false
|
||||
if SoundHandler then
|
||||
-- Weapon data.
|
||||
local _weapon = EventData.Weapon:getTypeName() -- should be the same as Event.WeaponTypeName
|
||||
local _weaponStrArray = UTILS.Split(_weapon, "%.")
|
||||
local _weaponName = _weaponStrArray[#_weaponStrArray]
|
||||
|
||||
-- Weapon descriptor.
|
||||
local desc = EventData.Weapon:getDesc()
|
||||
|
||||
-- Weapon category: 0=SHELL, 1=MISSILE, 2=ROCKET, 3=BOMB (Weapon.Category.X)
|
||||
local weaponcategory = desc.category
|
||||
local weaponguidance = WeaponDesc.guidance
|
||||
|
||||
-- Debug info.
|
||||
|
||||
if SoundDebug then
|
||||
BASE:I("-----PREPARING GENERAL SHOT INFORMATION...------")
|
||||
|
||||
if EventData.IniUnitName then
|
||||
BASE:I("EVENT SHOT: Ini unit = " .. EventData.IniUnitName)
|
||||
end
|
||||
if EventData.IniGroupName then
|
||||
BASE:I("EVENT SHOT: Ini group = " .. EventData.IniGroupName)
|
||||
end
|
||||
|
||||
BASE:I("EVENT SHOT: Weapon type = " .. _weapon)
|
||||
BASE:I("EVENT SHOT: Weapon name = " .. _weaponName)
|
||||
|
||||
if weaponcategory then
|
||||
BASE:I("EVENT SHOT: Weapon category = " .. weaponcategory)
|
||||
else
|
||||
BASE:I('NO WEAPON CATEGORY VALUE')
|
||||
end
|
||||
if weaponguidance then
|
||||
BASE:I("EVENT SHOT: Weapon guidance = " .. weaponguidance)
|
||||
else
|
||||
BASE:I('NO WEAPON GUIDANCE VALUE')
|
||||
end
|
||||
end
|
||||
|
||||
-- Blue and a SAM
|
||||
|
||||
if EventData.IniCoalition == 2 and GROUP:FindByName(EventData.IniGroupName):IsSAM() then
|
||||
BASE:I("BLUE SAM SHOT CONFIRMED")
|
||||
RandomBlueSamSound = Sounds.Friendly_SAM_Table[math.random(1, #Sounds.Friendly_SAM_Table)]
|
||||
Brevity = tostring(RandomBlueSamSound)
|
||||
BASE:I("---------RANDOM FRIENDLY SAM SOUND IS " .. Brevity)
|
||||
end
|
||||
|
||||
-- Blue and an Airplane
|
||||
if EventData.IniCoalition == 2 and GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then
|
||||
BASE:I("BLUE AIRPLANE SHOT CONFIRMED")
|
||||
|
||||
-- We want a specific sound for a glide weapon, so it needs to be added manually.
|
||||
if _weapon == "AGM_154" or _weapon == "AGM_154A" then
|
||||
math.random()
|
||||
RandomPigsAwaySound = Sounds.PigsAway_Sound_Table[math.random(1, #Sounds.PigsAway_Sound_Table)]
|
||||
Brevity = tostring(RandomPigsAwaySound)
|
||||
BASE:I("---------RANDOM PIGS AWAY SOUND IS " .. Brevity)
|
||||
|
||||
-- DCS mis-classifies the GBU_32_V_2B, so it needs to be added manually.
|
||||
|
||||
-- Duck for ADMs
|
||||
elseif string.find(_weapon, "ADM", 1, true) then
|
||||
math.random()
|
||||
RandomDuckSound = Sounds.Decoy_Table[math.random(1, #Sounds.Decoy_Table)]
|
||||
Brevity = tostring(RandomDuckSound)
|
||||
BASE:I("---------RANDOM DUCK SOUND IS " .. Brevity)
|
||||
elseif WeaponDesc.category == 3 and WeaponDesc.guidance == 1 or _weapon == "GBU_32_V_2B" or
|
||||
string.find(_weapon, "MK", 1, true) or string.find(_weapon, "ROCKEYE", 1, true) then
|
||||
math.random()
|
||||
math.random()
|
||||
RandomPickleSound = Sounds.Pickle_Sound_Table[math.random(1, #Sounds.Pickle_Sound_Table)]
|
||||
Brevity = tostring(RandomPickleSound)
|
||||
BASE:I("---------RANDOM PICKLE SOUND (3, 1, Specific) IS " .. Brevity)
|
||||
elseif WeaponDesc.category == 3 and WeaponDesc.guidance == 7 then
|
||||
-- LASER GUIDED SOUND TABLES
|
||||
math.random()
|
||||
RandomPavewaySound = Sounds.Paveway_Sound_Table[math.random(1, #Sounds.Paveway_Sound_Table)]
|
||||
Brevity = tostring(RandomPavewaySound)
|
||||
BASE:I("---------RANDOM PAVEWAY SOUND IS " .. Brevity)
|
||||
|
||||
-- DCS mis-classifies the Harpoon, so it needs to be added manually.
|
||||
elseif _weapon == "AGM_84D" then
|
||||
math.random()
|
||||
RandomBruiserSound = Sounds.Bruiser_Sound_Table[math.random(1, #Sounds.Bruiser_Sound_Table)]
|
||||
Brevity = tostring(RandomBruiserSound)
|
||||
BASE:I("---------RANDOM BRUISER SOUND IS " .. Brevity)
|
||||
|
||||
-- Cruise Missiles are "Greyhound".
|
||||
elseif _weapon == "AGM_84H" or string.find(_weapon, "84E", 1, true) then
|
||||
math.random()
|
||||
RandomGreyhoundSound = Sounds.CruiseMissile_Table[math.random(1, #Sounds.CruiseMissile_Table)]
|
||||
Brevity = tostring(RandomGreyhoundSound)
|
||||
BASE:I("---------RANDOM GREYHOUND SOUND IS " .. Brevity)
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 2 then
|
||||
math.random()
|
||||
RandomFox2Sound = Sounds.Fox2_Sound_Table[math.random(1, #Sounds.Fox2_Sound_Table)]
|
||||
Brevity = tostring(RandomFox2Sound)
|
||||
BASE:I("---------FOX 2 SOUND----------" .. Brevity)
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 3 then
|
||||
math.random()
|
||||
RanddomFox3Sound = Sounds.Fox3_Sound_Table[math.random(1, #Sounds.Fox3_Sound_Table)]
|
||||
Brevity = tostring(RanddomFox3Sound)
|
||||
BASE:I("---------FOX 3 SOUND----------" .. Brevity)
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 4 then
|
||||
math.random()
|
||||
RanddomFox1Sound = Sounds.Fox1_Sound_Table[math.random(1, #Sounds.Fox1_Sound_Table)]
|
||||
Brevity = tostring(RanddomFox1Sound)
|
||||
BASE:I("---------Fox 1 SOUND----------")
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 5 and WeaponDesc.missileCategory == 6 then
|
||||
RandomMagnumSound = Sounds.Magnum_Sound_Table[math.random(1, #Sounds.Magnum_Sound_Table)]
|
||||
Brevity = tostring(RandomMagnumSound)
|
||||
BASE:I("---------MAGNUM SOUND IS " .. Brevity)
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 7 or string.find(_weapon, "65", 1, true) then
|
||||
math.random()
|
||||
RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)]
|
||||
Brevity = tostring(RandomRifleSound)
|
||||
BASE:I("---------RIFLE SOUND (Includes Zuni Rockets)----------")
|
||||
|
||||
-- "0" = Shells
|
||||
elseif WeaponDesc.category == 0 then
|
||||
math.random()
|
||||
RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)]
|
||||
Brevity = tostring(RandomRifleSound)
|
||||
BASE:I("---------GUNS SOUND----------")
|
||||
|
||||
-- If we still don't know what kind it is, and its a missile, let's call it a Rifle
|
||||
elseif WeaponDesc.category == 1 then
|
||||
math.random()
|
||||
RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)]
|
||||
Brevity = tostring(RandomRifleSound)
|
||||
BASE:I("---------RIFLE SOUND (UNKNOWN MISSILE)----------")
|
||||
|
||||
-- Rockets = Rifle (for lack of a better brevity code)
|
||||
elseif WeaponDesc.category == 2 then
|
||||
math.random()
|
||||
RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)]
|
||||
Brevity = tostring(RandomRifleSound)
|
||||
BASE:I("---------ROCKET SOUND (RIFLE FOR NOW))----------")
|
||||
|
||||
-- If we still don't know what kind it is, and its a bomb, let's call it a Pickle
|
||||
elseif WeaponDesc.category == 3 then
|
||||
math.random()
|
||||
RandomPickleSound = Sounds.Pickle_Sound_Table[math.random(1, #Sounds.Pickle_Sound_Table)]
|
||||
Brevity = tostring(RandomPickleSound)
|
||||
BASE:I("---------RANDOM PICKLE (UNKNOWN) SOUND IS " .. Brevity)
|
||||
end
|
||||
end
|
||||
|
||||
if EventData.IniCoalition == 2 and GROUP:FindByName(EventData.IniGroupName):IsShip() then
|
||||
BASE:I("BLUE NAVAL SHOT CONFIRMED")
|
||||
|
||||
if string.find(_weapon, "BGM_109B", 1, true) then
|
||||
RandomTomahawkSound = Sounds.Tomahawk_Table[math.random(1, #Sounds.Tomahawk_Table)]
|
||||
Brevity = tostring(RandomTomahawkSound)
|
||||
BASE:I("---------BLUE TOMAHAWK SOUND IS: " .. Brevity)
|
||||
end
|
||||
end
|
||||
|
||||
-- LOGIC FOR RED AIRPLANE SHOTS
|
||||
-- if Red and an Airplane
|
||||
if EventData.IniCoalition == 1 and GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then
|
||||
BASE:I("RED PLANE SHOT CONFIRMED")
|
||||
soundDelay = true
|
||||
BASE:I("DELAY ACTIVATED")
|
||||
|
||||
if WeaponDesc.category == 1 and WeaponDesc.guidance == 2 then
|
||||
RandomRedMissileSound = Sounds.RedMissile_Sound_Table[math.random(1, #Sounds.RedMissile_Sound_Table)]
|
||||
Brevity = tostring(RandomRedMissileSound)
|
||||
BASE:I("---------RED MISSILE (Fox2) SOUND----------" .. Brevity)
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 3 then
|
||||
RandomRedMissileSound = Sounds.RedMissile_Sound_Table[math.random(1, #Sounds.RedMissile_Sound_Table)]
|
||||
Brevity = tostring(RandomRedMissileSound)
|
||||
BASE:I("---------RED MISSILE (Fox2) SOUND----------" .. Brevity)
|
||||
elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 4 then
|
||||
RandomRedMissileSound = Sounds.RedMissile_Sound_Table[math.random(1, #Sounds.RedMissile_Sound_Table)]
|
||||
Brevity = tostring(RandomRedMissileSound)
|
||||
BASE:I("---------RED MISSILE (Fox1) SOUND----------")
|
||||
elseif (WeaponDesc.category == 1 and WeaponDesc.missileCategory == 4) or
|
||||
string.find(_weapon, "X_22", 1, true) or string.find(_weapon, "X_35", 1, true) or
|
||||
string.find(_weapon, "X_31A", 1, true) or string.find(_weapon, "YJ_83K", 1, true) or
|
||||
string.find(_weapon, "YJ_12", 1, true) or _weapon == "AGM_84D" then
|
||||
RandomRedAntiShipSound = Sounds.Vampires_Table[math.random(1, #Sounds.Vampires_Table)]
|
||||
Brevity = tostring(RandomRedAntiShipSound)
|
||||
BASE:I("---------RED VAMPIRES SOUND----------")
|
||||
end -- End of Red Shot Classification
|
||||
end -- End of Red Aerial Shot Logic
|
||||
|
||||
-- LOGIC FOR RED GROUND MISSILES
|
||||
if ShipSamSounds then
|
||||
if EventData.IniCoalition == 1 and
|
||||
(GROUP:FindByName(EventData.IniGroupName):IsGround() or
|
||||
GROUP:FindByName(EventData.IniGroupName):IsShip()) and WeaponDesc.category == 1 and
|
||||
not string.find(_weapon, "SA48N6", 1, true) and not string.find(_weapon, "SCUD_RAKETA", 1, true) then
|
||||
BASE:I("RED GROUND OR SHIP SHOT CONFIRMED")
|
||||
soundDelay = true
|
||||
BASE:I("DELAY ACTIVATED")
|
||||
|
||||
-- if string.find(_weapon, "SA48N6", 1, true) then
|
||||
-- BASE:I("-----WEAPON SOUND KNOWN BUT SUPPRESSED-----")
|
||||
-- BASE:I("DELAY ACTIVATED, BUT NO SOUND")
|
||||
-- end
|
||||
|
||||
RandomSamSound = Sounds.SamSoundTable[math.random(1, #Sounds.SamSoundTable)]
|
||||
Brevity = tostring(RandomSamSound)
|
||||
BASE:I("---------RED SAM SOUND----------" .. Brevity)
|
||||
end
|
||||
else
|
||||
if EventData.IniCoalition == 1 and GROUP:FindByName(EventData.IniGroupName):IsGround() and
|
||||
WeaponDesc.category == 1 and not string.find(_weapon, "SA48N6", 1, true) and
|
||||
not string.find(_weapon, "SCUD_RAKETA", 1, true) then
|
||||
BASE:I("RED GROUND (NOT SHIP) SHOT CONFIRMED")
|
||||
soundDelay = true
|
||||
BASE:I("DELAY ACTIVATED")
|
||||
|
||||
-- if string.find(_weapon, "SA48N6", 1, true) then
|
||||
-- BASE:I("-----WEAPON SOUND KNOWN BUT SUPPRESSED-----")
|
||||
-- end
|
||||
|
||||
if string.find(_weapon, "SCUD_RAKETA", 1, true) then
|
||||
BASE:I("-----SCUD LAUNCH (NO SOUND PROGRAMMED)-----")
|
||||
end
|
||||
|
||||
RandomSamSound = Sounds.SamSoundTable[math.random(1, #Sounds.SamSoundTable)]
|
||||
Brevity = tostring(RandomSamSound)
|
||||
BASE:I("---------RED SAM SOUND----------" .. Brevity)
|
||||
end
|
||||
end
|
||||
|
||||
-- LOGIC FOR RED SCUD / BALLISTIC MISSILE LAUNCHES
|
||||
-- if Red and an Airplane
|
||||
if EventData.IniCoalition == 1 and string.find(_weapon, "SCUD_RAKETA", 1, true) then
|
||||
BASE:I("RED SCUD LAUNCH CONFIRMED")
|
||||
|
||||
RandomBallisticMissileSound = Sounds.Ballistic[math.random(1, #Sounds.Ballistic)]
|
||||
Brevity = tostring(RandomBallisticMissileSound)
|
||||
BASE:I("---------RED BALLISTIC MISSILE SOUND----------" .. Brevity)
|
||||
end -- End of Red Scud Launch
|
||||
|
||||
-- Let's put it into Sound
|
||||
if Brevity ~= "none" then
|
||||
BASE:I("-----soundDelay value = " .. tostring(soundDelay) .. "-----")
|
||||
|
||||
-- Its a Blue Weapon Event
|
||||
if EventData.IniCoalition == 2 and EventData.IniGroup then
|
||||
local BrevitySound = Brevity .. ".ogg"
|
||||
WeaponSound = USERSOUND:New(SoundFilePath .. BrevitySound)
|
||||
|
||||
-- Determine Who to Play Sound to
|
||||
if SoundOnlyToGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
WeaponSound:ToGroup(SoundGroup)
|
||||
|
||||
if SoundDebug then
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName())
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(),
|
||||
10)
|
||||
end
|
||||
else
|
||||
WeaponSound:ToCoalition(coalition.side.BLUE)
|
||||
|
||||
if SoundDebug then
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL")
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Excluded Sounds, sounds we want to play to all Blue clients regardless of who fires
|
||||
if EventData.IniCoalition == 2 and EventData.IniGroup:IsShip() then
|
||||
WeaponSound:ToCoalition(coalition.side.BLUE)
|
||||
if SoundDebug then
|
||||
BASE:I("--------- (EXCLUDED EVENT) SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL")
|
||||
end
|
||||
end
|
||||
|
||||
-- Its a Red Weapon Event (SAM, on incoming missile)
|
||||
if EventData.IniCoalition == 1 then
|
||||
env.info("-----Red Shot-----")
|
||||
if EventData.TgtGroup then
|
||||
env.info("-----TargetGroup Object Available-----")
|
||||
local BrevitySound = Brevity .. ".ogg"
|
||||
WeaponSound = USERSOUND:New(SoundFilePath .. BrevitySound)
|
||||
|
||||
local function DelayedSound()
|
||||
local SoundGroup = EventData.TgtGroup
|
||||
if SoundGroup then
|
||||
WeaponSound:ToGroup(SoundGroup)
|
||||
end
|
||||
end
|
||||
local soundDelayTime = math.random(3, 7)
|
||||
env.info("-----soundDelayTime =" .. soundDelayTime .. "-----")
|
||||
TIMER:New(DelayedSound):Start(soundDelayTime)
|
||||
|
||||
if SoundDebug then
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName() ..
|
||||
" ONLY")
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(),
|
||||
10)
|
||||
end
|
||||
|
||||
-- Sound can play if its SCUD (but not other un-guided things like Artillery)
|
||||
elseif string.find(_weapon, "SCUD_RAKETA", 1, true) then
|
||||
env.info("-----TargetGroup Object NOT Available Sound ToAll(Must be a SCUD) -----")
|
||||
|
||||
local BrevitySound = Brevity .. ".ogg"
|
||||
WeaponSound = USERSOUND:New(SoundFilePath .. BrevitySound)
|
||||
WeaponSound:ToCoalition(coalition.side.BLUE)
|
||||
|
||||
if SoundDebug then
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO All")
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO All", 10)
|
||||
end
|
||||
end
|
||||
end -- End of Red Shot Event
|
||||
end -- Sound Action End
|
||||
soundDelay = false -- reset value
|
||||
if SoundDebug then
|
||||
env.info("-----soundDelay value reset to false-----")
|
||||
end
|
||||
else
|
||||
env.info("-----SOUNDHANDLER OFF------")
|
||||
end
|
||||
end -- Function End
|
||||
|
||||
BASE:I("-----MISSILE/BOMB SOUNDS SET------")
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
-- SHOOTING (RAPID FIRE) EVENT
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
ShootingEventHandler = EVENTHANDLER:New()
|
||||
ShootingEventHandler:HandleEvent(EVENTS.ShootingStart)
|
||||
|
||||
function ShootingEventHandler:OnEventShootingStart(EventData)
|
||||
if SoundDebug then
|
||||
BASE:I("-----RAPID GUNS SHOOTING START, EVALUATING------")
|
||||
end
|
||||
local txt = UTILS.OneLineSerialize(EventData)
|
||||
env.info("Guns Shooting EventData Debug: " .. txt)
|
||||
local ShooterGroupName = EventData.IniGroupName
|
||||
local ShooterUnitName = EventData.IniUnitName
|
||||
if ShooterGroupName ~= nil and ShooterUnitName ~= nil then
|
||||
ShooterGroup = GROUP:FindByName(ShooterGroupName)
|
||||
ShooterUnit = UNIT:FindByName(ShooterUnitName)
|
||||
end
|
||||
|
||||
if ShooterGroup:IsAirPlane() and ShooterUnit:IsClient() then
|
||||
BASE:I("BLUE AIRPLANE GUNS DETECTED (FROM CLIENT)")
|
||||
math.random()
|
||||
Blue_Guns_Sound = Sounds.Blue_Guns_Table[math.random(1, #Sounds.Blue_Guns_Table)]
|
||||
Brevity = tostring(Blue_Guns_Sound)
|
||||
BASE:I("---------RANDOM BLUE GUNS SOUND SELECTED IS: " .. Brevity)
|
||||
|
||||
local GunsSound = Brevity .. ".ogg"
|
||||
-- Sound Chosen
|
||||
GunsSound = USERSOUND:New(SoundFilePath .. GunsSound)
|
||||
|
||||
-- Determine Who to Play Sound to
|
||||
if SoundOnlyToGroup and EventData.IniGroup then
|
||||
local SoundGroup = EventData.IniGroup
|
||||
GunsSound:ToGroup(SoundGroup)
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName())
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(), 10)
|
||||
end
|
||||
else
|
||||
GunsSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL")
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if ShooterGroup:IsAirPlane() and EventData.IniCoalition == 1 and PlayRedShootingGuns then
|
||||
BASE:I("-----RED AIRPLANE GUNS DETECTED (AT CLIENT)------")
|
||||
math.random()
|
||||
Red_Guns_Sound = Sounds.Red_Guns_Table[math.random(1, #Sounds.Red_Guns_Table)]
|
||||
Brevity = tostring(Red_Guns_Sound)
|
||||
BASE:I("---------RANDOM RED GUNS SOUND SELECTED IS: " .. Brevity)
|
||||
|
||||
local GunsSound = Brevity .. ".ogg"
|
||||
-- Sound Chosen
|
||||
GunsSound = USERSOUND:New(SoundFilePath .. GunsSound)
|
||||
-- Determine Who to Play Sound to
|
||||
if SoundOnlyToGroup and EventData.TgtGroup then
|
||||
local SoundGroup = EventData.TgtGroup
|
||||
GunsSound:ToGroup(SoundGroup)
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName())
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(), 10)
|
||||
end
|
||||
else
|
||||
GunsSound:ToCoalition(coalition.side.BLUE)
|
||||
BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL")
|
||||
if SoundDebug then
|
||||
trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO ALL", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
BASE:I("-----GUN SHOOTING SOUNDS SET------")
|
||||
|
||||
|
||||
-----------------------------------------------------------------
|
||||
-- MENU FOR SETTINGS
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-- PARENT MENU ENTRY
|
||||
|
||||
local SettingsMenu = MENU_MISSION:New("SoundHandler Settings")
|
||||
|
||||
-- Toggle Debug On/Off
|
||||
local function SoundhandlerOnOff(boolean)
|
||||
SoundHandler = boolean
|
||||
env.info("-----SoundHandler On = " .. tostring(boolean) .. "-----")
|
||||
|
||||
if boolean == true then
|
||||
trigger.action.outText("**Soundhandler ON**", 5)
|
||||
end
|
||||
if boolean == false then
|
||||
trigger.action.outText("--Soundhandler OFF--", 5)
|
||||
end
|
||||
end
|
||||
|
||||
local OnOrOff = MENU_MISSION:New("On or Off", SettingsMenu)
|
||||
local SoundHandlerOn = MENU_MISSION_COMMAND:New("On", OnOrOff, SoundhandlerOnOff, true) -- #MENU
|
||||
local SoundHandlerOff = MENU_MISSION_COMMAND:New("Off", OnOrOff, SoundhandlerOnOff, false) -- #MENU
|
||||
|
||||
-- Toggle Debug On/Off
|
||||
local function SwitchDebug(boolean)
|
||||
SoundDebug = boolean
|
||||
env.info("-----SoundDebug Now = " .. tostring(boolean) .. "-----")
|
||||
end
|
||||
|
||||
local SoundDebugMenu = MENU_MISSION:New("Sound Debug", SettingsMenu)
|
||||
local SoundDebugMenuTrue = MENU_MISSION_COMMAND:New("On", SoundDebugMenu, SwitchDebug, true) -- #MENU
|
||||
local SoundDebugMenuFalse = MENU_MISSION_COMMAND:New("Off", SoundDebugMenu, SwitchDebug, false) -- #MENU
|
||||
|
||||
-- Switch To Whom Sounds Play To
|
||||
local function SwitchSoundsToGroup(boolean)
|
||||
SoundOnlyToGroup = boolean
|
||||
env.info("-----SoundOnlyToGroup Now = " .. tostring(boolean) .. "-----")
|
||||
|
||||
if boolean == true then
|
||||
-- trigger.action.outText("**Sounds Play To Group Only**", 5)
|
||||
end
|
||||
if boolean == false then
|
||||
trigger.action.outText("--Sounds Play To All--", 5)
|
||||
end
|
||||
end
|
||||
|
||||
local SoundsToGroupAll = MENU_MISSION:New("Sounds To Group or All", SettingsMenu)
|
||||
local GroupTrue = MENU_MISSION_COMMAND:New("Play Sounds to Group Only", SoundsToGroupAll, SwitchSoundsToGroup, true) -- #MENU
|
||||
local GroupFalse = MENU_MISSION_COMMAND:New("Play Sounds to All", SoundsToGroupAll, SwitchSoundsToGroup, false) -- #MENU
|
||||
|
||||
BASE:I("-----SOUNDHANDLER SETTING SET------")
|
||||
|
||||
MESSAGE:New("*SOUNDHANDLER LOADED*", 5, "MISSION", false):ToAll():ToLog()
|
||||
BIN
resources/plugins/Soundhandler/SoundFiles/A2G_Duck1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/A2G_Duck1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/A2G_Greyhound1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/A2G_Greyhound1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/A2G_Vampires1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/A2G_Vampires1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AAGoodKill.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AAGoodKill.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AAKill4.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AAKill4.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AAKillGoodhiton1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AAKillGoodhiton1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AAKillSplash.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AAKillSplash.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AAKillSplashone.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AAKillSplashone.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AASplashOne.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AASplashOne.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AASplashOne_2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AASplashOne_2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillBOOM1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillBOOM1.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillCOMEONBABY.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillCOMEONBABY.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillGoodBOOM.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillGoodBOOM.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillMotherFucker.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillMotherFucker.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillSeeTheSmoke.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AGKillSeeTheSmoke.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AllPush.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AllPush.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AllReady.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AllReady.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/AllStart.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/AllStart.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_CheckingIn.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_CheckingIn.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_Gunny.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_Gunny.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_LeavingFreq.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_LeavingFreq.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_Not_Gunny.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Arco_Not_Gunny.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/BOMBS_OFF.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/BOMBS_OFF.ogg
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/BlueGuns1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/BlueGuns1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/BlueGuns2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/BlueGuns2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/BlueGuns3.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/BlueGuns3.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Bruiser.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Bruiser.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Bruiser2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Bruiser2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Bruiser3.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Bruiser3.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/ChevyEscortSaddled.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/ChevyEscortSaddled.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/ColtEscortComplete.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/ColtEscortComplete.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/ColtEscortSaddled.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/ColtEscortSaddled.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Default_CheckingIn.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Default_CheckingIn.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Defending.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Defending.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/DodgeEscortSaddled.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/DodgeEscortSaddled.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fireball.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fireball.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox1A.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox1A.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox1B.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox1B.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2A.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2A.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2B.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2B.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2C.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2C.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2D.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2D.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2E.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox2E.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3A.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3A.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3B.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3B.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3C.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3C.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3D.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3D.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3E.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3E.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3F.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Fox3F.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/FriendlyFire1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/FriendlyFire1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/FriendlyFire2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/FriendlyFire2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/HackingSound.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/HackingSound.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/HitEjecting1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/HitEjecting1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/HitEjecting2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/HitEjecting2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/HitEjecting3.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/HitEjecting3.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/ILS_RESET.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/ILS_RESET.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/LaserOff.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/LaserOff.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Magnum.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Magnum.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Magnum2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Magnum2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Mauler_CheckingIn.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Mauler_CheckingIn.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Mauler_LeavingFreq.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Mauler_LeavingFreq.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Misil1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Misil1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Misil2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Misil2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Misil3.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Misil3.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Misil4.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Misil4.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Misil5.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Misil5.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Misil6.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Misil6.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/NavyOne_CheckingIn.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/NavyOne_CheckingIn.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/OhJesus.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/OhJesus.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Paveway.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Paveway.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle3.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle3.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle4.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle4.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle5.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle5.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle6.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle6.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle7.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/Pickle7.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/PigsAway.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/PigsAway.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/PigsAway2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/PigsAway2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/PoweringOffSound.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/PoweringOffSound.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/RECOVER_AIRCRAFT.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/RECOVER_AIRCRAFT.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/RifleA.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/RifleA.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/RifleB.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/RifleB.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/RifleC.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/RifleC.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/RifleD.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/RifleD.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/RifleE.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/RifleE.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/SAM1.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/SAM1.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/SAM2.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/SAM2.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/SAM3.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/SAM3.ogg
Normal file
Binary file not shown.
BIN
resources/plugins/Soundhandler/SoundFiles/SAM4.ogg
Normal file
BIN
resources/plugins/Soundhandler/SoundFiles/SAM4.ogg
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user