--[[ SBBF v9.1 - Paintball 专属版 自动识别 Paintball 技能 | 攻击必中 | 失败日志 2025-11-03 私人服务器实测 ]] -- ==================== 职业已锁定 ==================== local YOUR_CLASS = "Paintball" -- 已为你设置好! -- ==================== 日志系统 ==================== local LOGS = {} local MAX_LOGS = 25 local function AddLog(msg, color) table.insert(LOGS, 1, {Text = msg, Color = color or Color3.fromRGB(255,255,255)}) if #LOGS > MAX_LOGS then table.remove(LOGS) end print("[SBBF LOG] " .. msg) end -- ==================== 内置双页 UI ==================== local sg = Instance.new("ScreenGui", game.CoreGui); sg.Name = "SBBF_v9_Paintball" local main = Instance.new("Frame", sg); main.Size = UDim2.new(0,360,0,510); main.Position = UDim2.new(0.5,-180,0.5,-255); main.BackgroundColor3 = Color3.fromRGB(20,20,30); main.Draggable = true; main.Active = true local title = Instance.new("TextLabel", main); title.Size = UDim2.new(1,0,0,40); title.Text = "SBBF v9.1 - Paintball"; title.BackgroundColor3 = Color3.fromRGB(255,100,50); title.TextColor3 = Color3.new(1,1,1); title.Font = Enum.Font.GothamBold local close = Instance.new("TextButton", main); close.Size = UDim2.new(0,30,0,30); close.Position = UDim2.new(1,-35,0,5); close.Text = "X"; close.BackgroundColor3 = Color3.fromRGB(255,50,50); close.MouseButton1Click:Connect(function() sg:Destroy() end) -- 切换按钮 local pageBtn = Instance.new("TextButton", main); pageBtn.Size = UDim2.new(0,100,0,30); pageBtn.Position = UDim2.new(0,10,0,45); pageBtn.Text = "→ 日志页"; pageBtn.BackgroundColor3 = Color3.fromRGB(70,130,255) -- 主页 local y1 = 85 local function addBtn(text, def, cb) local b = Instance.new("TextButton", main); b.Size = UDim2.new(0.9,0,0,35); b.Position = UDim2.new(0.05,0,0,y1); y1 = y1 + 45 b.BackgroundColor3 = def and Color3.fromRGB(0,200,0) or Color3.fromRGB(90,90,90); b.Text = (def and "[ON]" or "[OFF]") .. " " .. text; b.TextColor3 = Color3.new(1,1,1) local st = def; b.MouseButton1Click:Connect(function() st = not st; b.Text = (st and "[ON]" or "[OFF]") .. " " .. text; b.BackgroundColor3 = st and Color3.fromRGB(0,200,0) or Color3.fromRGB(90,90,90); cb(st) end) end -- 日志页 local logPage = Instance.new("Frame", main); logPage.Size = UDim2.new(1,0,1,-40); logPage.Position = UDim2.new(0,0,0,40); logPage.BackgroundTransparency = 1; logPage.Visible = false local logTitle = Instance.new("TextLabel", logPage); logTitle.Size = UDim2.new(1,0,0,35); logTitle.Text = "Paintball 攻击日志"; logTitle.BackgroundColor3 = Color3.fromRGB(50,50,70); logTitle.TextColor3 = Color3.new(1,1,1) local logBack = Instance.new("TextButton", logPage); logBack.Size = UDim2.new(0,80,0,30); logBack.Position = UDim2.new(0,10,0,5); logBack.Text = "← 返回"; logBack.BackgroundColor3 = Color3.fromRGB(255,150,50) local logBox = Instance.new("ScrollingFrame", logPage); logBox.Size = UDim2.new(1,-20,1,-50); logBox.Position = UDim2.new(0,10,0,40); logBox.BackgroundTransparency = 1; logBox.ScrollBarThickness = 6 local function UpdateLogs() for _, v in ipairs(logBox:GetChildren()) do if v:IsA("TextLabel") then v:Destroy() end end local ly = 0 for i, log in ipairs(LOGS) do local lbl = Instance.new("TextLabel", logBox) lbl.Size = UDim2.new(1,0,0,25); lbl.Position = UDim2.new(0,0,0,ly); ly = ly + 30 lbl.BackgroundTransparency = 1; lbl.Text = log.Text; lbl.TextColor3 = log.Color; lbl.TextXAlignment = Enum.TextXAlignment.Left end logBox.CanvasSize = UDim2.new(0,0,0,ly) end pageBtn.MouseButton1Click:Connect(function() if logPage.Visible then title.Text = "SBBF v9.1 - Paintball" pageBtn.Text = "→ 日志页" logPage.Visible = false else title.Text = "日志页" pageBtn.Text = "← 主页" logPage.Visible = true UpdateLogs() end end) logBack.MouseButton1Click:Connect(function() pageBtn.MouseButton1Click:Fire() end) -- ==================== 开关 ==================== local CFG = { KillAura = true, InfStamina = true, Dummy = false, TeleportToTower1 = false, -- 新增:传送至塔一 TeleportToTower2 = false -- 新增:传送至塔二 } addBtn("Paintball 自动射击", true, function(v) CFG.KillAura = v end) addBtn("无限体力", true, function(v) CFG.InfStamina = v end) addBtn("打训练假人", false, function(v) CFG.Dummy = v end) addBtn("传送至塔一", false, function(v) CFG.TeleportToTower1 = v end) -- 新增按钮 addBtn("传送至塔二", false, function(v) CFG.TeleportToTower2 = v end) -- 新增按钮 -- ==================== 服务 ==================== local P = game.Players.LocalPlayer local RS = game:GetService("ReplicatedStorage"):WaitForChild("Remotes") local Charge = RS:WaitForChild("Charge") local Activate = RS:WaitForChild("Activate") local Damage = RS:WaitForChild("Damage") local WS = workspace -- ==================== 无限体力 ==================== task.spawn(function() while task.wait(0.1) do if CFG.InfStamina and P:FindFirstChild("Energy") then P.Energy.Value = math.huge AddLog("体力已刷新 → ∞", Color3.fromRGB(0,255,0)) end end end) -- ==================== 传送功能 ==================== task.spawn(function() while task.wait(0.5) do local char = P.Character if not char or not char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Humanoid").Health <= 0 then AddLog("角色死亡或未加载,无法传送", Color3.fromRGB(255,100,100)) continue end local root = char.HumanoidRootPart if CFG.TeleportToTower1 then root.CFrame = CFrame.new(Vector3.new(179.08, 158.39, 299.95)) AddLog("已传送至塔一 (179.08, 158.39, 299.95)", Color3.fromRGB(0,255,255)) CFG.TeleportToTower1 = false -- 传送后关闭功能 -- 更新按钮状态 for _, btn in ipairs(main:GetChildren()) do if btn:IsA("TextButton") and btn.Text:find("传送至塔一") then btn.Text = "[OFF] 传送至塔一" btn.BackgroundColor3 = Color3.fromRGB(90,90,90) end end elseif CFG.TeleportToTower2 then root.CFrame = CFrame.new(Vector3.new(162.00, 156.26, -293.83)) AddLog("已传送至塔二 (162.00, 156.26, -293.83)", Color3.fromRGB(0,255,255)) CFG.TeleportToTower2 = false -- 传送后关闭功能 -- 更新按钮状态 for _, btn in ipairs(main:GetChildren()) do if btn:IsA("TextButton") and btn.Text:find("传送至塔二") then btn.Text = "[OFF] 传送至塔二" btn.BackgroundColor3 = Color3.fromRGB(90,90,90) end end end end end) -- ==================== Paintball 攻击主循环 ==================== task.spawn(function() while task.wait(0.26) do if not CFG.KillAura then continue end local char = P.Character if not char or not char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("Humanoid").Health <= 0 then AddLog("角色死亡或未加载", Color3.fromRGB(255,100,100)) continue end local root = char.HumanoidRootPart local tool = char:FindFirstChildOfClass("Tool") if tool and tool:FindFirstChild("Combonum") then tool.Combonum.Value = 0 end for _, e in WS.Characters.Enemies:GetChildren() do if not CFG.Dummy and e.Name == "Training Dummy" then continue end local hum = e:FindFirstChild("Humanoid") if not hum or hum.Health <= 0 then continue end local eroot = e:FindFirstChild("HumanoidRootPart") if not eroot then AddLog("Boss 无 RootPart: " .. e.Name, Color3.fromRGB(255,200,0)); continue end if (root.Position - eroot.Position).Magnitude < 18 then root.CFrame = eroot.CFrame * CFrame.new(0,0,22) end local pos = eroot.Position + Vector3.new(math.random(-1,1), 5, math.random(-1,1)) -- Paintball 三连 local ok1, err1 = pcall(function() Charge:FireServer(YOUR_CLASS, {Mousepos = pos}) end) if not ok1 then AddLog("Charge 失败: " .. tostring(err1), Color3.fromRGB(255,100,100)) end task.wait(0.05) local ok2, err2 = pcall(function() Activate:FireServer(YOUR_CLASS, { Charge = 0, Mousepos = pos, ComboNum = 1 }, 1, "196\226\134\169563041248341425220142Accelerate") end) if not ok2 then AddLog("Activate 失败: " .. tostring(err2), Color3.fromRGB(255,100,100)) end task.wait(0.05) local ok3, err3 = pcall(function() Damage:FireServer(hum, YOUR_CLASS) end) if ok3 then AddLog("Paintball 命中!" .. e.Name .. " 剩 " .. math.floor(hum.Health) .. " 血", Color3.fromRGB(0,255,255)) else AddLog("Damage 失败: " .. tostring(err3), Color3.fromRGB(255,100,100)) end end end end) -- 启动 AddLog("Paintball 脚本已启动!", Color3.fromRGB(255,200,50)) game.StarterGui:SetCore("SendNotification", {Title="SBBF v9.1"; Text="Paintball 自动射击已启用!"; Duration=6})