local entity = script.Parent
-- // ТАБЛИЦА НАСТРОЕК
local Config = {
DistancePerStep = 8, -- На сколько стадов прыгает за шаг
-- Фаза 1 (Обычная)
NormalSteps = 6, -- Кол-во шагов
NormalInterval = 1, -- Интервал между шагами (сек)
-- Фаза 2 (Замирание)
PauseDuration = 2, -- Длительность паузы (сек)
-- Фаза 3 (Комбо)
ComboSteps = 6, -- Кол-во шагов в комбо
ComboInterval = 0.5, -- Интервал в комбо (сек)
-- Ссылки на объекты (имена внутри парта/модели)
Anims = {
Move = "MoveAnim",
},
Sounds = {
Step = "MoveSound",
Stop = "StopSound",
}
}
-- // Инициализация компонентов
local animator = entity:FindFirstChildOfClass("Animator") or entity:FindFirstChild("Humanoid") and entity.Humanoid:FindFirstChildOfClass("Animator")
local moveAnim = entity:FindFirstChild(Config.Anims.Move)
local stepSound = entity:FindFirstChild(Config.Sounds.Step)
local stopSound = entity:FindFirstChild(Config.Sounds.Stop)
local moveTrack
if animator and moveAnim then
moveTrack = animator:LoadAnimation(moveAnim)
end
-- // Функция перемещения
local function performMove()
-- Движение вперёд (по вектору LookVector)
entity.CFrame = entity.CFrame * CFrame.new(0, 0, -Config.DistancePerStep)
-- Эффекты
if moveTrack then moveTrack:Play() end
if stepSound then stepSound:Play() end
end
-- // ГЛАВНЫЙ ЦИКЛ
while true do
-- 1. Обычное преследование
for i = 1, Config.NormalSteps do
performMove()
task.wait(Config.NormalInterval)
end
-- 2. Пауза
if stopSound then stopSound:Play() end
task.wait(Config.PauseDuration)
-- 3. Комбо-рывок
for i = 1, Config.ComboSteps do
performMove()
task.wait(Config.ComboInterval)
end
end