← Все практические скрипты
NPC · Уверенный · 25 мин

NPC-патруль по точкам

Охранник ходит между точками маршрута и начинает путь сначала.

Иллюстрация: NPC-патруль по точкам
🎯 Что получится

NPC идёт по точкам P1, P2, P3 и снова возвращается к P1. Используется PathfindingService для обхода препятствий.

1. Подготовьте объект

Где разместить: Обычный Script в ServerScriptService

Создайте NPC через Avatar → Rig Builder, назовите модель GuardNPC; убедитесь, что HumanoidRootPart не Anchored.
В Workspace создайте Folder PatrolPoints с тремя Part: P1, P2, P3. Сделайте их невидимыми (Transparency = 1), Anchored = true, CanCollide = false.
В ServerScriptService вставьте обычный Script. Убедитесь, что между точками есть проход.

2. Вставьте код

Script
local PathfindingService = game:GetService("PathfindingService")
local npc = workspace:WaitForChild("GuardNPC")
local humanoid = npc:WaitForChild("Humanoid")
local root = npc:WaitForChild("HumanoidRootPart")
local folder = workspace:WaitForChild("PatrolPoints")
local points = {folder:WaitForChild("P1"), folder:WaitForChild("P2"), folder:WaitForChild("P3")}
local function moveTo(target)
    local path = PathfindingService:CreatePath({AgentRadius = 2, AgentHeight = 5, AgentCanJump = true})
    local ok, err = pcall(function() path:ComputeAsync(root.Position, target.Position) end)
    if not ok or path.Status ~= Enum.PathStatus.Success then
        warn("Не удалось построить путь: " .. tostring(err))
        return
    end
    for _, waypoint in ipairs(path:GetWaypoints()) do
        if waypoint.Action == Enum.PathWaypointAction.Jump then humanoid.Jump = true end
        humanoid:MoveTo(waypoint.Position)
        if not humanoid.MoveToFinished:Wait() then return end
    end
end
while humanoid.Health > 0 do
    for _, point in ipairs(points) do
        if humanoid.Health <= 0 then break end
        moveTo(point)
        task.wait(1)
    end
end

3. Проверьте в игре

Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.

Ваш прогресс

Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.

Если объединяете несколько скриптов

Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.

⭐ Три шага к собственной игре
1. Повторите и измените

Измените скорость NPC через humanoid.WalkSpeed = 10.

2. Улучшите

Добавьте четвёртую точку P4 в маршрут и в список points.

3. Придумайте своё

Постройте музей, который охраняет NPC с фонариком.

4. Проверьте себя

Что обозначают точки P1, P2 и P3?

🛠 Если не работает

У NPC должен быть Humanoid, HumanoidRootPart и незаанкеренные части. Точки должны быть достижимы по полу. Если PathfindingService не строит путь, увеличьте расстояние от стен.