• How do detect multiple kills
    7 replies, posted
Im trying to make a script where if a player gets # kills a sound plays it seems to be fairly simple but I just don't know how to detect multi kills [CODE]if SERVER then ply:Kill() then sound.Play( "sound.wav", vPos )[/CODE]
Add 1 to a player's kills with the PlayerDeath hook and reset on respawn.
sooo [CODE] if SERVER then ply:Kill(1) then sound.Play( "sound.wav", vPos ) end[/CODE] and I dont need to have it reset I will shorten the sound file...
[LUA]hook.Add("PlayerDeath", "PlayKillSound", function( ply, inflictor, attacker ) // Create a hook that is called when a player dies local killsNeeded = 5 // The amount of kills needed for the sound to play local soundPath = "path/to/sound.wav" // The path to the sound effect you want to play, relative to the sounds folder if attacker:IsPlayer() && attacker:Frags() == killsNeeded then // Check that the killer is a player and has the amount of kills needed attacker:EmitSound( soundPath ) // If so, make the player emit the sound. There are other ways of doing this, but this is simple and good enough. end end)[/LUA] This must be in a serverside file in order for the hook to be called correctly. For future reference, check out the [url=http://wiki.garrysmod.com/page/Main_Page]Official Wiki[/url] and the [url=http://maurits.tv/data/garrysmod/wiki/wiki.garrysmod.com/index4875.html]Old Wiki[/url] to see what functions and hooks are available.
Thanks you finally someone that gives actual help and Ive been looking for awhile for that wiki thanks! [editline]28th September 2013[/editline] Not working I changed the path and kills but its not working... [CODE]hook.Add("PlayerDeath", "PlayKillSound", function( ply, inflictor, attacker ) // Create a hook that is called when a player dies local killsNeeded = 2 // The amount of kills needed for the sound to play local soundPath = "ohkillem.mp3" // The path to the sound effect you want to play, relative to the sounds folder if attacker:IsPlayer() && attacker:Frags() == killsNeeded then // Check that the killer is a player and has the amount of kills needed attacker:EmitSound( soundPath ) // If so, make the player emit the sound. There are other ways of doing this, but this is simple and good enough. end end)[/CODE]
A better way would probably be to reset the kills ( in a row ) variable for the victim, and increment them for the attacker. That way, you could set up a system based on the number of kills they have. It's done the same way in the PlayerDeath hook, but you just attach the vars by: [lua]ply._KillsInARow = 0; attacker._KillsInARow = ( !attacker._KillsInARow ) and 1 or attacker._KillsInARow + 1;[/lua] So, reset the victim to 0. For incrementing, all it's saying is assign the variable _KillsInARow to attacker, but first check to see if the variable is not assigned, if it isn't then set it to 1, or set it to the variable + 1. Then, after that, you can do your logic ( It could be done differently, and more dynamically but for the purpose of this example... ). [lua]if ( attacker._KillsInARow == 3 ) then // Play sound for 3 kills. elseif ( attacker._KillsInARow == 5 ) then // Play sound for 5 kills. elseif ( attacker._KillsInARow == 10 ) then // Play sound for 10 kills. elseif ( attacker._KillsInARow == 15 ) then // Play sound for 15 kills. elseif ( attacker._KillsInARow == 20 ) then // Play sound for 20 kills. elseif ( attacker._KillsInARow == 30 ) then // Play sound for 30 kills. end[/lua]
[QUOTE=gmanc2;42340231]Not working I changed the path and kills but its not working... [CODE]hook.Add("PlayerDeath", "PlayKillSound", function( ply, inflictor, attacker ) // Create a hook that is called when a player dies local killsNeeded = 2 // The amount of kills needed for the sound to play local soundPath = "garrysmod/sound/ohkillem.mp3" // The path to the sound effect you want to play, relative to the sounds folder if attacker:IsPlayer() && attacker:Frags() == killsNeeded then // Check that the killer is a player and has the amount of kills needed attacker:EmitSound( soundPath ) // If so, make the player emit the sound. There are other ways of doing this, but this is simple and good enough. end end)[/CODE][/QUOTE] As commented, the path is relative to the sounds folder. Take out the garrysmod/sound/ part.
Ok I did take out the gmod/sound but its still not working no errors though.
Sorry, you need to Log In to post a reply to this thread.