I made an assault rifle with automatic firing, but if I quickly press the firing button several times, the firing script is triggered several times, and it turns out that the rifle makes several shots at once. How can I fix this?
Local Script
Mouse.Button1Down:Connect(function() script.Parent.shot.Value = true while true do if script.Parent.shot.Value == false then break end RemoteEvent:FireServer(Mouse.hit.p) wait(0.4) end end) Mouse.Button1Up:Connect(function() script.Parent.shot.Value = false end)
Server Script
local Speed = 500 local BulletSize = Vector3.new(0.5,0.5,0.5) script.Parent.RemoteEvent.OnServerEvent:Connect(function(plr,Pos) local Origin = TOOL.Handle.CFrame.Position local Bul = Instance.new("Part") local bod = Instance.new("BodyVelocity") Bul.Size = BulletSize Bul.Material = ("Neon") Bul.CanCollide = false local dmg = script.Parent.DamageScript:Clone() dmg.Parent = Bul dmg.Disabled = false local own = Instance.new("StringValue") own.Parent = Bul own.Value = TOOL.Parent.Name Bul.CFrame = CFrame.new(Origin) * CFrame.new(0,0,1) bod.Parent = Bul bod.Velocity = (Pos - Origin).Unit*Speed Bul.Parent = workspace script.Rifle:Play() end)
Sorry for my English, I use google translate :)