Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local hitboxModule = {}
- --// Service //--
- local Players = game:GetService('Players')
- --// Etc //--
- --// Function //--
- function hitboxModule.CreateOnceHitbox(character, size, offset, showHitbox)
- local player = Players:GetPlayerFromCharacter(character)
- local humanoidRootPart = character:FindFirstChild('HumanoidRootPart')
- local enemyCharacter
- local params = OverlapParams.new()
- params.FilterDescendantsInstances = {character}
- if showHitbox == true then
- local result = Instance.new('Part')
- result.Size = size
- result.CFrame = character.HumanoidRootPart.CFrame * offset
- result.Color = Color3.fromRGB(255)
- result.Transparency = 0.9
- result.Material = Enum.Material.Plastic
- result.Anchored = true
- result.CanCollide = false
- result.CanTouch = false
- result.CanQuery = false
- result.Parent = workspace
- game.Debris:AddItem(result, 1)
- end
- local hitboxContent = workspace:GetPartBoundsInBox(character.HumanoidRootPart.CFrame * offset, size, params)
- local hitCharacter = {}
- for _, part in hitboxContent do
- if part.Parent:FindFirstChild('Humanoid') and not table.find(hitCharacter, part.Parent) then
- enemyCharacter = part.Parent
- table.insert(hitCharacter, enemyCharacter)
- end
- end
- return enemyCharacter
- end
- function hitboxModule.CreateHitbox(character, size, offset, showHitbox)
- local player = Players:GetPlayerFromCharacter(character)
- local humanoidRootPart = character:FindFirstChild('HumanoidRootPart')
- local enemyCharacter
- local params = OverlapParams.new()
- params.FilterDescendantsInstances = {character}
- if showHitbox == true then
- local result = Instance.new('Part')
- result.Size = size
- result.CFrame = character.HumanoidRootPart.CFrame * offset
- result.Color = Color3.fromRGB(255)
- result.Transparency = 0.9
- result.Material = Enum.Material.Plastic
- result.Anchored = true
- result.CanCollide = false
- result.CanTouch = false
- result.CanQuery = false
- result.Parent = workspace
- game.Debris:AddItem(result, 1)
- end
- local hitboxContent = workspace:GetPartBoundsInBox(character.HumanoidRootPart.CFrame * offset, size, params)
- local hitCharacter = {}
- for _, part in hitboxContent do
- if part.Parent:FindFirstChild('Humanoid') and not table.find(hitCharacter, part.Parent) then
- enemyCharacter = part.Parent
- table.insert(hitCharacter, enemyCharacter)
- end
- end
- return hitCharacter
- end
- --finjer
- function hitboxModule.CreateHitboxWithoutChar(pos : Vector3, size, shape, showHitbox)
- local enemyCharacter
- if showHitbox == true then
- local result = Instance.new('Part')
- result.Size = Vector3.new(size, size, size)
- result.CFrame = CFrame.new(pos)
- result.Color = Color3.fromRGB(255)
- result.Transparency = 0.2
- result.Anchored = true
- result.CanCollide = false
- result.CanTouch = false
- result.CanQuery = false
- result.Shape = Enum.PartType[shape]
- result.Parent = workspace
- game.Debris:AddItem(result, 1)
- end
- local hitboxContent
- if shape == 'Ball' then
- hitboxContent = workspace:GetPartBoundsInRadius(pos, size)
- elseif shape == 'Block' then
- hitboxContent = workspace:GetPartBoundsInBox(CFrame.new(math.round(pos.X), math.round(pos.Y), math.round(pos.Z)), size)
- end
- local hitCharacter = {}
- for _, part in hitboxContent do
- if part.Parent:FindFirstChild('Humanoid') and not table.find(hitCharacter, part.Parent) then
- enemyCharacter = part.Parent
- table.insert(hitCharacter, enemyCharacter)
- end
- end
- return hitCharacter
- end
- return hitboxModule
Advertisement
Add Comment
Please, Sign In to add comment