Nevzyn

Untitled

Nov 14th, 2025
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.19 KB | None | 0 0
  1. --[[
  2. ╔═══════════════════════════════════════════════════════════╗
  3. ║ Pré-história - By: NickZScripts ║
  4. ║ Sistema Modular & Anti-Conflitos ║
  5. ║ Interface: WindUI Library ║
  6. ╚═══════════════════════════════════════════════════════════╝
  7. ]]
  8.  
  9. --// ========== SERVICES ========== //
  10. local Players = game:GetService("Players")
  11. local RunService = game:GetService("RunService")
  12. local HttpService = game:GetService("HttpService")
  13. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  14. local Teams = game:GetService("Teams")
  15. local TweenService = game:GetService("TweenService")
  16. local UserInputService = game:GetService("UserInputService")
  17.  
  18. --// ========== VARIÁVEIS GLOBAIS ========== //
  19. local LocalPlayer = Players.LocalPlayer
  20. local ScriptVersion = "v4.5.1 WindUI"
  21. local LastSpawnPosition = nil
  22. local Camera = workspace.CurrentCamera
  23. local ActiveTeleportConnection = nil
  24.  
  25. --// ========== CONFIGURAÇÕES DO AUTO FARM ========== //
  26. local Config = {
  27. AutoFarm = false,
  28. AutoColeta = false,
  29. CheckDelay = 0.3,
  30. DelayBetweenCrystals = 0.1,
  31. raioDeColeta = 25,
  32. delayEntreTentativas = 0.25,
  33. podeExecutar = true,
  34.  
  35. -- ESP de Carnes
  36. EspMeatActive = false,
  37. ESP_MIN_SIZE = 35,
  38. ESP_MAX_SIZE = 65,
  39. ESP_UPDATE_RATE = 0.1,
  40. MAX_VISIBLE_DISTANCE = 999999,
  41.  
  42. -- ESP de Jogadores
  43. PlayerESP = false,
  44. PlayerESP_ShowHP = false,
  45. PlayerESP_TeamCheck = false,
  46.  
  47. -- Click Teleport
  48. ClickTeleportEnabled = false,
  49.  
  50. -- Teleports Salvos
  51. SavedTeleports = {},
  52.  
  53. -- Patrulha
  54. PatrulhaPontos = {
  55. CFrame.new(0, 30, 0),
  56. CFrame.new(800, 30, 400),
  57. CFrame.new(-750, 30, -600),
  58. CFrame.new(450, 30, -1000),
  59. CFrame.new(-900, 30, 700),
  60. CFrame.new(0, 30, 1000),
  61. },
  62. }
  63.  
  64. --// ========== CACHE DE NÍVEL ========== //
  65. local DinoLevelCache = {
  66. value = 0,
  67. lastUpdate = 0,
  68. updateInterval = 2
  69. }
  70.  
  71. --// ========== DETECTAR POSIÇÃO DE SPAWN ========== //
  72. task.spawn(function()
  73. local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  74. local root = char:WaitForChild("HumanoidRootPart", 10)
  75.  
  76. if root then
  77. task.wait(2)
  78. LastSpawnPosition = root.CFrame
  79. end
  80.  
  81. LocalPlayer.CharacterAdded:Connect(function(newChar)
  82. task.wait(2)
  83. local newRoot = newChar:FindFirstChild("HumanoidRootPart")
  84. if newRoot then
  85. LastSpawnPosition = newRoot.CFrame
  86. end
  87. end)
  88. end)
  89.  
  90. --// ========== CARREGAR WINDUI ========== //
  91. local WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/Footagesus/WindUI/refs/heads/main/dist/main.lua"))()
  92.  
  93. --// ========== FUNÇÕES DE UTILIDADE ========== //
  94.  
  95. local function getCharacter()
  96. return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  97. end
  98.  
  99. local function getHumanoidRootPart()
  100. local char = getCharacter()
  101. return char and char:FindFirstChild("HumanoidRootPart")
  102. end
  103.  
  104. local function teleportTo(cf)
  105. local root = getHumanoidRootPart()
  106. if root and root.Parent then
  107. root.Parent:SetPrimaryPartCFrame(cf)
  108. end
  109. end
  110.  
  111. local function teleportToCrystal(c)
  112. local root = getHumanoidRootPart()
  113. if root and c then
  114. root.Parent:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  115. end
  116. end
  117.  
  118. --// ========== SISTEMA DE TELEPORTE SEGURO ========== //
  119.  
  120. local function safeTeleport(targetCFrame, locationName)
  121. if ActiveTeleportConnection then
  122. ActiveTeleportConnection:Disconnect()
  123. ActiveTeleportConnection = nil
  124. end
  125.  
  126. local char = LocalPlayer.Character
  127. local root = char and char:FindFirstChild("HumanoidRootPart")
  128. local humanoid = char and char:FindFirstChild("Humanoid")
  129.  
  130. if not root or not humanoid then
  131. WindUI:Notify({
  132. Title = "Erro",
  133. Content = "Personagem não encontrado!",
  134. Duration = 1
  135. })
  136. return false
  137. end
  138.  
  139. WindUI:Notify({
  140. Title = "Teleportando",
  141. Content = "Indo para: " .. locationName,
  142. Duration = 0.5
  143. })
  144.  
  145. root.CFrame = targetCFrame
  146.  
  147. task.spawn(function()
  148. task.wait(0.05)
  149.  
  150. local rayParams = RaycastParams.new()
  151. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  152. rayParams.FilterDescendantsInstances = {char}
  153.  
  154. local rayResult = workspace:Raycast(
  155. root.Position,
  156. Vector3.new(0, -100, 0),
  157. rayParams
  158. )
  159.  
  160. if rayResult then
  161. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  162. end
  163. end)
  164.  
  165. local teleportStartTime = tick()
  166. local maxWaitTime = 1.2
  167. local minWaitTime = 0.2
  168.  
  169. ActiveTeleportConnection = RunService.Heartbeat:Connect(function()
  170. if not char or not char.Parent or not root or not root.Parent or not humanoid then
  171. if ActiveTeleportConnection then
  172. ActiveTeleportConnection:Disconnect()
  173. ActiveTeleportConnection = nil
  174. end
  175. return
  176. end
  177.  
  178. local elapsedTime = tick() - teleportStartTime
  179.  
  180. local floorMaterial = humanoid.FloorMaterial
  181. local isOnGround = floorMaterial ~= Enum.Material.Air
  182.  
  183. local velocity = root.AssemblyLinearVelocity
  184. local isStationary = velocity.Magnitude < 2
  185.  
  186. local humanoidState = humanoid:GetState()
  187. local isLanded = humanoidState == Enum.HumanoidStateType.Landed or
  188. humanoidState == Enum.HumanoidStateType.Running or
  189. humanoidState == Enum.HumanoidStateType.RunningNoPhysics
  190.  
  191. if (elapsedTime > minWaitTime and (isOnGround or (isStationary and isLanded))) or elapsedTime > maxWaitTime then
  192. if ActiveTeleportConnection then
  193. ActiveTeleportConnection:Disconnect()
  194. ActiveTeleportConnection = nil
  195. end
  196.  
  197. if isOnGround or isLanded then
  198. WindUI:Notify({
  199. Title = "Sucesso",
  200. Content = locationName,
  201. Duration = 0.5
  202. })
  203. else
  204. local rayParams = RaycastParams.new()
  205. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  206. rayParams.FilterDescendantsInstances = {char}
  207.  
  208. local rayResult = workspace:Raycast(
  209. root.Position,
  210. Vector3.new(0, -200, 0),
  211. rayParams
  212. )
  213.  
  214. if rayResult then
  215. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  216. end
  217.  
  218. WindUI:Notify({
  219. Title = "Ajustado",
  220. Content = "Posição corrigida",
  221. Duration = 0.5
  222. })
  223. end
  224.  
  225. return
  226. end
  227. end)
  228.  
  229. return true
  230. end
  231.  
  232. --// ========== MÓDULO: CLICK TELEPORT (SEM EFEITOS VISUAIS) ========== //
  233.  
  234. local ClickTeleportModule = (function()
  235. -- Variáveis privadas do módulo
  236. local _enabled = false
  237. local _uiVisible = false
  238. local _screenGui = nil
  239. local _mainFrame = nil
  240. local _minimizedBtn = nil
  241. local _connections = {}
  242.  
  243. local Mouse = LocalPlayer:GetMouse()
  244.  
  245. -- Estado do clique
  246. local ClickState = {
  247. StartTime = 0,
  248. StartPosition = nil,
  249. IsValid = false,
  250. }
  251.  
  252. -- Configurações do Click Teleport
  253. local CTConfig = {
  254. MaxClickTime = 0.3,
  255. MaxDragDistance = 10,
  256. RaycastDistance = 10000,
  257. TeleportOffset = 3,
  258. }
  259.  
  260. -- Tema compatível com WindUI
  261. local CTTheme = {
  262. Background = Color3.fromRGB(25, 25, 35),
  263. Secondary = Color3.fromRGB(35, 35, 45),
  264. Accent = Color3.fromRGB(90, 170, 255),
  265. Success = Color3.fromRGB(90, 255, 140),
  266. Danger = Color3.fromRGB(255, 90, 90),
  267. Text = Color3.fromRGB(255, 255, 255),
  268. TextDim = Color3.fromRGB(180, 180, 200),
  269. }
  270.  
  271. -- Funções privadas
  272. local function _getMouseHit()
  273. local unitRay = Camera:ScreenPointToRay(Mouse.X, Mouse.Y)
  274.  
  275. local raycastParams = RaycastParams.new()
  276. raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
  277. raycastParams.FilterDescendantsInstances = {LocalPlayer.Character}
  278. raycastParams.IgnoreWater = false
  279.  
  280. local raycastResult = workspace:Raycast(
  281. unitRay.Origin,
  282. unitRay.Direction * CTConfig.RaycastDistance,
  283. raycastParams
  284. )
  285.  
  286. return raycastResult
  287. end
  288.  
  289. --[[
  290. ╔════════════════════════════════════════════════════════════╗
  291. ║ TELEPORTE COM ORIENTAÇÃO INTELIGENTE (SEM EFEITOS) ║
  292. ╠════════════════════════════════════════════════════════════╣
  293. ║ • Teleporte limpo e direto ║
  294. ║ • Sem indicadores visuais no chão ║
  295. ║ • Sem animações de partículas ║
  296. ║ • Personagem fica virado para onde clicou ║
  297. ║ • Performance otimizada ║
  298. ╚════════════════════════════════════════════════════════════╝
  299. ]]
  300. local function _teleportToPosition(position)
  301. local root = getHumanoidRootPart()
  302. if not root then return false end
  303.  
  304. -- Salva a posição atual antes do teleporte
  305. local currentPosition = root.Position
  306.  
  307. -- Calcula a posição final com offset de altura
  308. local teleportPos = position + Vector3.new(0, CTConfig.TeleportOffset, 0)
  309.  
  310. -- Cálculo da Orientação
  311. local directionVector = (position - currentPosition)
  312. local horizontalDirection = Vector3.new(directionVector.X, 0, directionVector.Z)
  313. local lookDirection = horizontalDirection.Unit
  314.  
  315. -- Criação do CFrame com Orientação
  316. local targetCFrame = CFrame.new(teleportPos, teleportPos + lookDirection)
  317.  
  318. -- Teleporte Instantâneo
  319. root.CFrame = targetCFrame
  320.  
  321. return true
  322. end
  323.  
  324. local function _isValidClick(startPos, endPos, duration)
  325. if duration > CTConfig.MaxClickTime then return false end
  326.  
  327. local dragDistance = (endPos - startPos).Magnitude
  328. if dragDistance > CTConfig.MaxDragDistance then return false end
  329.  
  330. return true
  331. end
  332.  
  333. local function _updateStatusLabel(text, color)
  334. if _mainFrame then
  335. local statusLabel = _mainFrame:FindFirstChild("Container"):FindFirstChild("StatusLabel")
  336. if statusLabel then
  337. statusLabel.Text = text
  338. statusLabel.TextColor3 = color
  339. end
  340. end
  341. end
  342.  
  343. local function _enableClickDetection()
  344. -- Limpa conexões antigas
  345. for _, conn in ipairs(_connections) do
  346. if conn and conn.Connected then
  347. conn:Disconnect()
  348. end
  349. end
  350. _connections = {}
  351.  
  352. -- Detecta início do clique
  353. table.insert(_connections, UserInputService.InputBegan:Connect(function(input, gameProcessed)
  354. if gameProcessed then return end
  355. if not _enabled then return end
  356.  
  357. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  358. input.UserInputType == Enum.UserInputType.Touch then
  359. ClickState.StartTime = tick()
  360. ClickState.StartPosition = Vector2.new(Mouse.X, Mouse.Y)
  361. ClickState.IsValid = true
  362. end
  363. end))
  364.  
  365. -- Detecta fim do clique
  366. table.insert(_connections, UserInputService.InputEnded:Connect(function(input, gameProcessed)
  367. if gameProcessed then return end
  368. if not _enabled then return end
  369. if not ClickState.IsValid then return end
  370.  
  371. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  372. input.UserInputType == Enum.UserInputType.Touch then
  373.  
  374. local clickDuration = tick() - ClickState.StartTime
  375. local endPosition = Vector2.new(Mouse.X, Mouse.Y)
  376.  
  377. if _isValidClick(ClickState.StartPosition, endPosition, clickDuration) then
  378. local raycastResult = _getMouseHit()
  379.  
  380. if raycastResult then
  381. if _teleportToPosition(raycastResult.Position) then
  382. _updateStatusLabel("Teleportado!", CTTheme.Success)
  383.  
  384. task.wait(1)
  385. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  386. end
  387. else
  388. _updateStatusLabel("Não é possível teleportar para o céu", CTTheme.Danger)
  389.  
  390. task.wait(1.5)
  391. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  392. end
  393. end
  394.  
  395. ClickState.IsValid = false
  396. end
  397. end))
  398. end
  399.  
  400. local function _disableClickDetection()
  401. for _, conn in ipairs(_connections) do
  402. if conn and conn.Connected then
  403. conn:Disconnect()
  404. end
  405. end
  406. _connections = {}
  407. end
  408.  
  409. local function _minimizeUI()
  410. if _mainFrame then
  411. _mainFrame.Visible = false
  412. end
  413. if _minimizedBtn then
  414. _minimizedBtn.Visible = true
  415.  
  416. -- Animação de entrada
  417. _minimizedBtn.Size = UDim2.new(0, 0, 0, 0)
  418. TweenService:Create(_minimizedBtn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  419. Size = UDim2.new(0, 50, 0, 50)
  420. }):Play()
  421. end
  422. end
  423.  
  424. local function _maximizeUI()
  425. if _minimizedBtn then
  426. -- Animação de saída
  427. TweenService:Create(_minimizedBtn, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
  428. Size = UDim2.new(0, 0, 0, 0)
  429. }):Play()
  430.  
  431. task.wait(0.2)
  432. _minimizedBtn.Visible = false
  433. end
  434. if _mainFrame then
  435. _mainFrame.Visible = true
  436.  
  437. -- Animação de entrada
  438. _mainFrame.Size = UDim2.new(0, 0, 0, 0)
  439. TweenService:Create(_mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  440. Size = UDim2.new(0, 260, 0, 180)
  441. }):Play()
  442. end
  443. end
  444.  
  445. local function _createUI()
  446. -- Remove UI antiga se existir
  447. if _screenGui then
  448. pcall(function() _screenGui:Destroy() end)
  449. _screenGui = nil
  450. end
  451.  
  452. -- Cria ScreenGui
  453. _screenGui = Instance.new("ScreenGui")
  454. _screenGui.Name = "ClickTeleportUI_PreHistoria"
  455. _screenGui.ResetOnSpawn = false
  456. _screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  457. _screenGui.Parent = game:GetService("CoreGui")
  458.  
  459. -- Frame Principal
  460. _mainFrame = Instance.new("Frame")
  461. _mainFrame.Name = "MainFrame"
  462. _mainFrame.Size = UDim2.new(0, 260, 0, 180)
  463. _mainFrame.Position = UDim2.new(0.5, -130, 0.5, -90)
  464. _mainFrame.BackgroundColor3 = CTTheme.Background
  465. _mainFrame.BackgroundTransparency = 0.05
  466. _mainFrame.BorderSizePixel = 0
  467. _mainFrame.Active = true
  468. _mainFrame.Draggable = true
  469. _mainFrame.Parent = _screenGui
  470.  
  471. local mainCorner = Instance.new("UICorner")
  472. mainCorner.CornerRadius = UDim.new(0, 12)
  473. mainCorner.Parent = _mainFrame
  474.  
  475. local mainStroke = Instance.new("UIStroke")
  476. mainStroke.Color = CTTheme.Accent
  477. mainStroke.Thickness = 2
  478. mainStroke.Transparency = 0.3
  479. mainStroke.Parent = _mainFrame
  480.  
  481. -- Gradiente de fundo
  482. local bgGradient = Instance.new("UIGradient")
  483. bgGradient.Color = ColorSequence.new{
  484. ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 40)),
  485. ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
  486. }
  487. bgGradient.Rotation = 45
  488. bgGradient.Parent = _mainFrame
  489.  
  490. -- Header
  491. local header = Instance.new("Frame")
  492. header.Size = UDim2.new(1, 0, 0, 50)
  493. header.BackgroundColor3 = CTTheme.Secondary
  494. header.BackgroundTransparency = 0.2
  495. header.BorderSizePixel = 0
  496. header.Parent = _mainFrame
  497.  
  498. local headerCorner = Instance.new("UICorner")
  499. headerCorner.CornerRadius = UDim.new(0, 12)
  500. headerCorner.Parent = header
  501.  
  502. local headerFix = Instance.new("Frame")
  503. headerFix.Size = UDim2.new(1, 0, 0, 12)
  504. headerFix.Position = UDim2.new(0, 0, 1, -12)
  505. headerFix.BackgroundColor3 = CTTheme.Secondary
  506. headerFix.BackgroundTransparency = 0.2
  507. headerFix.BorderSizePixel = 0
  508. headerFix.Parent = header
  509.  
  510. -- Título
  511. local title = Instance.new("TextLabel")
  512. title.Size = UDim2.new(1, -85, 1, 0)
  513. title.Position = UDim2.new(0, 15, 0, 0)
  514. title.BackgroundTransparency = 1
  515. title.Text = "Click Teleport"
  516. title.TextColor3 = CTTheme.Text
  517. title.TextSize = 17
  518. title.Font = Enum.Font.GothamBold
  519. title.TextXAlignment = Enum.TextXAlignment.Left
  520. title.Parent = header
  521.  
  522. -- Botão Minimizar
  523. local minimizeBtn = Instance.new("TextButton")
  524. minimizeBtn.Size = UDim2.new(0, 35, 0, 35)
  525. minimizeBtn.Position = UDim2.new(1, -78, 0.5, -17.5)
  526. minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 200, 100)
  527. minimizeBtn.BackgroundTransparency = 0.2
  528. minimizeBtn.Text = "-"
  529. minimizeBtn.TextColor3 = CTTheme.Text
  530. minimizeBtn.TextSize = 18
  531. minimizeBtn.Font = Enum.Font.GothamBold
  532. minimizeBtn.AutoButtonColor = false
  533. minimizeBtn.Parent = header
  534.  
  535. local minimizeCorner = Instance.new("UICorner")
  536. minimizeCorner.CornerRadius = UDim.new(0, 8)
  537. minimizeCorner.Parent = minimizeBtn
  538.  
  539. -- Botão Fechar
  540. local closeBtn = Instance.new("TextButton")
  541. closeBtn.Size = UDim2.new(0, 35, 0, 35)
  542. closeBtn.Position = UDim2.new(1, -38, 0.5, -17.5)
  543. closeBtn.BackgroundColor3 = CTTheme.Danger
  544. closeBtn.BackgroundTransparency = 0.2
  545. closeBtn.Text = "X"
  546. closeBtn.TextColor3 = CTTheme.Text
  547. closeBtn.TextSize = 20
  548. closeBtn.Font = Enum.Font.GothamBold
  549. closeBtn.AutoButtonColor = false
  550. closeBtn.Parent = header
  551.  
  552. local closeCorner = Instance.new("UICorner")
  553. closeCorner.CornerRadius = UDim.new(0, 8)
  554. closeCorner.Parent = closeBtn
  555.  
  556. -- Container
  557. local container = Instance.new("Frame")
  558. container.Name = "Container"
  559. container.Size = UDim2.new(1, -20, 1, -60)
  560. container.Position = UDim2.new(0, 10, 0, 55)
  561. container.BackgroundTransparency = 1
  562. container.Parent = _mainFrame
  563.  
  564. -- Botão Toggle
  565. local toggleBtn = Instance.new("TextButton")
  566. toggleBtn.Name = "ToggleBtn"
  567. toggleBtn.Size = UDim2.new(1, 0, 0, 55)
  568. toggleBtn.Position = UDim2.new(0, 0, 0, 0)
  569. toggleBtn.BackgroundColor3 = CTTheme.Danger
  570. toggleBtn.BackgroundTransparency = 0.1
  571. toggleBtn.Text = "DESATIVADO"
  572. toggleBtn.TextColor3 = CTTheme.Text
  573. toggleBtn.TextSize = 16
  574. toggleBtn.Font = Enum.Font.GothamBold
  575. toggleBtn.AutoButtonColor = false
  576. toggleBtn.Parent = container
  577.  
  578. local toggleCorner = Instance.new("UICorner")
  579. toggleCorner.CornerRadius = UDim.new(0, 10)
  580. toggleCorner.Parent = toggleBtn
  581.  
  582. local toggleStroke = Instance.new("UIStroke")
  583. toggleStroke.Name = "Stroke"
  584. toggleStroke.Color = CTTheme.Danger
  585. toggleStroke.Thickness = 2
  586. toggleStroke.Transparency = 0.3
  587. toggleStroke.Parent = toggleBtn
  588.  
  589. -- Status Label
  590. local statusLabel = Instance.new("TextLabel")
  591. statusLabel.Name = "StatusLabel"
  592. statusLabel.Size = UDim2.new(1, 0, 0, 25)
  593. statusLabel.Position = UDim2.new(0, 0, 0, 65)
  594. statusLabel.BackgroundTransparency = 1
  595. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  596. statusLabel.TextColor3 = CTTheme.TextDim
  597. statusLabel.TextSize = 12
  598. statusLabel.Font = Enum.Font.Gotham
  599. statusLabel.TextWrapped = true
  600. statusLabel.Parent = container
  601.  
  602. -- Info Label
  603. local infoLabel = Instance.new("TextLabel")
  604. infoLabel.Size = UDim2.new(1, 0, 0, 20)
  605. infoLabel.Position = UDim2.new(0, 0, 0, 92)
  606. infoLabel.BackgroundTransparency = 1
  607. infoLabel.Text = "Teleporte limpo e instantâneo"
  608. infoLabel.TextColor3 = CTTheme.Success
  609. infoLabel.TextSize = 11
  610. infoLabel.Font = Enum.Font.Gotham
  611. infoLabel.Parent = container
  612.  
  613. -- Botão Minimizado (inicialmente invisível)
  614. _minimizedBtn = Instance.new("TextButton")
  615. _minimizedBtn.Name = "MinimizedBtn"
  616. _minimizedBtn.Size = UDim2.new(0, 50, 0, 50)
  617. _minimizedBtn.Position = UDim2.new(1, -60, 0, 10)
  618. _minimizedBtn.BackgroundColor3 = CTTheme.Accent
  619. _minimizedBtn.BackgroundTransparency = 0.1
  620. _minimizedBtn.Text = "CT"
  621. _minimizedBtn.TextColor3 = CTTheme.Text
  622. _minimizedBtn.TextSize = 18
  623. _minimizedBtn.Font = Enum.Font.GothamBold
  624. _minimizedBtn.AutoButtonColor = false
  625. _minimizedBtn.Visible = false
  626. _minimizedBtn.Active = true
  627. _minimizedBtn.Draggable = true
  628. _minimizedBtn.Parent = _screenGui
  629.  
  630. local minimizedCorner = Instance.new("UICorner")
  631. minimizedCorner.CornerRadius = UDim.new(0, 12)
  632. minimizedCorner.Parent = _minimizedBtn
  633.  
  634. local minimizedStroke = Instance.new("UIStroke")
  635. minimizedStroke.Color = CTTheme.Accent
  636. minimizedStroke.Thickness = 2
  637. minimizedStroke.Parent = _minimizedBtn
  638.  
  639. -- Gradiente no botão minimizado
  640. local minimizedGradient = Instance.new("UIGradient")
  641. minimizedGradient.Color = ColorSequence.new{
  642. ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 180, 255)),
  643. ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 140, 255))
  644. }
  645. minimizedGradient.Rotation = 90
  646. minimizedGradient.Parent = _minimizedBtn
  647.  
  648. -- Eventos
  649. toggleBtn.MouseButton1Click:Connect(function()
  650. _enabled = not _enabled
  651.  
  652. if _enabled then
  653. toggleBtn.Text = "ATIVADO"
  654. toggleBtn.BackgroundColor3 = CTTheme.Success
  655. toggleStroke.Color = CTTheme.Success
  656. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  657. _enableClickDetection()
  658. else
  659. toggleBtn.Text = "DESATIVADO"
  660. toggleBtn.BackgroundColor3 = CTTheme.Danger
  661. toggleStroke.Color = CTTheme.Danger
  662. statusLabel.Text = "Teleporte desativado"
  663. _disableClickDetection()
  664. end
  665. end)
  666.  
  667. minimizeBtn.MouseButton1Click:Connect(function()
  668. _minimizeUI()
  669. end)
  670.  
  671. _minimizedBtn.MouseButton1Click:Connect(function()
  672. _maximizeUI()
  673. end)
  674.  
  675. closeBtn.MouseButton1Click:Connect(function()
  676. -- Desativa completamente e fecha tudo
  677. _enabled = false
  678. _disableClickDetection()
  679.  
  680. if _screenGui then
  681. pcall(function() _screenGui:Destroy() end)
  682. _screenGui = nil
  683. _mainFrame = nil
  684. _minimizedBtn = nil
  685. end
  686.  
  687. _uiVisible = false
  688. Config.ClickTeleportEnabled = false
  689.  
  690. WindUI:Notify({
  691. Title = "Click Teleport",
  692. Content = "Desativado completamente",
  693. Duration = 1
  694. })
  695. end)
  696.  
  697. -- Hover effects
  698. local function addHoverEffect(button, normalTrans)
  699. button.MouseEnter:Connect(function()
  700. TweenService:Create(button, TweenInfo.new(0.2), {
  701. BackgroundTransparency = 0
  702. }):Play()
  703. end)
  704.  
  705. button.MouseLeave:Connect(function()
  706. TweenService:Create(button, TweenInfo.new(0.2), {
  707. BackgroundTransparency = normalTrans or 0.1
  708. }):Play()
  709. end)
  710. end
  711.  
  712. addHoverEffect(toggleBtn, 0.1)
  713. addHoverEffect(minimizeBtn, 0.2)
  714. addHoverEffect(closeBtn, 0.2)
  715. addHoverEffect(_minimizedBtn, 0.1)
  716.  
  717. _uiVisible = true
  718. end
  719.  
  720. -- Interface pública do módulo
  721. return {
  722. Init = function()
  723. print("Click Teleport Module Initialized")
  724. end,
  725.  
  726. Toggle = function(state)
  727. Config.ClickTeleportEnabled = state
  728.  
  729. if state then
  730. if not _uiVisible then
  731. _createUI()
  732.  
  733. WindUI:Notify({
  734. Title = "Click Teleport",
  735. Content = "Interface aberta!",
  736. Duration = 1
  737. })
  738. end
  739. else
  740. if _screenGui then
  741. _enabled = false
  742. _disableClickDetection()
  743.  
  744. pcall(function() _screenGui:Destroy() end)
  745. _screenGui = nil
  746. _mainFrame = nil
  747. _minimizedBtn = nil
  748. end
  749.  
  750. _uiVisible = false
  751.  
  752. WindUI:Notify({
  753. Title = "Click Teleport",
  754. Content = "Desativado",
  755. Duration = 1
  756. })
  757. end
  758. end,
  759.  
  760. Cleanup = function()
  761. _enabled = false
  762. _disableClickDetection()
  763.  
  764. if _screenGui then
  765. pcall(function() _screenGui:Destroy() end)
  766. _screenGui = nil
  767. _mainFrame = nil
  768. _minimizedBtn = nil
  769. end
  770.  
  771. _uiVisible = false
  772. print("Click Teleport Cleanup Complete")
  773. end,
  774.  
  775. IsEnabled = function()
  776. return Config.ClickTeleportEnabled
  777. end
  778. }
  779. end)()
  780.  
  781. -- Inicializar módulo
  782. ClickTeleportModule.Init()
  783.  
  784. --// ========== SISTEMA DE NÍVEL DO DINO ========== //
  785.  
  786. local function getDinoLevelSilent()
  787. local now = tick()
  788. if (now - DinoLevelCache.lastUpdate) < DinoLevelCache.updateInterval then
  789. return DinoLevelCache.value
  790. end
  791.  
  792. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  793. if leaderstats then
  794. for _, stat in ipairs(leaderstats:GetChildren()) do
  795. local name = stat.Name:lower()
  796. if name:find("level") or name:find("lvl") or name:find("nivel") then
  797. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  798. local val = tonumber(stat.Value) or 0
  799. if val > 0 then
  800. DinoLevelCache.value = val
  801. DinoLevelCache.lastUpdate = now
  802. return val
  803. end
  804. end
  805. end
  806. end
  807. end
  808.  
  809. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  810. if playerGui then
  811. for _, gui in ipairs(playerGui:GetDescendants()) do
  812. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  813. local text = gui.Text:lower()
  814.  
  815. if text:find("level") or text:find("lvl") or text:find("nivel") then
  816. local number = text:match("%d+")
  817. if number then
  818. local val = tonumber(number)
  819. if val and val > 0 and val <= 100 then
  820. DinoLevelCache.value = val
  821. DinoLevelCache.lastUpdate = now
  822. return val
  823. end
  824. end
  825. end
  826. end
  827.  
  828. if gui:IsA("IntValue") or gui:IsA("NumberValue") then
  829. local name = gui.Name:lower()
  830. if name:find("level") or name:find("lvl") or name:find("nivel") then
  831. local val = tonumber(gui.Value) or 0
  832. if val > 0 then
  833. DinoLevelCache.value = val
  834. DinoLevelCache.lastUpdate = now
  835. return val
  836. end
  837. end
  838. end
  839. end
  840. end
  841.  
  842. local char = LocalPlayer.Character
  843. if char then
  844. for _, obj in ipairs(char:GetDescendants()) do
  845. if obj:IsA("IntValue") or obj:IsA("NumberValue") then
  846. local name = obj.Name:lower()
  847. if name:find("level") or name:find("lvl") or name:find("nivel") then
  848. local val = tonumber(obj.Value) or 0
  849. if val > 0 then
  850. DinoLevelCache.value = val
  851. DinoLevelCache.lastUpdate = now
  852. return val
  853. end
  854. end
  855. end
  856. end
  857. end
  858.  
  859. local possibleFolders = {
  860. workspace:FindFirstChild("Dinosaurs"),
  861. workspace:FindFirstChild("Pets"),
  862. workspace:FindFirstChild("NPCs"),
  863. workspace:FindFirstChild("Creatures"),
  864. workspace:FindFirstChild("Animals")
  865. }
  866.  
  867. for _, folder in ipairs(possibleFolders) do
  868. if folder then
  869. for _, dino in ipairs(folder:GetChildren()) do
  870. local owner = dino:FindFirstChild("Owner") or dino:FindFirstChild("Player")
  871.  
  872. if owner and owner:IsA("ObjectValue") and owner.Value == LocalPlayer then
  873. for _, obj in ipairs(dino:GetDescendants()) do
  874. if obj:IsA("IntValue") or obj:IsA("NumberValue") or obj:IsA("StringValue") then
  875. local name = obj.Name:lower()
  876. if name:find("level") or name:find("lvl") or name:find("nivel") then
  877. local val = tonumber(obj.Value) or 0
  878. if val > 0 then
  879. DinoLevelCache.value = val
  880. DinoLevelCache.lastUpdate = now
  881. return val
  882. end
  883. end
  884. end
  885. end
  886. end
  887. end
  888. end
  889. end
  890.  
  891. DinoLevelCache.lastUpdate = now
  892. return DinoLevelCache.value
  893. end
  894.  
  895. local function debugPrintAllValues(parent, prefix)
  896. prefix = prefix or ""
  897.  
  898. for _, child in ipairs(parent:GetChildren()) do
  899. if child:IsA("IntValue") or child:IsA("NumberValue") or child:IsA("StringValue") then
  900. print(prefix .. "├─ " .. child.ClassName .. ": " .. child.Name .. " = " .. tostring(child.Value))
  901. end
  902.  
  903. if #child:GetChildren() > 0 then
  904. print(prefix .. "└─ Folder: " .. child.Name)
  905. debugPrintAllValues(child, prefix .. " ")
  906. end
  907. end
  908. end
  909.  
  910. local function getDinoLevelDebug()
  911. print("\n" .. string.rep("=", 50))
  912. print("INICIANDO BUSCA DE NÍVEL DO DINO")
  913. print(string.rep("=", 50))
  914.  
  915. print("\n[1] Verificando leaderstats...")
  916. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  917. if leaderstats then
  918. print("leaderstats encontrado!")
  919. debugPrintAllValues(leaderstats, " ")
  920.  
  921. for _, stat in ipairs(leaderstats:GetChildren()) do
  922. local name = stat.Name:lower()
  923. if name:find("level") or name:find("lvl") or name:find("nivel") then
  924. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  925. local val = tonumber(stat.Value) or 0
  926. print("NÍVEL ENCONTRADO em leaderstats." .. stat.Name .. ": " .. val)
  927. return val
  928. end
  929. end
  930. end
  931. else
  932. print("leaderstats não encontrado")
  933. end
  934.  
  935. print("\n[2] Verificando PlayerGui...")
  936. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  937. if playerGui then
  938. print("PlayerGui encontrado!")
  939.  
  940. for _, gui in ipairs(playerGui:GetDescendants()) do
  941. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  942. local text = gui.Text:lower()
  943.  
  944. if text:find("level") or text:find("lvl") or text:find("nivel") then
  945. print(" └─ Texto encontrado: " .. gui.Text)
  946.  
  947. local number = text:match("%d+")
  948. if number then
  949. local val = tonumber(number)
  950. if val and val > 0 and val <= 100 then
  951. print("NÍVEL ENCONTRADO em GUI: " .. val)
  952. return val
  953. end
  954. end
  955. end
  956. end
  957. end
  958. print("Nível não encontrado no PlayerGui")
  959. end
  960.  
  961. print("\n" .. string.rep("=", 50))
  962. print("NÍVEL NÃO ENCONTRADO")
  963. print(string.rep("=", 50) .. "\n")
  964.  
  965. return 0
  966. end
  967.  
  968. --// ========== SISTEMA DE CRISTAIS ========== //
  969.  
  970. local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
  971.  
  972. local function getCrystalRank(name)
  973. name = name:lower()
  974. for key, rank in pairs(prioridadeMap) do
  975. if name:find(key) then return rank end
  976. end
  977. return 5
  978. end
  979.  
  980. local function getSortedCrystals()
  981. local found = {}
  982. for _, obj in ipairs(workspace:GetDescendants()) do
  983. if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
  984. local rank = getCrystalRank(obj.Parent.Name)
  985. if rank < 5 then
  986. table.insert(found, {part = obj, rank = rank})
  987. end
  988. end
  989. end
  990. table.sort(found, function(a, b) return a.rank < b.rank end)
  991. local parts = {}
  992. for _, entry in ipairs(found) do
  993. table.insert(parts, entry.part)
  994. end
  995. return parts
  996. end
  997.  
  998. --// ========== SISTEMA ESP DE CARNES ========== //
  999.  
  1000. local ActiveMeatESPs = {}
  1001. local meatUpdateLoop = nil
  1002. local meatScanLoop = nil
  1003.  
  1004. local function isMeatObject(obj)
  1005. if not obj then return false, nil end
  1006.  
  1007. if obj:IsA("ProximityPrompt") and obj.Enabled then
  1008. local action = (obj.ActionText or ""):lower()
  1009. local objText = (obj.ObjectText or ""):lower()
  1010.  
  1011. local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
  1012.  
  1013. for _, foodAction in ipairs(foodActions) do
  1014. if action:find(foodAction) then
  1015. local fullText = action .. " " .. objText
  1016. local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
  1017.  
  1018. local isExcluded = false
  1019. for _, word in ipairs(excludeWords) do
  1020. if fullText:find(word) then
  1021. isExcluded = true
  1022. break
  1023. end
  1024. end
  1025.  
  1026. if not isExcluded then
  1027. local parent = obj.Parent
  1028. if parent and parent:IsA("BasePart") then
  1029. for _, player in ipairs(Players:GetPlayers()) do
  1030. if player.Character and parent:IsDescendantOf(player.Character) then
  1031. return false, nil
  1032. end
  1033. end
  1034. return true, parent
  1035. end
  1036. end
  1037. end
  1038. end
  1039. end
  1040.  
  1041. if obj:IsA("Model") or obj:IsA("BasePart") then
  1042. local name = (obj.Name or ""):lower()
  1043.  
  1044. local meatWords = {
  1045. "meat", "carne", "beef", "steak", "chicken",
  1046. "frango", "pork", "porco", "bacon", "ham"
  1047. }
  1048.  
  1049. for _, word in ipairs(meatWords) do
  1050. if name:find(word) then
  1051. for _, player in ipairs(Players:GetPlayers()) do
  1052. if player.Character and obj:IsDescendantOf(player.Character) then
  1053. return false, nil
  1054. end
  1055. end
  1056.  
  1057. if obj:IsA("Model") then
  1058. local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
  1059. return part ~= nil, part
  1060. else
  1061. return true, obj
  1062. end
  1063. end
  1064. end
  1065. end
  1066.  
  1067. return false, nil
  1068. end
  1069.  
  1070. local function findNearestMeat()
  1071. local char = LocalPlayer.Character
  1072. local root = char and char:FindFirstChild("HumanoidRootPart")
  1073. if not root then return nil, math.huge end
  1074.  
  1075. local nearestMeat = nil
  1076. local nearestDistance = math.huge
  1077.  
  1078. for _, obj in ipairs(workspace:GetDescendants()) do
  1079. local isMeat, part = isMeatObject(obj)
  1080. if isMeat and part and part.Parent then
  1081. local distance = (part.Position - root.Position).Magnitude
  1082. if distance < nearestDistance then
  1083. nearestDistance = distance
  1084. nearestMeat = part
  1085. end
  1086. end
  1087. end
  1088.  
  1089. return nearestMeat, nearestDistance
  1090. end
  1091.  
  1092. local function createMeatESP(part)
  1093. if not part or not part:IsA("BasePart") or not part.Parent then return end
  1094.  
  1095. local id = tostring(part:GetDebugId())
  1096. if ActiveMeatESPs[id] then return end
  1097.  
  1098. local esp = Instance.new("BillboardGui")
  1099. esp.Name = "MeatESP_" .. id
  1100. esp.Adornee = part
  1101. esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
  1102. esp.StudsOffset = Vector3.new(0, 3, 0)
  1103. esp.AlwaysOnTop = true
  1104. esp.LightInfluence = 0
  1105. esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
  1106. esp.Parent = workspace
  1107. esp.Enabled = true
  1108.  
  1109. local frame = Instance.new("Frame", esp)
  1110. frame.Size = UDim2.new(1, 0, 1, 0)
  1111. frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
  1112. frame.BackgroundTransparency = 0.4
  1113. frame.BorderSizePixel = 1
  1114. frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
  1115.  
  1116. local corner = Instance.new("UICorner", frame)
  1117. corner.CornerRadius = UDim.new(0, 6)
  1118.  
  1119. local iconLabel = Instance.new("TextLabel", frame)
  1120. iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
  1121. iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
  1122. iconLabel.BackgroundTransparency = 1
  1123. iconLabel.Text = "M"
  1124. iconLabel.TextScaled = true
  1125. iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1126. iconLabel.Font = Enum.Font.SourceSansBold
  1127. iconLabel.TextStrokeTransparency = 0.5
  1128.  
  1129. local distLabel = Instance.new("TextLabel", frame)
  1130. distLabel.Name = "Distance"
  1131. distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
  1132. distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
  1133. distLabel.BackgroundTransparency = 1
  1134. distLabel.Text = "0m"
  1135. distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1136. distLabel.TextStrokeTransparency = 0.3
  1137. distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  1138. distLabel.Font = Enum.Font.GothamBold
  1139. distLabel.TextScaled = true
  1140.  
  1141. ActiveMeatESPs[id] = {
  1142. gui = esp,
  1143. part = part,
  1144. distLabel = distLabel,
  1145. frame = frame,
  1146. iconLabel = iconLabel
  1147. }
  1148.  
  1149. return true
  1150. end
  1151.  
  1152. local function scanForMeats()
  1153. if not Config.EspMeatActive then return end
  1154.  
  1155. for id, data in pairs(ActiveMeatESPs) do
  1156. if data.gui then
  1157. pcall(function() data.gui:Destroy() end)
  1158. end
  1159. end
  1160. ActiveMeatESPs = {}
  1161.  
  1162. local meatCount = 0
  1163. local checkedCount = 0
  1164.  
  1165. for _, obj in ipairs(workspace:GetDescendants()) do
  1166. checkedCount = checkedCount + 1
  1167.  
  1168. if checkedCount % 300 == 0 then
  1169. task.wait()
  1170. if not Config.EspMeatActive then return end
  1171. end
  1172.  
  1173. local isMeat, part = isMeatObject(obj)
  1174. if isMeat and part and part.Parent then
  1175. if createMeatESP(part) then
  1176. meatCount = meatCount + 1
  1177. end
  1178. end
  1179. end
  1180. end
  1181.  
  1182. local function updateMeatESPInfo()
  1183. if not Config.EspMeatActive then return end
  1184.  
  1185. local char = LocalPlayer.Character
  1186. local root = char and char:FindFirstChild("HumanoidRootPart")
  1187. if not root then return end
  1188.  
  1189. for id, data in pairs(ActiveMeatESPs) do
  1190. if data.part and data.part.Parent and data.gui and data.gui.Parent then
  1191. local distance = (data.part.Position - root.Position).Magnitude
  1192.  
  1193. data.gui.Enabled = true
  1194.  
  1195. if data.distLabel then
  1196. if distance < 100 then
  1197. data.distLabel.Text = string.format("%.0fm", distance)
  1198. elseif distance < 1000 then
  1199. data.distLabel.Text = string.format("%.0fm", distance)
  1200. else
  1201. data.distLabel.Text = string.format("%.1fkm", distance / 1000)
  1202. end
  1203. end
  1204.  
  1205. local scaleFactor
  1206. if distance <= 50 then scaleFactor = 1.0
  1207. elseif distance <= 200 then scaleFactor = 0.75
  1208. elseif distance <= 500 then scaleFactor = 0.6
  1209. elseif distance <= 1000 then scaleFactor = 0.5
  1210. elseif distance <= 2000 then scaleFactor = 0.4
  1211. elseif distance <= 3000 then scaleFactor = 0.35
  1212. elseif distance <= 5000 then scaleFactor = 0.3
  1213. elseif distance <= 10000 then scaleFactor = 0.25
  1214. else scaleFactor = 0.2 end
  1215.  
  1216. local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
  1217. data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
  1218.  
  1219. if data.frame then
  1220. local transparency
  1221. if distance < 300 then transparency = 0.3
  1222. elseif distance < 1000 then transparency = 0.5
  1223. elseif distance < 2500 then transparency = 0.65
  1224. elseif distance < 5000 then transparency = 0.75
  1225. elseif distance < 10000 then transparency = 0.8
  1226. else transparency = 0.85 end
  1227. data.frame.BackgroundTransparency = transparency
  1228. end
  1229.  
  1230. if distance < 100 then
  1231. data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
  1232. data.frame.BorderColor3 = Color3.fromRGB(200, 255, 200)
  1233. elseif distance < 500 then
  1234. data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
  1235. data.frame.BorderColor3 = Color3.fromRGB(255, 255, 150)
  1236. elseif distance < 1500 then
  1237. data.frame.BackgroundColor3 = Color3.fromRGB(255, 180, 100)
  1238. data.frame.BorderColor3 = Color3.fromRGB(255, 200, 150)
  1239. elseif distance < 3000 then
  1240. data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
  1241. data.frame.BorderColor3 = Color3.fromRGB(255, 150, 150)
  1242. elseif distance < 5000 then
  1243. data.frame.BackgroundColor3 = Color3.fromRGB(200, 150, 255)
  1244. data.frame.BorderColor3 = Color3.fromRGB(220, 180, 255)
  1245. elseif distance < 10000 then
  1246. data.frame.BackgroundColor3 = Color3.fromRGB(180, 180, 255)
  1247. data.frame.BorderColor3 = Color3.fromRGB(200, 200, 255)
  1248. else
  1249. data.frame.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
  1250. data.frame.BorderColor3 = Color3.fromRGB(180, 180, 180)
  1251. end
  1252. else
  1253. if data.gui then
  1254. pcall(function() data.gui:Destroy() end)
  1255. end
  1256. ActiveMeatESPs[id] = nil
  1257. end
  1258. end
  1259. end
  1260.  
  1261. local function startMeatESP()
  1262. if meatUpdateLoop then return end
  1263.  
  1264. scanForMeats()
  1265.  
  1266. meatUpdateLoop = RunService.Heartbeat:Connect(function()
  1267. updateMeatESPInfo()
  1268. end)
  1269.  
  1270. meatScanLoop = task.spawn(function()
  1271. while Config.EspMeatActive do
  1272. task.wait(10)
  1273. if Config.EspMeatActive then
  1274. for _, obj in ipairs(workspace:GetDescendants()) do
  1275. if not Config.EspMeatActive then break end
  1276.  
  1277. local isMeat, part = isMeatObject(obj)
  1278. if isMeat and part then
  1279. local id = tostring(part:GetDebugId())
  1280. if not ActiveMeatESPs[id] then
  1281. createMeatESP(part)
  1282. end
  1283. end
  1284. end
  1285.  
  1286. for id, data in pairs(ActiveMeatESPs) do
  1287. if not data.part or not data.part.Parent then
  1288. if data.gui then
  1289. pcall(function() data.gui:Destroy() end)
  1290. end
  1291. ActiveMeatESPs[id] = nil
  1292. end
  1293. end
  1294. end
  1295. end
  1296. end)
  1297.  
  1298. workspace.DescendantAdded:Connect(function(obj)
  1299. if not Config.EspMeatActive then return end
  1300.  
  1301. task.wait(0.1)
  1302. local isMeat, part = isMeatObject(obj)
  1303. if isMeat and part then
  1304. local id = tostring(part:GetDebugId())
  1305. if not ActiveMeatESPs[id] then
  1306. createMeatESP(part)
  1307. end
  1308. end
  1309. end)
  1310. end
  1311.  
  1312. local function stopMeatESP()
  1313. if meatUpdateLoop then
  1314. meatUpdateLoop:Disconnect()
  1315. meatUpdateLoop = nil
  1316. end
  1317.  
  1318. if meatScanLoop then
  1319. task.cancel(meatScanLoop)
  1320. meatScanLoop = nil
  1321. end
  1322.  
  1323. for id, data in pairs(ActiveMeatESPs) do
  1324. if data.gui then
  1325. pcall(function() data.gui:Destroy() end)
  1326. end
  1327. end
  1328. ActiveMeatESPs = {}
  1329. end
  1330.  
  1331. --// ========== SISTEMA ESP DE JOGADORES ========== //
  1332.  
  1333. local PlayerESP_Data = {}
  1334. local PlayerESP_UpdateLoop = nil
  1335. local PlayerESP_ProcessQueue = {}
  1336.  
  1337. local ESP_CONFIG = {
  1338. UpdateInterval = 0.5,
  1339. HPBarMaxDistance = 4000,
  1340. HPBarSize = UDim2.new(0, 50, 0, 5),
  1341. HPBarYOffset = 0.5,
  1342. HighlightFillTransparency = 0.85,
  1343. OutlineTransparency = 0.15,
  1344. MaxPlayersPerFrame = 2,
  1345. }
  1346.  
  1347. local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
  1348. local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
  1349. local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
  1350.  
  1351. local TeamColorMap = {}
  1352. local UsedHues = {}
  1353. local NextHueIndex = 0
  1354.  
  1355. local function generateUniqueTeamColor()
  1356. local goldenRatio = 0.618033988749895
  1357. local hue = (NextHueIndex * goldenRatio) % 1
  1358.  
  1359. if hue >= 0.25 and hue <= 0.45 then
  1360. hue = (hue + 0.35) % 1
  1361. end
  1362.  
  1363. local minDistance = 0.15
  1364. for _, usedHue in pairs(UsedHues) do
  1365. local distance = math.abs(hue - usedHue)
  1366. if distance < minDistance or distance > (1 - minDistance) then
  1367. NextHueIndex = NextHueIndex + 1
  1368. return generateUniqueTeamColor()
  1369. end
  1370. end
  1371.  
  1372. table.insert(UsedHues, hue)
  1373. NextHueIndex = NextHueIndex + 1
  1374.  
  1375. local sat = 0.8 + (math.random() * 0.2)
  1376. local val = 0.9 + (math.random() * 0.1)
  1377.  
  1378. return Color3.fromHSV(hue, sat, val)
  1379. end
  1380.  
  1381. local function isNeutralPlayer(p)
  1382. return p.Team == nil
  1383. end
  1384.  
  1385. local function isAllyPlayer(p)
  1386. return LocalPlayer.Team and p.Team == LocalPlayer.Team
  1387. end
  1388.  
  1389. local function colorForPlayer(p)
  1390. if isNeutralPlayer(p) then
  1391. return COLOR_NEUTRAL
  1392. end
  1393.  
  1394. if isAllyPlayer(p) then
  1395. return COLOR_FRIEND
  1396. end
  1397.  
  1398. if p.Team and not TeamColorMap[p.Team] then
  1399. TeamColorMap[p.Team] = generateUniqueTeamColor()
  1400. end
  1401.  
  1402. return TeamColorMap[p.Team] or COLOR_ENEMY
  1403. end
  1404.  
  1405. local function shouldShowPlayerESP(p)
  1406. if not Config.PlayerESP then return false end
  1407. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1408. return true
  1409. end
  1410.  
  1411. local function shouldShowPlayerHP(p)
  1412. if not Config.PlayerESP_ShowHP then return false end
  1413. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1414. return true
  1415. end
  1416.  
  1417. local function isValidPlayerCharacter(char)
  1418. if not char or not char.Parent then return false end
  1419. return char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart")
  1420. end
  1421.  
  1422. local function clearPlayerConns(pack)
  1423. if not pack or not pack.conns then return end
  1424. for _, c in ipairs(pack.conns) do
  1425. if c and c.Connected then
  1426. pcall(function() c:Disconnect() end)
  1427. end
  1428. end
  1429. pack.conns = {}
  1430. end
  1431.  
  1432. local function detachPlayerESP(plr)
  1433. local pack = PlayerESP_Data[plr]
  1434. if not pack then return end
  1435.  
  1436. clearPlayerConns(pack)
  1437.  
  1438. if pack.highlight then
  1439. pcall(function() pack.highlight:Destroy() end)
  1440. pack.highlight = nil
  1441. end
  1442.  
  1443. if pack.hpGui then
  1444. pcall(function() pack.hpGui:Destroy() end)
  1445. pack.hpGui = nil
  1446. end
  1447.  
  1448. PlayerESP_Data[plr] = nil
  1449. end
  1450.  
  1451. local function ensurePlayerHighlight(plr, char)
  1452. local pack = PlayerESP_Data[plr]
  1453. if not pack or not isValidPlayerCharacter(char) then return end
  1454.  
  1455. if not pack.highlight or not pack.highlight.Parent then
  1456. for _, obj in ipairs(char:GetChildren()) do
  1457. if obj:IsA("Highlight") and obj.Name == "PlayerESP_Highlight" then
  1458. pcall(function() obj:Destroy() end)
  1459. end
  1460. end
  1461.  
  1462. local hi = Instance.new("Highlight")
  1463. hi.Name = "PlayerESP_Highlight"
  1464. hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  1465. hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
  1466. hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
  1467. hi.Adornee = char
  1468. hi.Parent = char
  1469. pack.highlight = hi
  1470. end
  1471.  
  1472. local col = colorForPlayer(plr)
  1473. pack.highlight.FillColor = col
  1474. pack.highlight.OutlineColor = col
  1475. pack.highlight.Adornee = char
  1476. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1477. end
  1478.  
  1479. local function ensurePlayerHPGui(plr, char)
  1480. local pack = PlayerESP_Data[plr]
  1481. if not pack or not isValidPlayerCharacter(char) then return end
  1482.  
  1483. local hum = char:FindFirstChildOfClass("Humanoid")
  1484. local head = char:FindFirstChild("Head")
  1485. local root = char:FindFirstChild("HumanoidRootPart")
  1486.  
  1487. if not hum or not root then
  1488. if pack.hpGui then
  1489. pack.hpGui.Enabled = false
  1490. end
  1491. return
  1492. end
  1493.  
  1494. pack.hum = hum
  1495. pack.head = head
  1496. pack.root = root
  1497.  
  1498. if not pack.hpGui or not pack.hpGui.Parent then
  1499. for _, obj in ipairs(char:GetChildren()) do
  1500. if obj:IsA("BillboardGui") and obj.Name == "PlayerESP_HP" then
  1501. pcall(function() obj:Destroy() end)
  1502. end
  1503. end
  1504.  
  1505. local bill = Instance.new("BillboardGui")
  1506. bill.Name = "PlayerESP_HP"
  1507. bill.AlwaysOnTop = true
  1508. bill.LightInfluence = 0
  1509. bill.Size = ESP_CONFIG.HPBarSize
  1510. bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
  1511. bill.Parent = char
  1512.  
  1513. local bg = Instance.new("Frame")
  1514. bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  1515. bg.BackgroundTransparency = 0.2
  1516. bg.BorderSizePixel = 0
  1517. bg.Size = UDim2.fromScale(1, 1)
  1518. bg.Parent = bill
  1519.  
  1520. local stroke = Instance.new("UIStroke")
  1521. stroke.Color = Color3.fromRGB(0, 0, 0)
  1522. stroke.Thickness = 1.5
  1523. stroke.Parent = bg
  1524.  
  1525. local corner1 = Instance.new("UICorner")
  1526. corner1.CornerRadius = UDim.new(0, 2)
  1527. corner1.Parent = bg
  1528.  
  1529. local fill = Instance.new("Frame")
  1530. fill.BackgroundColor3 = COLOR_FRIEND
  1531. fill.BorderSizePixel = 0
  1532. fill.Size = UDim2.fromScale(1, 1)
  1533. fill.Parent = bg
  1534.  
  1535. local corner2 = Instance.new("UICorner")
  1536. corner2.CornerRadius = UDim.new(0, 2)
  1537. corner2.Parent = fill
  1538.  
  1539. pack.hpGui = bill
  1540. pack.hpFill = fill
  1541. end
  1542.  
  1543. if head then
  1544. pack.hpGui.Adornee = head
  1545. local headSize = head.Size.Y
  1546. pack.hpGui.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
  1547. else
  1548. pack.hpGui.Adornee = root
  1549. pack.hpGui.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
  1550. end
  1551.  
  1552. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  1553. end
  1554.  
  1555. local function updatePlayerHPBar(plr)
  1556. local pack = PlayerESP_Data[plr]
  1557. if not pack or not pack.hpGui or not pack.hpFill or not pack.hum then return end
  1558.  
  1559. local h = pack.hum.Health
  1560. local m = pack.hum.MaxHealth
  1561. if m <= 0 then m = 100 end
  1562.  
  1563. local ratio = math.clamp(h / m, 0, 1)
  1564. pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
  1565.  
  1566. local r, g, b
  1567. if ratio > 0.5 then
  1568. r = (1 - ratio) * 2 * 255
  1569. g = 255
  1570. b = 0
  1571. else
  1572. r = 255
  1573. g = ratio * 2 * 255
  1574. b = 0
  1575. end
  1576.  
  1577. pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, b)
  1578. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
  1579. end
  1580.  
  1581. local function setupPlayerESP(plr, char)
  1582. if plr == LocalPlayer or not isValidPlayerCharacter(char) then return end
  1583.  
  1584. local pack = PlayerESP_Data[plr] or { conns = {} }
  1585. PlayerESP_Data[plr] = pack
  1586.  
  1587. if pack.char and pack.char ~= char then
  1588. clearPlayerConns(pack)
  1589. if pack.highlight then pcall(function() pack.highlight:Destroy() end) end
  1590. if pack.hpGui then pcall(function() pack.hpGui:Destroy() end) end
  1591. pack.char = nil
  1592. pack.highlight = nil
  1593. pack.hpGui = nil
  1594. pack.hpFill = nil
  1595. pack.hum = nil
  1596. pack.head = nil
  1597. end
  1598.  
  1599. pack.char = char
  1600. local hum = char:FindFirstChildOfClass("Humanoid")
  1601.  
  1602. if not hum then return end
  1603.  
  1604. pack.hum = hum
  1605. hum.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
  1606.  
  1607. task.wait(0.1)
  1608. ensurePlayerHighlight(plr, char)
  1609. ensurePlayerHPGui(plr, char)
  1610. updatePlayerHPBar(plr)
  1611.  
  1612. table.insert(pack.conns, hum.HealthChanged:Connect(function()
  1613. updatePlayerHPBar(plr)
  1614. end))
  1615.  
  1616. table.insert(pack.conns, plr:GetPropertyChangedSignal("Team"):Connect(function()
  1617. task.spawn(function()
  1618. ensurePlayerHighlight(plr, char)
  1619. updatePlayerHPBar(plr)
  1620. end)
  1621. end))
  1622.  
  1623. pack.initialized = true
  1624. end
  1625.  
  1626. local function hookPlayerESP(plr)
  1627. if plr == LocalPlayer then return end
  1628. table.insert(PlayerESP_ProcessQueue, plr)
  1629. end
  1630.  
  1631. local function reinitializeAllPlayerESP()
  1632. for plr, _ in pairs(PlayerESP_Data) do
  1633. detachPlayerESP(plr)
  1634. end
  1635.  
  1636. PlayerESP_ProcessQueue = {}
  1637.  
  1638. task.wait(0.1)
  1639.  
  1640. for _, p in ipairs(Players:GetPlayers()) do
  1641. if p ~= LocalPlayer then
  1642. hookPlayerESP(p)
  1643. end
  1644. end
  1645. end
  1646.  
  1647. task.spawn(function()
  1648. while true do
  1649. task.wait(0.2)
  1650.  
  1651. if #PlayerESP_ProcessQueue > 0 and Config.PlayerESP then
  1652. local plr = table.remove(PlayerESP_ProcessQueue, 1)
  1653.  
  1654. if plr and plr.Parent then
  1655. detachPlayerESP(plr)
  1656. PlayerESP_Data[plr] = { conns = {} }
  1657.  
  1658. if plr.Character then
  1659. task.spawn(function()
  1660. setupPlayerESP(plr, plr.Character)
  1661. end)
  1662. end
  1663.  
  1664. table.insert(PlayerESP_Data[plr].conns, plr.CharacterAdded:Connect(function(char)
  1665. task.wait(0.5)
  1666. setupPlayerESP(plr, char)
  1667. end))
  1668.  
  1669. table.insert(PlayerESP_Data[plr].conns, plr.CharacterRemoving:Connect(function()
  1670. local pack = PlayerESP_Data[plr]
  1671. if pack then
  1672. if pack.hpGui then
  1673. pcall(function() pack.hpGui:Destroy() end)
  1674. pack.hpGui = nil
  1675. end
  1676. if pack.highlight then
  1677. pcall(function() pack.highlight:Destroy() end)
  1678. pack.highlight = nil
  1679. end
  1680. pack.hum = nil
  1681. pack.head = nil
  1682. pack.initialized = false
  1683. end
  1684. end))
  1685. end
  1686. end
  1687. end
  1688. end)
  1689.  
  1690. task.spawn(function()
  1691. task.wait(2)
  1692. Players.PlayerAdded:Connect(function(p)
  1693. task.wait(0.5)
  1694. hookPlayerESP(p)
  1695. end)
  1696.  
  1697. Players.PlayerRemoving:Connect(function(p)
  1698. detachPlayerESP(p)
  1699. end)
  1700. end)
  1701.  
  1702. task.spawn(function()
  1703. while true do
  1704. task.wait(ESP_CONFIG.UpdateInterval)
  1705.  
  1706. if not Config.PlayerESP then
  1707. task.wait(1)
  1708. continue
  1709. end
  1710.  
  1711. local processed = 0
  1712. for plr, pack in pairs(PlayerESP_Data) do
  1713. if processed >= ESP_CONFIG.MaxPlayersPerFrame then
  1714. task.wait()
  1715. processed = 0
  1716. end
  1717.  
  1718. if plr and plr.Parent and plr ~= LocalPlayer then
  1719. local char = plr.Character
  1720. if char and isValidPlayerCharacter(char) then
  1721. if not pack.initialized or pack.char ~= char then
  1722. setupPlayerESP(plr, char)
  1723. else
  1724. if not pack.highlight or not pack.highlight.Parent then
  1725. ensurePlayerHighlight(plr, char)
  1726. end
  1727. if not pack.hpGui or not pack.hpGui.Parent then
  1728. ensurePlayerHPGui(plr, char)
  1729. end
  1730. if pack.highlight then
  1731. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1732. end
  1733. if pack.hpGui then
  1734. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
  1735. end
  1736. updatePlayerHPBar(plr)
  1737. end
  1738. end
  1739. end
  1740. processed = processed + 1
  1741. end
  1742. end
  1743. end)
  1744.  
  1745. --// ========== SISTEMA DE TELEPORTS SALVOS ========== //
  1746.  
  1747. local function loadSavedTeleports()
  1748. local success, data = pcall(function()
  1749. return HttpService:JSONDecode(readfile("PreHistoria_Teleports.json"))
  1750. end)
  1751.  
  1752. if success and data then
  1753. Config.SavedTeleports = data
  1754. print("Carregado " .. #data .. " teleports salvos")
  1755. else
  1756. Config.SavedTeleports = {}
  1757. print("Nenhum teleport salvo encontrado")
  1758. end
  1759. end
  1760.  
  1761. loadSavedTeleports()
  1762.  
  1763. --// ========== CRIAR WINDOW WINDUI ========== //
  1764.  
  1765. local Window = WindUI:CreateWindow({
  1766. Title = "🦖 Pré-história - By: NickZScripts",
  1767. Author = "by NickZScripts",
  1768. Folder = "PreHistoria_WindUI",
  1769. Icon = "bird",
  1770. NewElements = true,
  1771. HideSearchBar = false,
  1772.  
  1773. OpenButton = {
  1774. Title = "Abrir Pré-história UI",
  1775. CornerRadius = UDim.new(1, 0),
  1776. StrokeThickness = 3,
  1777. Enabled = true,
  1778. Draggable = true,
  1779. OnlyMobile = false,
  1780. Color = ColorSequence.new(
  1781. Color3.fromHex("#30FF6A"),
  1782. Color3.fromHex("#e7ff2f")
  1783. )
  1784. }
  1785. })
  1786.  
  1787. --// ========== ABA MENU ========== //
  1788.  
  1789. local MenuTab = Window:Tab({
  1790. Title = "Menu",
  1791. Icon = "home",
  1792. })
  1793.  
  1794. MenuTab:Section({
  1795. Title = "Informações",
  1796. TextSize = 18,
  1797. FontWeight = Enum.FontWeight.SemiBold,
  1798. })
  1799.  
  1800. -- Players Count
  1801. MenuTab:Section({
  1802. Title = "Players Online: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers,
  1803. TextSize = 14,
  1804. })
  1805.  
  1806. MenuTab:Section({
  1807. Title = "Script Info\nVersão: " .. ScriptVersion .. "\nStatus: Operacional",
  1808. TextSize = 13,
  1809. })
  1810.  
  1811. MenuTab:Section({
  1812. Title = "Jogador\nNome: " .. LocalPlayer.Name .. "\nDisplay: " .. LocalPlayer.DisplayName .. "\nID: " .. LocalPlayer.UserId,
  1813. TextSize = 13,
  1814. })
  1815.  
  1816. MenuTab:Space()
  1817.  
  1818. MenuTab:Section({
  1819. Title = "Sistemas Ativos",
  1820. TextSize = 16,
  1821. FontWeight = Enum.FontWeight.SemiBold,
  1822. })
  1823.  
  1824. MenuTab:Section({
  1825. Title = "Auto Farm - Desligado\nESP Carnes - Desligado\nESP Jogadores - Desligado\nAuto Coleta - Desligado\nClick Teleport - Desligado",
  1826. TextSize = 12,
  1827. })
  1828.  
  1829. MenuTab:Space()
  1830.  
  1831. MenuTab:Section({
  1832. Title = "Créditos",
  1833. TextSize = 16,
  1834. FontWeight = Enum.FontWeight.SemiBold,
  1835. })
  1836.  
  1837. MenuTab:Section({
  1838. Title = "Desenvolvedor: NickZScripts\nInterface: WindUI Library\nVersão: " .. ScriptVersion,
  1839. TextSize = 12,
  1840. })
  1841.  
  1842. --// ========== ABA AUTO FARM ========== //
  1843.  
  1844. local AutoFarmTab = Window:Tab({
  1845. Title = "Auto Farm",
  1846. Icon = "zap",
  1847. })
  1848.  
  1849. AutoFarmTab:Section({
  1850. Title = "Farm de Cristais",
  1851. TextSize = 18,
  1852. FontWeight = Enum.FontWeight.SemiBold,
  1853. })
  1854.  
  1855. AutoFarmTab:Section({
  1856. Title = "Nível do Dino: 0/60",
  1857. TextSize = 14,
  1858. })
  1859.  
  1860. AutoFarmTab:Space()
  1861.  
  1862. local AutoFarmToggle = AutoFarmTab:Toggle({
  1863. Title = "Auto Farm Cristais",
  1864. Desc = "Farma cristais automaticamente até nível 60",
  1865. Default = false,
  1866. Callback = function(Value)
  1867. Config.AutoFarm = Value
  1868.  
  1869. WindUI:Notify({
  1870. Title = Value and "Ativado" or "Desativado",
  1871. Content = "Auto Farm " .. (Value and "ligado" or "desligado"),
  1872. Duration = 1
  1873. })
  1874. end,
  1875. })
  1876.  
  1877. AutoFarmTab:Space()
  1878.  
  1879. AutoFarmTab:Section({
  1880. Title = "Auto Coleta",
  1881. TextSize = 18,
  1882. FontWeight = Enum.FontWeight.SemiBold,
  1883. })
  1884.  
  1885. AutoFarmTab:Space()
  1886.  
  1887. local AutoColetaToggle = AutoFarmTab:Toggle({
  1888. Title = "Auto Coleta",
  1889. Desc = "Coleta itens automaticamente (funciona sozinho ou com Auto Farm)",
  1890. Default = false,
  1891. Callback = function(Value)
  1892. Config.AutoColeta = Value
  1893.  
  1894. WindUI:Notify({
  1895. Title = Value and "Ativado" or "Desativado",
  1896. Content = "Auto Coleta " .. (Value and "ligado" or "desligado"),
  1897. Duration = 1
  1898. })
  1899. end,
  1900. })
  1901.  
  1902. --// ========== ABA ESP ========== //
  1903.  
  1904. local EspTab = Window:Tab({
  1905. Title = "ESP",
  1906. Icon = "eye",
  1907. })
  1908.  
  1909. EspTab:Section({
  1910. Title = "ESP de Jogadores",
  1911. TextSize = 18,
  1912. FontWeight = Enum.FontWeight.SemiBold,
  1913. })
  1914.  
  1915. EspTab:Space()
  1916.  
  1917. local EspJogadoresToggle = EspTab:Toggle({
  1918. Title = "ESP de Jogadores",
  1919. Desc = "Mostra highlight em todos os jogadores",
  1920. Default = false,
  1921. Callback = function(Value)
  1922. Config.PlayerESP = Value
  1923.  
  1924. if Value then
  1925. reinitializeAllPlayerESP()
  1926. else
  1927. for plr, pack in pairs(PlayerESP_Data) do
  1928. if pack.highlight then pack.highlight.Enabled = false end
  1929. if pack.hpGui then pack.hpGui.Enabled = false end
  1930. end
  1931. end
  1932.  
  1933. WindUI:Notify({
  1934. Title = Value and "Ativado" or "Desativado",
  1935. Content = "ESP Jogadores " .. (Value and "ligado" or "desligado"),
  1936. Duration = 1
  1937. })
  1938. end,
  1939. })
  1940.  
  1941. EspTab:Space()
  1942.  
  1943. local EspHPToggle = EspTab:Toggle({
  1944. Title = "Barra de Vida",
  1945. Desc = "Mostra HP dos jogadores",
  1946. Default = false,
  1947. Callback = function(Value)
  1948. Config.PlayerESP_ShowHP = Value
  1949.  
  1950. for plr, pack in pairs(PlayerESP_Data) do
  1951. if pack.hpGui then
  1952. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
  1953. end
  1954. end
  1955.  
  1956. WindUI:Notify({
  1957. Title = Value and "Ativado" or "Desativado",
  1958. Content = "Barra de Vida " .. (Value and "ligada" or "desligada"),
  1959. Duration = 1
  1960. })
  1961. end,
  1962. })
  1963.  
  1964. EspTab:Space()
  1965.  
  1966. local EspTeamCheckToggle = EspTab:Toggle({
  1967. Title = "TeamCheck (Só Inimigos)",
  1968. Desc = "Mostra ESP apenas em jogadores inimigos",
  1969. Default = false,
  1970. Callback = function(Value)
  1971. Config.PlayerESP_TeamCheck = Value
  1972.  
  1973. for plr, pack in pairs(PlayerESP_Data) do
  1974. if pack.highlight then
  1975. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  1976. end
  1977. if pack.hpGui then
  1978. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and pack.hum and pack.hum.Health > 0
  1979. end
  1980. end
  1981.  
  1982. WindUI:Notify({
  1983. Title = Value and "Ativado" or "Desativado",
  1984. Content = "TeamCheck " .. (Value and "ligado" or "desligado"),
  1985. Duration = 1
  1986. })
  1987. end,
  1988. })
  1989.  
  1990. EspTab:Space({ Columns = 2 })
  1991.  
  1992. EspTab:Section({
  1993. Title = "ESP de Carnes",
  1994. TextSize = 18,
  1995. FontWeight = Enum.FontWeight.SemiBold,
  1996. })
  1997.  
  1998. EspTab:Space()
  1999.  
  2000. local EspCarnesToggle = EspTab:Toggle({
  2001. Title = "ESP de Carnes",
  2002. Desc = "Mostra a localização das carnes no mapa",
  2003. Default = false,
  2004. Callback = function(Value)
  2005. Config.EspMeatActive = Value
  2006.  
  2007. if Value then
  2008. startMeatESP()
  2009. else
  2010. stopMeatESP()
  2011. end
  2012.  
  2013. WindUI:Notify({
  2014. Title = Value and "Ativado" or "Desativado",
  2015. Content = "ESP Carnes " .. (Value and "ligado" or "desligado"),
  2016. Duration = 1
  2017. })
  2018. end,
  2019. })
  2020.  
  2021. --// ========== ABA TELEPORT ========== //
  2022.  
  2023. local TeleportTab = Window:Tab({
  2024. Title = "Teleport",
  2025. Icon = "navigation",
  2026. })
  2027.  
  2028. TeleportTab:Section({
  2029. Title = "Teleportes Rápidos",
  2030. TextSize = 18,
  2031. FontWeight = Enum.FontWeight.SemiBold,
  2032. })
  2033.  
  2034. TeleportTab:Space()
  2035.  
  2036. TeleportTab:Button({
  2037. Title = "Teleportar para Carne Mais Próxima",
  2038. Desc = "Teleporta para a carne mais perto de você",
  2039. Icon = "drumstick",
  2040. Callback = function()
  2041. local char = LocalPlayer.Character
  2042. local root = char and char:FindFirstChild("HumanoidRootPart")
  2043. if not root then
  2044. WindUI:Notify({
  2045. Title = "Erro",
  2046. Content = "Personagem não encontrado!",
  2047. Duration = 1
  2048. })
  2049. return
  2050. end
  2051.  
  2052. local meat, distance = findNearestMeat()
  2053.  
  2054. if not meat then
  2055. WindUI:Notify({
  2056. Title = "Erro",
  2057. Content = "Nenhuma carne encontrada!",
  2058. Duration = 1
  2059. })
  2060. return
  2061. end
  2062.  
  2063. safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
  2064. end,
  2065. })
  2066.  
  2067. TeleportTab:Space({ Columns = 2 })
  2068.  
  2069. TeleportTab:Section({
  2070. Title = "Teleporte para Spawn",
  2071. TextSize = 18,
  2072. FontWeight = Enum.FontWeight.SemiBold,
  2073. })
  2074.  
  2075. TeleportTab:Space()
  2076.  
  2077. TeleportTab:Button({
  2078. Title = "Voltar ao Spawn",
  2079. Desc = "Teleporta de volta para o spawn inicial",
  2080. Icon = "home",
  2081. Callback = function()
  2082. if not LastSpawnPosition then
  2083. WindUI:Notify({
  2084. Title = "Erro",
  2085. Content = "Spawn não detectado!",
  2086. Duration = 1
  2087. })
  2088. return
  2089. end
  2090.  
  2091. safeTeleport(LastSpawnPosition, "Spawn")
  2092. end,
  2093. })
  2094.  
  2095. TeleportTab:Space({ Columns = 2 })
  2096.  
  2097. TeleportTab:Section({
  2098. Title = "Locais Salvos",
  2099. TextSize = 18,
  2100. FontWeight = Enum.FontWeight.SemiBold,
  2101. })
  2102.  
  2103. TeleportTab:Space()
  2104.  
  2105. if #Config.SavedTeleports > 0 then
  2106. for i, data in ipairs(Config.SavedTeleports) do
  2107. if data.position then
  2108. local locationName = data.name or ("Local " .. i)
  2109.  
  2110. TeleportTab:Button({
  2111. Title = locationName,
  2112. Desc = "Teleportar para: " .. locationName,
  2113. Icon = "map-pin",
  2114. Callback = function()
  2115. local pos = data.position
  2116.  
  2117. if not pos or not pos.X or not pos.Y or not pos.Z then
  2118. WindUI:Notify({
  2119. Title = "Erro",
  2120. Content = "Posição inválida!",
  2121. Duration = 1
  2122. })
  2123. return
  2124. end
  2125.  
  2126. local targetCF = CFrame.new(pos.X, pos.Y, pos.Z)
  2127. safeTeleport(targetCF, locationName)
  2128. end,
  2129. })
  2130.  
  2131. TeleportTab:Space()
  2132. end
  2133. end
  2134. else
  2135. TeleportTab:Section({
  2136. Title = "Nenhum Local Salvo\n\nVocê ainda não possui locais salvos.\nUse outros scripts para salvar posições.",
  2137. TextSize = 12,
  2138. })
  2139. end
  2140.  
  2141. --// ========== ABA OUTROS ========== //
  2142.  
  2143. local OutrosTab = Window:Tab({
  2144. Title = "Outros",
  2145. Icon = "settings",
  2146. })
  2147.  
  2148. OutrosTab:Section({
  2149. Title = "Ferramentas de Debug",
  2150. TextSize = 18,
  2151. FontWeight = Enum.FontWeight.SemiBold,
  2152. })
  2153.  
  2154. OutrosTab:Space()
  2155.  
  2156. OutrosTab:Button({
  2157. Title = "Debug: Buscar Nível",
  2158. Desc = "Veja o console (F9) para detalhes completos",
  2159. Icon = "search",
  2160. Callback = function()
  2161. local level = getDinoLevelDebug()
  2162. WindUI:Notify({
  2163. Title = "Debug",
  2164. Content = "Nível encontrado: " .. level .. "\nVeja o console (F9) para detalhes",
  2165. Duration = 3
  2166. })
  2167. end,
  2168. })
  2169.  
  2170. OutrosTab:Space({ Columns = 2 })
  2171.  
  2172. OutrosTab:Section({
  2173. Title = "Click Teleport",
  2174. TextSize = 18,
  2175. FontWeight = Enum.FontWeight.SemiBold,
  2176. })
  2177.  
  2178. OutrosTab:Space()
  2179.  
  2180. OutrosTab:Section({
  2181. Title = "Sobre Click Teleport\n\nTeleporte instantâneo clicando em qualquer superfície.\n\nPersonagem olha para onde clicou\nAnti-acidental\nInterface móvel\nSem efeitos visuais\n\nUse o botão X na interface para desativar",
  2182. TextSize = 11,
  2183. })
  2184.  
  2185. OutrosTab:Space()
  2186.  
  2187. OutrosTab:Button({
  2188. Title = "Abrir Click Teleport",
  2189. Desc = "Abre a interface de Click Teleport",
  2190. Icon = "mouse-pointer",
  2191. Callback = function()
  2192. if not Config.ClickTeleportEnabled then
  2193. ClickTeleportModule.Toggle(true)
  2194.  
  2195. WindUI:Notify({
  2196. Title = "Click Teleport",
  2197. Content = "Interface aberta!\n\nPara fechar, clique no botão X na interface",
  2198. Duration = 2
  2199. })
  2200. else
  2201. WindUI:Notify({
  2202. Title = "Já Ativo",
  2203. Content = "Click Teleport já está aberto!\n\nPara desativar, use o botão X na interface",
  2204. Duration = 2
  2205. })
  2206. end
  2207. end,
  2208. })
  2209.  
  2210. OutrosTab:Space({ Columns = 2 })
  2211.  
  2212. OutrosTab:Section({
  2213. Title = "Informações",
  2214. TextSize = 18,
  2215. FontWeight = Enum.FontWeight.SemiBold,
  2216. })
  2217.  
  2218. OutrosTab:Space()
  2219.  
  2220. OutrosTab:Section({
  2221. Title = "Sobre o Script\n\nTodas as informações importantes estão na aba Menu.\n\nO sistema de Auto Coleta funciona de forma independente!\n\nTeleports salvos são carregados do arquivo JSON.",
  2222. TextSize = 11,
  2223. })
  2224.  
  2225. --// ========== AUTO FARM LOOP ========== //
  2226.  
  2227. task.spawn(function()
  2228. local index = 1
  2229. while true do
  2230. task.wait(Config.CheckDelay)
  2231. if Config.AutoFarm then
  2232. local currentLevel = getDinoLevelSilent()
  2233.  
  2234. if currentLevel >= 60 then
  2235. Config.AutoFarm = false
  2236. AutoFarmToggle:Set(false)
  2237.  
  2238. WindUI:Notify({
  2239. Title = "Completo",
  2240. Content = "Nível 60 atingido!",
  2241. Duration = 2
  2242. })
  2243. else
  2244. local crystals = getSortedCrystals()
  2245. if #crystals > 0 then
  2246. for _, c in ipairs(crystals) do
  2247. if not Config.AutoFarm or not c or not c.Parent then break end
  2248. teleportToCrystal(c)
  2249.  
  2250. local fixarConexao = RunService.Heartbeat:Connect(function()
  2251. if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
  2252. local char = getCharacter()
  2253. if char and char.PrimaryPart then
  2254. char:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  2255. end
  2256. end
  2257. end)
  2258.  
  2259. local elapsed = 0
  2260. while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
  2261. task.wait(Config.CheckDelay)
  2262. elapsed += Config.CheckDelay
  2263. end
  2264. fixarConexao:Disconnect()
  2265. task.wait(Config.DelayBetweenCrystals)
  2266. end
  2267. else
  2268. index = (index % #Config.PatrulhaPontos) + 1
  2269. teleportTo(Config.PatrulhaPontos[index])
  2270. task.wait(2)
  2271. end
  2272. end
  2273. end
  2274. end
  2275. end)
  2276.  
  2277. --// ========== AUTO COLETA (FUNCIONA COM AUTO FARM OU INDIVIDUAL) ========== //
  2278.  
  2279. RunService.Heartbeat:Connect(function()
  2280. if not (Config.AutoFarm or Config.AutoColeta) then return end
  2281.  
  2282. if not Config.podeExecutar then return end
  2283. Config.podeExecutar = false
  2284.  
  2285. local root = getHumanoidRootPart()
  2286. if root then
  2287. for _, obj in ipairs(workspace:GetDescendants()) do
  2288. if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
  2289. if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
  2290. pcall(function()
  2291. fireproximityprompt(obj)
  2292. end)
  2293. end
  2294. end
  2295. end
  2296. end
  2297.  
  2298. task.delay(Config.delayEntreTentativas, function()
  2299. Config.podeExecutar = true
  2300. end)
  2301. end)
  2302.  
  2303. --// ========== CLEANUP AO SAIR ========== //
  2304.  
  2305. LocalPlayer.CharacterRemoving:Connect(function()
  2306. ClickTeleportModule.Cleanup()
  2307. end)
  2308.  
  2309. --// ========== LOGS FINAIS ========== //
  2310.  
  2311. print(string.rep("=", 60))
  2312. print(" Pré-história - By: NickZScripts")
  2313. print(string.rep("=", 60))
  2314. print(" GUI WindUI carregada!")
  2315. print(" Versão: " .. ScriptVersion)
  2316. print(" Jogador: " .. LocalPlayer.Name)
  2317. print(" Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
  2318. print(" Teleports Salvos: " .. #Config.SavedTeleports)
  2319. print(string.rep("=", 60))
  2320. print(" Sistema de Debug disponível na aba Outros")
  2321. print(" Auto Coleta: Integrado com Auto Farm")
  2322. print(" Sistema de Teleporte Ultra-Rápido")
  2323. print(" ESP com cores únicas garantidas por time")
  2324. print(" Click Teleport: SEM EFEITOS VISUAIS")
  2325. print(string.rep("=", 60))
  2326. print(" FUNCIONALIDADES ATIVAS:")
  2327. print(" Auto Farm de Cristais (com Auto Coleta integrado)")
  2328. print(" ESP de Jogadores (com HP Bar e cores únicas)")
  2329. print(" ESP de Carnes")
  2330. print(" Teleporte para Carnes")
  2331. print(" Teleporte para Spawn")
  2332. print(" Teleporte Seguro para Locais Salvos")
  2333. print(" Auto Coleta Inteligente (25 studs)")
  2334. print(" Click Teleport (Orientação + Sem Efeitos)")
  2335. print(string.rep("=", 60))
  2336. print(" ATUALIZAÇÃO " .. ScriptVersion .. ":")
  2337. print(" Abas únicas - Navegação simplificada!")
  2338. print(" Performance otimizada")
  2339. print(" Design moderno e responsivo")
  2340. print(" Todas funcionalidades preservadas")
  2341. print(" Zero conflitos ou bugs")
  2342. print(string.rep("=", 60))
Advertisement
Add Comment
Please, Sign In to add comment