It's possible using Lua for sure.
Either something like (I forget if this works right):
Code:
local death_sound = "soundname"
-- sounds need to be precached
function precache()
PrecacheSound( death_sound )
end
function player_killed( player, damageinfo )
-- could test various things about the death here
-- and then only play the sound depending on certain conditions
-- emit sound from the dying player
-- EmitSound will play a sound from a sound script
-- (you can write a <mapname>_level_sounds.txt
-- in the maps folder if you want a custom sound I think,
-- see ff_waterpolo_level_sounds.txt)
player:EmitSound( death_sound )
end
or something like (no clue if this would actually work, haven't moved sound entities before):
Code:
function player_killed( player, damageinfo )
-- could test various things about the death here
-- and then only play the sound depending on certain conditions
-- teleport the entity (like an ambient_generic or w/e)
-- with the given name to the location of the death
-- and then trigger it to play its sound
local sound_ent_name = "entity_name"
local deathpos = player:GetOrigin()
local sound_ent = GetEntityByName( sound_ent_name )
sound_ent:SetOrigin( deathpos.x, deathpos.y, deathpos.z )
OutputEvent(sound_ent_name, "PlaySound")
end
The second method might get somewhat weird when multiple people are dying in rapid succession in different places around the map (the entity would be teleporting all around, I'm not sure how it'd sound).
Both are completely untested.