Advertisement
reefuuh

Untitled

Dec 23rd, 2024
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.87 KB | None | 0 0
  1. local Players = game:GetService("Players")
  2. local player = Players.LocalPlayer
  3.  
  4. -- Função de clonagem
  5. local function CloneMe(char)
  6.     char.Archivable = true
  7.     local clone = char:Clone()
  8.     char.Archivable = false
  9.     return clone
  10. end
  11.  
  12. -- Função para enviar mensagens como Bubble Chat para o clone
  13. local function SendBubbleChatToClone(clone, message)
  14.     -- Verifica se o clone possui uma cabeça
  15.     local head = clone:FindFirstChild("Head")
  16.     if head then
  17.         -- Envia a mensagem como Bubble Chat para a cabeça do clone
  18.         ChatService:Chat(head, message, Enum.ChatColor.Red)
  19.     end
  20. end
  21.  
  22. local function weldParts(a, b)
  23.     local weld = Instance.new("Weld")
  24.     weld.Part0 = a.Parent
  25.     weld.Part1 = b.Parent
  26.     weld.C0 = a.CFrame
  27.     weld.C1 = b.CFrame
  28.     weld.Parent = a.Parent
  29.     return weld
  30. end
  31.  
  32. local function createWeld(name, parent, part0, part1, c0, c1)
  33.     local weld = Instance.new("Weld")
  34.     weld.Name = name
  35.     weld.Part0 = part0
  36.     weld.Part1 = part1
  37.     weld.C0 = c0
  38.     weld.C1 = c1
  39.     weld.Parent = parent
  40.     return weld
  41. end
  42.  
  43. local function findAttachment(parent, attachmentName)
  44.     for _, child in pairs(parent:GetChildren()) do
  45.         if child:IsA("Attachment") and child.Name == attachmentName then
  46.             return child
  47.         elseif not child:IsA("Accessory") and not child:IsA("Tool") then
  48.             local attachment = findAttachment(child, attachmentName)
  49.             if attachment then
  50.                 return attachment
  51.             end
  52.         end
  53.     end
  54. end
  55.  
  56. function attachAccessory(character, accessory)
  57.     accessory.Parent = character
  58.     local handle = accessory:FindFirstChild("Handle")
  59.     if handle then
  60.         local attachment = handle:FindFirstChildOfClass("Attachment")
  61.         if attachment then
  62.             local correspondingAttachment = findAttachment(character, attachment.Name)
  63.             if correspondingAttachment then
  64.                 weldParts(correspondingAttachment, attachment)
  65.             end
  66.         else
  67.             local head = character:FindFirstChild("Head")
  68.             if head then
  69.                 createWeld("HeadWeld", head, head, handle, CFrame.new(0, 0, 0), accessory.AttachmentPoint)
  70.             end
  71.         end
  72.     end
  73. end
  74.  
  75. function ChangeAppearance(clone, userId)
  76.     local success, appearance = pcall(function()
  77.         return Players:GetCharacterAppearanceAsync(userId)
  78.     end)
  79.  
  80.     if success and appearance then
  81.         for _, item in pairs(clone:GetChildren()) do
  82.             if item:IsA("Shirt") or item:IsA("Pants") or item:IsA("Accessory") or item:IsA("CharacterMesh") or item:IsA("BodyColors") or item:IsA("Decal") then
  83.                 item:Destroy()
  84.             end
  85.         end
  86.  
  87.         for _, item in pairs(appearance:GetChildren()) do
  88.             if item:IsA("Shirt") or item:IsA("Pants") or item:IsA("Accessory") or item:IsA("CharacterMesh") or item:IsA("BodyColors") or item:IsA("Decal") then
  89.                 local cloneItem = item:Clone()
  90.                 cloneItem.Parent = clone
  91.             end
  92.         end
  93.  
  94.         for _, accessory in pairs(appearance:GetChildren()) do
  95.             if accessory:IsA("Accessory") then
  96.                 attachAccessory(clone, accessory)
  97.             end
  98.         end
  99.     else
  100.         warn("Falha ao carregar a aparência do jogador com ID:", userId)
  101.     end
  102. end
  103.  
  104. local function SpawnClone(userId)
  105.     local character = player.Character or player.CharacterAdded:Wait()
  106.     local charClone = CloneMe(character)
  107.     charClone.Parent = game.Workspace
  108.     charClone:SetPrimaryPartCFrame(character.PrimaryPart.CFrame + Vector3.new(0, 5, 0))
  109.  
  110.     ChangeAppearance(charClone, userId)
  111.  
  112.     wait(2)
  113.  
  114.     local user = Players:GetNameFromUserIdAsync(userId)
  115.  
  116.     local emojis = {"[💻]", "[📱]"}
  117.  
  118.     local randomEmoji = emojis[math.random(1, #emojis)]
  119.  
  120.     local displayText = randomEmoji .. " - " .. user
  121.  
  122.     local nome = charClone:FindFirstChild("Nome")
  123.     if nome then
  124.         local nomeTexto = nome:FindFirstChild("NomeTexto")
  125.         if nomeTexto then
  126.             nomeTexto.Text = displayText
  127.         end
  128.     end
  129.  
  130.     local humanoid = charClone:FindFirstChildOfClass("Humanoid")
  131.     if humanoid then
  132.         local idleAnim = Instance.new("Animation")
  133.         idleAnim.AnimationId = "rbxassetid://180435792"
  134.         local animTrack = humanoid:LoadAnimation(idleAnim)
  135.         animTrack:Play()
  136.     end
  137. end
  138.  
  139. -- Função para buscar o ID de usuário pelo nome
  140. local function GetUserIdFromUsername(username)
  141.     local userId = nil
  142.     local success, result = pcall(function()
  143.         userId = Players:GetUserIdFromNameAsync(username)
  144.     end)
  145.     if success then
  146.         return userId
  147.     else
  148.         return nil
  149.     end
  150. end
  151.  
  152. -- Função de UI para o menu de clonagem e gravação
  153. local function LoadDrRay()
  154.     local DrRayLibrary = loadstring(game:HttpGet("https://raw.githubusercontent.com/AZYsGithub/DrRay-UI-Library/main/DrRay.lua"))()
  155.  
  156.     local window = DrRayLibrary:Load("Macroability", "Default")
  157.    
  158.     -- Aba de Clonagem
  159.     local tab2 = DrRayLibrary.newTab("Clonagem", "13025876355")
  160.     tab2.newLabel("Clonagem")
  161.     local usernameInput
  162.     tab2.newInput("Nome de usuário", "Digite o nome de usuário para clonar", function(name)
  163.         usernameInput = name  -- Armazena o nome de usuário inserido
  164.     end)
  165.  
  166.     local fakeMessageInput
  167.      tab2.newInput("Mensagem Fake", "Digite a mensagem que aparecerá como Bubble Chat", function(message)
  168.         fakeMessageInput = message
  169.     end)
  170.  
  171.     tab2.newButton("Spawnar Clone", "Cria um clone do jogador", function()
  172.         if usernameInput then
  173.             local userId = GetUserIdFromUsername(usernameInput)
  174.             if userId then
  175.                 SpawnClone(userIdm fakeMessageInput)
  176.             else
  177.                 warn("Não foi possível encontrar o jogador com o nome de usuário fornecido.")
  178.             end
  179.         else
  180.             warn("Digite um nome de usuário válido.")
  181.         end
  182.     end)
  183.  
  184.  
  185.     -- Aba de Macro (Gravação)
  186.     local tab1 = DrRayLibrary.newTab("Macro", "18155304028")
  187.     local Running = false
  188.     local Frames = {}
  189.     local TimeStart = tick()
  190.     local HttpService = game:GetService("HttpService")
  191.     local RunService = game:GetService("RunService")
  192.     local Player = game:GetService("Players").LocalPlayer
  193.     local WalkConnection
  194.  
  195.     -- Funções de Gravação
  196.     local getChar = function()
  197.         local Character = Player.Character
  198.         if Character then
  199.             return Character
  200.         else
  201.             Player.CharacterAdded:Wait()
  202.             return getChar()
  203.         end
  204.     end
  205.  
  206.     local function CreateFolder()
  207.         if not isfolder("Gravações") then
  208.             makefolder("Gravações")
  209.         end
  210.     end
  211.  
  212.     local function StartRecord()
  213.         Frames = {}
  214.         Running = true
  215.         TimeStart = tick()
  216.         while Running do
  217.             RunService.Heartbeat:Wait()
  218.             local Character = getChar()
  219.             local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
  220.             local Humanoid = Character:FindFirstChild("Humanoid")
  221.             if HumanoidRootPart and Humanoid then
  222.                 table.insert(Frames, {
  223.                     {HumanoidRootPart.CFrame:GetComponents()},
  224.                     Humanoid:GetState().Value,
  225.                     tick() - TimeStart
  226.                 })
  227.             end
  228.         end
  229.     end
  230.  
  231.     local function StopRecord()
  232.         Running = false
  233.     end
  234.  
  235.     local function StartWalking()
  236.         WalkConnection = RunService.RenderStepped:Connect(function()
  237.             local Character = getChar()
  238.             if Character and Character:FindFirstChild("Humanoid") then
  239.                 Character:FindFirstChild("Humanoid"):Move(Vector3.new(0, 0, -1), true)
  240.             end
  241.         end)
  242.     end
  243.  
  244.     local function StopWalking()
  245.         if WalkConnection then
  246.             WalkConnection:Disconnect()
  247.             WalkConnection = nil
  248.         end
  249.     end
  250.  
  251.     local function MoveToInitialPosition(initialCFrame, callback)
  252.         local Character = getChar()
  253.         if Character then
  254.             local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
  255.             if HumanoidRootPart then
  256.                 local targetPosition = initialCFrame.Position
  257.                 local humanoid = Character:FindFirstChild("Humanoid")
  258.                
  259.                 humanoid:MoveTo(targetPosition)
  260.                 humanoid.MoveToFinished:Wait()
  261.  
  262.                 local targetOrientation = initialCFrame.Position - HumanoidRootPart.Position
  263.                 local initialOrientation = HumanoidRootPart.CFrame.LookVector
  264.                 local elapsedTime = 0
  265.                 local rotationDuration = 0.5  -- Duração da rotação suave
  266.  
  267.                 RunService.RenderStepped:Connect(function(dt)
  268.                     elapsedTime = elapsedTime + dt
  269.                     if elapsedTime <= rotationDuration then
  270.                         local alpha = elapsedTime / rotationDuration
  271.                         local currentOrientation = initialOrientation:Lerp(targetOrientation, alpha)
  272.                         HumanoidRootPart.CFrame = CFrame.lookAt(HumanoidRootPart.Position, HumanoidRootPart.Position + currentOrientation)
  273.                     end
  274.                 end)
  275.  
  276.                 if callback then
  277.                     callback()
  278.                 end
  279.             end
  280.         end
  281.     end
  282.  
  283.     local function PlayTAS()
  284.         local Character = getChar()
  285.         local initialCFrame = CFrame.new(unpack(Frames[1][1]))
  286.  
  287.         MoveToInitialPosition(initialCFrame, function()
  288.             StartWalking()
  289.             wait(0.1)
  290.             local TimePlay = tick()
  291.             local FrameCount = #Frames
  292.             local OldFrame = 1
  293.             local TASLoop
  294.  
  295.             TASLoop = RunService.Heartbeat:Connect(function()
  296.                 local NewFrames = OldFrame + 60
  297.                 local CurrentTime = tick()
  298.                 if (CurrentTime - TimePlay) >= Frames[FrameCount][3] then
  299.                     TASLoop:Disconnect()
  300.                     StopWalking()
  301.                 end
  302.                 for i = OldFrame, NewFrames do
  303.                     local Frame = Frames[i]
  304.                     if Frame and Frame[1] and type(Frame[1]) == "table" and Frame[2] and Frame[3] then
  305.                         if Frame[3] <= CurrentTime - TimePlay then
  306.                             OldFrame = i
  307.                             local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
  308.                             local Humanoid = Character:FindFirstChild("Humanoid")
  309.                             if HumanoidRootPart and Humanoid then
  310.                                 HumanoidRootPart.CFrame = CFrame.new(unpack(Frame[1]))
  311.                                 Humanoid:ChangeState(Frame[2])
  312.                             end
  313.                         end
  314.                     end
  315.                 end
  316.             end)
  317.         end)
  318.     end
  319.  
  320.     tab1.newLabel("Gravação")
  321.     tab1.newButton("Iniciar gravação", "Inicia a gravação", function()
  322.         StartRecord()
  323.     end)
  324.  
  325.     tab1.newButton("Parar gravação", "Para a gravação", function()
  326.         StopRecord()
  327.     end)
  328.  
  329.     tab1.newButton("Reproduzir gravação", "Reproduz a gravação", function()
  330.         PlayTAS()
  331.     end)
  332.  
  333.     local ConfigName
  334.     tab1.newInput("Nome da gravação", "Insira o nome da gravação", function(text)
  335.         ConfigName = tostring(text)
  336.     end)
  337.  
  338.     tab1.newButton("Salvar gravação", "Salva a gravação com o nome especificado", function()
  339.         CreateFolder()
  340.         if ConfigName and ConfigName ~= "" then
  341.             local Json = HttpService:JSONEncode(Frames)
  342.             writefile("Gravações/"..ConfigName..".json", Json)
  343.             print("Configuração salva em Gravações/"..ConfigName..".json")
  344.         else
  345.             print("Dê um nome válido para a configuração.")
  346.         end
  347.     end)
  348.  
  349.     tab1.newButton("Carregar gravação", "Carrega a gravação com o nome especificado", function()
  350.         CreateFolder()
  351.         if ConfigName and ConfigName ~= "" then
  352.             local FilePath = "Gravações/"..ConfigName..".json"
  353.             if isfile(FilePath) then
  354.                 local FileContent = readfile(FilePath)
  355.                 local Success, Decoded = pcall(function()
  356.                     return HttpService:JSONDecode(FileContent)
  357.                 end)
  358.                 if Success and type(Decoded) == "table" then
  359.                     Frames = Decoded
  360.                     print("Configuração carregada:", Frames)
  361.                 else
  362.                     print("Falha ao decodificar o JSON ou estrutura inválida.")
  363.                 end
  364.             else
  365.                 print("O arquivo nomeado não foi encontrado na pasta de gravações.")
  366.             end
  367.         else
  368.             print("Dê um nome válido para a configuração.")
  369.         end
  370.     end)
  371.  
  372. end
  373.  
  374. LoadDrRay()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement