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

Help making a tree to give you an item on click and a fly script?

Asked by 8 years ago

The first time I found out how to make a tree that gave you an item on click it only worked in test mode,and the flight script I found also only worked in test mode,when I started a server when you used the tool you would just float,does anybody know how to fix this?If you need to look at the scripts they are down below.

Tree Script

function onclicked(playerwhoclicked)
       -- Create a click detector in the part in order to be able to detect clicks.
    local click_detector = Instance.new('ClickDetector', script.Parent)

    -- Give the tool to the player when the button is clicked
    click_detector.MouseClick:connect(function(player)
      game.ServerStorage.Weapon1:Clone()game.ServerStorage.Weapon1.Parent = player:FindFirstChild("Backpack")
    end)
end
````

Flight Script

Name = "Fly"
pi = 3.141592653589793238462643383279502884197163993751
a = 0
s = 0
ndist = 13
rs = 0.025
siz = Vector3.new(1, 1, 1)
form = 0
flow = {}
function CFC(P1,P2)
    local Place0 = CFrame.new(P1.CFrame.x,P1.CFrame.y,P1.CFrame.z) 
    local Place1 = P2.Position
    P1.Size = Vector3.new(P1.Size.x,P1.Size.y,(Place0.p - Place1).magnitude) 
    P1.CFrame = CFrame.new((Place0.p + Place1)/2,Place0.p)
end
function checktable(table, parentneeded)
    local i
    local t = {}
    for i = 1, #table do
        if table[i] ~= nil then
            if string.lower(type(table[i])) == "userdata" then
                if parentneeded == true then
                    if table[i].Parent ~= nil then
                        t[#t + 1] = table[i]
                    end
                else
                    t[#t + 1] = table[i]
                end
            end
        end
    end
    return t
end
if script.Parent.Name ~= Name then
User = game:service("Players").Nineza
HB = Instance.new("HopperBin")
HB.Name = Name
HB.Parent = User.StarterGear
script.Parent = HB
User.Character:BreakJoints()
end
speed = 100
script.Parent.Selected:connect(function(mar)
    s = 1
    torso = script.Parent.Parent.Parent.Character.Torso
    LeftShoulder = torso["Left Shoulder"]
    RightShoulder = torso["Right Shoulder"]
    LeftHip = torso["Left Hip"]
    RightHip = torso["Right Hip"]
    human = script.Parent.Parent.Parent.Character.Humanoid
    bv = Instance.new("BodyVelocity")
    bv.maxForce = Vector3.new(0,math.huge,0)
    bv.velocity = Vector3.new(0,0,0)
    bv.Parent = torso
    bg = Instance.new("BodyGyro")
    bg.maxTorque = Vector3.new(0,0,0)
    bg.Parent = torso 
    connection = mar.Button1Down:connect(function()
        a = 1
        bv.maxForce = Vector3.new(math.huge,math.huge,math.huge)
        bg.maxTorque = Vector3.new(900000,900000,900000)
        bg.cframe = CFrame.new(torso.Position,mar.hit.p) * CFrame.fromEulerAnglesXYZ(math.rad(-90),0,0)
        bv.velocity = CFrame.new(torso.Position,mar.hit.p).lookVector * speed
        moveconnect = mar.Move:connect(function()
            bg.maxTorque = Vector3.new(900000,900000,900000)
            bg.cframe = CFrame.new(torso.Position,mar.hit.p) * CFrame.fromEulerAnglesXYZ(math.rad(-90),0,0)
            bv.velocity = CFrame.new(torso.Position,mar.hit.p).lookVector * speed
        end)
        upconnect = mar.Button1Up:connect(function()
            a = 0
            moveconnect:disconnect()
            upconnect:disconnect()
            bv.velocity = Vector3.new(0,0,0)
            bv.maxForce = Vector3.new(0,math.huge,0)
            torso.Velocity = Vector3.new(0,0,0)
            bg.cframe = CFrame.new(torso.Position,torso.Position + Vector3.new(torso.CFrame.lookVector.x,0,torso.CFrame.lookVector.z))
            wait(1)
        end)
    end)
    while s == 1 do
        wait(0.02)
        flow = checktable(flow, true)
        local i
        for i = 1,#flow do
            flow[i].Transparency = flow[i].Transparency + rs
            if flow[i].Transparency >= 1 then flow[i]:remove() end
        end
        if a == 1 then
            flow[#flow + 1] = Instance.new("Part")
            local p = flow[#flow]
            p.formFactor = form
            p.Size = siz
            p.Anchored = true
            p.CanCollide = false
            p.TopSurface = 0
            p.BottomSurface = 0
            if #flow - 1 > 0 then
                local pr = flow[#flow - 1]
                p.Position = torso.Position - torso.Velocity/ndist
                CFC(p, pr)
            else
                p.CFrame = CFrame.new(torso.Position - torso.Velocity/ndist, torso.CFrame.lookVector)
            end
            p.BrickColor = BrickColor.new("Cyan")
            p.Transparency = 0.7
            p.Parent = torso
            local marm = Instance.new("BlockMesh")
            marm.Scale = Vector3.new(1.9, 0.9, 1.725)
            marm.Parent = p
            local amplitude
            local frequency
            amplitude = pi
            desiredAngle = amplitude
            RightShoulder.MaxVelocity = 0.4
            LeftShoulder.MaxVelocity = 0.4
            RightHip.MaxVelocity = pi/10
            LeftHip.MaxVelocity = pi/10
            RightShoulder.DesiredAngle = desiredAngle
            LeftShoulder.DesiredAngle = -desiredAngle
            RightHip.DesiredAngle = 0
            LeftHip.DesiredAngle = 0
        end
    end
end)
script.Parent.Deselected:connect(function()
a = 0
s = 0
bv:remove()
bg:remove()
if connection ~= nil then
connection:disconnect()
end
if moveconnect ~= nil then
moveconnect:disconnect()
end
if upconnect ~= nil then
upconnect:disconnect()
end
while s == 0 do
    wait()
    if #flow > 0 then
        flow = checktable(flow, true)
        local i
        for i = 1,#flow do
            flow[i].Transparency = flow[i].Transparency + rs
            if flow[i].Transparency >= 1 then flow[i]:remove() end
        end
    end
end
end)
while true do
    wait()
    if s == 1 then
        return
    end
end
script:remove()
0
For future reference, this is actually two separate questions. You're allowed to put them separately. :P adark 5487 — 8y
0
Also, are these Scripts or LocalScripts? Does Output show any errors? adark 5487 — 8y
0
They are both scripts,also,yes I know,I just really needed to ask both of them at once because I really needed help with them,the output says "RegisterSet/GetCore Not yet enabled if you want to test them here is the game:  http://www.roblox.com/games/283101157/DragonBlox-Z-Work-In-Progress-will-probably-never TheHappeePotato 5 — 8y

1 answer

Log in to vote
0
Answered by 8 years ago

I would just insert the ClickDetector inside of what you want to click, and instead of using a function like so: function blahblah(paramater), do this: (assuming the script/localscript is inside of the model that's being clicked)

script.Parent.ClickDetector.MouseClick:connect(function(pWC)
-- do stuff
end)

That's to make sure that the ClickDetector is actually there, and that the function is actually being called. I can't help you with the flying script, as I'm not too experienced with scripting, but I'm getting there.

0
I have click detector in there but it still doesn't give the tool when you click it,I have a link to my game in the question TheHappeePotato 5 — 8y
Ad

Answer this question