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

How do I fix my restricted doors?

Asked by 5 years ago

My restricted door worked fine but now it doesn't I've tried as much as I can and it's still broken, here's the code. Please help.

local door = script.Parent

function open()
    -- This function will open the door.
    door.CanCollide = false -- Make players able to walk through the door.

    for transparency = 0, 1, .1 do
        door.Transparency = transparency
        wait(.1)
    end
end

function close()
    -- This function will close the door.
    for transparency = 1, 0, -.1 do
        door.Transparency = transparency
        wait(.1)
    end

    door.CanCollide = true -- Make players unable to walk through the door.
end

-- This function returns the player a certain part belongs to.
function get_player(part)
    --iterate over each player
    for _, player in ipairs(game.Players:GetPlayers()) do
        --if the part is within the player's character 
        if part:IsDescendantOf(player.Character) then
            --return the player
            return player
        end
    end
end


door.Touched:connect(function(part)
    -- If it isn't a character that touched the door, then we ignore it.
    local player = get_player(part)
    if not player then return end

    local allow = (
        player.Name == "TheRabster1428" or
        player.Name == "Whirlpooled" or 
        player.Name == "TylerTiger88" or 
        player.Name == "TylerTiger88V2" or
        player.Name == "lXMysteryXl" or
        player.Name == "AncientDinoDan"
        player.Name == "djnightkiller" or
        player.Name == "danknoscoper12" or
        player.Name == "JuntheDoge" or
        player.Name == "peopledumb" or
        player.Name == "iliketranezz" or
        player.Name == "Quoonisbest" or
        player.Name == "willywaffle99"
    )
    if allow then
        open()
        delay(4, close)
    end
end)
0
on line 41, instead of writing or after every name, you could put a ";" i think that would work cruizer_snowman 117 — 5y

2 answers

Log in to vote
2
Answered by
Aresko 53
5 years ago

I tried running this on Roblox and it looks like on line 47 you are missing an or at the end, which is causing your problem, try switching line 47 from player.Name == "AncientDinoDan" to player.Name == "AncientDinoDan" or

0
Thank you so much! It works now! TheRabster1428 0 — 5y
Ad
Log in to vote
0
Answered by 5 years ago

As Aresko said, you are missing an or on line 47. I would also recommend adding a Debounce to your door script. Basically, the script will run for each of your limbs that touches the door. If you add a debounce, then it will only run once.

http://wiki.roblox.com/index.php?title=Debounce

Answer this question