-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local VirtualInputManager = game:GetService("VirtualInputManager") local StarterGui = game:GetService("StarterGui") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local Camera = Workspace.CurrentCamera -- ═══════════════════════════════════════════════════════════ -- ЭКРАН ЗАГРУЗКИ -- ═══════════════════════════════════════════════════════════ local loadingGui = Instance.new("ScreenGui") loadingGui.Name = "LoadingScreen" loadingGui.IgnoreGuiInset = true loadingGui.DisplayOrder = 999 loadingGui.Parent = playerGui local loadBg = Instance.new("Frame") loadBg.Size = UDim2.new(1, 0, 1, 0) loadBg.BackgroundColor3 = Color3.fromRGB(10, 10, 12) loadBg.BorderSizePixel = 0 loadBg.Parent = loadingGui local loadTitle = Instance.new("TextLabel") loadTitle.Size = UDim2.new(1, 0, 0, 50) loadTitle.Position = UDim2.new(0, 0, 0.35, -30) loadTitle.BackgroundTransparency = 1 loadTitle.Text = "Mamut Rakhal" loadTitle.TextColor3 = Color3.fromRGB(80, 120, 220) loadTitle.TextSize = 36 loadTitle.Font = Enum.Font.GothamBold loadTitle.Parent = loadBg local loadSub = Instance.new("TextLabel") loadSub.Size = UDim2.new(1, 0, 0, 20) loadSub.Position = UDim2.new(0, 0, 0.35, 20) loadSub.BackgroundTransparency = 1 loadSub.Text = "Game: FPV Drone" loadSub.TextColor3 = Color3.fromRGB(150, 150, 170) loadSub.TextSize = 16 loadSub.Font = Enum.Font.GothamMedium loadSub.Parent = loadBg local loadWait = Instance.new("TextLabel") loadWait.Size = UDim2.new(1, 0, 0, 40) loadWait.Position = UDim2.new(0, 0, 0.45, 0) loadWait.BackgroundTransparency = 1 loadWait.Text = "Пожалуйста, подождите...\nPlease wait..." loadWait.TextColor3 = Color3.fromRGB(200, 200, 200) loadWait.TextSize = 18 loadWait.Font = Enum.Font.Gotham loadWait.Parent = loadBg local loadKey = Instance.new("TextLabel") loadKey.Size = UDim2.new(1, 0, 0, 40) loadKey.Position = UDim2.new(0, 0, 0.65, 0) loadKey.BackgroundTransparency = 1 loadKey.Text = "Открыть меню: [ F1 ]" loadKey.TextColor3 = Color3.fromRGB(0, 255, 100) loadKey.TextSize = 20 loadKey.Font = Enum.Font.GothamBold loadKey.Parent = loadBg task.wait(1) local Keybinds = { MenuToggle = Enum.KeyCode.F1, FastToggle = Enum.KeyCode.Z, TeleportBox = Enum.KeyCode.V } local scriptUnloaded = false local ActiveESP = {} local Settings = { EspChams = false, EspZombies = false, EspDrones = false, EspVehicles = false, EspHealth = false, AutoFarm = false } local AutoFarmStopTime = 0 local AutoFarmStopKills = 0 local farmStartTime = 0 local farmStartKills = 0 local devModeEnabled = false local targetPriority = "Both" local killCount = 0 local farmTime = 0 local killsAt15 = 0 local killsAt30 = 0 local killsAt45 = 0 local killsAt60 = 0 -- НОВЫЕ ПЕРЕМЕННЫЕ ДЛЯ СЧЕТЧИКА local clickCounter = 0 local CLICKS_PER_KILL = 5 local TIMING_CYCLE = 0.1 local TP_SETTLE = 0.12 local TP_MIN_DIST = 25 local TP_STAY_DIST = 4.0 local NO_REG_SWITCH = 5 local AIM_LAG = 0.05 local maxTotalAmmo = 210 local totalShotsFired = 0 local maxAmmoInClip = 30 local clipAmmoCounter = 0 local currentTarget = nil local lockedCFrame = nil local lastTPTime = 0 local shotsFiredOnTarget = 0 local lastTargetHealth = 100 local noRegBlacklist = {} local recentlyKilled = {} local isReloading = false local waitingForRespawn = false local aimLockTarget = nil local isShooting = false local cachedZombies = {} local zombieCacheTimer = 0 local ZOMBIE_CACHE_REFRESH = 1.0 local savedBoxCFrame = nil local savedBoxTime = 0 local function sendMessage(text) pcall(function() StarterGui:SetCore("SendNotification", {Title = "Mamut Rakhal", Text = text, Duration = 5}) end) end local function getAimPart(model) return model:FindFirstChild("Head") or model:FindFirstChild("UpperTorso") or model:FindFirstChild("Torso") or model:FindFirstChild("HumanoidRootPart") end local function isInTargetZone(pos) local minX, maxX = 1103.36, 3297.83 local minZ, maxZ = -1213.00, -26.70 return pos.X >= minX and pos.X <= maxX and pos.Z >= minZ and pos.Z <= maxZ end local function isInBuggedZone(pos) if pos.X >= 1417.9 and pos.X <= 1418.13 and pos.Z >= -423.27 and pos.Z <= -406.17 then return true end if pos.X >= 1824.33 and pos.X <= 1829.56 and pos.Z >= -225.99 and pos.Z <= -221.13 then return true end if pos.X >= 1816.42 and pos.X <= 1820.42 and pos.Z >= -228.66 and pos.Z <= -224.66 then return true end if pos.X >= 1958.4 and pos.X <= 1958.7 and pos.Z >= -425.39 and pos.Z <= -409.65 then return true end if pos.X >= 2728.15 and pos.X <= 2732.15 and pos.Z >= -248.21 and pos.Z <= -244.21 then return true end if pos.X >= 1821.21 and pos.X <= 1821.51 and pos.Z >= -215.3 and pos.Z <= -209.25 then return true end if pos.X >= 1824.35 and pos.X <= 1830.35 and pos.Z >= -218.39 and pos.Z <= -217.54 then return true end return false end -- GUI local screenGui = Instance.new("ScreenGui") screenGui.Name = "MamutRakhalGui" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.Parent = playerGui local statsFrame = Instance.new("Frame") statsFrame.Size = UDim2.new(0, 180, 0, 60) statsFrame.Position = UDim2.new(1, -200, 0, 20) statsFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 25) statsFrame.BorderSizePixel = 0 statsFrame.Parent = screenGui Instance.new("UICorner", statsFrame).CornerRadius = UDim.new(0, 8) local statsStroke = Instance.new("UIStroke") statsStroke.Color = Color3.fromRGB(80, 120, 220) statsStroke.Thickness = 1 statsStroke.Parent = statsFrame local killLabel = Instance.new("TextLabel") killLabel.Size = UDim2.new(1, 0, 0.5, 0) killLabel.BackgroundTransparency = 1 killLabel.Text = "KILLS: 0" killLabel.TextColor3 = Color3.fromRGB(255, 80, 80) killLabel.TextSize = 16 killLabel.Font = Enum.Font.GothamBold killLabel.TextXAlignment = Enum.TextXAlignment.Left killLabel.Parent = statsFrame killLabel.Position = UDim2.new(0, 10, 0, 5) local timeLabel = Instance.new("TextLabel") timeLabel.Size = UDim2.new(1, 0, 0.5, 0) timeLabel.BackgroundTransparency = 1 timeLabel.Text = "TIME: 00:00" timeLabel.TextColor3 = Color3.fromRGB(0, 255, 100) timeLabel.TextSize = 16 timeLabel.Font = Enum.Font.GothamBold timeLabel.TextXAlignment = Enum.TextXAlignment.Left timeLabel.Parent = statsFrame timeLabel.Position = UDim2.new(0, 10, 0, 30) local ammoLabel = Instance.new("TextLabel") ammoLabel.Size = UDim2.new(0, 300, 0, 40) ammoLabel.Position = UDim2.new(0.5, -150, 1, -70) ammoLabel.BackgroundTransparency = 1 ammoLabel.Text = "ПАТРОНЫ: 0 / 210" ammoLabel.TextColor3 = Color3.fromRGB(0, 255, 100) ammoLabel.TextSize = 24 ammoLabel.Font = Enum.Font.GothamBold ammoLabel.TextStrokeTransparency = 0 ammoLabel.TextStrokeColor3 = Color3.new(0, 0, 0) ammoLabel.Parent = screenGui local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 420, 0, 380) mainFrame.Position = UDim2.new(0.5, -210, 0.5, -190) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 10) local uiStroke = Instance.new("UIStroke") uiStroke.Color = Color3.fromRGB(80, 120, 220) uiStroke.Thickness = 1.5 uiStroke.Parent = mainFrame local dragHeader = Instance.new("Frame") dragHeader.Name = "DragHeader" dragHeader.Size = UDim2.new(1, 0, 0, 38) dragHeader.BackgroundColor3 = Color3.fromRGB(15, 15, 20) dragHeader.BorderSizePixel = 0 dragHeader.Parent = mainFrame Instance.new("UICorner", dragHeader).CornerRadius = UDim.new(0, 10) local hideBottomCorner = Instance.new("Frame") hideBottomCorner.Size = UDim2.new(1, 0, 0, 10) hideBottomCorner.Position = UDim2.new(0, 0, 1, -10) hideBottomCorner.BackgroundColor3 = Color3.fromRGB(15, 15, 20) hideBottomCorner.BorderSizePixel = 0 hideBottomCorner.Parent = dragHeader local titleLabel = Instance.new("TextButton") titleLabel.Size = UDim2.new(1, -40, 1, 0) titleLabel.Position = UDim2.new(0, 12, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Mamut Rakhal" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextSize = 14 titleLabel.Font = Enum.Font.GothamBold titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Active = true titleLabel.Parent = dragHeader local minimizeBtnObj = Instance.new("TextButton") minimizeBtnObj.Size = UDim2.new(0, 24, 0, 24) minimizeBtnObj.Position = UDim2.new(1, -32, 0, 7) minimizeBtnObj.BackgroundColor3 = Color3.fromRGB(45, 45, 55) minimizeBtnObj.Text = "-" minimizeBtnObj.TextColor3 = Color3.fromRGB(220, 220, 240) minimizeBtnObj.TextSize = 16 minimizeBtnObj.Font = Enum.Font.GothamBold minimizeBtnObj.BorderSizePixel = 0 minimizeBtnObj.Parent = dragHeader Instance.new("UICorner", minimizeBtnObj).CornerRadius = UDim.new(0, 6) local function setMenuVisible(visible) if scriptUnloaded then return end mainFrame.Visible = visible if visible then player.CameraMode = Enum.CameraMode.Classic player.CameraMaxZoomDistance = 30 player.CameraMinZoomDistance = 5 UserInputService.MouseBehavior = Enum.MouseBehavior.Default UserInputService.MouseIconEnabled = true else player.CameraMinZoomDistance = 0.5 player.CameraMaxZoomDistance = 0.5 player.CameraMode = Enum.CameraMode.LockFirstPerson UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter UserInputService.MouseIconEnabled = false end end minimizeBtnObj.MouseButton1Click:Connect(function() setMenuVisible(false) end) local dragging, dragInput, dragStart, startPos dragHeader.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) dragHeader.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) local bodyFrame = Instance.new("Frame") bodyFrame.Size = UDim2.new(1, 0, 1, -38) bodyFrame.Position = UDim2.new(0, 0, 0, 38) bodyFrame.BackgroundTransparency = 1 bodyFrame.Parent = mainFrame local leftColumn = Instance.new("Frame") leftColumn.Size = UDim2.new(0, 120, 1, 0) leftColumn.BackgroundColor3 = Color3.fromRGB(18, 18, 22) leftColumn.BorderSizePixel = 0 leftColumn.Parent = bodyFrame local separator = Instance.new("Frame") separator.Size = UDim2.new(0, 1, 1, 0) separator.Position = UDim2.new(1, 0, 0, 0) separator.BackgroundColor3 = Color3.fromRGB(45, 45, 55) separator.BorderSizePixel = 0 separator.Parent = leftColumn local rightPanel = Instance.new("Frame") rightPanel.Size = UDim2.new(1, -120, 1, 0) rightPanel.Position = UDim2.new(0, 120, 0, 0) rightPanel.BackgroundTransparency = 1 rightPanel.Parent = bodyFrame local Pages = {} local function createPage(name) local page = Instance.new("Frame") page.Name = name .. "Page" page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.Visible = false page.Parent = rightPanel Pages[name] = page return page end local visualPage = createPage("Visual") local farmPage = createPage("Farm") local statsPage = createPage("Stats") local settingsPage = createPage("Settings") local function createScrollingContent(parent) local sc = Instance.new("ScrollingFrame") sc.Size = UDim2.new(1, 0, 1, 0) sc.BackgroundTransparency = 1 sc.BorderSizePixel = 0 sc.ScrollBarThickness = 3 sc.CanvasSize = UDim2.new(0, 0, 0, 0) sc.Parent = parent local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 8) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.VerticalAlignment = Enum.VerticalAlignment.Top layout.Parent = sc local pad = Instance.new("UIPadding") pad.PaddingTop = UDim.new(0, 12) pad.PaddingBottom = UDim.new(0, 12) pad.Parent = sc layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() sc.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 24) end) return sc end local visualScroll = createScrollingContent(visualPage) local farmScroll = createScrollingContent(farmPage) local statsScroll = createScrollingContent(statsPage) local settingsScroll = createScrollingContent(settingsPage) local currentTabBtn = nil local function setupTabButton(text, posY, targetPageName) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.85, 0, 0, 32) btn.Position = UDim2.new(0.075, 0, 0, posY) btn.BackgroundColor3 = Color3.fromRGB(30, 30, 38) btn.Text = text btn.TextColor3 = Color3.fromRGB(160, 160, 180) btn.TextSize = 12 btn.Font = Enum.Font.GothamBold btn.BorderSizePixel = 0 btn.Parent = leftColumn Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) btn.MouseButton1Click:Connect(function() if currentTabBtn then currentTabBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 38) currentTabBtn.TextColor3 = Color3.fromRGB(160, 160, 180) end currentTabBtn = btn btn.BackgroundColor3 = Color3.fromRGB(80, 120, 220) btn.TextColor3 = Color3.fromRGB(255, 255, 255) for name, page in pairs(Pages) do page.Visible = (name == targetPageName) end end) return btn end local tabVisual = setupTabButton("Визуалы", 12, "Visual") local tabFarm = setupTabButton("Авто-Фарм", 50, "Farm") local tabStats = setupTabButton("Статистика", 88, "Stats") local tabSettings = setupTabButton("Клавиша", 126, "Settings") tabVisual.BackgroundColor3 = Color3.fromRGB(80, 120, 220) tabVisual.TextColor3 = Color3.fromRGB(255, 255, 255) currentTabBtn = tabVisual visualPage.Visible = true -- DEV MODE local devModal = Instance.new("Frame") devModal.Size = UDim2.new(0.9, 0, 0.8, 0) devModal.Position = UDim2.new(0.05, 0, 0.1, 0) devModal.BackgroundColor3 = Color3.fromRGB(15, 15, 20) devModal.Visible = false devModal.ZIndex = 10 devModal.Parent = rightPanel Instance.new("UICorner", devModal).CornerRadius = UDim.new(0, 10) local devStroke = Instance.new("UIStroke") devStroke.Color = Color3.fromRGB(0, 255, 100) devStroke.Thickness = 2 devStroke.Parent = devModal local devTitle = Instance.new("TextLabel") devTitle.Size = UDim2.new(1, 0, 0, 30) devTitle.Position = UDim2.new(0, 0, 0, 5) devTitle.BackgroundTransparency = 1 devTitle.Text = "ВЫБЕРИ ПРИОРИТЕТ" devTitle.TextColor3 = Color3.fromRGB(0, 255, 100) devTitle.TextSize = 14 devTitle.Font = Enum.Font.GothamBold devTitle.ZIndex = 11 devTitle.Parent = devModal local closeDevBtn = Instance.new("TextButton") closeDevBtn.Size = UDim2.new(0, 26, 0, 26) closeDevBtn.Position = UDim2.new(1, -31, 0, 5) closeDevBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) closeDevBtn.Text = "X" closeDevBtn.TextColor3 = Color3.new(1, 1, 1) closeDevBtn.TextSize = 14 closeDevBtn.Font = Enum.Font.GothamBold closeDevBtn.ZIndex = 11 closeDevBtn.Parent = devModal Instance.new("UICorner", closeDevBtn).CornerRadius = UDim.new(0, 6) closeDevBtn.MouseButton1Click:Connect(function() devModal.Visible = false devModeEnabled = false titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.Text = "Mamut Rakhal" end) local function createPriorityBtn(text, posY, priorityType) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.8, 0, 0, 32) btn.Position = UDim2.new(0.1, 0, 0, posY) btn.BackgroundColor3 = (targetPriority == priorityType) and Color3.fromRGB(0, 170, 90) or Color3.fromRGB(60, 60, 80) btn.Text = text btn.TextColor3 = Color3.new(1, 1, 1) btn.TextSize = 13 btn.Font = Enum.Font.GothamBold btn.ZIndex = 11 btn.Parent = devModal Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) btn.MouseButton1Click:Connect(function() targetPriority = priorityType for _, child in ipairs(devModal:GetChildren()) do if child:IsA("TextButton") and child ~= closeDevBtn then child.BackgroundColor3 = (child.Name == priorityType) and Color3.fromRGB(0, 170, 90) or Color3.fromRGB(60, 60, 80) end end end) btn.Name = priorityType return btn end createPriorityBtn("ЛЮДИ", 45, "Players") createPriorityBtn("ЗОМБИ", 85, "Zombies") createPriorityBtn("ВСЕ", 125, "Both") local clickCount = 0 local lastClickTime = 0 titleLabel.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if tick() - lastClickTime < 0.5 then clickCount = clickCount + 1 else clickCount = 1 end lastClickTime = tick() if clickCount >= 3 then clickCount = 0 devModeEnabled = not devModeEnabled devModal.Visible = devModeEnabled titleLabel.TextColor3 = devModeEnabled and Color3.fromRGB(0, 255, 100) or Color3.fromRGB(255, 255, 255) titleLabel.Text = devModeEnabled and "Mamut Rakhal (DEV MODE)" or "Mamut Rakhal" end end end) local updateFarmMenuUI = nil local function createBasicToggleRow(textOn, textOff, container, onClick) local rowFrame = Instance.new("Frame") rowFrame.Size = UDim2.new(0.9, 0, 0, 32) rowFrame.BackgroundTransparency = 1 rowFrame.Parent = container local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 1, 0) btn.Font = Enum.Font.GothamBold btn.TextSize = 11 btn.TextColor3 = Color3.new(1, 1, 1) btn.Parent = rowFrame Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local state = false local function updateUI(forced) state = forced btn.BackgroundColor3 = state and Color3.fromRGB(0, 170, 90) or Color3.fromRGB(224, 60, 60) btn.Text = state and textOn or textOff end updateUI(false) btn.MouseButton1Click:Connect(function() onClick(updateUI) end) return updateUI end local function resetFarmState() if isShooting then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) isShooting = false end currentTarget = nil aimLockTarget = nil shotsFiredOnTarget = 0 totalShotsFired = 0 clipAmmoCounter = 0 isReloading = false waitingForRespawn = false lockedCFrame = nil clickCounter = 0 -- СБРАСЫВАЕМ ПРОГРЕСС КЛИКОВ table.clear(noRegBlacklist) table.clear(recentlyKilled) end -- КНОПКА АВТОФАРМА local autoFarmRow = Instance.new("Frame") autoFarmRow.Size = UDim2.new(0.9, 0, 0, 44) autoFarmRow.BackgroundTransparency = 1 autoFarmRow.Parent = farmScroll local autoFarmBtn = Instance.new("TextButton") autoFarmBtn.Size = UDim2.new(1, 0, 1, 0) autoFarmBtn.Font = Enum.Font.GothamBold autoFarmBtn.TextSize = 12 autoFarmBtn.TextColor3 = Color3.new(1, 1, 1) autoFarmBtn.Parent = autoFarmRow Instance.new("UICorner", autoFarmBtn).CornerRadius = UDim.new(0, 6) local warningLabel = Instance.new("TextLabel") warningLabel.Size = UDim2.new(1, 0, 0, 12) warningLabel.Position = UDim2.new(0, 0, 1, -14) warningLabel.BackgroundTransparency = 1 warningLabel.Text = "ОБЯЗАТЕЛЬНО НУЖЕН AK-47 ИЛИ M4!" warningLabel.TextColor3 = Color3.fromRGB(255, 200, 200) warningLabel.TextSize = 9 warningLabel.Font = Enum.Font.GothamMedium warningLabel.Parent = autoFarmBtn local farmState = false updateFarmMenuUI = function(forced) farmState = forced autoFarmBtn.BackgroundColor3 = farmState and Color3.fromRGB(0, 170, 90) or Color3.fromRGB(224, 60, 60) autoFarmBtn.Text = farmState and "Auto-Farm Loop: ON" or "Auto-Farm Loop: OFF" end updateFarmMenuUI(false) autoFarmBtn.MouseButton1Click:Connect(function() Settings.AutoFarm = not Settings.AutoFarm updateFarmMenuUI(Settings.AutoFarm) if not Settings.AutoFarm then resetFarmState() else farmStartTime = tick() farmStartKills = killCount end end) local spacer1 = Instance.new("Frame") spacer1.Size = UDim2.new(0, 10, 0, 4) spacer1.BackgroundTransparency = 1 spacer1.Parent = farmScroll -- ПОЛЯ ВВОДА local function createInputField(text, placeholder, container, callback) local row = Instance.new("Frame") row.Size = UDim2.new(0.9, 0, 0, 32) row.BackgroundTransparency = 1 row.Parent = container local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.6, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.fromRGB(180, 180, 200) lbl.TextSize = 11 lbl.Font = Enum.Font.GothamMedium lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = row local txtBox = Instance.new("TextBox") txtBox.Size = UDim2.new(0.4, 0, 1, 0) txtBox.Position = UDim2.new(0.6, 0, 0, 0) txtBox.BackgroundColor3 = Color3.fromRGB(35, 35, 45) txtBox.TextColor3 = Color3.fromRGB(255, 255, 255) txtBox.PlaceholderText = placeholder txtBox.Text = "" txtBox.Font = Enum.Font.Gotham txtBox.TextSize = 12 txtBox.Parent = row Instance.new("UICorner", txtBox).CornerRadius = UDim.new(0, 6) txtBox.FocusLost:Connect(function() local num = tonumber(txtBox.Text) if num and num >= 0 then callback(num) else txtBox.Text = "" end end) return row end createInputField("Время до выключения (мин):", "0", farmScroll, function(val) AutoFarmStopTime = val * 60 end) createInputField("Килы до выключения:", "0", farmScroll, function(val) AutoFarmStopKills = val end) local syncVehicleVis local syncPlayerChams = createBasicToggleRow("Player Chams: ON", "Player Chams: OFF", visualScroll, function(sync) Settings.EspChams = not Settings.EspChams sync(Settings.EspChams) end) local syncZombieChams = createBasicToggleRow("Zombie Chams: ON", "Zombie Chams: OFF", visualScroll, function(sync) Settings.EspZombies = not Settings.EspZombies sync(Settings.EspZombies) end) local syncDroneChams = createBasicToggleRow("Drone Chams: ON", "Drone Chams: OFF", visualScroll, function(sync) Settings.EspDrones = not Settings.EspDrones sync(Settings.EspDrones) end) local syncVehicleChams = createBasicToggleRow("Vehicle Chams: ON", "Vehicle Chams: OFF", visualScroll, function(sync) Settings.EspVehicles = not Settings.EspVehicles sync(Settings.EspVehicles) syncVehicleVis() end) local syncHealthBar = createBasicToggleRow("Display HealthBar: ON", "Display HealthBar: OFF", visualScroll, function(sync) Settings.EspHealth = not Settings.EspHealth sync(Settings.EspHealth) end) local statsLabel = Instance.new("TextLabel") statsLabel.Size = UDim2.new(0.9, 0, 0, 180) statsLabel.BackgroundTransparency = 1 statsLabel.Text = "📊 СТАТИСТИКА ФАРМА:\n\n" .. "⏱ 15 МИНУТ: 0 KILLS\n" .. "⏱ 30 МИНУТ: 0 KILLS\n" .. "⏱ 45 МИНУТ: 0 KILLS\n" .. "⏱ 1 ЧАС: 0 KILLS\n\n" .. "🕒 ТЕКУЩЕЕ ВРЕМЯ: 00:00\n" .. "💀 ТЕКУЩИЕ КИЛЛЫ: 0" statsLabel.TextColor3 = Color3.fromRGB(200, 200, 220) statsLabel.TextSize = 14 statsLabel.Font = Enum.Font.GothamBold statsLabel.TextXAlignment = Enum.TextXAlignment.Left statsLabel.TextYAlignment = Enum.TextYAlignment.Top statsLabel.Parent = statsScroll local resetStatsBtn = Instance.new("TextButton") resetStatsBtn.Size = UDim2.new(0, 240, 0, 34) resetStatsBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 80) resetStatsBtn.Font = Enum.Font.GothamBold resetStatsBtn.TextSize = 11 resetStatsBtn.TextColor3 = Color3.fromRGB(255, 255, 255) resetStatsBtn.Text = "🔄 СБРОСИТЬ СТАТИСТИКУ" resetStatsBtn.Parent = statsScroll Instance.new("UICorner", resetStatsBtn).CornerRadius = UDim.new(0, 6) resetStatsBtn.MouseButton1Click:Connect(function() killCount = 0 farmTime = 0 killsAt15 = 0 killsAt30 = 0 killsAt45 = 0 killsAt60 = 0 clickCounter = 0 timeLabel.Text = "TIME: 00:00" killLabel.Text = "KILLS: 0" end) local function createKeybindField(title, bindKeyName, container, infoText, infoColor) local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 240, 0, 40) frame.BackgroundTransparency = 1 frame.Parent = container local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = title label.TextColor3 = Color3.fromRGB(180, 180, 200) label.TextSize = 11 label.Font = Enum.Font.GothamMedium label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local btn = Instance.new("TextButton") btn.Size = UDim2.new(0.4, 0, 0, 28) btn.Position = UDim2.new(0.6, 0, 0, 6) btn.BackgroundColor3 = Color3.fromRGB(35, 35, 45) btn.Text = "[ " .. Keybinds[bindKeyName].Name .. " ]" btn.TextColor3 = Color3.fromRGB(220, 220, 240) btn.TextSize = 11 btn.Font = Enum.Font.GothamBold btn.Parent = frame Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6) local isBinding = false btn.MouseButton1Click:Connect(function() if isBinding then return end isBinding = true btn.Text = "Жмите кнопку..." btn.TextColor3 = Color3.fromRGB(255, 170, 0) local listen listen = UserInputService.InputBegan:Connect(function(input, processed) if input.UserInputType == Enum.UserInputType.Keyboard then listen:Disconnect() Keybinds[bindKeyName] = input.KeyCode btn.Text = "[ " .. input.KeyCode.Name .. " ]" btn.TextColor3 = Color3.fromRGB(220, 220, 240) isBinding = false end end) end) if infoText and infoColor then local infoFrame = Instance.new("Frame") infoFrame.Size = UDim2.new(1, 0, 0, 16) infoFrame.Position = UDim2.new(0, 0, 1, 2) infoFrame.BackgroundTransparency = 1 infoFrame.Parent = frame local line = Instance.new("Frame") line.Size = UDim2.new(1, 0, 0, 2) line.BackgroundColor3 = infoColor line.Parent = infoFrame Instance.new("UICorner", line).CornerRadius = UDim.new(0, 1) local txt = Instance.new("TextLabel") txt.Size = UDim2.new(1, 0, 0, 14) txt.Position = UDim2.new(0, 0, 0, 2) txt.BackgroundTransparency = 1 txt.Text = infoText txt.TextColor3 = infoColor txt.TextSize = 9 txt.Font = Enum.Font.GothamMedium txt.Parent = infoFrame frame.Size = UDim2.new(0, 240, 0, 56) end end createKeybindField("Открыть Меню:", "MenuToggle", settingsScroll) createKeybindField("Вкл/Выкл Фарм:", "FastToggle", settingsScroll) createKeybindField("ТП к Ящику (Drone):", "TeleportBox", settingsScroll, "Вернет вас обратно через 4 сек", Color3.fromRGB(0, 150, 255)) local spacer = Instance.new("Frame") spacer.Size = UDim2.new(0, 10, 0, 10) spacer.BackgroundTransparency = 1 spacer.Parent = settingsScroll local unloadBtn = Instance.new("TextButton") unloadBtn.Size = UDim2.new(0, 240, 0, 34) unloadBtn.BackgroundColor3 = Color3.fromRGB(130, 35, 35) unloadBtn.Font = Enum.Font.GothamBold unloadBtn.TextSize = 11 unloadBtn.TextColor3 = Color3.fromRGB(255, 200, 200) unloadBtn.Text = "🚨 UNLOAD SCRIPT / ВЫГРУЗИТЬ 🚨" unloadBtn.Parent = settingsScroll Instance.new("UICorner", unloadBtn).CornerRadius = UDim.new(0, 6) -- ESP ЛОГИКА local function CleanESPForPlayer(p) local data = ActiveESP[p] if data then if data.HealthBar then pcall(function() data.HealthBar:Remove() end) end if data.HealthBarOutline then pcall(function() data.HealthBarOutline:Remove() end) end if p.Character then local hl = p.Character:FindFirstChild("FullBody_Highlight") if hl then pcall(function() hl:Destroy() end) end end ActiveESP[p] = nil end end local function CreateESPForPlayer(p) if p == player or ActiveESP[p] or scriptUnloaded then return end local data = { HealthBarOutline = Drawing.new("Square"), HealthBar = Drawing.new("Square") } data.HealthBarOutline.Visible = false data.HealthBarOutline.Filled = true data.HealthBar.Visible = false data.HealthBar.Filled = true ActiveESP[p] = data end local Storage = { Vehicle = {} } local VehicleColors = { Heli = Color3.fromRGB(255, 0, 0), Tank = Color3.fromRGB(255, 0, 0), Car = Color3.fromRGB(255, 0, 0), Walker = Color3.fromRGB(170, 0, 255) } local function updateAllVehicleESP() for obj, subType in pairs(Storage.Vehicle) do if not obj.Parent then Storage.Vehicle[obj] = nil else local hl = obj:FindFirstChild("Vehicle_ESP") if Settings.EspVehicles then if not hl then hl = Instance.new("Highlight") hl.Name = "Vehicle_ESP" hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.OutlineColor = Color3.new(1, 1, 1) hl.FillTransparency = 0.3 hl.Parent = obj end hl.FillColor = VehicleColors[subType] or Color3.fromRGB(255, 0, 0) elseif hl then hl:Destroy() end end end end syncVehicleVis = function() task.spawn(updateAllVehicleESP) end local renderConn = RunService.PreRender:Connect(function() if scriptUnloaded then return end if not Settings.EspChams and not Settings.EspHealth then return end for p, data in pairs(ActiveESP) do local char = p.Character if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then local currentEspColor = p.Team and p.TeamColor.Color or Color3.fromRGB(255, 170, 0) if Settings.EspChams then if not char:FindFirstChild("FullBody_Highlight") then local hl = Instance.new("Highlight") hl.Name = "FullBody_Highlight" hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.OutlineColor = Color3.new(1,1,1) hl.FillColor = currentEspColor hl.FillTransparency = 0.4 hl.Parent = char end else local hl = char:FindFirstChild("FullBody_Highlight") if hl then hl:Destroy() end end if Settings.EspHealth then local rPos, os = Camera:WorldToViewportPoint(char.HumanoidRootPart.Position) if os then local hPos = Camera:WorldToViewportPoint((char:FindFirstChild("Head") or char.HumanoidRootPart).Position + Vector3.new(0, 0.5, 0)) local lPos = Camera:WorldToViewportPoint(char.HumanoidRootPart.Position - Vector3.new(0, 3, 0)) local bH = math.abs(hPos.Y - lPos.Y) local bW = bH / 1.5 local boxPos = Vector2.new(rPos.X - bW / 2, rPos.Y - bH / 2) local hpPct = math.clamp(char.Humanoid.Health, 0, char.Humanoid.MaxHealth) / char.Humanoid.MaxHealth data.HealthBarOutline.Size = Vector2.new(4, bH) data.HealthBarOutline.Position = Vector2.new(boxPos.X - 7, boxPos.Y) data.HealthBarOutline.Visible = true data.HealthBar.Size = Vector2.new(2, bH * hpPct - 2) data.HealthBar.Position = Vector2.new(boxPos.X - 6, boxPos.Y + (bH - (bH * hpPct)) + 1) data.HealthBar.Color = Color3.fromHSV(hpPct * 0.33, 1, 1) data.HealthBar.Visible = true else data.HealthBar.Visible = false data.HealthBarOutline.Visible = false end else data.HealthBar.Visible = false data.HealthBarOutline.Visible = false end else data.HealthBar.Visible = false data.HealthBarOutline.Visible = false end end end) task.spawn(function() while task.wait(5) do if scriptUnloaded then break end for _, p in ipairs(Players:GetPlayers()) do if p ~= player and not ActiveESP[p] then CreateESPForPlayer(p) end end for p, _ in pairs(ActiveESP) do if not Players:FindFirstChild(p.Name) then CleanESPForPlayer(p) end end end end) for _, p in pairs(Players:GetPlayers()) do CreateESPForPlayer(p) end local function registerEntity(obj) if not obj:IsA("Model") or scriptUnloaded then return end if Players:GetPlayerFromCharacter(obj) then return end local parent = obj.Parent while parent and parent ~= Workspace do if parent:IsA("Model") then local pName = string.lower(parent.Name) if string.find(pName, "wreck") or string.find(pName, "debris") or string.find(pName, "crash") then if not string.find(pName, "ural") then return end end end parent = parent.Parent end local nameLower = string.lower(obj.Name) if (string.find(nameLower, "debris") or string.find(nameLower, "crash") or string.find(nameLower, "wreck")) then if not string.find(nameLower, "ural") then return end end local subType = nil if string.find(nameLower, "ural") or string.find(nameLower, "truck") then subType = "Car" elseif string.find(nameLower, "mi-8", 1, true) or string.find(nameLower, "heli", 1, true) then subType = "Heli" elseif string.find(nameLower, "tank") or string.find(nameLower, "abrams") or string.find(nameLower, "pantsir") or string.match(nameLower, "^t%-%d") then subType = "Tank" elseif string.find(nameLower, "walker") then subType = "Walker" end if subType then Storage.Vehicle[obj] = subType task.defer(updateAllVehicleESP) end end task.spawn(function() while task.wait(3) do if scriptUnloaded then break end for _, obj in ipairs(Workspace:GetChildren()) do if obj:IsA("Model") and not Storage.Vehicle[obj] then registerEntity(obj) end end updateAllVehicleESP() end end) task.spawn(function() while task.wait(2) do if scriptUnloaded then break end for _, obj in ipairs(Workspace:GetChildren()) do if obj:IsA("Model") and not Players:GetPlayerFromCharacter(obj) then local nameLower = string.lower(obj.Name) if string.find(nameLower, "enemynpc") then if Settings.EspZombies then if not obj:FindFirstChild("Zombie_ESP") then local hl = Instance.new("Highlight") hl.Name = "Zombie_ESP" hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.FillColor = Color3.fromRGB(50, 255, 50) hl.OutlineColor = Color3.new(1, 1, 1) hl.FillTransparency = 0.5 hl.Parent = obj end else local hl = obj:FindFirstChild("Zombie_ESP") if hl then hl:Destroy() end end elseif string.find(nameLower, "fpvdrone") then if Settings.EspDrones then if not obj:FindFirstChild("Drone_ESP") then local hl = Instance.new("Highlight") hl.Name = "Drone_ESP" hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.FillColor = Color3.fromRGB(0, 255, 255) hl.OutlineColor = Color3.new(1, 1, 1) hl.FillTransparency = 0.2 hl.Parent = obj end else local hl = obj:FindFirstChild("Drone_ESP") if hl then hl:Destroy() end end end end end end end) local function hasSpawnShield(char) return char and char:FindFirstChildOfClass("ForceField") ~= nil end local function isInNoRegZone(pos) return pos.X >= 2937.39 and pos.X <= 2964.67 and pos.Z >= -644.09 and pos.Z <= -614.17 end local function isTargetInForbiddenSpawnZone(pos) if pos.X >= 222 and pos.X <= 260 and pos.Z >= 152 and pos.Z <= 188 then return true end return false end local function isLocationSafe(targetPos, ignoreList) local p = RaycastParams.new() p.FilterType = Enum.RaycastFilterType.Exclude p.FilterDescendantsInstances = ignoreList p.IgnoreWater = true local r = Workspace:Spherecast(targetPos, 2.2, Vector3.new(0, 0.1, 0), p) return not (r and r.Instance and r.Instance.CanCollide) end local function isWayClear(originPos, targetPos, ignoreList) local p = RaycastParams.new() p.FilterType = Enum.RaycastFilterType.Exclude p.FilterDescendantsInstances = ignoreList p.IgnoreWater = true local r = Workspace:Raycast(originPos, targetPos - originPos, p) return not (r and r.Instance and r.Instance.CanCollide) end local function getSafeTeleportCFrame(targetRoot, targetHead, myChar) local targetPos = targetRoot.Position local headPos = targetHead.Position local targetCFrame = targetRoot.CFrame local ignoreList = {myChar, targetRoot.Parent} local raycastParams = RaycastParams.new() raycastParams.FilterType = Enum.RaycastFilterType.Exclude raycastParams.FilterDescendantsInstances = ignoreList raycastParams.IgnoreWater = true local ceilingRay = Workspace:Raycast(headPos, Vector3.new(0, 10, 0), raycastParams) if (ceilingRay and ceilingRay.Instance) or targetPos.Y < 0 then local offsets = { targetCFrame.LookVector * 2.5, -targetCFrame.LookVector * 2.5, targetCFrame.RightVector * 2.5, -targetCFrame.RightVector * 2.5 } for _, offset in ipairs(offsets) do local spot = targetPos + offset spot = Vector3.new(spot.X, targetPos.Y, spot.Z) if not isTargetInForbiddenSpawnZone(spot) and not isInNoRegZone(spot) and not isInBuggedZone(spot) then if isWayClear(spot, headPos, {myChar, targetRoot.Parent}) then return CFrame.lookAt(spot, headPos) end end end local fallbackSpot = targetPos - targetCFrame.LookVector * 2.5 fallbackSpot = Vector3.new(fallbackSpot.X, targetPos.Y, fallbackSpot.Z) return CFrame.lookAt(fallbackSpot, headPos) end local behindPos = targetPos - targetCFrame.LookVector * 2.5 local behindSpot = Vector3.new(behindPos.X, targetPos.Y, behindPos.Z) if not isTargetInForbiddenSpawnZone(behindSpot) and not isInNoRegZone(behindSpot) and not isInBuggedZone(behindSpot) then if isLocationSafe(behindSpot, ignoreList) and isWayClear(behindSpot, headPos, {myChar, targetRoot.Parent}) then return CFrame.lookAt(behindSpot, headPos) end end local frontPos = targetPos + targetCFrame.LookVector * 2.5 local frontSpot = Vector3.new(frontPos.X, targetPos.Y, frontPos.Z) if not isTargetInForbiddenSpawnZone(frontSpot) and not isInNoRegZone(frontSpot) and not isInBuggedZone(frontSpot) then if isLocationSafe(frontSpot, ignoreList) and isWayClear(frontSpot, headPos, {myChar, targetRoot.Parent}) then return CFrame.lookAt(frontSpot, headPos) end end return CFrame.lookAt(targetPos, headPos) end local function ensureWeaponEquipped() if isReloading or waitingForRespawn or scriptUnloaded then return end local myChar = player.Character if myChar and not myChar:FindFirstChildOfClass("Tool") then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.One, false, game) task.wait(0.01) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.One, false, game) end end local function executeAutonomousReload() if isReloading or scriptUnloaded then return end isReloading = true aimLockTarget = nil VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) isShooting = false task.spawn(function() task.wait(0.1) VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.R, false, game) task.wait(0.05) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.R, false, game) task.wait(2.0) clipAmmoCounter = 0 isReloading = false end) end local function executeAmmoSuicide() VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) isShooting = false local myChar = player.Character local myHumanoid = myChar and myChar:FindFirstChildOfClass("Humanoid") if myHumanoid then waitingForRespawn = true currentTarget = nil aimLockTarget = nil shotsFiredOnTarget = 0 clipAmmoCounter = 0 totalShotsFired = 0 lockedCFrame = nil myHumanoid.Health = 0 end end local updateZombieCache = function() local now = tick() if now - zombieCacheTimer < ZOMBIE_CACHE_REFRESH then return end zombieCacheTimer = now cachedZombies = {} for _, npc in ipairs(Workspace:GetChildren()) do if npc:IsA("Model") and string.find(npc.Name, "EnemyNPC") and npc:FindFirstChild("Humanoid") and npc:FindFirstChild("HumanoidRootPart") then if npc.Humanoid.Health > 0 then table.insert(cachedZombies, npc) end end end end RunService:BindToRenderStep("MamutAimLock", 3000, function() if scriptUnloaded or not Settings.AutoFarm then return end if not aimLockTarget or not aimLockTarget.Parent then return end local myChar = player.Character if not myChar then return end local myHead = myChar:FindFirstChild("Head") or myChar:FindFirstChild("HumanoidRootPart") if not myHead then return end if myChar:FindFirstChild("Head") then myChar.Head.LocalTransparencyModifier = 1 end local camPos = myHead.Position + Vector3.new(0, 0.5, 0) local targetPos = aimLockTarget.Position if aimLockTarget.Name == "HumanoidRootPart" then targetPos = targetPos + Vector3.new(0, 1.5, 0) end local dir = targetPos - camPos if math.abs(dir.X) < 0.5 and math.abs(dir.Z) < 0.5 then targetPos = targetPos + Vector3.new(0.5, 0, 0.5) end if dir.Magnitude < 2.5 then camPos = camPos - dir.Unit * 1.5 end Camera.CFrame = CFrame.lookAt(camPos, targetPos, Vector3.new(0, 1, 0)) end) local function executeSmartFarmCycle() if totalShotsFired >= maxTotalAmmo then executeAmmoSuicide() return end local myChar = player.Character local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart") local myHumanoid = myChar and myChar:FindFirstChildOfClass("Humanoid") if not myRoot or not myHumanoid then return end if myHumanoid.Health <= 0 then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) isShooting = false currentTarget = nil aimLockTarget = nil shotsFiredOnTarget = 0 clipAmmoCounter = 0 totalShotsFired = 0 lockedCFrame = nil waitingForRespawn = true return end if waitingForRespawn then if myHumanoid.Health > 0 then task.wait(0.6) VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game) task.wait(0.02) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game) waitingForRespawn = false ensureWeaponEquipped() end return end if isReloading or clipAmmoCounter >= maxAmmoInClip then if clipAmmoCounter >= maxAmmoInClip then executeAutonomousReload() end return end ensureWeaponEquipped() local now = tick() for target, killTime in pairs(recentlyKilled) do if now - killTime > 3.0 then recentlyKilled[target] = nil end end local targetRoot, targetHead, selectedTarget = nil, nil, nil local closestDist = math.huge local isZombieTarget = false if targetPriority == "Both" or targetPriority == "Players" then for _, p in ipairs(Players:GetPlayers()) do if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") and p.Character:FindFirstChild("Humanoid") and p.Character.Humanoid.Health > 0 then if not hasSpawnShield(p.Character) and not noRegBlacklist[p] and not recentlyKilled[p] then local rootPos = p.Character.HumanoidRootPart.Position if isInTargetZone(rootPos) and not isTargetInForbiddenSpawnZone(rootPos) and not isInNoRegZone(rootPos) and not isInBuggedZone(rootPos) then local d = (myRoot.Position - rootPos).Magnitude if d < closestDist then closestDist = d selectedTarget = p targetRoot = p.Character.HumanoidRootPart targetHead = getAimPart(p.Character) or targetRoot isZombieTarget = false end end end end end end if not selectedTarget and (targetPriority == "Both" or targetPriority == "Zombies") then updateZombieCache() for _, npc in ipairs(cachedZombies) do if npc.Parent and npc:FindFirstChild("HumanoidRootPart") and npc:FindFirstChild("Humanoid") and npc.Humanoid.Health > 0 then if not noRegBlacklist[npc] and not recentlyKilled[npc] then local rootPos = npc.HumanoidRootPart.Position if not isInNoRegZone(rootPos) and not isInBuggedZone(rootPos) then local d = (myRoot.Position - rootPos).Magnitude if d < closestDist then closestDist = d selectedTarget = npc targetRoot = npc.HumanoidRootPart targetHead = getAimPart(npc) or targetRoot isZombieTarget = true end end end end end end if selectedTarget and targetRoot then local targetChanged = (currentTarget ~= selectedTarget) if targetChanged then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) isShooting = false currentTarget = selectedTarget shotsFiredOnTarget = 0 lastTargetHealth = selectedTarget:IsA("Player") and selectedTarget.Character.Humanoid.Health or selectedTarget.Humanoid.Health lockedCFrame = getSafeTeleportCFrame(targetRoot, targetHead, myChar) lastTPTime = 0 aimLockTarget = targetHead end local distToTarget = (myRoot.Position - targetRoot.Position).Magnitude local cooldownOK = (now - lastTPTime) >= 0.4 if distToTarget > TP_MIN_DIST then if (targetChanged or cooldownOK) and lockedCFrame then myRoot.CFrame = lockedCFrame lastTPTime = tick() task.wait(TP_SETTLE) aimLockTarget = targetHead end else local dist = (myRoot.Position - targetRoot.Position).Magnitude if dist > 5 then local followPos = targetRoot.Position + (myRoot.Position - targetRoot.Position).Unit * 5 local lookAt = CFrame.lookAt(followPos, targetRoot.Position) myRoot.CFrame = myRoot.CFrame:Lerp(lookAt, 0.2) end end task.wait(AIM_LAG) -- ВЫСТРЕЛ VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 1) task.wait(0.02) VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) totalShotsFired = totalShotsFired + 1 clipAmmoCounter = clipAmmoCounter + 1 shotsFiredOnTarget = shotsFiredOnTarget + 1 -- НОВЫЙ СЧЕТЧИК КИЛЛОВ (5 КЛИКОВ = 1 КИЛЛ) clickCounter = clickCounter + 1 if clickCounter >= CLICKS_PER_KILL then clickCounter = 0 killCount = killCount + 1 killLabel.Text = "KILLS: " .. killCount end local currentHealth = selectedTarget:IsA("Player") and selectedTarget.Character.Humanoid.Health or selectedTarget.Humanoid.Health if currentHealth <= 0 then recentlyKilled[selectedTarget] = tick() -- СТАРЫЙ СЧЕТЧИК УДАЛЕН, ЗДЕСЬ БОЛЬШЕ НЕ ПРИБАВЛЯЕТСЯ КИЛЛ currentTarget = nil lockedCFrame = nil aimLockTarget = nil shotsFiredOnTarget = 0 return end if currentHealth < lastTargetHealth then shotsFiredOnTarget = 0 lastTargetHealth = currentHealth end if shotsFiredOnTarget >= NO_REG_SWITCH then noRegBlacklist[selectedTarget] = true currentTarget = nil lockedCFrame = nil aimLockTarget = nil shotsFiredOnTarget = 0 return end else VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) isShooting = false lockedCFrame = nil aimLockTarget = nil if clipAmmoCounter < maxAmmoInClip and clipAmmoCounter > 0 then executeAutonomousReload() end end end task.spawn(function() while task.wait(1) do if scriptUnloaded then break end if Settings.AutoFarm then farmTime = farmTime + 1 local m = math.floor(farmTime / 60) local s = farmTime % 60 timeLabel.Text = string.format("TIME: %02d:%02d", m, s) if AutoFarmStopTime > 0 and (tick() - farmStartTime) >= AutoFarmStopTime then Settings.AutoFarm = false updateFarmMenuUI(false) resetFarmState() sendMessage("Фарм завершен! Причина: Вышло время.") end if AutoFarmStopKills > 0 and (killCount - farmStartKills) >= AutoFarmStopKills then Settings.AutoFarm = false updateFarmMenuUI(false) resetFarmState() sendMessage("Фарм завершен! Причина: Достигнут лимит убийств.") end if farmTime == 900 then killsAt15 = killCount end if farmTime == 1800 then killsAt30 = killCount end if farmTime == 2700 then killsAt45 = killCount end if farmTime == 3600 then killsAt60 = killCount end statsLabel.Text = string.format( "📊 СТАТИСТИКА ФАРМА:\n\n" .. "⏱ 15 МИНУТ: %d KILLS\n" .. "⏱ 30 МИНУТ: %d KILLS\n" .. "⏱ 45 МИНУТ: %d KILLS\n" .. "⏱ 1 ЧАС: %d KILLS\n\n" .. "🕒 ТЕКУЩЕЕ ВРЕМЯ: %02d:%02d\n" .. "💀 ТЕКУЩИЕ КИЛЛЫ: %d", killsAt15, killsAt30, killsAt45, killsAt60, m, s, killCount ) end end end) task.spawn(function() while task.wait(0.2) do if scriptUnloaded then break end if Settings.AutoFarm then ammoLabel.Text = string.format("ПАТРОНЫ: %d / %d", totalShotsFired, maxTotalAmmo) ammoLabel.TextColor3 = totalShotsFired >= maxTotalAmmo - 30 and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(0, 255, 100) ammoLabel.Visible = true else ammoLabel.Visible = false end end end) task.spawn(function() while task.wait(TIMING_CYCLE) do if scriptUnloaded then break end if Settings.AutoFarm then pcall(executeSmartFarmCycle) end end end) task.spawn(function() while task.wait(12) do if scriptUnloaded then break end table.clear(noRegBlacklist) end end) local function teleportToNearestBox() local myChar = player.Character local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart") if not myRoot then return end local closestBox = nil local closestDist = math.huge for _, obj in ipairs(Workspace:GetDescendants()) do if obj.Name == "DroneBox" and obj:IsA("Model") then local boxRoot = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart") if boxRoot then local dist = (myRoot.Position - boxRoot.Position).Magnitude if dist < closestDist then closestDist = dist closestBox = boxRoot end end end end if closestBox then if not savedBoxCFrame then savedBoxCFrame = myRoot.CFrame savedBoxTime = tick() task.delay(30, function() if savedBoxCFrame and (tick() - savedBoxTime) >= 30 then savedBoxCFrame = nil end end) end myRoot.CFrame = CFrame.new(closestBox.Position + Vector3.new(0, 2, 0)) task.wait(0.1) VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game) task.wait(0.05) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game) task.delay(4, function() if savedBoxCFrame and (tick() - savedBoxTime) <= 30 then local char = player.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then root.CFrame = savedBoxCFrame end savedBoxCFrame = nil end end) end end local keyConnection = UserInputService.InputBegan:Connect(function(input, processed) if scriptUnloaded or processed then return end if input.KeyCode == Keybinds.MenuToggle then setMenuVisible(not mainFrame.Visible) elseif input.KeyCode == Keybinds.FastToggle then Settings.AutoFarm = not Settings.AutoFarm updateFarmMenuUI(Settings.AutoFarm) if not Settings.AutoFarm then resetFarmState() else farmStartTime = tick() farmStartKills = killCount end elseif input.KeyCode == Keybinds.TeleportBox then teleportToNearestBox() end end) task.wait(0.1) loadingGui:Destroy() local function UnloadAll() scriptUnloaded = true if renderConn then pcall(function() renderConn:Disconnect() end) end if keyConnection then pcall(function() keyConnection:Disconnect() end) end pcall(function() RunService:UnbindFromRenderStep("MamutAimLock") end) pcall(function() VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 1) end) player.CameraMinZoomDistance = 0.5 player.CameraMaxZoomDistance = 0.5 player.CameraMode = Enum.CameraMode.LockFirstPerson UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter UserInputService.MouseIconEnabled = false for p, _ in pairs(ActiveESP) do CleanESPForPlayer(p) end for obj, _ in pairs(Storage.Vehicle) do local hl = obj:FindFirstChild("Vehicle_ESP") if hl then hl:Destroy() end end for _, obj in ipairs(Workspace:GetChildren()) do if obj:IsA("Model") then local hl = obj:FindFirstChild("Zombie_ESP") or obj:FindFirstChild("Drone_ESP") if hl then hl:Destroy() end end end screenGui:Destroy() _G.UnloadMovementMaster = nil print("[Mamut Rakhal]: Выгружен начисто!") end _G.UnloadMovementMaster = UnloadAll unloadBtn.MouseButton1Click:Connect(UnloadAll) local function showStartupNotification() local notifFrame = Instance.new("TextButton") notifFrame.Size = UDim2.new(0, 240, 0, 60) notifFrame.Position = UDim2.new(1, 20, 1, -80) notifFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30) notifFrame.BorderSizePixel = 0 notifFrame.Text = "" notifFrame.AutoButtonColor = false notifFrame.Parent = screenGui Instance.new("UICorner", notifFrame).CornerRadius = UDim.new(0, 8) local notifStroke = Instance.new("UIStroke") notifStroke.Color = Color3.fromRGB(80, 120, 220) notifStroke.Thickness = 1.5 notifStroke.Parent = notifFrame local notifTitle = Instance.new("TextLabel") notifTitle.Size = UDim2.new(1, -20, 0, 22) notifTitle.Position = UDim2.new(0, 10, 0, 8) notifTitle.BackgroundTransparency = 1 notifTitle.Text = "Mamut Rakhal Loaded" notifTitle.TextColor3 = Color3.fromRGB(255, 255, 255) notifTitle.TextSize = 13 notifTitle.Font = Enum.Font.GothamBold notifTitle.TextXAlignment = Enum.TextXAlignment.Left notifTitle.Parent = notifFrame local notifText = Instance.new("TextLabel") notifText.Size = UDim2.new(1, -20, 0, 22) notifText.Position = UDim2.new(0, 10, 0, 28) notifText.BackgroundTransparency = 1 notifText.Text = "Нажми [ V ] чтобы ТП к Дрон-Боксу" notifText.TextColor3 = Color3.fromRGB(180, 180, 200) notifText.TextSize = 11 notifText.Font = Enum.Font.Gotham notifText.TextXAlignment = Enum.TextXAlignment.Left notifText.Parent = notifFrame notifFrame.MouseButton1Click:Connect(function() setMenuVisible(true) notifFrame:Destroy() end) TweenService:Create(notifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Position = UDim2.new(1, -260, 1, -80)}):Play() task.delay(5, function() if notifFrame and notifFrame.Parent then local slideOut = TweenService:Create(notifFrame, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {Position = UDim2.new(1, 20, 1, -80)}) slideOut:Play() slideOut.Completed:Connect(function() notifFrame:Destroy() end) end end) end showStartupNotification()