-- ============================================== -- 终极智能战斗版:完美连招+双圈跟随+防御优先+虎杖防反 -- ============================================== _G.CleanFlash_Stop = true if _G.CleanFlashThread then pcall(task.cancel, _G.CleanFlashThread) end _G.CleanFlashThread = nil local CoreGui = game:GetService("CoreGui") local PlayerGui = game.Players.LocalPlayer:WaitForChild("PlayerGui") for _, v in ipairs(CoreGui:GetChildren()) do if v.Name == "CleanFlashGui" then v:Destroy() end end for _, v in ipairs(PlayerGui:GetChildren()) do if v.Name == "CleanFlashGui" then v:Destroy() end end local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local VirtualInputManager = game:GetService("VirtualInputManager") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "CleanFlashGui" ScreenGui.ResetOnSpawn = false ScreenGui.DisplayOrder = 999 ScreenGui.IgnoreGuiInset = true if gethui then ScreenGui.Parent = gethui() else ScreenGui.Parent = PlayerGui end -- ================= 屏幕中央纯白假准星 ================= local Crosshair = Instance.new("Frame") Crosshair.Size = UDim2.new(0, 20, 0, 20) Crosshair.Position = UDim2.new(0.5, -10, 0.5, -10) Crosshair.BackgroundTransparency = 1 Crosshair.ZIndex = 900 Crosshair.Parent = ScreenGui local hLine = Instance.new("Frame", Crosshair) hLine.Size = UDim2.new(1, 0, 0, 2) hLine.Position = UDim2.new(0, 0, 0.5, -1) hLine.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hLine.BorderSizePixel = 0 local vLine = Instance.new("Frame", Crosshair) vLine.Size = UDim2.new(0, 2, 1, 0) vLine.Position = UDim2.new(0.5, -1, 0, 0) vLine.BackgroundColor3 = Color3.fromRGB(255, 255, 255) vLine.BorderSizePixel = 0 local function createRoundButton(text, x, y, sizeOffset, textSize) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, sizeOffset, 0, sizeOffset) btn.Position = UDim2.new(0, x, 0, y) btn.AnchorPoint = Vector2.new(0.5, 0.5) btn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) btn.BackgroundTransparency = 0.4 btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = textSize btn.Font = Enum.Font.GothamBold btn.Parent = ScreenGui btn.Active = true btn.Draggable = false local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(1, 0) corner.Parent = btn return btn end -- 基础按键 local ShiftBtn = createRoundButton("锁定", 40, 100, 60, 16) local SpecialBtn = createRoundButton("特殊", 558, 158, 71, 16) local DefendBtn = createRoundButton("防御", 527, 228, 71, 16) local PunchBtn = createRoundButton("拳击", 627, 252, 126, 22) local DashBtn = createRoundButton("冲刺", 542, 320, 69, 16) local JumpBtn = createRoundButton("跳跃", 700, 320, 65, 18) JumpBtn.Visible = false local isJumpReady = false task.delay(5, function() isJumpReady = true; if not MenuPanel.Visible then JumpBtn.Visible = true end end) -- 技能按键 local BlackFlashBtn = createRoundButton("黑闪", 626, 130, 67, 20) BlackFlashBtn.Visible = false local AutoFireBtn = createRoundButton("连发", 626, 130, 67, 20) AutoFireBtn.Visible = false local KickBtn = createRoundButton("踢球", 626, 130, 67, 20) KickBtn.Visible = false local hideableButtons = {ShiftBtn, SpecialBtn, DefendBtn, PunchBtn, DashBtn} -- 摇杆 local JoystickFrame = Instance.new("Frame") JoystickFrame.Name = "JoystickFrame" JoystickFrame.Size = UDim2.new(0, 160, 0, 160) JoystickFrame.Position = UDim2.new(0, 90, 1, -80) JoystickFrame.AnchorPoint = Vector2.new(0.5, 0.5) JoystickFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) JoystickFrame.BackgroundTransparency = 0.5 JoystickFrame.BorderSizePixel = 0 JoystickFrame.Parent = ScreenGui local JoystickCorner = Instance.new("UICorner") JoystickCorner.CornerRadius = UDim.new(1, 0) JoystickCorner.Parent = JoystickFrame local InputBlocker = Instance.new("TextButton") InputBlocker.Size = UDim2.new(1, 0, 1, 0) InputBlocker.BackgroundTransparency = 1 InputBlocker.Text = "" InputBlocker.Active = true InputBlocker.ZIndex = 10 InputBlocker.Parent = JoystickFrame local function createJoystickLabel(text, posX, posY) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0, 40, 0, 40) lbl.Position = UDim2.new(0, posX, 0, posY) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.fromRGB(200, 200, 200) lbl.TextSize = 22 lbl.Font = Enum.Font.GothamBold lbl.Parent = JoystickFrame end createJoystickLabel("W", 60, 0) createJoystickLabel("S", 60, 120) createJoystickLabel("A", 0, 60) createJoystickLabel("D", 120, 60) local JoystickKnob = Instance.new("TextButton") JoystickKnob.Name = "JoystickKnob" JoystickKnob.Size = UDim2.new(0, 45, 0, 45) JoystickKnob.AnchorPoint = Vector2.new(0.5, 0.5) JoystickKnob.Position = UDim2.new(0, 80, 0, 80) JoystickKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) JoystickKnob.BackgroundTransparency = 0.2 JoystickKnob.Text = "" JoystickKnob.Parent = JoystickFrame JoystickKnob.Active = false JoystickKnob.ZIndex = 11 local KnobCorner = Instance.new("UICorner") KnobCorner.CornerRadius = UDim.new(1, 0) KnobCorner.Parent = JoystickKnob -- =============== 紫按钮 & 面板 =============== local FunctionBtn = createRoundButton("功能", 100, 100, 50, 16) FunctionBtn.BackgroundColor3 = Color3.fromRGB(150, 0, 200) FunctionBtn.ZIndex = 3000 local MenuPanel = Instance.new("Frame") MenuPanel.Size = UDim2.new(0, 340, 0, 460) MenuPanel.Position = UDim2.new(0.5, -170, 0.5, -230) MenuPanel.BackgroundColor3 = Color3.fromRGB(20, 20, 20) MenuPanel.BackgroundTransparency = 0.3 MenuPanel.BorderSizePixel = 2 MenuPanel.BorderColor3 = Color3.fromRGB(150, 0, 200) MenuPanel.Visible = false MenuPanel.ZIndex = 2000 MenuPanel.Parent = ScreenGui local TitleLabel = Instance.new("TextLabel") TitleLabel.Size = UDim2.new(1, 0, 0, 25) TitleLabel.Position = UDim2.new(0, 0, 0, 5) TitleLabel.BackgroundTransparency = 1 TitleLabel.Text = "功能面板" TitleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) TitleLabel.TextSize = 18 TitleLabel.Font = Enum.Font.GothamBold TitleLabel.ZIndex = 2001 TitleLabel.Parent = MenuPanel local function createMenuRow(text, yPos) local rowLabel = Instance.new("TextLabel") rowLabel.Size = UDim2.new(0, 200, 0, 25) rowLabel.Position = UDim2.new(0, 20, 0, yPos) rowLabel.BackgroundTransparency = 1 rowLabel.Text = text rowLabel.TextColor3 = Color3.fromRGB(255, 255, 255) rowLabel.TextSize = 13 rowLabel.Font = Enum.Font.GothamBold rowLabel.TextXAlignment = Enum.TextXAlignment.Left rowLabel.ZIndex = 2001 rowLabel.Parent = MenuPanel local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 50, 0, 22) toggleBtn.Position = UDim2.new(1, -70, 0, yPos + 1.5) toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60) toggleBtn.Text = "启用" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.TextSize = 12 toggleBtn.Font = Enum.Font.GothamBold toggleBtn.ZIndex = 2002 toggleBtn.Parent = MenuPanel local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 4) corner.Parent = toggleBtn return toggleBtn end local QTE_Toggle = createMenuRow("智能挣脱 (自动检测)", 35) local SingleFlash_Toggle = createMenuRow("黑闪 (真人适用单段)", 70) local AutoFire_Toggle = createMenuRow("黑闪 (虎杖专用连版)", 105) local Kick_Toggle = createMenuRow("踢球 (九十九由基使用)", 140) local Slam_Toggle = createMenuRow("自动砸地 (第3段普攻)", 175) local AutoPunch_Toggle = createMenuRow("自动挥拳 (范围9.0)", 210) local AutoDefend_Toggle = createMenuRow("自动防御 (范围15.0)", 245) -- ====== 防反技能长方形选择框 ====== local skillPanelTitle = Instance.new("TextLabel") skillPanelTitle.Size = UDim2.new(0, 300, 0, 20) skillPanelTitle.Position = UDim2.new(0, 20, 0, 320) skillPanelTitle.BackgroundTransparency = 1 skillPanelTitle.Text = "自动防反选择 (距离9.0):" skillPanelTitle.TextColor3 = Color3.fromRGB(200, 200, 200) skillPanelTitle.TextSize = 13 skillPanelTitle.TextXAlignment = Enum.TextXAlignment.Left skillPanelTitle.ZIndex = 2001 skillPanelTitle.Parent = MenuPanel local skillFrame = Instance.new("Frame") skillFrame.Size = UDim2.new(0, 300, 0, 30) skillFrame.Position = UDim2.new(0, 20, 0, 345) skillFrame.BackgroundTransparency = 1 skillFrame.Parent = MenuPanel local function createSkillBox(text, x, enabled) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 65, 0, 28) btn.Position = UDim2.new(0, x, 0, 0) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) btn.Text = text btn.TextColor3 = enabled and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(100, 100, 100) btn.TextSize = 13 btn.Font = Enum.Font.GothamBold btn.ZIndex = 2002 btn.Parent = skillFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 4) corner.Parent = btn local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(150, 0, 200) stroke.Thickness = 3 stroke.Enabled = false stroke.Parent = btn if not enabled then btn.Active = false end return btn, stroke end local Box1, Stroke1 = createSkillBox("技能1", 0, false) local Box2, Stroke2 = createSkillBox("技能2", 75, false) local Box3, Stroke3 = createSkillBox("技能3", 150, false) local Box4, Stroke4 = createSkillBox("虎杖(4)", 225, true) -- ======================================== local function updateUIState() if MenuPanel.Visible then JoystickFrame.Visible = false JumpBtn.Visible = false BlackFlashBtn.Visible = false AutoFireBtn.Visible = false KickBtn.Visible = false Crosshair.Visible = false for _, btn in ipairs(hideableButtons) do btn.Visible = false end else JoystickFrame.Visible = true if isJumpReady then JumpBtn.Visible = true end for _, btn in ipairs(hideableButtons) do btn.Visible = true end Crosshair.Visible = true if SingleFlash_Toggle.Text == "已开启" then BlackFlashBtn.Visible = true elseif AutoFire_Toggle.Text == "已开启" then AutoFireBtn.Visible = true elseif Kick_Toggle.Text == "已开启" then KickBtn.Visible = true end end end updateUIState() -- 拖拽 local dragStart, startPos local isDragging = false FunctionBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then dragStart = input.Position startPos = FunctionBtn.Position isDragging = false end end) UserInputService.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseMovement then if dragStart then local delta = input.Position - dragStart if delta.Magnitude > 10 then isDragging = true FunctionBtn.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then if dragStart then if not isDragging then MenuPanel.Visible = not MenuPanel.Visible updateUIState() end dragStart = nil isDragging = false end end end) -- 基础按键逻辑 local function sendKey(keyCode, isPressed) pcall(function() VirtualInputManager:SendKeyEvent(isPressed, keyCode, false, game) end) end local function simulateMouseClickSafe(isPressed) pcall(function() VirtualInputManager:SendMouseButtonEvent(10, 10, 0, isPressed, game, 0) end) end local function tapKey(keyCode) pcall(function() VirtualInputManager:SendKeyEvent(true, keyCode, false, game) task.wait(0.02) VirtualInputManager:SendKeyEvent(false, keyCode, false, game) end) end local KNOB_RADIUS = 45 local joystickActiveTouch = nil local activeKeys = {} local joystickCenter = Vector2.new(0, 0) local function updateJoystickCenter() joystickCenter = JoystickFrame.AbsolutePosition + (JoystickFrame.AbsoluteSize / 2) end updateJoystickCenter() JoystickFrame:GetPropertyChangedSignal("AbsolutePosition"):Connect(updateJoystickCenter) JoystickFrame:GetPropertyChangedSignal("AbsoluteSize"):Connect(updateJoystickCenter) local function updateKeys(newKeys) for _, k in ipairs(newKeys) do if not table.find(activeKeys, k) then sendKey(k, true) end end for _, k in ipairs(activeKeys) do if not table.find(newKeys, k) then sendKey(k, false) end end activeKeys = newKeys end local function updateJoystick(input) local touchPos = Vector2.new(input.Position.X, input.Position.Y) local delta = touchPos - joystickCenter if delta.Magnitude > KNOB_RADIUS then delta = delta * (KNOB_RADIUS / delta.Magnitude) end JoystickKnob.Position = UDim2.new(0, 80 + delta.X, 0, 80 + delta.Y) local normX, normY = delta.X / KNOB_RADIUS, delta.Y / KNOB_RADIUS local targetKeys = {} if normY < -0.35 then table.insert(targetKeys, Enum.KeyCode.W) end if normY > 0.35 then table.insert(targetKeys, Enum.KeyCode.S) end if normX < -0.35 then table.insert(targetKeys, Enum.KeyCode.A) end if normX > 0.35 then table.insert(targetKeys, Enum.KeyCode.D) end updateKeys(targetKeys) end local function resetJoystick() JoystickKnob.Position = UDim2.new(0, 80, 0, 80) updateKeys({}) end UserInputService.InputBegan:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then local touchPos = Vector2.new(input.Position.X, input.Position.Y) if (touchPos - joystickCenter).Magnitude <= 100 and not joystickActiveTouch and not isDragging and not MenuPanel.Visible then joystickActiveTouch = input updateJoystick(input) end end end) UserInputService.InputChanged:Connect(function(input) if input == joystickActiveTouch then updateJoystick(input) end end) UserInputService.InputEnded:Connect(function(input) if input == joystickActiveTouch then joystickActiveTouch = nil resetJoystick() end end) ShiftBtn.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.LeftShift, true) end end) ShiftBtn.InputEnded:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.LeftShift, false) end end) -- 特殊键(纯净版,只有普通的R键) SpecialBtn.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.R, true) end end) SpecialBtn.InputEnded:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.R, false) end end) DefendBtn.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.F, true) end end) DefendBtn.InputEnded:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.F, false) end end) DashBtn.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.Q, true) end end) DashBtn.InputEnded:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.Q, false) end end) JumpBtn.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.Space, true) end end) JumpBtn.InputEnded:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then sendKey(Enum.KeyCode.Space, false) end end) local function jumpAndWaitLift(timeout) timeout = timeout or 0.8 local char = LocalPlayer.Character local initialY = 0 if char and char:FindFirstChild("HumanoidRootPart") then initialY = char.HumanoidRootPart.Position.Y end sendKey(Enum.KeyCode.Space, true) local startTime = os.clock() local lifted = false while os.clock() - startTime < timeout do local c = LocalPlayer.Character if c and c:FindFirstChild("Humanoid") and c:FindFirstChild("HumanoidRootPart") then local humanoid = c.Humanoid local yDelta = c.HumanoidRootPart.Position.Y - initialY if humanoid.FloorMaterial == Enum.Material.Air or yDelta > 0.5 then lifted = true break end end task.wait(0.02) end sendKey(Enum.KeyCode.Space, false) return lifted end local autoSlamEnabled = false local punchCount = 0 local lastPunchTime = 0 local isSlamExecuting = false PunchBtn.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then if isSlamExecuting then return end if autoSlamEnabled then simulateMouseClickSafe(true) task.wait(0.05) simulateMouseClickSafe(false) local currentTime = os.clock() if currentTime - lastPunchTime > 1.0 then punchCount = 0 end lastPunchTime = currentTime punchCount = punchCount + 1 if punchCount == 3 then punchCount = 0 isSlamExecuting = true PunchBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50) task.spawn(function() task.wait(0.5) local lifted = jumpAndWaitLift(0.9) if lifted then task.wait(0.15) simulateMouseClickSafe(true) task.wait(0.05) simulateMouseClickSafe(false) end task.wait(0.2) isSlamExecuting = false PunchBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) lastPunchTime = os.clock() end) end else simulateMouseClickSafe(true) end end end) PunchBtn.InputEnded:Connect(function(input) if (input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1) then simulateMouseClickSafe(false) end end) local KEY_3 = Enum.KeyCode.Three local KEY_1 = Enum.KeyCode.One local isAutoFiring = false local autoFireThread = nil local flashThread = nil local kickThread = nil local lastFlashClickTime = 0 local lastKickClickTime = 0 local function pressKey3() pcall(function() VirtualInputManager:SendKeyEvent(false, KEY_3, false, game) task.wait(0.01) VirtualInputManager:SendKeyEvent(true, KEY_3, false, game) task.wait(0.05) VirtualInputManager:SendKeyEvent(false, KEY_3, false, game) end) end local function pressKey1() pcall(function() VirtualInputManager:SendKeyEvent(false, KEY_1, false, game) task.wait(0.01) VirtualInputManager:SendKeyEvent(true, KEY_1, false, game) task.wait(0.05) VirtualInputManager:SendKeyEvent(false, KEY_1, false, game) end) end local function releaseKeys() pcall(function() VirtualInputManager:SendKeyEvent(false, KEY_3, false, game) end) pcall(function() VirtualInputManager:SendKeyEvent(false, KEY_1, false, game) end) end BlackFlashBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then local currentTime = os.clock() if currentTime - lastFlashClickTime > 1.0 then if flashThread then pcall(task.cancel, flashThread) flashThread = nil end end lastFlashClickTime = currentTime if isAutoFiring then isAutoFiring = false; AutoFireBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0); AutoFireBtn.Text = "连发" end if autoFireThread then pcall(task.cancel, autoFireThread) autoFireThread = nil end releaseKeys() if flashThread then pcall(task.cancel, flashThread) flashThread = nil end flashThread = task.spawn(function() pressKey3() task.wait(0.29) pressKey3() task.wait(0.1) flashThread = nil end) end end) AutoFireBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then isAutoFiring = not isAutoFiring if isAutoFiring then if flashThread then pcall(task.cancel, flashThread) flashThread = nil end AutoFireBtn.BackgroundColor3 = Color3.fromRGB(50, 200, 50) AutoFireBtn.Text = "停止" if autoFireThread then pcall(task.cancel, autoFireThread) end autoFireThread = task.spawn(function() local lastActionTime = os.clock() while isAutoFiring do if os.clock() - lastActionTime > 1.0 then isAutoFiring = false; AutoFireBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0); AutoFireBtn.Text = "连发"; break end pressKey3(); lastActionTime = os.clock() task.wait(0.29) if not isAutoFiring then break end pressKey3(); lastActionTime = os.clock() task.wait(0.63) end releaseKeys() end) else AutoFireBtn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) AutoFireBtn.Text = "连发" if autoFireThread then pcall(task.cancel, autoFireThread) autoFireThread = nil end releaseKeys() end end end) KickBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then local currentTime = os.clock() if currentTime - lastKickClickTime > 1.0 then if kickThread then pcall(task.cancel, kickThread) kickThread = nil end end lastKickClickTime = currentTime if kickThread then pcall(task.cancel, kickThread) kickThread = nil end kickThread = task.spawn(function() pressKey1() task.wait(1.03) pressKey1() task.wait(0.1) kickThread = nil end) end end) local autoPunchEnabled = false local autoDefendEnabled = false local autoYujiParryEnabled = false local attackRange = 9.0 local defendRange = 15.0 local combatThread = nil local isDefending = false local isComboExecuting = false local lastDefendTime = 0 local lastParryTime = 0 local rangePart = Instance.new("Part") rangePart.Name = "AutoPunchRangeCircle" rangePart.Shape = Enum.PartType.Cylinder rangePart.Material = Enum.Material.ForceField rangePart.Color = Color3.fromRGB(0, 255, 150) rangePart.Transparency = 1 rangePart.Anchored = true rangePart.CanCollide = false rangePart.Locked = true rangePart.Size = Vector3.new(0.1, attackRange * 2, attackRange * 2) rangePart.Orientation = Vector3.new(0, 0, 90) rangePart.Parent = workspace local defendRangePart = Instance.new("Part") defendRangePart.Name = "AutoDefendRangeCircle" defendRangePart.Shape = Enum.PartType.Cylinder defendRangePart.Material = Enum.Material.ForceField defendRangePart.Color = Color3.fromRGB(255, 50, 50) defendRangePart.Transparency = 1 defendRangePart.Anchored = true defendRangePart.CanCollide = false defendRangePart.Locked = true defendRangePart.Size = Vector3.new(0.1, defendRange * 2, defendRange * 2) defendRangePart.Orientation = Vector3.new(0, 0, 90) defendRangePart.Parent = workspace local parryRangePart = Instance.new("Part") parryRangePart.Name = "AutoParryRangeCircle" parryRangePart.Shape = Enum.PartType.Cylinder parryRangePart.Material = Enum.Material.ForceField parryRangePart.Color = Color3.fromRGB(255, 255, 0) parryRangePart.Transparency = 1 parryRangePart.Anchored = true parryRangePart.CanCollide = false parryRangePart.Locked = true parryRangePart.Size = Vector3.new(0.1, attackRange * 2, attackRange * 2) parryRangePart.Orientation = Vector3.new(0, 0, 90) parryRangePart.Parent = workspace RunService.RenderStepped:Connect(function() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then local groundPos = char.HumanoidRootPart.Position - Vector3.new(0, 2.8, 0) if autoPunchEnabled then rangePart.Position = groundPos end if autoDefendEnabled then defendRangePart.Position = groundPos end if autoYujiParryEnabled then parryRangePart.Position = groundPos end end end) local function startCombatLoop() if combatThread then pcall(task.cancel, combatThread) end combatThread = task.spawn(function() while autoPunchEnabled or autoDefendEnabled or autoYujiParryEnabled do local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Humanoid") and char.Humanoid.Health > 0 then local myPos = char.HumanoidRootPart.Position local inAttackRange = false local enemyAttacking = false local enemyParryAttacking = false for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("Model") and obj:FindFirstChild("HumanoidRootPart") and obj:FindFirstChild("Humanoid") then if obj ~= char and obj.Humanoid.Health > 0 then local hrp = obj.HumanoidRootPart local dist = (hrp.Position - myPos).Magnitude if dist <= attackRange then inAttackRange = true if autoYujiParryEnabled then for _, snd in pairs(obj:GetDescendants()) do if snd:IsA("Sound") and snd.IsPlaying then enemyParryAttacking = true break end end end end if autoDefendEnabled and dist <= defendRange then for _, snd in pairs(obj:GetDescendants()) do if snd:IsA("Sound") and snd.IsPlaying then enemyAttacking = true break end end end end end end if autoYujiParryEnabled and enemyParryAttacking then isComboExecuting = false simulateMouseClickSafe(false) if isDefending then sendKey(Enum.KeyCode.F, false) isDefending = false end if os.clock() - lastParryTime > 0.6 then lastParryTime = os.clock() tapKey(Enum.KeyCode.Four) end elseif autoDefendEnabled and enemyAttacking then isComboExecuting = false simulateMouseClickSafe(false) if not isDefending and os.clock() - lastDefendTime > 0.2 then isDefending = true lastDefendTime = os.clock() sendKey(Enum.KeyCode.F, true) task.spawn(function() task.wait(0.25) sendKey(Enum.KeyCode.F, false) isDefending = false end) end elseif autoPunchEnabled and inAttackRange and not isDefending then if not isComboExecuting then isComboExecuting = true task.spawn(function() if autoSlamEnabled then simulateMouseClickSafe(true); task.wait(0.05); simulateMouseClickSafe(false); task.wait(0.3) if isDefending or not isComboExecuting then isComboExecuting = false return end simulateMouseClickSafe(true); task.wait(0.05); simulateMouseClickSafe(false); task.wait(0.3) if isDefending or not isComboExecuting then isComboExecuting = false return end simulateMouseClickSafe(true); task.wait(0.05); simulateMouseClickSafe(false); task.wait(0.5) if isDefending or not isComboExecuting then isComboExecuting = false return end local lifted = jumpAndWaitLift(0.9) if isDefending or not isComboExecuting then isComboExecuting = false return end if lifted then task.wait(0.15) simulateMouseClickSafe(true); task.wait(0.05); simulateMouseClickSafe(false) end task.wait(0.4) else simulateMouseClickSafe(true); task.wait(0.05); simulateMouseClickSafe(false); task.wait(0.3) end isComboExecuting = false end) end end end task.wait(0.05) end end) end AutoPunch_Toggle.MouseButton1Click:Connect(function() autoPunchEnabled = not autoPunchEnabled if autoPunchEnabled then AutoPunch_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) AutoPunch_Toggle.Text = "已开启" rangePart.Transparency = 0.5 else AutoPunch_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) AutoPunch_Toggle.Text = "启用" rangePart.Transparency = 1 end startCombatLoop() end) AutoDefend_Toggle.MouseButton1Click:Connect(function() autoDefendEnabled = not autoDefendEnabled if autoDefendEnabled then AutoDefend_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) AutoDefend_Toggle.Text = "已开启" defendRangePart.Transparency = 0.5 else AutoDefend_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) AutoDefend_Toggle.Text = "启用" defendRangePart.Transparency = 1 sendKey(Enum.KeyCode.F, false) end startCombatLoop() end) Box4.MouseButton1Click:Connect(function() autoYujiParryEnabled = not autoYujiParryEnabled if autoYujiParryEnabled then Stroke4.Enabled = true parryRangePart.Transparency = 0.5 else Stroke4.Enabled = false parryRangePart.Transparency = 1 end startCombatLoop() end) Slam_Toggle.MouseButton1Click:Connect(function() autoSlamEnabled = not autoSlamEnabled if autoSlamEnabled then Slam_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) Slam_Toggle.Text = "已开启" else Slam_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) Slam_Toggle.Text = "启用" end end) local qteRunning = false local qteThread = nil local function getQTEKeyFromScreen() local camera = workspace.CurrentCamera if not camera then return nil end local centerX = camera.ViewportSize.X / 2 local centerY = camera.ViewportSize.Y / 2 for _, obj in ipairs(PlayerGui:GetDescendants()) do if obj:IsA("TextLabel") and obj.Visible and obj.Text ~= "" then local pos = obj.AbsolutePosition + (obj.AbsoluteSize / 2) if math.abs(pos.X - centerX) < 200 and math.abs(pos.Y - centerY) < 200 then local txt = string.upper(string.gsub(obj.Text, "%s+", "")) if txt == "A" or txt == "W" or txt == "D" or txt == "S" or txt == "Q" or txt == "E" then return txt end end end end for _, obj in ipairs(CoreGui:GetDescendants()) do if obj:IsA("TextLabel") and obj.Visible and obj.Text ~= "" then local pos = obj.AbsolutePosition + (obj.AbsoluteSize / 2) if math.abs(pos.X - centerX) < 200 and math.abs(pos.Y - centerY) < 200 then local txt = string.upper(string.gsub(obj.Text, "%s+", "")) if txt == "A" or txt == "W" or txt == "D" or txt == "S" or txt == "Q" or txt == "E" then return txt end end end end return nil end QTE_Toggle.MouseButton1Click:Connect(function() qteRunning = not qteRunning if qteRunning then QTE_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) QTE_Toggle.Text = "已开启" if qteThread then pcall(task.cancel, qteThread) end qteThread = task.spawn(function() while qteRunning do local qteKeyStr = getQTEKeyFromScreen() if qteKeyStr then local keyCode = nil if qteKeyStr == "A" then keyCode = Enum.KeyCode.A elseif qteKeyStr == "W" then keyCode = Enum.KeyCode.W elseif qteKeyStr == "D" then keyCode = Enum.KeyCode.D elseif qteKeyStr == "S" then keyCode = Enum.KeyCode.S elseif qteKeyStr == "Q" then keyCode = Enum.KeyCode.Q elseif qteKeyStr == "E" then keyCode = Enum.KeyCode.E end if keyCode then tapKey(keyCode) end else task.wait(0.05) end end end) else QTE_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) QTE_Toggle.Text = "启用" if qteThread then pcall(task.cancel, qteThread) qteThread = nil end end end) SingleFlash_Toggle.MouseButton1Click:Connect(function() if SingleFlash_Toggle.Text == "启用" then SingleFlash_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) SingleFlash_Toggle.Text = "已开启" AutoFire_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) AutoFire_Toggle.Text = "启用" Kick_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) Kick_Toggle.Text = "启用" isAutoFiring = false else SingleFlash_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) SingleFlash_Toggle.Text = "启用" end updateUIState() end) AutoFire_Toggle.MouseButton1Click:Connect(function() if AutoFire_Toggle.Text == "启用" then AutoFire_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) AutoFire_Toggle.Text = "已开启" SingleFlash_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) SingleFlash_Toggle.Text = "启用" Kick_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) Kick_Toggle.Text = "启用" isAutoFiring = false else AutoFire_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) AutoFire_Toggle.Text = "启用" isAutoFiring = false end updateUIState() end) Kick_Toggle.MouseButton1Click:Connect(function() if Kick_Toggle.Text == "启用" then Kick_Toggle.BackgroundColor3 = Color3.fromRGB(0, 150, 0) Kick_Toggle.Text = "已开启" SingleFlash_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) SingleFlash_Toggle.Text = "启用" AutoFire_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) AutoFire_Toggle.Text = "启用" isAutoFiring = false else Kick_Toggle.BackgroundColor3 = Color3.fromRGB(60, 60, 60) Kick_Toggle.Text = "启用" end updateUIState() end)