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

How Do I Put This Script Into A Tool And Make It Work?

Asked by
ImfaoXD 158
8 years ago

Can anybody help me? How can I put this script into a tool? I try, but it doesn't work. What can I do for it to work?

Player = script.Parent.Parent
Player.CharacterAdded:wait(1)
Char = Player.Character
Left, Right = Char:WaitForChild("Left Arm"), Char:WaitForChild("Right Arm")

--Put in starterpack

--Controlls: Q And E

Distance = 10 --How far they can reach

Can = true

Mouse = Player:GetMouse()

Mouse.KeyDown:connect(function(Key)
    if string.lower(Key) == "q" then
        local Q = Left:FindFirstChild("Q")
        if Q then
            Q:remove()
        end
        local Pos = Mouse.Hit.p
        if (Pos - Left.Position).magnitude < Distance then
        if Can then
        Can = false
        local Body = Instance.new("BodyPosition", Left)
        Body.Name = "Q"
        Body.maxForce = Vector3.new(20000, 20000, 20000)
        Body.position = Pos
        local Part = Instance.new("Part", Char)
        Part.Transparency = 1
        Part.FormFactor = "Custom"
        Part.Size = Vector3.new(1, 1, 1)
        local Box = Instance.new("SelectionBox", Part)
        Box.Adornee = Part
        Part.CFrame = CFrame.new(Pos)
        Part.Name = "Q"
        wait(0.25)
        Can = true
        end
        end
    end
    if string.lower(Key) == "e" then
        local Pos = Mouse.Hit.p
        local E = Right:FindFirstChild("E")
        if E then
            E:remove()
        end
        if (Mouse.Hit.p - Right.Position).magnitude < Distance then
        if Can then
        Can = false
        local Body = Instance.new("BodyPosition", Right)
        Body.Name = "E"
        Body.maxForce = Vector3.new(20000, 20000, 20000)
        Body.position = Pos
        local Part = Instance.new("Part", Char)
        Part.Transparency = 1
        Part.FormFactor = "Custom"
        Part.Size = Vector3.new(1, 1, 1)
        local Box = Instance.new("SelectionBox", Part)
        Box.Adornee = Part
        Part.CFrame = CFrame.new(Pos)
        Part.Name = "E"
        wait(0.25)
        Can = true
        end
        end
    end
end)

Mouse.KeyUp:connect(function(Key)
    if string.lower(Key) == "q" then
        local Q = Left:FindFirstChild("Q")
        local Q2 = Char:FindFirstChild("Q")
        if Q then
            Q:remove()
        end
        if Q2 then
            Q2:remove()
        end
    end
    if string.lower(Key) == "e" then
        local E = Right:FindFirstChild("E")
        local E2 = Char:FindFirstChild("E")
        if E then
            E:remove()
        end
        if E2 then
            E2:remove()
        end
    end
end)

Thanks.

1 answer

Log in to vote
1
Answered by
1waffle1 2908 Trusted Badge of Merit Moderation Voter Community Moderator
8 years ago

script.Parent.Parent is not the player, it is the character. The script runs when the tool is selected, it doesn't run while it's still in the backpack. The wait method also does not take any arguments. You don't need to wait for the character in this case, though.

Replace the first 3 lines with this

Char = script.Parent.Parent
Player = game.Players:GetPlayerFromCharacter(Char)
Ad

Answer this question