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

Why can't my gun shoot bullets?

Asked by
Mr_Unlucky 1085 Moderation Voter
6 years ago

For some reason, my gun doesnt shoot anymore. Back then it was working perfectly fine! CODE:

--MADE BY MR_UNLUCKY
local tool = script.Parent
local player = game:GetService("Players").LocalPlayer
local Reload = tool.Reload
local Shoot = tool.Shot
local GUI = tool.ScreenGui
local damageBODY = 10
local damageHEAD = 30
local Equip = tool.Equip
local bullets = 15
local Players = game:GetService("Players")
local mouse = game.Players.LocalPlayer:GetMouse()
local clips = 3
tool.Equipped:connect(function(mouse)
    print("Tool equipped!")
    local newGUI = GUI:Clone()
    newGUI.Parent = Players.LocalPlayer.PlayerGui
    Players.LocalPlayer.PlayerGui.ScreenGui.Frame.Bullets.Text = "Bullets:"..bullets..""
    Players.LocalPlayer.PlayerGui.ScreenGui.Frame.GunName.Text = tool.Name
    mouse.Icon = "rbxassetid://936803874" --the image id of the decal is 936803874
    mouse.Button1Down:connect(function()
        if bullets <= 0 and clips >= 1  then
            Reload:Play()
            mouse.Icon = "rbxassetid://43557167" --the image id of the decal is 43557167
            Players.LocalPlayer.PlayerGui.ScreenGui.Frame.Bullets.Text = "RELOADING"
            wait(3.2)               
            bullets = 15   
            Players.LocalPlayer.PlayerGui.ScreenGui.Frame.Bullets.Text = ""..bullets.."/"..clips..""
            mouse.Icon = "rbxassetid://936803887" --the image id of the decal is 936803887
            clips = clips - 1
        elseif clips == not 0 then
        print("Mouse pressed!")
        local ray = Ray.new(tool.Handle.CFrame.p, (mouse.Hit.p - tool.Handle.CFrame.p).unit * 300)
        local part, position = workspace:FindPartOnRay(ray, player.Character, false, true)
            local beam = Instance.new("Part", workspace)
            beam.BrickColor = BrickColor.new("Medium stone grey")
            beam.FormFactor = "Custom"
            beam.Material = "Metal"
            beam.Transparency = 0.25
            beam.Anchored = true
            beam.Locked = true
            beam.CanCollide = false
            bullets = bullets - 1
            print(bullets)
            local distance = (tool.Handle.CFrame.p - position).magnitude
            beam.Size = Vector3.new(0.3, 0.3, distance)
            beam.CFrame = CFrame.new(tool.Handle.CFrame.p, position) * CFrame.new(0, 0, -distance / 2)
            Shoot:Play()       
            game:GetService("Debris"):AddItem(beam, 0.1)
            Players.LocalPlayer.PlayerGui.ScreenGui.Frame.Bullets.Text = ""..bullets.."/"..clips..""
            if part then
            local rightLeg = part.Parent:FindFirstChild("RightLeg")
            local leftLeg = part.Parent:FindFirstChild("LeftLeg")
            local rightArm = part.Parent:FindFirstChild("RightArm")
            local leftArm = part.Parent:FindFirstChild("LeftArm")
            local torso = part.Parent:FindFirstChild("Torso")
            local head = part.Parent:FindFirstChild("Head")
            local humanoid = part.Parent:FindFirstChild("Humanoid")
            if not rightLeg or leftLeg or rightArm or leftArm or torso or head then
                local rightLeg = part.Parent:FindFirstChild("RightLeg")
                local leftLeg = part.Parent:FindFirstChild("LeftLeg")
                local rightArm = part.Parent:FindFirstChild("RightArm")
                local leftArm = part.Parent:FindFirstChild("LeftArm")
                local torso = part.Parent:FindFirstChild("Torso")
                local head = part.Parent:FindFirstChild("Head")
            end
            if rightLeg or leftLeg or rightArm or leftArm or torso then
                humanoid:TakeDamage(damageBODY)
            end
            if head then
                humanoid:TakeDamage(damageHEAD)
            end
end
tool.Unequipped:connect(function(mouse)     
    Players.LocalPlayer.PlayerGui.ScreenGui:Destroy()
    end)
    end)
    end)

0
I question, why use Players.LocalPlayer when you already have the variable "player"? sweetkid01 176 — 6y
0
Try connect like this: Connect. I had a problem like this before and the capital 'C' helped me. TheDexterousBuilder 0 — 6y
0
rewrite the script and separate the functions hellmatic 1523 — 6y

Answer this question