Ameno__GodOH

Aimlock

Jun 10th, 2024 (edited)
3,069
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 KB | None | 0 0
  1. -- Variável para armazenar a conexão atual da câmera
  2. local conexaoCamera
  3.  
  4. -- Função para desfixar a câmera do jogador atual e voltar a seguir o seu personagem
  5. local function desfixarCamera()
  6. if conexaoCamera then
  7. conexaoCamera:Disconnect()
  8. conexaoCamera = nil
  9. end
  10. local jogadores = game:GetService("Players")
  11. local minhaCamera = game.Workspace.CurrentCamera
  12. minhaCamera.CameraType = Enum.CameraType.Custom
  13. local meuPersonagem = jogadores.LocalPlayer.Character
  14. if meuPersonagem then
  15. minhaCamera.CameraSubject = meuPersonagem.Humanoid
  16. end
  17. end
  18.  
  19. -- Função para fazer a câmera seguir o seu personagem e focar em outro jogador
  20. local function seguirEApontarParaJogador(nomeJogador)
  21. desfixarCamera() -- Desfixa de qualquer jogador anterior
  22.  
  23. local jogadores = game:GetService("Players")
  24. local meuPersonagem = jogadores.LocalPlayer.Character
  25. local jogadorAlvo = jogadores:FindFirstChild(nomeJogador)
  26.  
  27. if meuPersonagem and jogadorAlvo and jogadorAlvo.Character then
  28. local troncoAlvo = jogadorAlvo.Character:FindFirstChild("UpperTorso") or jogadorAlvo.Character:FindFirstChild("Torso")
  29. local camera = game.Workspace.CurrentCamera
  30. camera.CameraType = Enum.CameraType.Scriptable
  31.  
  32. -- Atualiza a câmera a cada frame para ficar fixa atrás do seu personagem e apontar para o tronco do jogador alvo
  33. local runService = game:GetService("RunService")
  34. conexaoCamera = runService.RenderStepped:Connect(function()
  35. if not troncoAlvo or not troncoAlvo.Parent then
  36. desfixarCamera() -- Desconecta se o tronco alvo não existir mais
  37. else
  38. local posicaoMeuPersonagem = meuPersonagem.HumanoidRootPart.Position
  39. local direcaoOlhar = meuPersonagem.HumanoidRootPart.CFrame.LookVector
  40. local posicaoCamera = posicaoMeuPersonagem - direcaoOlhar * 10 -- Ajuste a posição conforme necessário
  41. posicaoCamera = Vector3.new(posicaoCamera.X, posicaoMeuPersonagem.Y + 5, posicaoCamera.Z) -- Ajuste a altura da câmera conforme necessário
  42. local posicaoTroncoAlvo = troncoAlvo.Position
  43. camera.CFrame = CFrame.new(posicaoCamera, posicaoTroncoAlvo)
  44. end
  45. end)
  46. end
  47. end
  48.  
  49. -- Função para iniciar o arrasto
  50. local function iniciarArrasto(frame, barra)
  51. local arrastando = false
  52. local posicaoInicial
  53. local diferencaPosicao
  54.  
  55. local function iniciar(input)
  56. local tipoInput = input.UserInputType
  57. if tipoInput == Enum.UserInputType.Touch or tipoInput == Enum.UserInputType.MouseButton1 then
  58. arrastando = true
  59. posicaoInicial = Vector2.new(input.Position.X, input.Position.Y)
  60. diferencaPosicao = frame.Position - UDim2.new(0, posicaoInicial.X, 0, posicaoInicial.Y)
  61. end
  62. end
  63.  
  64. local function mover(input)
  65. local tipoInput = input.UserInputType
  66. if arrastando and (tipoInput == Enum.UserInputType.Touch or tipoInput == Enum.UserInputType.MouseMovement) then
  67. local novaPosicao = Vector2.new(input.Position.X, input.Position.Y)
  68. frame.Position = UDim2.new(0, novaPosicao.X, 0, novaPosicao.Y) + diferencaPosicao
  69. end
  70. end
  71.  
  72. local function parar(input)
  73. local tipoInput = input.UserInputType
  74. if tipoInput == Enum.UserInputType.Touch or tipoInput == Enum.UserInputType.MouseButton1 then
  75. arrastando = false
  76. end
  77. end
  78.  
  79. barra.InputBegan:Connect(iniciar)
  80. barra.InputChanged:Connect(mover)
  81. barra.InputEnded:Connect(parar)
  82. frame.InputBegan:Connect(iniciar)
  83. frame.InputChanged:Connect(mover)
  84. frame.InputEnded:Connect(parar)
  85. end
  86.  
  87. -- Função para atualizar a lista de jogadores no menu
  88. local function atualizarListaJogadores(scrollFrame)
  89. -- Remover todos os botões existentes
  90. for _, child in ipairs(scrollFrame:GetChildren()) do
  91. if child:IsA("TextButton") then
  92. child:Destroy()
  93. end
  94. end
  95.  
  96. -- Adicionar botão para desfixar a câmera no topo da lista
  97. local botaoDesfixar = Instance.new("TextButton", scrollFrame)
  98. botaoDesfixar.Text = "Desfixar Câmera"
  99. botaoDesfixar.BackgroundColor3 = Color3.fromRGB(255, 0, 0) -- Cor vermelha
  100. botaoDesfixar.Size = UDim2.new(0, 230, 0, 50)
  101. botaoDesfixar.Position = UDim2.new(0, 10, 0, 10)
  102. botaoDesfixar.MouseButton1Click:Connect(desfixarCamera)
  103.  
  104. -- Adicionar botões para cada jogador
  105. local jogadores = game.Players:GetPlayers()
  106. for i, jogador in ipairs(jogadores) do
  107. local botao = Instance.new("TextButton", scrollFrame)
  108. botao.Text = jogador.Name
  109. botao.Size = UDim2.new(0, 230, 0, 40)
  110. botao.Position = UDim2.new(0, 10, 0, 70 + (i - 1) * 50)
  111. botao.MouseButton1Click:Connect(function()
  112. seguirEApontarParaJogador(jogador.Name)
  113. end)
  114. end
  115.  
  116. -- Ajustar a barra de rolagem para acomodar os novos botões
  117. scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 70 + #jogadores * 50)
  118. end
  119.  
  120. -- Criar um menu com barra de rolagem e borda branca para arrastar
  121. local gui = Instance.new("ScreenGui", game.Players.LocalPlayer:WaitForChild("PlayerGui"))
  122. gui.ResetOnSpawn = false
  123. local frame = Instance.new("Frame", gui)
  124. frame.Size = UDim2.new(0, 250, 0, 400)
  125. frame.Position = UDim2.new(0.5, -125, 0.5, -200)
  126. frame.BackgroundTransparency = 0.5
  127.  
  128. local topBorder = Instance.new("Frame", frame)
  129. topBorder.Size = UDim2.new(1, 0, 0, 20)
  130. topBorder.BackgroundColor3 = Color3.new(1, 1, 1)
  131. topBorder.Position = UDim2.new(0, 0, 0, -20)
  132.  
  133. local textoCreditos = Instance.new("TextLabel", topBorder)
  134. textoCreditos.Text = "By: mandy_dos_candys"
  135. textoCreditos.Size = UDim2.new(1, -10, 1, 0)
  136. textoCreditos.Position = UDim2.new(0, 5, 0, 0)
  137. textoCreditos.BackgroundTransparency = 1
  138. textoCreditos.TextColor3 = Color3.new(0, 0, 0)
  139. textoCreditos.TextXAlignment = Enum.TextXAlignment.Right
  140.  
  141. iniciarArrasto(frame, topBorder)
  142.  
  143. local scrollFrame = Instance.new("ScrollingFrame", frame)
  144. scrollFrame.Size = UDim2.new(1, 0, 1, -25)
  145. scrollFrame.Position = UDim2.new(0, 0, 0, 20)
  146. scrollFrame.ScrollBarThickness = 12
  147.  
  148. -- Chamar a função para atualizar a lista de jogadores
  149. atualizarListaJogadores(scrollFrame)
  150.  
  151. -- Conectar eventos para adicionar ou remover jogadores da lista
  152. game.Players.PlayerAdded:Connect(function(novoJogador)
  153. atualizarListaJogadores(scrollFrame)
  154. end)
  155.  
  156. game.Players.PlayerRemoving:Connect(function(jogadorSaindo)
  157. atualizarListaJogadores(scrollFrame)
  158. end)
  159.  
Advertisement
Add Comment
Please, Sign In to add comment