Files
2026-03-15 14:54:49 +03:00

189 lines
4.9 KiB
Lua

--- Traitor radio sounds
TRADIO = {}
-- This table contains every sound that can be played by the Radio traitor item.
--
-- It also contains settings that change how the sound is displayed on the client,
-- or how the sound is played on the server:
--
-- name: The name of the sound shown in the T menu. Can be localized.
-- name_params: The parameters to use when localizing the name, if any.
-- sound: The sound to be played, or a table of sounds to pick from randomly.
-- serial: If true, play through the sound table in sequential order instead of randomly.
-- times: The number of times to repeat the sound. If set to a table, randomizes the number of times within the range {min, max}.
-- delay: The delay between sound repetitions. If set to a table, randomizes the delay within the range {min, max}.
-- ampl: The sound level. See https://wiki.facepunch.com/gmod/Enums/SNDLVL
--
-- If serial = true, you can nest multiple sound tables within the sound table.
-- This will cause the radio to choose a random sound from the first table,
-- then on the next repetition, choose a random sound from the next table,
-- and so on. See footsteps (lines 70-80) for an example of this.
--
--
-- If you want to add custom sounds to the radio, use TRADIO.AddNewSound in a shared lua file.
-- For example:
-- TRADIO.AddNewSound("glock", {
-- name = "Glock shots",
-- sound = Sound("Weapon_Glock.single"),
-- delay = 0.1,
-- times = {4, 8},
-- ampl = 90
-- })
--
-- If you want to overwrite an existing sound, you can simply modify TRADIO.Sounds directly.
-- For example:
-- TRADIO.Sounds.explosion = {
-- name = "Balloon pop!",
-- sound = Sound("garrysmod/balloon_pop_cute.wav")
-- }
TRADIO.Sounds = {
-- Simple Sounds
scream = {
name = "radio_button_scream",
sound = {
Sound("vo/npc/male01/pain07.wav"),
Sound("vo/npc/male01/pain08.wav"),
Sound("vo/npc/male01/pain09.wav"),
Sound("vo/npc/male01/no02.wav")
}
},
explosion = {
name = "radio_button_expl",
sound = Sound("BaseExplosionEffect.Sound")
},
beeps = {
name = "radio_button_c4",
sound = Sound("weapons/c4/c4_beep1.wav"),
delay = 0.75,
times = {8, 12},
ampl = 70
},
hstation = {
name = "radio_button_heal",
sound = Sound("items/medshot4.wav"),
delay = 2,
times = {3, 5}
},
-- Serial Sounds
footsteps = {
name = "radio_button_steps",
sound = {
{Sound("player/footsteps/concrete1.wav"), Sound("player/footsteps/concrete2.wav")},
{Sound("player/footsteps/concrete3.wav"), Sound("player/footsteps/concrete4.wav")}
},
serial = true,
times = {8, 16},
delay = 0.35,
ampl = 80
},
burning = {
name = "radio_button_burn",
sound = {
Sound("General.BurningObject"),
Sound("General.StopBurning")
},
serial = true,
delay = 4,
},
teleport = {
name = "radio_button_tele",
sound = {
Sound("ambient/levels/labs/teleport_mechanism_windup1.wav"),
Sound("ambient/levels/labs/electric_explosion4.wav")
},
serial = true,
delay = 1
},
-- Gun Sounds
shotgun = {
name = "radio_button_shotgun",
sound = Sound( "Weapon_XM1014.Single" ),
delay = {0.8, 1.6},
times = {1, 3},
ampl = 90
},
pistol = {
name = "radio_button_pistol",
sound = Sound( "Weapon_FiveSeven.Single" ),
delay = {0.4, 0.8},
times = {2, 4},
ampl = 90
},
mac10 = {
name = "radio_button_mac10",
sound = Sound( "Weapon_mac10.Single" ),
delay = 0.065,
times = {5, 10},
ampl = 90
},
deagle = {
name = "radio_button_deagle",
sound = Sound( "Weapon_Deagle.Single" ),
delay = {0.6, 1.2},
times = {1, 3},
ampl = 90
},
m16 = {
name = "radio_button_m16",
sound = Sound( "Weapon_M4A1.Single" ),
delay = 0.2,
times = {1, 5},
ampl = 90
},
rifle = {
name = "radio_button_rifle",
sound = Sound( "weapons/scout/scout_fire-1.wav" ),
ampl = 80
},
huge = {
name = "radio_button_huge",
sound = Sound( "Weapon_m249.Single" ),
delay = 0.055,
times = {6, 12},
ampl = 90
},
glock = {
name = "radio_button_glock",
sound = Sound("Weapon_Glock.single"),
delay = 0.1,
times = {4, 8},
ampl = 90
},
sipistol = {
name = "radio_button_sipist",
sound = Sound("Weapon_USP.SilencedShot"),
delay = {0.38, 0.76},
times = {2, 4},
ampl = 50
}
}
function TRADIO.AddNewSound(key, soundData)
local newkey = key
local i = 1
while TRADIO.Sounds[newkey] do
newkey = key .. tostring(i)
i = i + 1
end
TRADIO.Sounds[newkey] = soundData
if CLIENT then
table.insert(TRADIO.SoundOrder, newkey)
end
end