--[[ DIE OF DEATH - DECK 3 (AJUSTE VELOCIDADE BASE 15) - Velocidade Base: 15 - Buff Revolver: 23 (7s) ao acertar Durr. - Taunt: * Stun 2s (Parado). * Buff Hit: Ganha 30 de velocidade por 2s e Teleporte. * Nerf Miss: Stun 3s + Velocidade 14 por 6s. - Medic: Stun 5s + Buff 19 se estiver perto (20 studs) do alvo com ESP. - UI Lateral: Listagem de Buffs/Nerfs/Stuns. ]] local TweenService = game:GetService("TweenService") local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") local Debris = game:GetService("Debris") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local Backpack = LocalPlayer:WaitForChild("Backpack") -- CONFIGURAÇÕES DE VELOCIDADE local BASE_SPEED = 15 local REV_HIT_SPEED = 23 local TAUNT_HIT_SPEED = 30 local TAUNT_MISS_SPEED = 14 local MEDIC_NEAR_SPEED = 19 -- ASSETS local IMG_REVOLVER = "rbxassetid://72672865243336" local IMG_TAUNT = "rbxassetid://125677397499082" local IMG_MEDIC = "rbxassetid://86222429744903" local IMG_FRONT_3 = "rbxassetid://106117927882807" local IMG_CARD_BACK = "rbxassetid://74943631152059" local AUDIO_REV_START = "rbxassetid://94348800347413" local AUDIO_REV_SHOT = "rbxassetid://111868222425151" local AUDIO_BOOM = "rbxassetid://140037051645100" local AUDIO_RELOAD = "rbxassetid://139717586861911" local AUDIO_TAUNT_START = "rbxassetid://135845948000194" local AUDIO_TAUNT_MISS = "rbxassetid://127614493691795" local AUDIO_HEAL = "rbxassetid://108165119413323" -- === UI DE EFEITOS LATERAIS === local SideGui = Instance.new("ScreenGui", PlayerGui) SideGui.Name = "SideEffects" local SideFrame = Instance.new("Frame", SideGui) SideFrame.Size = UDim2.new(0, 200, 0, 400); SideFrame.Position = UDim2.new(0, 20, 0.3, 0); SideFrame.BackgroundTransparency = 1 local SideList = Instance.new("UIListLayout", SideFrame); SideList.Padding = UDim.new(0, 5) local function ShowSideEffect(text, color, duration) local label = Instance.new("TextLabel", SideFrame) label.Size = UDim2.new(1, 0, 0, 30); label.BackgroundColor3 = Color3.new(0,0,0); label.BackgroundTransparency = 0.5 label.TextColor3 = color; label.Text = text; label.Font = Enum.Font.GothamBold; label.TextSize = 14 Instance.new("UICorner", label) Debris:AddItem(label, duration) end -- === COOLDOWN VISUAL === local function StartCooldown(duration, imageId, posOffset) local sg = PlayerGui:FindFirstChild("DieOfDeath_CD") or Instance.new("ScreenGui", PlayerGui) sg.Name = "DieOfDeath_CD" local frame = Instance.new("Frame", sg); frame.Size = UDim2.new(0, 60, 0, 60); frame.Position = UDim2.new(0.5, posOffset, 0.8, 0) frame.BackgroundColor3 = Color3.new(0,0,0); frame.BackgroundTransparency = 0.4; Instance.new("UICorner", frame) local img = Instance.new("ImageLabel", frame); img.Size = UDim2.new(1,0,1,0); img.Image = imageId; img.BackgroundTransparency = 1; img.ImageTransparency = 0.6 local txt = Instance.new("TextLabel", frame); txt.Size = UDim2.new(1,0,1,0); txt.BackgroundTransparency = 1; txt.TextColor3 = Color3.new(1,1,1); txt.TextScaled = true; txt.Font = Enum.Font.GothamBold task.spawn(function() for i = duration, 0, -1 do txt.Text = i; task.wait(1) end frame:Destroy() end) end -- === CRIADOR DE HITBOX === local function CreateVisualHitbox(cframe, size, color) local hb = Instance.new("Part", workspace) hb.Size = size; hb.CFrame = cframe; hb.Anchored = true; hb.CanCollide = false hb.Material = Enum.Material.ForceField; hb.Transparency = 0.7; hb.Color = color or Color3.new(1,0,0) Debris:AddItem(hb, 1) return hb end -- === HABILIDADE 3: MEDIC === local SetupMedicTool SetupMedicTool = function(tool) tool.Activated:Connect(function() local char = LocalPlayer.Character; local hum = char:FindFirstChildOfClass("Humanoid"); local root = char.PrimaryPart if not hum then return end tool.Parent = nil; hum.WalkSpeed = 0; ShowSideEffect("STUN: MEDIC SCAN", Color3.new(1,0,0), 5) local targetHit = nil; local startScan = tick() task.spawn(function() while tick() - startScan < 2 and not targetHit do local hb = CreateVisualHitbox(root.CFrame * CFrame.new(0,0,-5), Vector3.new(6,9,6)) local parts = workspace:GetPartBoundsInBox(hb.CFrame, hb.Size) for _, p in pairs(parts) do local m = p.Parent; local enemy = Players:GetPlayerFromCharacter(m) if enemy and enemy ~= LocalPlayer and (not enemy.Team or enemy.Team.Name ~= "Durr") then targetHit = enemy; local sHeal = Instance.new("Sound", root); sHeal.SoundId = AUDIO_HEAL; sHeal:Play() local hl = Instance.new("Highlight", m); hl.FillColor = Color3.new(0,1,0); Debris:AddItem(hl, 20) ShowSideEffect("BUFF: TRACKER", Color3.new(0,1,0), 20) task.spawn(function() local endT = tick() + 20 while tick() < endT and m and m.PrimaryPart do local dist = (root.Position - m.PrimaryPart.Position).Magnitude if tick() - startScan > 5 then hum.WalkSpeed = (dist <= 20) and MEDIC_NEAR_SPEED or BASE_SPEED end task.wait(0.1) end end) break end end task.wait(0.1) end task.wait(5 - (tick() - startScan)); if not targetHit then hum.WalkSpeed = BASE_SPEED end StartCooldown(60, IMG_MEDIC, 110) task.wait(60); local nt = Instance.new("Tool", Backpack); nt.Name = "Medic"; nt.TextureId = IMG_MEDIC; nt.RequiresHandle = false; SetupMedicTool(nt) end) end) end -- === HABILIDADE 2: TAUNT (COM BUFF VELOCIDADE ATIVADO) === local SetupTauntTool SetupTauntTool = function(tool) tool.Activated:Connect(function() local char = LocalPlayer.Character; local hum = char:FindFirstChildOfClass("Humanoid"); local root = char.PrimaryPart if not hum then return end tool.Parent = nil; hum.WalkSpeed = 0; ShowSideEffect("STUN: TAUNTING", Color3.new(1,0,0), 2) local sStart = Instance.new("Sound", root); sStart.SoundId = AUDIO_TAUNT_START; sStart:Play() local targetFound = false; local start = tick() task.spawn(function() while tick() - start < 2 and not targetFound do local hb = CreateVisualHitbox(root.CFrame * CFrame.new(0,0,-3), Vector3.new(4,6,4)) local parts = workspace:GetPartBoundsInBox(hb.CFrame, hb.Size) for _, p in pairs(parts) do local m = p.Parent; local enemy = Players:GetPlayerFromCharacter(m) if enemy and enemy.Team and enemy.Team.Name == "Durr" then targetFound = true; root.CFrame = m.PrimaryPart.CFrame * CFrame.new(0,0,3) hum.WalkSpeed = TAUNT_HIT_SPEED ShowSideEffect("BUFF: DASH SPEED", Color3.new(0,1,0), 2) local hl = Instance.new("Highlight", m); hl.FillColor = Color3.new(1,0,0); Debris:AddItem(hl, 12); task.delay(2, function() if hum.WalkSpeed == TAUNT_HIT_SPEED then hum.WalkSpeed = BASE_SPEED end end) break end end task.wait(0.1) end if not targetFound then local sMiss = Instance.new("Sound", root); sMiss.SoundId = AUDIO_TAUNT_MISS; sMiss:Play(); task.wait(3) ShowSideEffect("NERF: LENTIDÃO", Color3.new(1,0.5,0), 6); hum.WalkSpeed = TAUNT_MISS_SPEED; task.wait(6); hum.WalkSpeed = BASE_SPEED end StartCooldown(35, IMG_TAUNT, 40) task.wait(35); local nt = Instance.new("Tool", Backpack); nt.Name = "Taunt"; nt.TextureId = IMG_TAUNT; nt.RequiresHandle = false; SetupTauntTool(nt) end) end) end -- === HABILIDADE 1: REVOLVER === local SetupRevolverTool local function SetupReloadTool(tool) tool.Activated:Connect(function() local char = LocalPlayer.Character; local hum = char:FindFirstChildOfClass("Humanoid") if not hum then return end tool.Parent = nil; hum.WalkSpeed = 0; ShowSideEffect("STUN: RELOADING", Color3.new(1,0.5,0), 5) local s = Instance.new("Sound", char.PrimaryPart); s.SoundId = AUDIO_RELOAD; s:Play(); s.Ended:Wait() hum.WalkSpeed = BASE_SPEED; StartCooldown(35, IMG_REVOLVER, -100) task.wait(35); local t = Instance.new("Tool", Backpack); t.Name = "Revolver"; t.TextureId = IMG_REVOLVER; t.RequiresHandle = false; SetupRevolverTool(t) end) end SetupRevolverTool = function(tool) tool.Activated:Connect(function() local char = LocalPlayer.Character; local hum = char:FindFirstChildOfClass("Humanoid"); local root = char.PrimaryPart if not hum then return end tool.Parent = nil; hum.WalkSpeed = 0; ShowSideEffect("STUN: AIMING", Color3.new(1,0,0), 1) local s1 = Instance.new("Sound", root); s1.SoundId = AUDIO_REV_START; s1:Play(); task.wait(1) local s2 = Instance.new("Sound", root); s2.SoundId = AUDIO_REV_SHOT; s2:Play() local hit = false; local look = root.CFrame.LookVector; local last = root.Position + (look*3) task.spawn(function() for i=1, 50 do if hit then break end local hb = CreateVisualHitbox(CFrame.new(last, last+look), Vector3.new(2.5,2.5,2.5)) local ray = workspace:Raycast(hb.Position, look*4, RaycastParams.new()) if ray then hit = true; local sb = Instance.new("Sound", hb); sb.SoundId = AUDIO_BOOM; sb:Play() local imp = CreateVisualHitbox(CFrame.new(ray.Position), hb.Size*4) local p = Players:GetPlayerFromCharacter(ray.Instance.Parent) if p and p.Team and p.Team.Name == "Durr" then local hl = Instance.new("Highlight", ray.Instance.Parent); hl.FillColor=Color3.new(1,0,0); Debris:AddItem(hl,7) hum.WalkSpeed = REV_HIT_SPEED; ShowSideEffect("BUFF: HIT SPEED", Color3.new(0,1,0), 7) task.delay(7, function() if hum.WalkSpeed == REV_HIT_SPEED then hum.WalkSpeed = BASE_SPEED end end) end end last = last+(look*4); task.wait(0.05) end if hum.WalkSpeed == 0 then hum.WalkSpeed = BASE_SPEED end StartCooldown(10, IMG_REVOLVER, -100) task.wait(10); local tr = Instance.new("Tool", Backpack); tr.Name = "Reloading"; tr.TextureId = IMG_REVOLVER; tr.RequiresHandle = false; SetupReloadTool(tr) end) end) end -- === SPAWN === local function CreateDeck3() local sg = Instance.new("ScreenGui", CoreGui) local card = Instance.new("ImageButton", sg); card.Size = UDim2.new(0,240,0,360); card.Position = UDim2.new(0.5,0,0.5,0); card.AnchorPoint = Vector2.new(0.5,0.5); card.BackgroundColor3 = Color3.fromRGB(30,30,30); Instance.new("UICorner", card) local back = Instance.new("ImageLabel", card); back.Size = UDim2.new(1,0,1,0); back.Image = IMG_CARD_BACK; back.BackgroundTransparency = 1 local front = Instance.new("ImageLabel", card); front.Size = UDim2.new(0.9,0,0.9,0); front.Position = UDim2.new(0.05,0,0.05,0); front.Image = IMG_FRONT_3; front.Visible = false; front.BackgroundTransparency = 1 local st = "HIDDEN" card.MouseButton1Click:Connect(function() if st == "HIDDEN" then st = "FRONT"; card:TweenSize(UDim2.new(0,0,0,360), "Out", "Quad", 0.2); task.wait(0.2); back.Visible = false; front.Visible = true; card:TweenSize(UDim2.new(0,240,0,360), "Out", "Quad", 0.2) elseif st == "FRONT" then sg:Destroy(); SetupRevolverTool(Instance.new("Tool", Backpack)); SetupTauntTool(Instance.new("Tool", Backpack)); SetupMedicTool(Instance.new("Tool", Backpack)) for i, t in pairs(Backpack:GetChildren()) do if i == 1 then t.Name = "Revolver"; t.TextureId = IMG_REVOLVER elseif i == 2 then t.Name = "Taunt"; t.TextureId = IMG_TAUNT elseif i == 3 then t.Name = "Medic"; t.TextureId = IMG_MEDIC end t.RequiresHandle = false end end end) end CreateDeck3()