ClosestEnemy (GetPlayersInRange)
local function getClosestEnemy(playersInRange)
local localPlayer = Players.LocalPlayer
local localCharacter = localPlayer.Character
if not localCharacter then
return nil
end
local localRootPart = localCharacter:FindFirstChild("HumanoidRootPart")
if not localRootPart then
return nil
end
local closestEnemy = nil
local shortestDistance = math.huge
for _, enemyPlayer in pairs(playersInRange) do
if enemyPlayer ~= localPlayer then
local enemyCharacter = enemyPlayer.Character
if enemyCharacter then
local enemyRootPart = enemyCharacter:FindFirstChild("HumanoidRootPart")
if enemyRootPart then
local enemyPosition, onScreen = workspace.CurrentCamera:WorldToViewportPoint(enemyRootPart.Position)
if onScreen then
local distance = (localRootPart.Position - enemyRootPart.Position).Magnitude
if distance < shortestDistance then
closestEnemy = enemyPlayer
shortestDistance = distance
end
end
end
end
end
end
return closestEnemy
end
Last updated