local Player = game.Players.LocalPlayer local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Debris = game:GetService("Debris") local ScreenGui = Player.PlayerGui:FindFirstChild("MxDurrMobile") if ScreenGui then ScreenGui:Destroy() end ScreenGui = Instance.new("ScreenGui", Player.PlayerGui) ScreenGui.Name = "MxDurrMobile" ScreenGui.ResetOnSpawn = false -- UI de Status local StatusLabel = Instance.new("TextLabel", ScreenGui) StatusLabel.Size = UDim2.new(0, 150, 0, 40) StatusLabel.Position = UDim2.new(0.85, 0, 0.1, 0) StatusLabel.BackgroundTransparency = 0.5 StatusLabel.BackgroundColor3 = Color3.new(0, 0, 0) StatusLabel.TextColor3 = Color3.fromRGB(255, 165, 0) StatusLabel.Font = Enum.Font.SourceSansBold StatusLabel.TextSize = 20 StatusLabel.Text = "Status: Idle" local EffectsLabel = Instance.new("TextLabel", ScreenGui) EffectsLabel.Size = UDim2.new(0, 200, 0, 30) EffectsLabel.Position = UDim2.new(0.05, 0, 0.2, 0) EffectsLabel.BackgroundTransparency = 0.5 EffectsLabel.BackgroundColor3 = Color3.new(0,0,0) EffectsLabel.Text = "Efeito: Nenhum" EffectsLabel.TextColor3 = Color3.new(1, 1, 1) EffectsLabel.Font = Enum.Font.SourceSansBold EffectsLabel.TextSize = 16 local GrabProgress = Instance.new("TextLabel", ScreenGui) GrabProgress.Size = UDim2.new(0, 250, 0, 30) GrabProgress.Position = UDim2.new(0.4, -25, 0.85, 0) GrabProgress.BackgroundTransparency = 0.5 GrabProgress.BackgroundColor3 = Color3.new(0.1, 0, 0) GrabProgress.TextColor3 = Color3.new(1, 1, 1) GrabProgress.Text = "TARGET PROGRESS: 0/4" GrabProgress.Font = Enum.Font.SourceSansBold GrabProgress.TextSize = 18 local function updateStatus(text, color) StatusLabel.Text = "Status: " .. text StatusLabel.TextColor3 = color or Color3.fromRGB(255, 165, 0) end local function getChar() return Player.Character or Player.CharacterAdded:Wait() end local function ApplyScreenShake(intensity) local hum = getChar():FindFirstChild("Humanoid") if hum then local x = math.random(-intensity, intensity) / 100 local y = math.random(-intensity, intensity) / 100 local z = math.random(-intensity, intensity) / 100 hum.CameraOffset = Vector3.new(x, y, z) end end local function playSound(id, volume, cutDelay) local char = getChar() local root = char:FindFirstChild("HumanoidRootPart") if root then local s = Instance.new("Sound") s.SoundId = "rbxassetid://" .. id s.Parent = root s.Volume = volume or 1 s:Play() if cutDelay then task.delay(cutDelay, function() if s then s:Stop() s:Destroy() end end) else s.Ended:Connect(function() s:Destroy() end) end return s end end -- SISTEMA DE PASSOS local lastStep = 0 RunService.Heartbeat:Connect(function() local char = Player.Character if not char then return end local hum = char:FindFirstChild("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") if hum and root and hum.MoveDirection.Magnitude > 0 and hum.FloorMaterial ~= Enum.Material.Air and hum.Health > 0 then local velocity = root.Velocity.Magnitude local stepInterval = 10 / (velocity + 1) if tick() - lastStep > stepInterval then lastStep = tick() local s = Instance.new("Sound", root) s.SoundId = "rbxassetid://13550293121" s.Volume = 0.4 s.PlaybackSpeed = math.clamp(velocity/16, 0.8, 1.6) s:Play() Debris:AddItem(s, 1) end end end) local playerProgress = {} local m1GlobalCooldown = false local isM1Active = false local isGrabActive = false local chargeBonusSpeed = 0 -- Bloqueia movimento se estiver no Grab RunService.PreSimulation:Connect(function() if isGrabActive then local char = Player.Character if char then local hum = char:FindFirstChild("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") if hum and root then hum.WalkSpeed = 0 root.Velocity = Vector3.new(0, root.Velocity.Y, 0) -- Reseta velocidade horizontal end end end end) local function createGhostHitbox(size, cframe, duration) local hb = Instance.new("Part") hb.Size = size hb.CFrame = cframe hb.Transparency = 0.95 hb.Color = Color3.new(1, 0, 0) hb.Material = Enum.Material.Neon hb.CanCollide = false hb.Anchored = true hb.Parent = workspace Debris:AddItem(hb, duration) return hb end local function PerformM1(char) if m1GlobalCooldown or isM1Active or isGrabActive then return end isM1Active = true local hum = char.Humanoid local root = char.HumanoidRootPart local hitThisClick = false task.spawn(function() for i = 1, 12 do if hitThisClick then break end local currentCF = root.CFrame * CFrame.new(0, 0, -2.5) local hb = createGhostHitbox(Vector3.new(5, 6, 6), currentCF, 1) local target = nil local results = workspace:GetPartBoundsInBox(currentCF, hb.Size) for _, p in pairs(results) do local m = p:FindFirstAncestorOfClass("Model") if m and m:FindFirstChild("Humanoid") and m ~= char then target = m break end end if target then hitThisClick = true hb.Color = Color3.new(0, 1, 0) playSound("128614958817223", 1.5, 3) task.spawn(function() local oldSpeed = hum.WalkSpeed hum.WalkSpeed = 19 EffectsLabel.Text = "Efeito: M1 SPEED BUFF" task.wait(0.5) if not isGrabActive then hum.WalkSpeed = 10 end EffectsLabel.Text = "Efeito: Nenhum" end) local tName = target.Name playerProgress[tName] = (playerProgress[tName] or 0) + 1 GrabProgress.Text = "TARGET ["..tName.."]: " .. playerProgress[tName] .. "/4" if playerProgress[tName] >= 4 then playerProgress[tName] = 0 m1GlobalCooldown = true isGrabActive = true -- Ativa imobilização total hum.WalkSpeed = 0 updateStatus("GRABBED", Color3.new(1,0,0)) local grabSfx = playSound("131678559751488", 2) if grabSfx then if not grabSfx.IsLoaded then grabSfx.Loaded:Wait() end task.wait(grabSfx.TimeLength) else task.wait(4.5) end isGrabActive = false -- Libera movimento hum.WalkSpeed = 30 updateStatus("BUFFED") task.wait(3) hum.WalkSpeed = 10 m1GlobalCooldown = false updateStatus("Idle") end end task.wait(0.15) end if not hitThisClick then playerProgress = {} GrabProgress.Text = "PROGRESS RESET" end isM1Active = false m1GlobalCooldown = true task.wait(0.8) m1GlobalCooldown = false end) end local function createAbilityButton(name, pos, cooldown, callback) local btn = Instance.new("TextButton", ScreenGui) btn.Name = name btn.Size = UDim2.new(0, 75, 0, 75) btn.Position = pos btn.BackgroundColor3 = Color3.fromRGB(55, 55, 55) btn.Text = name btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.SourceSansBold btn.TextSize = 15 local corner = Instance.new("UICorner", btn) corner.CornerRadius = UDim.new(0.3, 0) local stroke = Instance.new("UIStroke", btn) stroke.Thickness = 2 stroke.Color = Color3.new(0.5, 0.5, 0.5) local cdLabel = Instance.new("TextLabel", btn) cdLabel.Size = UDim2.new(1, 0, 1, 0) cdLabel.BackgroundTransparency = 1 cdLabel.Text = "" cdLabel.TextColor3 = Color3.new(1, 0, 0) cdLabel.Font = Enum.Font.SourceSansBold cdLabel.TextSize = 25 local onCooldown = false btn.MouseButton1Click:Connect(function() if onCooldown or isGrabActive or (name == "M1" and (m1GlobalCooldown or isM1Active)) then return end local char = getChar() if cooldown > 0 then onCooldown = true callback(char) task.spawn(function() for i = cooldown, 1, -1 do cdLabel.Text = i task.wait(1) end cdLabel.Text = "" onCooldown = false end) else callback(char) end end) end createAbilityButton("M1", UDim2.new(0.6, 0, 0.5, 0), 0, PerformM1) createAbilityButton("CHARGE", UDim2.new(0.7, 0, 0.5, 0), 20, function(char) local hum = char.Humanoid local root = char.HumanoidRootPart chargeBonusSpeed = 0 playSound("79933042822660", 1, 3) hum.WalkSpeed = 0 updateStatus("PREPARING", Color3.new(1, 0.5, 0)) task.wait(2) local chargeAudio = playSound("119778978041636", 1) local duration = 4 if chargeAudio then if not chargeAudio.IsLoaded then chargeAudio.Loaded:Wait() end duration = chargeAudio.TimeLength end local start = tick() local lastHb = 0 local isCharging = true local hitList = {} local hasHitAnyone = false local connection connection = RunService.Heartbeat:Connect(function() if not isCharging then hum.CameraOffset = Vector3.new(0,0,0) connection:Disconnect() return end if tick() - start < duration then ApplyScreenShake(10) local currentSpeed = math.min(30 + chargeBonusSpeed, 45) hum.WalkSpeed = currentSpeed hum:Move(Vector3.new(0,0,-1), true) updateStatus("CHARGE: " .. currentSpeed, Color3.new(1, 0, 0)) if tick() - lastHb > 0.15 then lastHb = tick() local hbCF = root.CFrame * CFrame.new(0,0,-2) local hb = createGhostHitbox(Vector3.new(5, 6, 6), hbCF, 1) local results = workspace:GetPartBoundsInBox(hbCF, hb.Size) for _, p in pairs(results) do local m = p:FindFirstAncestorOfClass("Model") if m and m:FindFirstChild("Humanoid") and m ~= char and not hitList[m] then hitList[m] = true hasHitAnyone = true chargeBonusSpeed = chargeBonusSpeed + 5 playSound("128614958817223", 1, 1) end end end local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {char} local ray = workspace:Raycast(root.Position, root.CFrame.LookVector * 4, rayParams) if ray and ray.Instance and ray.Instance.CanCollide then isCharging = false chargeBonusSpeed = 0 if chargeAudio then chargeAudio:Stop() end playSound("89196971466013", 1.5) updateStatus("STUNNED", Color3.new(1,1,1)) hum.WalkSpeed = 0 task.wait(3) hum.WalkSpeed = 10 updateStatus("Idle") end else isCharging = false if not hasHitAnyone then updateStatus("FATIGUED", Color3.new(0.5,0.5,0.5)) hum.WalkSpeed = 10 task.wait(3) end hum.WalkSpeed = 10 updateStatus("Idle") end end) end) createAbilityButton("JUMP", UDim2.new(0.8, 0, 0.5, 0), 20, function(char) local hum = char.Humanoid local root = char.HumanoidRootPart updateStatus("READYING JUMP") task.wait(0.5) playSound("131465282091340", 2, 3) local originalJumpPower = hum.JumpPower hum.JumpPower = 120 hum:ChangeState(Enum.HumanoidStateType.Jumping) local inAir = true task.spawn(function() while inAir do hum.WalkSpeed = 50 if hum:GetState() == Enum.HumanoidStateType.Landed then inAir = false hum.JumpPower = originalJumpPower hum.WalkSpeed = 0 playSound("93815419052244", 1.5, 2) local jumpCF = root.CFrame * CFrame.new(0, -3, 0) local hbSize = Vector3.new(30, 8, 30) local hb = createGhostHitbox(hbSize, jumpCF, 0.5) local hit = false local results = workspace:GetPartBoundsInBox(jumpCF, hbSize) for _, p in pairs(results) do local m = p:FindFirstAncestorOfClass("Model") if m and m:FindFirstChild("Humanoid") and m ~= char then hit = true break end end if hit then hum.WalkSpeed = 19 EffectsLabel.Text = "Efeito: JUMP BUFF (19)" task.wait(6) EffectsLabel.Text = "Efeito: Nenhum" else task.wait(1) end hum.WalkSpeed = 10 updateStatus("Idle") end task.wait() end end) end) createAbilityButton("INNOCENCE", UDim2.new(0.9, 0, 0.5, 0), 20, function(char) local hum = char.Humanoid playSound("120152607511520", 1, 3) hum.WalkSpeed = 0 updateStatus("AURA VISION", Color3.new(1, 1, 0)) local auras = {} for _, p in pairs(game.Players:GetPlayers()) do if p ~= Player and p.Character then local hl = Instance.new("Highlight", p.Character) hl.FillColor = Color3.fromRGB(255, 0, 0) hl.OutlineColor = Color3.new(1, 1, 1) hl.FillTransparency = 0.5 table.insert(auras, hl) end end task.wait(3) for _, hl in pairs(auras) do hl:Destroy() end hum.WalkSpeed = 22 EffectsLabel.Text = "Efeito: SPEED BUFF (22)" task.wait(9) hum.WalkSpeed = 10 EffectsLabel.Text = "Efeito: Nenhum" updateStatus("Idle") end)