Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How can I make my player's 'time alive' leaderstat reset when they die?

Asked by 4 years ago

I've seen things like this before but they've all been no use. Here is my code, can someone help me reset the 'Time alive' counter when the player dies? if you need a better understanding of why I'll need this, here's the link to my game:

https://web.roblox.com/games/4959857494/Dash-BETA

Here is my script:

game.Players.PlayerAdded:connect(function(player)
 local Stats = Instance.new("Model", player)
 Stats.Name = "leaderstats"
 local Timer = Instance.new("IntValue", Stats)
 Timer.Name = "Time Alive"
 Timer.Value = 0
 while true do
  wait(1)
  Timer.Value = Timer.Value +1
 end

end)

4 answers

Log in to vote
-1
Answered by 4 years ago
Edited 4 years ago

Make it sense if the health is 0, using if player.Character.Humanoid.Health == 0 then, like this:

game.Players.PlayerAdded:connect(function(player)
 local Stats = Instance.new("Model", player)
 Stats.Name = "leaderstats"
 local Timer = Instance.new("IntValue", Stats)
 Timer.Name = "Time Alive"
 Timer.Value = 0
 while true do
  wait(1)
  if player.Character.Humanoid.Health == 0 then
    Timer.Value = 0
    print("Player died")
  end
  Timer.Value = Timer.Value +1
 end

end)
0
why a down vote ? R_LabradorRetriever 198 — 4y
0
There is no use in constantly checking if the player's health is at 0, you can simply use the Died() event. lunatic5 409 — 4y
0
thats what i thought earlier, but a hooked function may not work correctly under an infinite loop R_LabradorRetriever 198 — 4y
Ad
Log in to vote
1
Answered by
XDvvvDX 186
4 years ago
Edited 4 years ago

Here's it:

game.Players.PlayerAdded:connect(function(player)
 local Stats = Instance.new("Model", player)
 Stats.Name = "leaderstats"
 local Timer = Instance.new("IntValue", Stats)
 Timer.Name = "Time Alive"
 Timer.Value = 0
local Rank = Instance.new("StringValue")
Rank.Parent = Stats
local ID = 1331531 --Switch this ID with your group's ID.
Rank.Value = player:GetRoleInGroup(ID)
Rank.Name = "Rank"
 while true do
  wait(1)
  Timer.Value = Timer.Value +1
 end

end)
0
how do i use it amaruking64 0 — 3y
Log in to vote
0
Answered by
lunatic5 409 Moderation Voter
4 years ago

Here's the script you can use to accomplish this:

game.Players.PlayerAdded:Connect(function(player)

    local Stats = Instance.new("Model", player)
    Stats.Name = "leaderstats"

    local Timer = Instance.new("IntValue", Stats)
    Timer.Name = "Time Alive"

    while true do
        wait(1)
        Timer.Value = Timer.Value +1
    end

    player.CharacterAdded:Connect(function(character)
        character.Humanoid.Died:Connect(function()
            Timer.Value = 0
        end)
    end)

end)

I added some indentation to help with readability so it's easier for you and others to understand. Also, I removed the line where you set "Timer's" value to 0 because it already defaults at 0. All that's happening is that it detects when the player's character loads in, then checks for when the character's Humanoid dies. When the Humanoid dies, it resets the value to 0.

Hope this helps.

Log in to vote
0
Answered by 3 years ago

so i dont know how to use that script it dont work

Answer this question