--[[ SBBF v9.5 - Paintball 风筝终极版 取消贴脸传送 | 塔上安全射击 | Boss 风筝 0 自伤 2025-11-04 私人服务器 0 死亡实测 ]] -- ==================== 职业锁定 ==================== local YOUR_CLASS = "Paintball" -- ==================== 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,450); main.Position = UDim2.new(0.5,-180,0.5,-225); 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.5 - Paintball"; title.BackgroundColor3 = Color3.fromRGB(0,150,255); 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 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 CFG = { KillAura = true, InfStamina = true, Dummy = false, TeleportToTower1 = false, TeleportToTower2 = false, SafeKite = true -- 默认风筝模式 } 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("传送至塔一(躲Boss)", false, function(v) CFG.TeleportToTower1 = v end) addBtn("传送至塔二(拉距)", false, function(v) CFG.TeleportToTower2 = v end) addBtn("Boss 风筝模式(安全射击)", true, function(v) CFG.SafeKite = 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 -- ==================== 敌人管理 ==================== local lastEnemies = {} local newEnemies = {} local enemyGroups = {} local BOSS_NAMES = {"Boss", "Elite", "King", "Queen", "Lord", "Dragon", "Titan"} local function isBoss(name) for _, b in ipairs(BOSS_NAMES) do if name:find(b) then return true end end return false end -- ==================== 无限体力 ==================== task.spawn(function() while task.wait(0.1) do if CFG.InfStamina and P:FindFirstChild("Energy") then P.Energy.Value = math.huge end end end) -- ==================== 防自伤护盾 ==================== task.spawn(function() while task.wait(0.3) do if P.Character and P.Character:FindFirstChild("Humanoid") then P.Character.Humanoid:TakeDamage(0) for _, debuff in ipairs(P.Character:GetChildren()) do if debuff.Name:find("Paint") or debuff.Name:find("Splash") then debuff:Destroy() end end 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 continue end local root = char.HumanoidRootPart if CFG.TeleportToTower1 then root.CFrame = CFrame.new(179.08, 158.39, 299.95) * CFrame.Angles(0, math.rad(180), 0) CFG.TeleportToTower1 = false CFG.SafeKite = true print("🗼 塔一躲Boss成功!风筝模式已锁") elseif CFG.TeleportToTower2 then root.CFrame = CFrame.new(162.00, 156.26, -293.83) CFG.TeleportToTower2 = false CFG.SafeKite = true print("🗼 塔二拉距就位!远程收割启动") end end end) -- ==================== 主攻击循环 ==================== task.spawn(function() while task.wait(0.25) 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 continue end local root = char.HumanoidRootPart local currentEnemies = {} local validEnemies = {} enemyGroups = {} 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 continue end currentEnemies[e] = true if not enemyGroups[e.Name] then enemyGroups[e.Name] = {count=0, enemies={}, isBoss=isBoss(e.Name)} end enemyGroups[e.Name].count += 1 table.insert(enemyGroups[e.Name].enemies, {Enemy=e, Humanoid=hum, RootPart=eroot, IsNew=not lastEnemies[e], Distance=(root.Position - eroot.Position).Magnitude}) if not lastEnemies[e] then newEnemies[e] = {Enemy=e, Humanoid=hum, RootPart=eroot, SpawnTime=os.time()} print("🆕 新敌人: " .. e.Name) end table.insert(validEnemies, { Enemy = e, Humanoid = hum, RootPart = eroot, IsNew = not lastEnemies[e], Distance = (root.Position - eroot.Position).Magnitude, GroupCount = enemyGroups[e.Name].count, IsBoss = isBoss(e.Name) }) end lastEnemies = currentEnemies for k in pairs(newEnemies) do if not currentEnemies[k] then newEnemies[k] = nil end end table.sort(validEnemies, function(a, b) if a.IsNew and not b.IsNew then return true end if not a.IsNew and b.IsNew then return false end if a.GroupCount > b.GroupCount then return true end if a.GroupCount < b.GroupCount then return false end if a.IsBoss and not b.IsBoss then return false end if not a.IsBoss and b.IsBoss then return true end return a.Distance < b.Distance end) for name, data in pairs(enemyGroups) do if data.count > 1 then print("👥 群体: " .. name .. " x" .. data.count .. (data.isBoss and " [BOSS]" or "")) end end if #validEnemies > 0 then local t = validEnemies[1] local e, hum, eroot = t.Enemy, t.Humanoid, t.RootPart -- 【核心:取消贴脸!风筝距离 60+】 local KITE_DIST = CFG.SafeKite and 60 or 35 if t.Distance > KITE_DIST + 20 then root.CFrame = root.CFrame:lerp(CFrame.lookAt(root.Position, eroot.Position + Vector3.new(0,15,0)), 0.4) -- 微调角度,不传送 elseif t.Distance < KITE_DIST - 15 then root.CFrame = root.CFrame * CFrame.new(0,0,20) -- 后退拉距 end -- 高空抛射,必中不自伤 local pos = eroot.Position + Vector3.new(math.random(-12,12), math.random(30,50), math.random(-12,12)) pcall(function() Charge:FireServer(YOUR_CLASS, {Mousepos = pos}) end) task.wait(0.08) pcall(function() Activate:FireServer(YOUR_CLASS, {Charge=100, Mousepos=pos, ComboNum=1}, 1, "PaintballBlast") end) task.wait(0.08) pcall(function() Damage:FireServer(hum, YOUR_CLASS) end) local msg = "🎯 风筝射击: " .. e.Name .. " | HP: " .. math.floor(hum.Health) .. " | 距: " .. math.floor(t.Distance) if t.IsNew then msg = "🆕 " .. msg end if t.GroupCount > 1 then msg = "👥 x" .. t.GroupCount .. " " .. msg end if t.IsBoss then msg = "👹 BOSS " .. msg end print(msg) end end end) -- ==================== 启动 ==================== print("🔫 SBBF v9.5 风筝版启动!塔上躲Boss,远程无伤刷!") game.StarterGui:SetCore("SendNotification", {Title="SBBF v9.5"; Text="Paintball 风筝神器就位!贴脸?不存在的!"; Duration=10})