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

my repeat loop script keeps looping even though it shouldnt ?

Asked by 3 years ago

ok so im writing a script to open a gate when i say a specific thing in chat . problem is , when i say the thing , the gate opens but never stops . ive tried everything that i know from ifs to while ___ do loops . heres the script

local debounce = true
local part = script.Parent
local confirmation = false
local leftPartDoor = game.Workspace.leftPartDoor
local rightPartDoor = game.Workspace.rightpartDoor
local leftPrimaryPart = leftPartDoor.PrimaryPart
local rightPrimaryPart = rightPartDoor.PrimaryPart
local leftoriginalCFrame = leftPartDoor:GetPrimaryPartCFrame()
local rightoriginalCFrame = rightPartDoor:GetPrimaryPartCFrame()
local seconds = 0
local debounce2 = true

part.Touched:Connect(function(whoTouch)
    if whoTouch.Parent:FindFirstChild("Humanoid") and debounce == true then
        debounce = false
        confirmation = true
        wait(5)
        confirmation = false
        debounce = true
    end
end)

game.Players.PlayerAdded:Connect(function(player)
    player.Chatted:Connect(function(msg)
        if msg == "pee pee poo poo" and confirmation == true and debounce2 == true then
            debounce2 = false
            repeat
                wait()
                leftPartDoor:SetPrimaryPartCFrame(leftPrimaryPart.CFrame * CFrame.new(0, 0, 0.1))
                rightPartDoor:SetPrimaryPartCFrame(rightPrimaryPart.CFrame * CFrame.new(0, 0, 0.1))
                seconds = seconds + 0.1
            until seconds == 10
            debounce2 = true
        end
    end)
end)

so like , whats wrong with it ? especially this part .

game.Players.PlayerAdded:Connect(function(player)
    player.Chatted:Connect(function(msg)
        if msg == "pee pee poo poo" and confirmation == true and debounce2 == true then
            debounce2 = false
            repeat
                wait()
                leftPartDoor:SetPrimaryPartCFrame(leftPrimaryPart.CFrame * CFrame.new(0, 0, 0.1))
                rightPartDoor:SetPrimaryPartCFrame(rightPrimaryPart.CFrame * CFrame.new(0, 0, 0.1))
                seconds = seconds + 0.1
            until seconds == 10
            debounce2 = true
        end
    end)
end)

Answer this question