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

Door goes over player, how do I fix it?

Asked by 6 years ago

For some reason, if the player walks in the door while it is moving then the door goes over the player. How can I make it so the door does not go over the player? I think this is just a coding error.

OpenDet = script.Parent.Open
CoolDet = script.Parent.Cooldown
OpIfDet = script.Parent.DidOpenIf
local function onMouseClick(player)
    if CoolDet.Value == false and game.Workspace:FindFirstChild(player.Name):FindFirstChild("JailKeys") ~= nil then --Check if player is holding keys plus debounce
        CoolDet.Value = true
        local x = script.Parent.Position.X
        local y = script.Parent.PositionData.OrgY.Value
        local z = script.Parent.Position.Z
        if OpenDet.Value == false then --If closed
            OpenDet.Value = true
            repeat
                wait(0.1)
                x = x - 0.1
                script.Parent.Position = Vector3.new(x, y, z)
            until script.Parent.Position.X == script.Parent.PositionData.NewX.Value

            repeat
                wait(0.1)
                z = z - 0.5
                script.Parent.Position = Vector3.new(x, y, z)
            until script.Parent.Position.Z == script.Parent.PositionData.NewZ.Value
            OpIfDet.Value = true --So open sequence does not occor if door was clicked on twice or more
        end
        if OpenDet.Value == true and OpIfDet.Value == false then --If open
            OpenDet.Value = false
            repeat
                wait(0.1)
                z = z + 0.5
                script.Parent.Position = Vector3.new(x, y, z)
            until script.Parent.Position.Z == script.Parent.PositionData.OrgZ.Value

            repeat
                wait(0.1)
                x = x + 0.1
                script.Parent.Position = Vector3.new(x, y, z)
            until script.Parent.Position.X == script.Parent.PositionData.OrgX.Value
            --Not nessessary to put a OpIfDet.Value = true as this is the last if statement.
        end
        CoolDet.Value = false --End
        OpIfDet.Value = false
    end
end

script.Parent.Click.MouseClick:connect(onMouseClick)

Answer this question