Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local punch = {}
- local remote = game.ReplicatedStorage.Remotes.Combat.CombatEvent
- function punch.Punch(char: Part, combatRayLength: number, visualize: boolean, punchType: string, stand: Part, combo: number)
- local raycastParams = RaycastParams.new()
- raycastParams.FilterDescendantsInstances = char:GetDescendants()
- raycastParams.FilterType = Enum.RaycastFilterType.Exclude
- raycastParams.IgnoreWater = true
- local sfx = game:GetService("SoundService").Combat.Swing:Clone()
- sfx.Parent = char
- sfx:Destroy()
- local raycastResults
- if not stand then
- raycastResults = workspace:Raycast(char.HumanoidRootPart.Position, char.HumanoidRootPart.CFrame.LookVector * combatRayLength, raycastParams)
- else
- raycastResults = workspace:Raycast(char.HumanoidRootPart.Position, char.HumanoidRootPart.CFrame.LookVector * combatRayLength, raycastParams)
- end
- local distance = combatRayLength
- if visualize then
- local visualizer = Instance.new("Part")
- visualizer.Anchored = true
- visualizer.Transparency = 0.3
- visualizer.Parent = workspace
- visualizer.CanCollide = false
- visualizer.CanQuery = false
- visualizer.Size = Vector3.new(0.1, 0.1, distance)
- visualizer.CFrame = CFrame.new(char.HumanoidRootPart.Position, char.HumanoidRootPart.Position + char.HumanoidRootPart.CFrame.LookVector * 6) * CFrame.new(0, 0, -distance/2)
- game.Debris:AddItem(visualizer, 2)
- end
- if raycastResults then
- local name = raycastResults.Instance.Name
- local hitDirection = "None"
- if raycastResults.Instance.Parent:FindFirstChild("HumanoidRootPart") then
- local lookArea = (char.HumanoidRootPart.Position - raycastResults.Instance.Position).Unit
- local dotProduct = lookArea:Dot(raycastResults.Instance.Parent.HumanoidRootPart.CFrame.LookVector)
- if dotProduct >= 0 then
- -- FRONT
- hitDirection = "Front"
- else
- -- BACK
- hitDirection = "Back"
- end
- remote:FireServer(raycastResults.Instance, punchType, hitDirection, combo)
- end
- end
- end
- return punch
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement