Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Why is the gun still shooting when Reloading?

local tool = script.Parent
local player = game:GetService("Players").LocalPlayer
local ammo = 8
local isReload = false

tool.Equipped:connect(function(mouse)
	print("Pistol Equipped")
	
	mouse.Button1Down:connect(function()
		print("Mouse Clicked")
		ammo = ammo - 1		
		
		local ray = Ray.new(tool.Handle.CFrame.p, (mouse.Hit.p - tool.Handle.CFrame.p).unit * 200)
		local part, position = workspace:FindPartOnRay(ray, player.Character, false, true)
		
		
		local beam = Instance.new("Part", workspace)
		beam.BrickColor = BrickColor.new("Gray")
		beam.FormFactor = "Custom"
		beam.Material = "Neon"
		beam.Transparency = 0.75
		beam.Anchored = true
		beam.Locked = true
		beam.CanCollide = false
		
		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)
		
		game:GetService("Debris"):AddItem(beam, 0.1)
		
		if part then
			
			local humanoid = part.Parent:FindFirstChild("Humanoid")
			
			if not humanoid then
				humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
			end
					
			if humanoid then
				humanoid:TakeDamage(30)
			end
			
			--reloading
			if ammo > 0 then
				print("Ammo")
				isReload = false
			else
				tool.Name = "Reloading"
				isReload = true
				wait(2)
				tool.Name = "Pistol"
				ammo = 8
				print("Reloaded")
				isReload = false
			end	
			--done reloading
		end
	end)
end)

The gun continues to shoot when it reloading for two seconds. How do I make it stop shooting while it's reloading? I've already tried a few things.

1 comment

0

"if isReload then" at the top and then an else right after it

1 answer

✓ Accepted answer

--You are not checking if you are reloading in your code. You need to use an if statement to check if reloading when the player clicks.

local tool = script.Parent
local player = game:GetService("Players").LocalPlayer
local ammo = 8
local isReload = false

tool.Equipped:connect(function(mouse)
    print("Pistol Equipped")

    mouse.Button1Down:connect(function()
        print("Mouse Clicked")
	if (not isReload) and ammo > 0 then -- if Player is not reloading
	        ammo = ammo - 1     
	
	        local ray = Ray.new(tool.Handle.CFrame.p, (mouse.Hit.p - tool.Handle.CFrame.p).unit * 200)
	        local part, position = workspace:FindPartOnRay(ray, player.Character, false, true)
	
	
	        local beam = Instance.new("Part", workspace)
	        beam.BrickColor = BrickColor.new("Gray")
	        beam.FormFactor = "Custom"
	        beam.Material = "Neon"
	        beam.Transparency = 0.75
	        beam.Anchored = true
	        beam.Locked = true
	        beam.CanCollide = false
	
	        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)
	
	        game:GetService("Debris"):AddItem(beam, 0.1)
	
	        if part then
	
	            local humanoid = part.Parent:FindFirstChild("Humanoid")
	
	            if not humanoid then
	                humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
	            end
	
	            if humanoid then
	                humanoid:TakeDamage(30)
	            end
		end
	else
		tool.Name = "Reloading"
                isReload = true
                wait(2)
                tool.Name = "Pistol"
                ammo = 8
                print("Reloaded")
                isReload = false
	end
           
 --reloading
    end)
end)

This discussion is preserved as it was. New answers, comments, and votes are closed.