Untitled
unknown
plain_text
6 months ago
1.4 kB
3
Indexable
local desgx, desgz = hroot.Position.x+math.random(-WanderX,WanderX), hroot.Position.z+math.random(-WanderZ,WanderZ) local function checkw(t) local ci = 3 if ci > #t then ci = 3 end if t[ci] == nil and ci < #t then repeat ci = ci + 1 wait() until t[ci] ~= nil return Vector3.new(1,0,0) + t[ci] else ci = 3 return t[ci] end end path = pfs:FindPathAsync(hroot.Position, Vector3.new(desgx, 0, desgz)) waypoint = path:GetWaypoints() local connection; local direct = Vector3.FromNormalId(Enum.NormalId.Front) local ncf = hroot.CFrame * CFrame.new(direct) direct = ncf.p.unit local rootr = Ray.new(hroot.Position, direct) local phit, ppos = game.Workspace:FindPartOnRay(rootr, hroot) if path and waypoint or checkw(waypoint) then if checkw(waypoint) ~= nil and checkw(waypoint).Action == Enum.PathWaypointAction.Walk then human:MoveTo( checkw(waypoint).Position ) human.Jump = false end if checkw(waypoint) ~= nil and checkw(waypoint).Action == Enum.PathWaypointAction.Jump then connection = human.Changed:connect(function() human.Jump = true end) human:MoveTo( waypoint[4].Position ) else human.Jump = false end if connection then connection:Disconnect() end else for i = 3, #waypoint do human:MoveTo( waypoint[i].Position ) end end
Editor is loading...
Leave a Comment