Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local RunService = game:GetService("RunService")
- local ignoreList = {
- script.Parent,
- workspace.LazorRays,
- }
- script.Parent.ClickDetector.MouseClick:Connect(function()
- local CreatedRay = Ray.new(script.Parent.Position, script.Parent.CFrame.LookVector*2048)
- local HitPart, HitPosition = workspace:FindPartOnRayWithIgnoreList(CreatedRay, ignoreList)
- local Part = Instance.new("Part", workspace.LazorRays)
- Part.Name = "LazorRay"
- if HitPart then
- Part.Size = Vector3.new(0.25,0.25, (script.Parent.Position - HitPosition).magnitude)
- else
- Part.Size = Vector3.new(0.25,0.25, 2048)
- end
- Part.Orientation = script.Parent.Orientation
- Part.Position = script.Parent.Position + Vector3.new(0, 0, -(Part.Size.Z/2))
- Part.Color = Color3.fromRGB(255, 0, 0)
- Part.Material = "Neon"
- Part.CanCollide = false
- Part.Anchored = true
- RunService.Heartbeat:Connect(function()
- if Part then
- local CreatedRay = Ray.new(script.Parent.Position, script.Parent.CFrame.LookVector*2048)
- local HitPart, HitPosition = workspace:FindPartOnRayWithIgnoreList(CreatedRay, ignoreList)
- if HitPart ~= nil then
- if HitPart.Transparency >= 0.5 or HitPart.Parent:IsA("Accessory") then
- table.insert(ignoreList, #ignoreList + 1, HitPart)
- CreatedRay = Ray.new(script.Parent.Position, script.Parent.CFrame.LookVector*2048)
- HitPart, HitPosition = workspace:FindPartOnRayWithIgnoreList(CreatedRay, ignoreList)
- else
- Part.Size = Vector3.new(0.25,0.25, (script.Parent.Position - HitPosition).magnitude)
- end
- else
- Part.Size = Vector3.new(0.25,0.25, 2048)
- end
- print(script.Parent.Orientation)
- Part.Position = script.Parent.Position + Vector3.new(0,0,-Part.Size.Z/2)
- Part.Orientation = script.Parent.Orientation
- end
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement