So, I'm making an RPG game, and my enemies sometimes break. They don't move at all! There are no errors or anything, they just stop working.
There's a few other things in my code, like the exp on death and stuff, but here's the loop:
while true do
local low = script.Parent.Detect.Value
local plr = nil
--check distances
for _, player in pairs(game.Players:GetPlayers()) do
dis = player:DistanceFromCharacter(script.Parent.Head.Position)
if dis <= low then
plr = player
low = dis --as soon as I added this line the code started breaking
end
end
wait(.01)
-- if there is a player in range, move to it
if plr and plr.Character then
repeat
if plr.Character:FindFirstChild("HumanoidRootPart") then move(plr.Character.HumanoidRootPart) end
if plr.Character.Head.Position.Y >= script.Parent.Head.Position.Y + 1 then script.Parent.Humanoid.Jump = true end
wait(.01)
until plr:DistanceFromCharacter(script.Parent.Head.Position) >= script.Parent.Detect.Value or not plr.Character:FindFirstChild("HumanoidRootPart")
if plr.Character:FindFirstChild("HumanoidRootPart") then move(plr.Character.HumanoidRootPart) end
end
end
Oh, and I should probably add the move function here too:
function move(part)
if part then
local to = part.Position
local p = part.Parent[part.Name]
script.Parent.Humanoid:MoveTo(to,p)
end
end
please help
