local success, OrionLib = pcall(function() return loadstring(game:HttpGet("https://raw.githubusercontent.com/jensonhirst/Orion/main/source"))() end) if not success or not OrionLib then warn("Не удалось загрузить Orion UI! Проверьте подключение или исполнитель.") return end local Window = OrionLib:MakeWindow({ Name = "TinyTask Macro | Solara Edition", HidePremium = false, SaveConfig = false, ConfigFolder = "OrionMacroConfig" }) local RunService = game:GetService("RunService") local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local isRecording = false local isReplaying = false local loopReplay = false local recordedData = {} local startTime = 0 local replayConnection = nil local Tab = Window:MakeTab({ Name = "Recorder", Icon = "rbxassetid://4483345998", PremiumOnly = false }) local StatusLabel = Tab:AddLabel("Статус: Ожидание") RunService.RenderStepped:Connect(function() if isRecording then local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then local currentTime = os.clock() - startTime table.insert(recordedData, { Time = currentTime, CFrame = character.HumanoidRootPart.CFrame, CameraCFrame = workspace.CurrentCamera.CFrame }) StatusLabel:Set("Запись... Точек: " .. #recordedData) end end end) local function stopReplay() if replayConnection then replayConnection:Disconnect() replayConnection = nil end isReplaying = false StatusLabel:Set("Статус: Остановлено") end local function startReplay() if #recordedData == 0 then StatusLabel:Set("Ошибка: Нет записанных данных!") return end if isReplaying then return end isReplaying = true task.spawn(function() repeat local replayStartTime = os.clock() local index = 1 local completed = false replayConnection = RunService.RenderStepped:Connect(function() if not isReplaying then if replayConnection then replayConnection:Disconnect() end return end local elapsed = os.clock() - replayStartTime while index <= #recordedData and recordedData[index].Time <= elapsed do local frame = recordedData[index] local character = LocalPlayer.Character if character and character:FindFirstChild("HumanoidRootPart") then character.HumanoidRootPart.CFrame = frame.CFrame workspace.CurrentCamera.CFrame = frame.CameraCFrame end index = index + 1 end StatusLabel:Set("Воспроизведение: " .. index .. "/" .. #recordedData) if index > #recordedData then completed = true end end) repeat task.wait() until completed or not isReplaying if replayConnection then replayConnection:Disconnect() end until not loopReplay or not isReplaying isReplaying = false StatusLabel:Set("Статус: Готово") end) end Tab:AddButton({ Name = "🔴 Начать запись (Record)", Callback = function() if isReplaying then return end recordedData = {} startTime = os.clock() isRecording = true end }) Tab:AddButton({ Name = "⏹️ Остановить запись (Stop)", Callback = function() isRecording = false StatusLabel:Set("Запись завершена. Точек: " .. #recordedData) end }) Tab:AddButton({ Name = "▶️ Воспроизвести (Play)", Callback = function() if not isRecording then startReplay() end end }) Tab:AddButton({ Name = "⛔ Остановить все (Stop All)", Callback = function() isRecording = false stopReplay() end }) Tab:AddToggle({ Name = "🔁 Цикличное воспроизведение (Loop)", Default = false, Callback = function(Value) loopReplay = Value end }) OrionLib:Init()