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

Why doesn't my condition for my if statement and repeat loop work?

Asked by 7 years ago
Edited 7 years ago

I'm trying to make it so the player would gain 1 money every second, but its not looping correctly. This is what I'm using:

local leaderstats = game.Players.LocalPlayer:WaitForChild("leaderstats")
local money = leaderstats.Money

money.Value.Changed:connect(function()
    if money.Value < 1000 then
        repeat
            money.Value = money.Value + 1
            wait(1)
        until money.Value == 1000
    end
end)
money.Value = money.Value - 1

Any help is greatly appreciated!

1 answer

Log in to vote
0
Answered by
k3du53 162
7 years ago

This is simply a mistake in the coding. (peep the comment lines)

local leaderstats = game.Players.LocalPlayer:WaitForChild("leaderstats")
local money = leaderstats.Money

money.Value.Changed:connect(function() --every time the money gets changed, this function runs
    if money.Value < 1000 then
        repeat
            money.Value = money.Value + 1 --within the function, the money is being changed, causing the function to repeat itself more than intended
            wait(1)
        until money.Value == 1000
    end
end)
money.Value = money.Value - 1

A solution could be to remove the repeat statement, or repeat the if statement.

local leaderstats = game.Players.LocalPlayer:WaitForChild("leaderstats")
local money = leaderstats.Money

money.Value.Changed:connect(function()
    if money.Value < 1000 then
        money.Value = money.Value + 1
        wait(1)
    end
end)
money.Value = money.Value - 1
0
Sorry, but it still doesn't work. I don't know how to fix this... marioblast1244 113 — 7y
Ad

Answer this question