This started a while ago when I was using the old pathfinding (not the new one that was just released today) where a path just wasn't generated when the finish point was somewhat above the starting point. I thought the updated pathfinding would fix this problem, but it's still the same. I have zombies that chase you, but they just stop when you jump or you're above them. Here's the code, check it out and please help me figure out what's wrong!

wait()
local enemies = script.Parent.EnemyFolder.Value

function findNearestTorso(pos)
	local list = enemies:GetChildren()
	local torso = nil
	local dist = 1024
	local temp = nil
	local human = nil
	local temp2 = nil
	for x = 1, #list do
		temp2 = list[x]
		if (temp2.className == "Model") and (temp2 ~= script.Parent) and game.Players:GetPlayerFromCharacter(temp2) then
			temp = temp2:findFirstChild("HumanoidRootPart")
			human = temp2:findFirstChild("Humanoid")
			if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then
				if (temp.Position - pos).magnitude < dist then
					torso = temp
					dist = (temp.Position - pos).magnitude
				end
			end
		end
	end
	return torso
end

while wait() do
	if script.Parent ~= nil then
		local target = findNearestTorso(script.Parent.HumanoidRootPart.Position)
		if target then
			local path = game:GetService("PathfindingService"):FindPathAsync(script.Parent.HumanoidRootPart.Position, target.Position)
			local waypoints = path:GetWaypoints()
			if #waypoints > 2 then
				script.Parent.Humanoid:MoveTo(waypoints[3].Position)
				if waypoints[3].Action == Enum.PathWaypointAction.Jump then
					script.Parent.Humanoid.Jump = true
				end
			elseif #waypoints >= 1 then
				script.Parent.Humanoid:MoveTo(waypoints[2].Position)
				if waypoints[2].Action == Enum.PathWaypointAction.Jump then
					script.Parent.Humanoid.Jump = true
				end
			end
		end
	end
end

6 comments

0

You only index 3 and 2 in the waypoints array?

0

It's going off of an old script someone helped we with for an old game of mine for pathfinding zombies. They just said to use 2 and 3 so I just went with it and it worked. Then roblox did something a while ago and broke the pathfinding when I'm above the zombies.

0

Stop doing complex calculations 33 times a second. Is it really necessary? Is everyone going at 100000000 studs per second that you need to update that fast?

0

This was back when I didn't have a clue about pathfinding and someone else helped me with it by telling me to do that. It worked then, but now roblox messed something up and I'm trying to figure out how to fix it. The speed of the loop is not the problem.

0

When I comment on a question, it is called a suggestion, not an answer.

0

Sorry if this is off-topic but how does one find the ".Action" in an element in the "waypoints" array?