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

How do I fix the interaction of a created "anchor" with terrain for a rappel like tool?

Asked by
joeyls 3
6 years ago
Edited 6 years ago

The tool basically creates an anchor where you click and it proceeds with other functionality and what not. The game I'm using this tool is most definitely requires the tool to work well with terrain. The problem is in the first few lines the code suggests a maximum distance from where an anchor can be created. However, when interacting with terrain this limit is essentially ignored as it can be manipulated to be placed much much further than this limit of "2".

This is the chunk from where I assume the problem is happening, while creating an "anchor"

TOOL.Equipped:connect(function(MOUSE)
    INSTRUCTIONS.Visible = false  --Shows the instructions GUI
    MOUSE.Button1Down:connect(function()
         if LPLAYER:DistanceFromCharacter(UserMouse.Hit.p) > 2 then --Distance anchor can be made from
            print('Realistically you couldnt anchore yourself from that far.')
         else
            if Anchor ~= nil then
                if WORKSPACE:FindFirstChild(Anchor.Name) ~= nil then
                    print('Anchor point already exist, please remove current one.')
                    return
                else
                    local MTarget = MOUSE.Target
                    if MTarget == nil then      
                        NOTIFY:TweenPosition(UDim2.new(0.5,-113,0.5,-10), 'InOut', 'Quad', 1, false)
                        wait(4)
                        NOTIFY:TweenPosition(UDim2.new(0.5,-113,1.2,-10), 'InOut', 'Quad', 1, false)
                        wait(4)
                    elseif MTarget.Name == 'Terrain' then    --Anchor ignores the distance cap when placed on smooth terrain...         
                        MouseTarget = MOUSE.Hit.p
                        Anchor = CreateAnchor()
                        Rope = CreateRope() 
                    else
                        MouseTarget = MOUSE.Target.Position
                        Anchor = CreateAnchor()
                        Rope = CreateRope()
                    end
                end
            else
                local MTarget = MOUSE.Target
                if MTarget == nil then      
                    NOTIFY:TweenPosition(UDim2.new(0.5,-113,0.5,-10), 'InOut', 'Quad', 1, false)
                    wait(4)
                    NOTIFY:TweenPosition(UDim2.new(0.5,-113,1.2,-10), 'InOut', 'Quad', 1, false)
                    wait(4)
                elseif MTarget.Name == 'Terrain' then   --Anchor ignores the distance cap when placed on smooth terrain...
                    MouseTarget = MOUSE.Hit.p
                    Anchor = CreateAnchor()
                    Rope = CreateRope() 
                else
                    MouseTarget = MOUSE.Target.Position
                    Anchor = CreateAnchor()
                    Rope = CreateRope()
                end
            end
        end
    end)

Answer this question