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

It wont work if i change it to on touch but the Click Detector works?[REPOST]

Asked by 5 years ago
Edited 5 years ago

I need help because the script wont work if I cange it to on touch here it is with the click detector. It works with the click detector and I also have the other scripts/Models in it

open = false

wait(0.1)
script.Parent.Main.Anchored = true

function onClicked()
    if script.Parent.OPEND.Value == 1 then

        if open == false then
            script.Parent.Main.Anchored = false
            cfr = script.Parent.Main.CFrame
            open = true
            for i = 0,1.5,0.1 do
            wait(0.1)
            script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,-0.1,0)*CFrame.new(0.01,0,-0.25)
            end
        script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,-math.pi/2,0)*CFrame.new(-2.5,0,-2.5)
        script.Parent.Main.Anchored = true
        open = false
        script.Parent.OPEND.Value = 0
        end
    elseif script.Parent.OPEND.Value == 0 then

        if open == false then
            script.Parent.Main.Anchored = false
            cfr = script.Parent.Main.CFrame
            open = true
            for i = 0,1.5,0.1 do
            wait(0.1)
            script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,0.1,0)*CFrame.new(-0.01,0,0.25)
            end
        script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,math.pi/2,0)*CFrame.new(-2.5,0,2.5)
        script.Parent.Main.Anchored = true
        open = false
        script.Parent.OPEND.Value = 1
        end

    end
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)

Here it is when I change it to a touch thingy

open = false

wait(0.1)
script.Parent.Main.Anchored = true

function onTouched(Hit)
    if script.Parent.OPEND.Value == 1 then

        if open == false then
            script.Parent.Main.Anchored = false
            cfr = script.Parent.Main.CFrame
            open = true
            for i = 0,1.5,0.1 do
            wait(0.1)
            script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,-0.1,0)*CFrame.new(0.01,0,-0.25)
            end
        script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,-math.pi/2,0)*CFrame.new(-2.5,0,-2.5)
        script.Parent.Main.Anchored = true
        open = false
        script.Parent.OPEND.Value = 0
        end
    elseif script.Parent.OPEND.Value == 0 then

        if open == false then
            script.Parent.Main.Anchored = false
            cfr = script.Parent.Main.CFrame
            open = true
            for i = 0,1.5,0.1 do
            wait(0.1)
            script.Parent.Main.CFrame = script.Parent.Main.CFrame*CFrame.fromEulerAnglesXYZ(0,0.1,0)*CFrame.new(-0.01,0,0.25)
            end
        script.Parent.Main.CFrame = cfr*CFrame.fromEulerAnglesXYZ(0,math.pi/2,0)*CFrame.new(-2.5,0,2.5)
        script.Parent.Main.Anchored = true
        open = false
        script.Parent.OPEND.Value = 1
        end

    end
end

script.Parent.Touched:connect(onTouched)

And if you need to know the weld script here it is also

function Weld(x,y)
    local W = Instance.new("Weld")
    W.Part0 = x
    W.Part1 = y
    local CJ = CFrame.new(x.Position)
    local C0 = x.CFrame:inverse()*CJ
    local C1 = y.CFrame:inverse()*CJ
    W.C0 = C0
    W.C1 = C1
    W.Parent = x
end

function Get(A)
    if A.className == "Part" then
        Weld(script.Parent.Main, A)
        A.Anchored = false
    else
        local C = A:GetChildren()
        for i=1, #C do
        Get(C[i])
        end
    end
end

function Finale()
    Get(script.Parent)
end

Finale()

Answer this question