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

How to change the CFrame for a raycast shotgun?

Asked by 6 years ago

I been trying four hours on how to change the raycasts CFrame to be like a funnel shoot and spread.


function shot(player,mousehit,tool) --mousehit = mouse.Hit.p math.randomseed(tick()) local spread = 60 local ray = Ray.new(tool.Handle.tip.CFrame.p, (mousehit - tool.Handle.tip.CFrame * CFrame.Angles(math.random(-120,120),math.random(-120,120),0).p).unit * 30) local hit, position = workspace:FindPartOnRay(ray, player.Character, false, true) print(hit) local beam = Instance.new("Part", workspace) beam.BrickColor = BrickColor.new("Black")--customTrail) beam.FormFactor = "Custom" beam.Material = "Neon" beam.Transparency = 0.25 beam.Anchored = true beam.Locked = true beam.CanCollide = false print(spread) local distance = (tool.Handle.tip.CFrame.p - position).magnitude beam.Size = Vector3.new(0.1, 0.1, distance) beam.CFrame = CFrame.new(tool.Handle.tip.CFrame * CFrame.Angles(math.random(-120,120),math.random(-120,120),0).p, position) * CFrame.new(0, 0, -distance / 2) print(spread) game:GetService("Debris"):AddItem(beam, 0.1) if hit then if hit.Parent:FindFirstChild("Humanoid") or hit.Parent.Parent:FindFirstChild("Humanoid") then if hit.Name == "Right Leg" or "Left Leg" or "Right Arm" or "Left Arm" or "Torso" then hit.Parent.Humanoid:TakeDamage(pistolStats.Damage) end if hit.Name == "Head" then hit.Parent.Humanoid:TakeDamage(pistolStats.HeadShot) end if hit.Name == "Accessory" then hit.Parent.Parent.Humanoid:TakeDamage(pistolStats.Damage) end end end end

Answer this question