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 5 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:

01game.Players.PlayerAdded:connect(function(player)
02 local Stats = Instance.new("Model", player)
03 Stats.Name = "leaderstats"
04 local Timer = Instance.new("IntValue", Stats)
05 Timer.Name = "Time Alive"
06 Timer.Value = 0
07 while true do
08  wait(1)
09  Timer.Value = Timer.Value +1
10 end
11 
12end)

4 answers

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

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

01game.Players.PlayerAdded:connect(function(player)
02 local Stats = Instance.new("Model", player)
03 Stats.Name = "leaderstats"
04 local Timer = Instance.new("IntValue", Stats)
05 Timer.Name = "Time Alive"
06 Timer.Value = 0
07 while true do
08  wait(1)
09  if player.Character.Humanoid.Health == 0 then
10    Timer.Value = 0
11    print("Player died")
12  end
13  Timer.Value = Timer.Value +1
14 end
15 
16end)
0
why a down vote ? R_LabradorRetriever 198 — 5y
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 — 5y
0
thats what i thought earlier, but a hooked function may not work correctly under an infinite loop R_LabradorRetriever 198 — 5y
Ad
Log in to vote
1
Answered by
XDvvvDX 186
4 years ago
Edited 4 years ago

Here's it:

01game.Players.PlayerAdded:connect(function(player)
02 local Stats = Instance.new("Model", player)
03 Stats.Name = "leaderstats"
04 local Timer = Instance.new("IntValue", Stats)
05 Timer.Name = "Time Alive"
06 Timer.Value = 0
07local Rank = Instance.new("StringValue")
08Rank.Parent = Stats
09local ID = 1331531 --Switch this ID with your group's ID.
10Rank.Value = player:GetRoleInGroup(ID)
11Rank.Name = "Rank"
12 while true do
13  wait(1)
14  Timer.Value = Timer.Value +1
15 end
16 
17end)
0
how do i use it amaruking64 0 — 4y
Log in to vote
0
Answered by
lunatic5 409 Moderation Voter
5 years ago

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

01game.Players.PlayerAdded:Connect(function(player)
02 
03    local Stats = Instance.new("Model", player)
04    Stats.Name = "leaderstats"
05 
06    local Timer = Instance.new("IntValue", Stats)
07    Timer.Name = "Time Alive"
08 
09    while true do
10        wait(1)
11        Timer.Value = Timer.Value +1
12    end
13 
14    player.CharacterAdded:Connect(function(character)
15        character.Humanoid.Died:Connect(function()
16            Timer.Value = 0
17        end)
18    end)
19 
20end)

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 4 years ago

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

Answer this question