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

Only work's after changed to false, for like 3 time's?

Asked by 8 years ago

Can someone tell me why this script doesn't work when the value is changed to true, but it work's for like 3 time's after it's changed to false then stop's?

val = script.Parent.on
g1 = script.Parent.G1
g2 = script.Parent.G2

val.Changed:connect(function()
    if val.Value == true then
    repeat wait() until val.Value == false
        print("True")
        for _,v in pairs(g1:GetChildren()) do
            v.Point.Enabled = true
            v.Lighto.Enabled = true
            wait(0.02)
            v.Point.Enabled = false
            v.Lighto.Enabled = false
            wait(0.02)
        end
        for _,v in pairs(g2:GetChildren()) do
            v.Point.Enabled = true
            v.Lighto.Enabled = true
            wait(0.02)
            v.Point.Enabled = false
            v.Lighto.Enabled = false
            wait(0.02)
        end
    end
end)
0
Have you checked why in F9? Nickoakz 231 — 8y

1 answer

Log in to vote
0
Answered by 8 years ago

Line 7 is missing an indent. Also, line 7 is reason your script doesn't do anything until you set the value to false. If you want to perform lines 8+ repeatedly, you need to move the "until val.Value == false" to after line 24.

After that, it might seem to work for a few times, but I think that's just because it's only turning one light on/off at a time. That's why it's usually not a good idea to put a 'wait' command in a for loop, since your script will perform a wait for every item in your table. Instead, you should turn all the ones you want on first, then wait, then turn them off, and then wait again. You will need a total of 4 for loops for that -- 1 to turn g1 on, 1 to turn g2 on, then another 2 to turn them off after the first 'wait' command.

0
Can you give me a example? ISellCows 2 — 8y
Ad

Answer this question