This script works flawlessly. However, when any player is in range not in green team, it follows it and ignores every NPC closer to it. It almost ignores every enemy NPC and goes for the players. How can I fix this? I see nothing wrong with this and how it can be creating this bug.
local dist = math.huge
local function findNearestTorso(pos)
local list = workspace:GetChildren()
for x = 1, #list do
local temp2 = list[x]
if (temp2.className == "Model") and (temp2 ~= script.Parent) then
local temp = temp2:findFirstChild("Torso")
local human = temp2:findFirstChild("Humanoid")
local player = game.Players:GetPlayerFromCharacter(temp2)
if not player and (temp) and (human) and (human.Health > 0) and human.Parent.Name ~= "Zombie" then
if (temp.Position - pos).magnitude < dist then
tochr = (temp.Position - pos)
local toPlayerRay = Ray.new(script.Parent.Head.Position, tochr)
local part = workspace:FindPartOnRay(toPlayerRay, script.Parent)
if part and part:IsDescendantOf(temp.Parent) then
print("soldier")
torso = temp
end
end
elseif player and (temp) and (human) and (human.Health > 0) and player.TeamColor ~= BrickColor.new("Bright green") then
if (temp.Position - pos).magnitude < dist then
tochr = (temp.Position - pos)
local toPlayerRay = Ray.new(script.Parent.Head.Position, tochr)
local part = workspace:FindPartOnRay(toPlayerRay, script.Parent)
if part and part:IsDescendantOf(temp.Parent) then
torso = temp
print("player")
end
end
end
end
end
return torso, tochr.magnitude
end
