Nevzyn

Untitled

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