Fortress Forever

Go Back   Fortress Forever > Editing > Mapping > Lua

Reply
 
Thread Tools Display Modes
Old 05-21-2013, 11:10 PM   #1
Headz
 
Headz's Avatar
 
Join Date: Mar 2013
Location: England
Posts Rated Helpful 81 Times
Help with 'On Player Death' trigger sound

Trying to make it so when player dies a custom sound plays local to death area, tried using input/output system with ambient_generic set to play local to entity ( teamspawn ) and nothing happens, is there a work around in lua for this, a bonus would be different sounds played depending what class dies.

Almost finished my ctf map called Pilkington just need this last bit to work and ready to go, many thanks if anyone can help.
Headz is offline   Reply With Quote


1 members found this post helpful.
Old 05-22-2013, 09:06 PM   #2
ddm999
worst ff player eu
 
Join Date: Jun 2012
Location: South Yorks., England
Class/Position: o - no, d - scout
Gametype: IvDZ
Posts Rated Helpful 18 Times
There will be a way to do this using the base code used in locations (if your map uses locations, it'll be easier to implement), and the function player_killed, but unfortunately I just don't have the time. Sorry. D:

Someone can help you though (prolly squeek knowing just how helpful he always is ;D).
__________________
gg ff not ded
ff very much alive
ddm999 is offline   Reply With Quote


1 members found this post helpful.
Old 05-26-2013, 11:41 AM   #3
Headz
 
Headz's Avatar
 
Join Date: Mar 2013
Location: England
Posts Rated Helpful 81 Times
No worries, its been a right ball ache, would be nice to have though.
Headz is offline   Reply With Quote


Old 05-26-2013, 12:59 PM   #4
squeek.
Stuff Do-er
Lua Team
Wiki Team
Fortress Forever Staff
 
squeek.'s Avatar
 
Join Date: Mar 2007
Location: Northern California
Class/Position: Rallygun Shooter
Gametype: Conc tag (you just wait)
Affiliations: Mustache Brigade
Posts Rated Helpful 352 Times
Send a message via AIM to squeek.
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.
__________________
#FF.Pickup ¤ Fortress-Forever pickups

My Non-official Maps
Released FF_DM_Squeek - FF_2Mesa3_Classic - FF_Siege_Classic
Beta FF_Myth - FF_Redlight_Greenlight

Sick of the people on the internet, always moanin'. They just moan.
- Karl Pilkington

Last edited by squeek.; 05-26-2013 at 01:01 PM.
squeek. is offline   Reply With Quote


Old 05-26-2013, 05:38 PM   #5
Headz
 
Headz's Avatar
 
Join Date: Mar 2013
Location: England
Posts Rated Helpful 81 Times
Thanks Squeek for info

first one diden't work
and 2nd gave me this error in console

[SCRIPT] Error calling player_killed ([string "maps\pilkingtonbeta.lua"]:305: attempt to index local 'sound_ent' (a nil value)) ent: NULL

also tried level_sounds.txt
Headz is offline   Reply With Quote


Old 05-26-2013, 10:25 PM   #6
squeek.
Stuff Do-er
Lua Team
Wiki Team
Fortress Forever Staff
 
squeek.'s Avatar
 
Join Date: Mar 2007
Location: Northern California
Class/Position: Rallygun Shooter
Gametype: Conc tag (you just wait)
Affiliations: Mustache Brigade
Posts Rated Helpful 352 Times
Send a message via AIM to squeek.
First one should work.

Here's what I'm using:

maps/<mapname>_level_sounds.txt
Code:
"customsound.test"
{
	"channel"	"CHAN_STATIC"
	"volume"		"1.0"
	"CompatibilityAttenuation"	"0.8"
	"wave"		"player/scream1.wav"
}
maps/<mapname>.lua
Code:
local death_sound = "customsound.test"

-- 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
You can learn more about soundscripts here: https://developer.valvesoftware.com/wiki/Soundscripts
__________________
#FF.Pickup ¤ Fortress-Forever pickups

My Non-official Maps
Released FF_DM_Squeek - FF_2Mesa3_Classic - FF_Siege_Classic
Beta FF_Myth - FF_Redlight_Greenlight

Sick of the people on the internet, always moanin'. They just moan.
- Karl Pilkington
squeek. is offline   Reply With Quote


1 members found this post helpful.
Reply

Tags
lua help


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:32 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.