local Tool = script.Parent
function CFrameToOrientation(cf: CFrame)
local rx, ry, rz = cf:ToOrientation()
return Vector3.new(math.deg(rx), math.deg(ry), math.deg(rz))
end
Tool.Activated:Connect(function()
local RayOrigin = Tool.Handle.Position
local Player = game.Players.LocalPlayer
local RayTarget = Player:GetMouse().Hit.Position
local RayDirection = CFrameToOrientation(CFrame.lookAt(RayOrigin, RayTarget))*math.huge
game.ReplicatedStorage.FireRaycast:FireServer(RayOrigin, RayDirection)
end)
game.ReplicatedStorage.FireRaycast.OnServerEvent:Connect(function(Player, RayOrigin, RayDirection, Params)
local Params = RaycastParams.new()
Params.FilterDescendantsInstances = {Player.Character, script.Parent}
Params.FilterType = Enum.RaycastFilterType.Exclude
local RaycastResult = game.Workspace:Raycast(RayOrigin, RayDirection, Params)
if RaycastResult then
if RaycastResult.Instance.Parent:FindFirstChild("Humanoid") then
RaycastResult.Instance.Parent.Humanoid:TakeDamage(10)
end
local Tracer = Instance.new("Part")
Tracer.BrickColor = BrickColor.new("Bright yellow")
Tracer.Transparency = 0.5
Tracer.Position = RaycastResult.Position - RayOrigin
else
warn("No RaycastResult")
end
end)