Script:
local pathfindingservice = game:GetService("PathfindingService")
local path = pathfindingservice:CreatePath()
local Zombie = script.Parent
local target
local player = game.Players:GetPlayers()[math.random(1,#game.Players:GetPlayers())]
if workspace:FindFirstChild(player.Name) then
local char = workspace:FindFirstChild(player.Name)
if char.Humanoid.Health > 0 then
target = char
end
end
local function changeTarget()
local player = game.Players:GetPlayers()[math.random(1,#game.Players:GetPlayers())]
if workspace:FindFirstChild(player.Name) then
local char = workspace:FindFirstChild(player.Name)
if char.Humanoid.Health > 0 then
target = char
end
end
end
local function chaseTarget()
if game.ReplicatedStorage:FindFirstChild(target.Name) then
local goalPos = game.ReplicatedStorage[target.Name].Value
local human = Zombie.Humanoid
local torso = Zombie.Torso
path:ComputeAsync(torso.Position, goalPos)
local waypoints = path:GetWaypoints()
for i, waypoint in pairs(waypoints) do
if waypoint.Action == Enum.PathWaypointAction.Jump then
human:ChangeState(Enum.HumanoidStateType.Jumping)
end
human:MoveTo(waypoint.Position)
if target.Humanoid.Health <= 0 then
changeTarget()
end
human.MoveToFinished:Wait()
end
end
end
while wait() do
chaseTarget()
end
