-- ============================================ -- SCRIPT: ODP_CADEIRAV1 -- JOGO: DUELOS! PASSE A BOMBA -- AUTOR: ODPCADEIRA -- INTERFACE: RAYFIELD -- ============================================ -- ========== CARREGAR RAYFIELD ========== local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() -- ========== MENSAGEM INICIAL ========== local function MostrarMensagem() local gui = Instance.new("ScreenGui") gui.Name = "FeitoPor" gui.Parent = game.Players.LocalPlayer.PlayerGui gui.ResetOnSpawn = false local frame = Instance.new("Frame") frame.Parent = gui frame.Size = UDim2.new(0, 350, 0, 80) frame.Position = UDim2.new(0.5, -175, 0.5, -40) frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) frame.BackgroundTransparency = 0.6 frame.BorderSizePixel = 0 local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 16) corner.Parent = frame local label = Instance.new("TextLabel") label.Parent = frame label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = "✨ FEITO POR ODPCADEIRA ✨" label.TextColor3 = Color3.fromRGB(255, 215, 0) label.TextScaled = true label.Font = Enum.Font.GothamBold label.TextStrokeColor3 = Color3.fromRGB(180, 150, 0) label.TextStrokeTransparency = 0.3 wait(3) gui:Destroy() end MostrarMensagem() wait(0.5) -- ========== VARIÁVEIS GLOBAIS ========== local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local lp = Players.LocalPlayer print("=== ODP_CADEIRAV1 - RAYFIELD ===") -- ========== CONFIG ========== local config = { Hitbox = false, Mensagens = false, Teleporte = false, HitboxSize = 6, } -- ========== VARIÁVEIS ========== local mensagens = {} local ultEstado = {} local posOriginal = nil local teleportando = false local tamanhosOrig = {} local notifGui = nil local notifLabel = nil local bombaAtiva = false -- ========== FUNÇÃO: BOMBA ========== function TemBomba(jogador) local c = jogador.Character if not c then return false end for _, child in ipairs(c:GetChildren()) do if child.Name == "Bomber" or child.Name == "Bomb Box" then return true end local nome = string.lower(child.Name or "") if string.find(nome, "bomb") or string.find(nome, "explos") then return true end end for _, desc in ipairs(c:GetDescendants()) do if desc.Name == "Bomber" or desc.Name == "Bomb Box" then return true end local nome = string.lower(desc.Name or "") if string.find(nome, "bomb") or string.find(nome, "explos") then return true end end for _, item in ipairs(c:GetChildren()) do if item:IsA("Tool") then local nome = string.lower(item.Name) if string.find(nome, "bomb") or string.find(nome, "explos") then return true end end end return false end -- ========== FUNÇÃO: TIMER ========== function PegarTimer() local gui = lp:FindFirstChild("PlayerGui") if not gui then return nil end for _, obj in ipairs(gui:GetDescendants()) do if obj:IsA("TextLabel") then local num = tonumber(string.match(obj.Text or "", "([%d.]+)")) if num and num > 0 and num <= 15 then return num end end end return nil end -- ========== NOTIFICAÇÃO ========== function MostrarNotificacao() if notifGui then pcall(function() notifGui:Destroy() end) notifGui = nil notifLabel = nil end local gui = Instance.new("ScreenGui") gui.Name = "NotifBomba" gui.Parent = lp.PlayerGui gui.ResetOnSpawn = false local frame = Instance.new("Frame") frame.Parent = gui frame.Size = UDim2.new(0, 200, 0, 34) frame.Position = UDim2.new(0.02, 0, 0.05, 0) frame.BackgroundColor3 = Color3.new(1, 0, 0) frame.BackgroundTransparency = 0.05 frame.BorderSizePixel = 0 local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = frame local label = Instance.new("TextLabel") label.Parent = frame label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = "💣 VOCÊ ESTÁ COM A BOMBA!" label.TextColor3 = Color3.new(1, 1, 1) label.TextScaled = true label.Font = Enum.Font.GothamBold notifGui = gui notifLabel = label end function RemoverNotificacao() bombaAtiva = false if notifGui then pcall(function() notifGui:Destroy() end) notifGui = nil notifLabel = nil end end -- ========== FUNÇÃO: VIVO ========== function Vivo(jogador) local c = jogador.Character if not c then return false end local hum = c:FindFirstChild("Humanoid") if not hum then return false end return hum.Health > 0 end function NaPartida() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= lp then local c = plr.Character if c and c:FindFirstChild("HumanoidRootPart") and Vivo(plr) then return true end end end return false end -- ========== INIMIGO MAIS PRÓXIMO ========== function InimigoProximo() local char = lp.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end local pos = char.HumanoidRootPart.Position local alvo = nil local distMin = 9999 for _, plr in ipairs(Players:GetPlayers()) do if plr ~= lp and Vivo(plr) and NaPartida(plr) then local c = plr.Character if c and c:FindFirstChild("HumanoidRootPart") then local dist = (pos - c.HumanoidRootPart.Position).Magnitude if dist < distMin then distMin = dist alvo = c end end end end return alvo end -- ========== TELEPORTE ========== function Teleportar() if teleportando or not config.Teleporte then return end local char = lp.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return end if not TemBomba(lp) then return end local timer = PegarTimer() if not timer or timer >= 3 then return end local inimigo = InimigoProximo() if not inimigo then return end teleportando = true posOriginal = char.HumanoidRootPart.Position char.HumanoidRootPart.CFrame = CFrame.new(inimigo.HumanoidRootPart.Position + Vector3.new(0, 0, 2)) wait(0.1) local toque = Instance.new("Part") toque.Size = Vector3.new(5, 5, 5) toque.CFrame = inimigo.HumanoidRootPart.CFrame toque.Anchored = true toque.CanCollide = true toque.Transparency = 1 toque.Parent = Workspace for _, parte in ipairs({inimigo:FindFirstChild("HumanoidRootPart"), inimigo:FindFirstChild("Torso"), inimigo:FindFirstChild("UpperTorso")}) do if parte then pcall(function() parte.Touched:Fire(toque) end) end end wait(0.05) toque:Destroy() if posOriginal then wait(0.1) char.HumanoidRootPart.CFrame = CFrame.new(posOriginal) posOriginal = nil end teleportando = false end -- ========== HITBOX ========== function AtivarHitbox() if not config.Hitbox then for plr in pairs(tamanhosOrig) do local c = plr.Character if c then for nome, tam in pairs(tamanhosOrig[plr] or {}) do local parte = c:FindFirstChild(nome) if parte then pcall(function() parte.Size = tam end) end end end end tamanhosOrig = {} return end if not NaPartida() then return end local size = config.HitboxSize or 6 for _, plr in ipairs(Players:GetPlayers()) do if plr ~= lp then local c = plr.Character if c and Vivo(plr) then if not tamanhosOrig[plr] then tamanhosOrig[plr] = {} end for _, nome in ipairs({"HumanoidRootPart","Torso","UpperTorso","LowerTorso","LeftArm","RightArm","LeftLeg","RightLeg"}) do local parte = c:FindFirstChild(nome) if parte and (parte:IsA("Part") or parte:IsA("MeshPart")) then if not tamanhosOrig[plr][nome] then tamanhosOrig[plr][nome] = parte.Size end pcall(function() parte.Size = Vector3.new(size, size, size) parte.CanCollide = false parte.Transparency = 0.7 parte.Color = Color3.new(0.3, 0.3, 0.3) end) end end end end end end -- ========== MENSAGENS ========== function AtivarMensagens() if not config.Mensagens then for _, obj in pairs(mensagens) do pcall(function() obj:Destroy() end) end mensagens = {} ultEstado = {} return end if not NaPartida() then return end local char = lp.Character if not char then return end local w, h = 45, 16 for _, child in ipairs(char:GetChildren()) do if child:IsA("BillboardGui") and child.Name == "SelfMsg" then child:Destroy() end end if TemBomba(lp) then local cabeca = char:FindFirstChild("Head") if cabeca then local bg = Instance.new("BillboardGui") bg.Name = "SelfMsg" bg.Parent = char bg.Size = UDim2.new(0, w, 0, h) bg.StudsOffset = Vector3.new(0, 4.5, 0) bg.AlwaysOnTop = true bg.Adornee = cabeca local label = Instance.new("TextLabel") label.Parent = bg label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundColor3 = Color3.new(1, 0, 0) label.BackgroundTransparency = 0.15 label.Text = "💣 BOMBA!" label.TextColor3 = Color3.new(1, 1, 0) label.TextScaled = true label.Font = Enum.Font.GothamBold label.BorderSizePixel = 0 end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= lp then local c = plr.Character if not c or not Vivo(plr) then if mensagens[plr] then pcall(function() mensagens[plr]:Destroy() end) mensagens[plr] = nil ultEstado[plr] = nil end else local temBomba = TemBomba(plr) local cabeca = c:FindFirstChild("Head") if ultEstado[plr] ~= temBomba then ultEstado[plr] = temBomba if mensagens[plr] then pcall(function() mensagens[plr]:Destroy() end) mensagens[plr] = nil end end if cabeca then if mensagens[plr] then local label = mensagens[plr]:FindFirstChild("TextLabel") if label then if temBomba then label.Text = "💣 BOMBA!" label.BackgroundColor3 = Color3.new(1, 0, 0) label.TextColor3 = Color3.new(1, 1, 0) else label.Text = "SEM BOMBA" label.BackgroundColor3 = Color3.new(0, 0.3, 0.8) label.TextColor3 = Color3.new(1, 1, 1) end end else local bg = Instance.new("BillboardGui") bg.Parent = c bg.Size = UDim2.new(0, w, 0, h) bg.StudsOffset = Vector3.new(0, 3.5, 0) bg.AlwaysOnTop = true bg.Adornee = cabeca local label = Instance.new("TextLabel") label.Parent = bg label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 0.15 label.TextScaled = true label.Font = Enum.Font.GothamBold label.BorderSizePixel = 0 if temBomba then label.Text = "💣 BOMBA!" label.BackgroundColor3 = Color3.new(1, 0, 0) label.TextColor3 = Color3.new(1, 1, 0) else label.Text = "SEM BOMBA" label.BackgroundColor3 = Color3.new(0, 0.3, 0.8) label.TextColor3 = Color3.new(1, 1, 1) end mensagens[plr] = bg end end end end end end -- ========== LOOP ========== spawn(function() while wait(0.15) do pcall(function() if not lp.Character then return end local temBomba = TemBomba(lp) if temBomba and not bombaAtiva then bombaAtiva = true MostrarNotificacao() print("💣 VOCÊ ESTÁ COM A BOMBA!") elseif not temBomba and bombaAtiva then bombaAtiva = false RemoverNotificacao() print("🟢 BOMBA REMOVIDA!") end if config.Hitbox then AtivarHitbox() end if config.Mensagens then AtivarMensagens() end if config.Teleporte then Teleportar() end end) end end) lp.CharacterAdded:Connect(function() wait(0.5) for _, obj in pairs(mensagens) do pcall(function() obj:Destroy() end) end mensagens = {} ultEstado = {} posOriginal = nil teleportando = false RemoverNotificacao() end) -- ============================================ -- ========== INTERFACE RAYFIELD ========== -- ============================================ local Window = Rayfield:CreateWindow({ Name = "🪑 ODP_CADEIRAV1", LoadingTitle = "Carregando ODP_CADEIRAV1...", LoadingSubtitle = "by ODPCADEIRA", ConfigurationSaving = { Enabled = true, FolderName = "ODPCADEIRAV1", FileName = "Settings" }, Discord = { Enabled = false }, KeySystem = false, RayfieldVersion = "1.0" }) -- ========== ABA PRINCIPAL ========== local MainTab = Window:CreateTab("⚙️ Principal", 4483362458) -- ========== SEÇÃO: HITBOX ========== MainTab:CreateSection("📐 HITBOX") MainTab:CreateToggle({ Name = "Ativar Hitbox", CurrentValue = false, Flag = "HitboxToggle", Callback = function(Value) config.Hitbox = Value print("✅ Hitbox: " .. (Value and "ON" or "OFF")) end, }) MainTab:CreateSlider({ Name = "Tamanho da Hitbox", Range = {3, 12}, Increment = 1, Suffix = "Studs", CurrentValue = 6, Flag = "HitboxSize", Callback = function(Value) config.HitboxSize = Value print("📏 Hitbox Size: " .. Value) end, }) -- ========== SEÇÃO: MENSAGENS ========== MainTab:CreateSection("💬 MENSAGENS") MainTab:CreateToggle({ Name = "Ativar Mensagens", CurrentValue = false, Flag = "MsgToggle", Callback = function(Value) config.Mensagens = Value print("✅ Mensagens: " .. (Value and "ON" or "OFF")) end, }) -- ========== SEÇÃO: TELEPORTE ========== MainTab:CreateSection("🚀 TELEPORTE") MainTab:CreateToggle({ Name = "Ativar Teleporte", CurrentValue = false, Flag = "TeleporteToggle", Callback = function(Value) config.Teleporte = Value print("✅ Teleporte: " .. (Value and "ON" or "OFF")) end, }) MainTab:CreateParagraph({ Title = "ℹ️ Informações do Teleporte", Content = "• Teleporta quando timer < 3s\n• Passa a bomba automaticamente\n• Volta para posição original" }) -- ========== ABA: STATUS ========== local StatusTab = Window:CreateTab("📊 Status", 4483362458) StatusTab:CreateParagraph({ Title = "📊 STATUS ATUAL", Content = "Aguardando atualização..." }) -- ========== ATUALIZAR STATUS ========== spawn(function() while wait(1) do pcall(function() local timer = PegarTimer() local temBomba = TemBomba(lp) local statusText = "📌 JOGADOR: " .. lp.Name .. "\n" statusText = statusText .. "💣 Com bomba: " .. (temBomba and "✅ SIM" or "❌ NÃO") .. "\n" statusText = statusText .. "⏱️ Timer: " .. (timer and timer .. "s" or "NÃO DETECTADO") .. "\n" statusText = statusText .. "📐 Hitbox: " .. (config.Hitbox and "✅ ON" or "❌ OFF") .. "\n" statusText = statusText .. "💬 Mensagens: " .. (config.Mensagens and "✅ ON" or "❌ OFF") .. "\n" statusText = statusText .. "🚀 Teleporte: " .. (config.Teleporte and "✅ ON" or "❌ OFF") StatusTab:Clear() StatusTab:CreateParagraph({ Title = "📊 STATUS ATUAL", Content = statusText }) end) end end) -- ========== ABA: CRÉDITOS ========== local CreditTab = Window:CreateTab("👑 Créditos", 4483362458) CreditTab:CreateParagraph({ Title = "✨ FEITO POR ODPCADEIRA ✨", Content = "Script para DUELOS! PASSE A BOMBA\n\n📌 Funcionalidades:\n• Hitbox Expandida (Tamanho ajustável)\n• Mensagens em cima dos jogadores\n• Teleporte Inteligente (timer < 3s)\n• Notificação de Bomba\n\n🔧 Versão: 1.0\n📅 Atualizado: 2024" }) print("========================================") print("✅ ODP_CADEIRAV1 PRONTO!") print("📌 Funções: Hitbox | Mensagens | Teleporte") print("========================================")