Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Head Hitbox for Enemies Only
- local player = game.Players.LocalPlayer
- -- Define team groups
- local classDAndChaosInsurgency = { "Class - D", "Chaos Insurgency" }
- local otherTeams = { "Security Department", "Mobile Task Force", "Internal Security Department", "Administrative Department", "Intelligence Agency", "Rapid Response Team", "Scientific Department", "Medical Department" }
- local resizedHeads = {} -- Track resized heads
- -- Function to check if a player's team is an enemy team
- local function isOnEnemyTeam(targetPlayer)
- if targetPlayer.Team then
- local playerTeam = player.Team and player.Team.Name
- local targetTeam = targetPlayer.Team.Name
- if table.find(classDAndChaosInsurgency, playerTeam) then
- return table.find(otherTeams, targetTeam) ~= nil
- else
- return table.find(classDAndChaosInsurgency, targetTeam) ~= nil
- end
- end
- return false
- end
- -- Function to resize heads and set color to match player's skin tone
- local function resizeHead(character, headSize)
- local head = character:FindFirstChild("Head")
- if head then
- -- Save original properties
- if not resizedHeads[character] then
- resizedHeads[character] = {
- head = head,
- originalSize = head.Size,
- originalTransparency = head.Transparency,
- originalMaterial = head.Material,
- originalCanCollide = head.CanCollide
- }
- end
- -- Find the player's skin tone (assuming "Left Arm" has the correct skin color)
- local leftArm = character:FindFirstChild("Left Arm") or character:FindFirstChild("LeftUpperArm")
- if leftArm then
- head.BrickColor = leftArm.BrickColor
- else
- head.BrickColor = BrickColor.new("Really white") -- Default if skin tone cannot be found
- end
- head.Size = Vector3.new(headSize, headSize, headSize)
- head.Transparency = 1.0 -- Make head fully opaque
- head.Material = "Neon"
- head.CanCollide = false
- end
- end
- -- Function to handle character addition for enemies
- local function onCharacterAdded(character)
- local headSize = 3 -- Resize head size to 3
- resizeHead(character, headSize)
- end
- -- Function to handle player addition for enemies
- local function onPlayerAdded(enemyPlayer)
- enemyPlayer.CharacterAdded:Connect(function(character)
- onCharacterAdded(character)
- end)
- -- If the player already has a character, resize the head immediately
- if enemyPlayer.Character then
- onCharacterAdded(enemyPlayer.Character)
- end
- end
- -- Function to update enemies when the player's team changes
- local function updateEnemies()
- -- Restore original properties for all players
- for character, tracked in pairs(resizedHeads) do
- if tracked.head then
- tracked.head.Size = tracked.originalSize
- tracked.head.Transparency = tracked.originalTransparency
- tracked.head.Material = tracked.originalMaterial
- tracked.head.CanCollide = tracked.originalCanCollide
- end
- end
- resizedHeads = {}
- -- Resize heads for current enemies
- for _, v in ipairs(game:GetService('Players'):GetPlayers()) do
- if v ~= player and isOnEnemyTeam(v) then
- onPlayerAdded(v)
- end
- end
- end
- -- Initial update of enemies
- updateEnemies()
- -- Update enemies if the local player's team changes
- player:GetPropertyChangedSignal("Team"):Connect(updateEnemies)
- -- Connect the player added event
- game:GetService('Players').PlayerAdded:Connect(function(newPlayer)
- if newPlayer ~= player and isOnEnemyTeam(newPlayer) then
- onPlayerAdded(newPlayer)
- end
- end)
- -- Function to repeatedly resize heads of enemies every second
- local function autoResizeHeads()
- while true do
- wait(1) -- Wait for 1 second
- for _, v in ipairs(game:GetService('Players'):GetPlayers()) do
- if v ~= player and isOnEnemyTeam(v) then
- pcall(function()
- local character = v.Character
- if character then
- local headSize = 3 -- Resize head size to 3
- resizeHead(character, headSize)
- end
- end)
- end
- end
- end
- end
- -- Start a new thread to auto-resize heads of enemies
- coroutine.wrap(autoResizeHeads)()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement