I have a leaderboard script which has an IntValue called points. How could I add something into the leaderboard script that detects if a player has killed someone else, and so when a player kills someone they get +10 Value for the Points IntValue
ball = script.Parent damage = math.random(10,30) local hitt = false HitSound = Instance.new("Sound") HitSound.Name = "HitSound" HitSound.SoundId = "http://www.roblox.com/asset/?id=11945266" HitSound.Pitch = .8 HitSound.Volume = 1 HitSound.Parent = ball function onTouched(hit) if hit.Parent:findFirstChild("ForceField") ~= nil then return end if hit.CanCollide == false and hit.Parent:findFirstChild("Humanoid") == nil then return end if hit.Parent.className == "Hat" and hitt == false then hitt = true hit:BreakJoints() hit.Velocity = ball.Velocity hit.Parent.Parent = game.Workspace end if hit:findFirstChild("Metal") ~= nil and hitt == false then hitt = true for i = 1,math.random(1,3) do local j = Instance.new("Part") j.formFactor = "Plate" j.Size = Vector3.new(1,.4,1) j.BrickColor = BrickColor.new("Bright yellow") j.CanCollide = false j.Velocity = Vector3.new(math.random(-10,10),math.random(-10,10),math.random(-10,10)) j.CFrame = script.Parent.CFrame j.Parent = game.Workspace end end local humanoid = hit.Parent:findFirstChild("Humanoid") if humanoid ~= nil and hitt == false then hitt = true tagHumanoid(humanoid) if hit.Name == "Head" then humanoid.Health = humanoid.Health - damage * 2 elseif hit.Name == "Torso" then humanoid.Health = humanoid.Health - damage * 1.5 else humanoid.Health = humanoid.Health - damage end wait(.1) untagHumanoid(humanoid) end if hitt == true then HitSound:play() ball.Parent = nil end end function tagHumanoid(humanoid) -- todo: make tag expire local tag = ball:findFirstChild("creator") if tag ~= nil then local new_tag = tag:clone() new_tag.Parent = humanoid end end function untagHumanoid(humanoid) if humanoid ~= nil then local tag = humanoid:GetChildren() for i = 1, #tag do if tag[i].Name == "creator" then tag[i]:remove() end end end end connection = ball.Touched:connect(onTouched) while true do wait(.01) if damage < 0 then break else damage = damage - .2 end end ball.Parent = nil
Assuming that you're using guns then you could use raycasting to determine if, after the bullet or projectile that would do the damage did what it was intended for, the player's health was equal to 0. Then add the points.
If you're using a sort of melee weapon then use a touched event to determine if the player's health is equal to 0, and do the same thing.
Not much else I can help you with unless you provide an attempt at this.
-Goulstem
You need to create a StringValue called "creator" in the person's humanoid with the value of the person who killed them. Have you leaderboard check when someone dies and see if that "creator" value has been created, if so, then use that value to add kills to the player who killed that player.