Nevzyn

Untitled

Nov 17th, 2025
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 59.18 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.6.0 WindUI (Revisado)" --// Versão atualizada
  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 = 1 -- Atualiza a cada 1 segundo para ser mais responsivo
  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. local function _teleportToPosition(position)
  290. local root = getHumanoidRootPart()
  291. if not root then return false end
  292.  
  293. local currentPosition = root.Position
  294. local teleportPos = position + Vector3.new(0, CTConfig.TeleportOffset, 0)
  295.  
  296. local directionVector = (position - currentPosition)
  297. local horizontalDirection = Vector3.new(directionVector.X, 0, directionVector.Z)
  298. local lookDirection = horizontalDirection.Unit
  299.  
  300. local targetCFrame = CFrame.new(teleportPos, teleportPos + lookDirection)
  301. root.CFrame = targetCFrame
  302.  
  303. return true
  304. end
  305.  
  306. local function _isValidClick(startPos, endPos, duration)
  307. if duration > CTConfig.MaxClickTime then return false end
  308.  
  309. local dragDistance = (endPos - startPos).Magnitude
  310. if dragDistance > CTConfig.MaxDragDistance then return false end
  311.  
  312. return true
  313. end
  314.  
  315. local function _updateStatusLabel(text, color)
  316. if _mainFrame then
  317. local statusLabel = _mainFrame:FindFirstChild("Container"):FindFirstChild("StatusLabel")
  318. if statusLabel then
  319. statusLabel.Text = text
  320. statusLabel.TextColor3 = color
  321. end
  322. end
  323. end
  324.  
  325. local function _enableClickDetection()
  326. for _, conn in ipairs(_connections) do
  327. if conn and conn.Connected then
  328. conn:Disconnect()
  329. end
  330. end
  331. _connections = {}
  332.  
  333. table.insert(_connections, UserInputService.InputBegan:Connect(function(input, gameProcessed)
  334. if gameProcessed then return end
  335. if not _enabled then return end
  336.  
  337. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  338. input.UserInputType == Enum.UserInputType.Touch then
  339. ClickState.StartTime = tick()
  340. ClickState.StartPosition = Vector2.new(Mouse.X, Mouse.Y)
  341. ClickState.IsValid = true
  342. end
  343. end))
  344.  
  345. table.insert(_connections, UserInputService.InputEnded:Connect(function(input, gameProcessed)
  346. if gameProcessed then return end
  347. if not _enabled then return end
  348. if not ClickState.IsValid then return end
  349.  
  350. if input.UserInputType == Enum.UserInputType.MouseButton1 or
  351. input.UserInputType == Enum.UserInputType.Touch then
  352.  
  353. local clickDuration = tick() - ClickState.StartTime
  354. local endPosition = Vector2.new(Mouse.X, Mouse.Y)
  355.  
  356. if _isValidClick(ClickState.StartPosition, endPosition, clickDuration) then
  357. local raycastResult = _getMouseHit()
  358.  
  359. if raycastResult then
  360. if _teleportToPosition(raycastResult.Position) then
  361. _updateStatusLabel("Teleportado!", CTTheme.Success)
  362.  
  363. task.wait(1)
  364. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  365. end
  366. else
  367. _updateStatusLabel("Não é possível teleportar para o céu", CTTheme.Danger)
  368.  
  369. task.wait(1.5)
  370. _updateStatusLabel("Clique em qualquer lugar para teleportar", CTTheme.TextDim)
  371. end
  372. end
  373.  
  374. ClickState.IsValid = false
  375. end
  376. end))
  377. end
  378.  
  379. local function _disableClickDetection()
  380. for _, conn in ipairs(_connections) do
  381. if conn and conn.Connected then
  382. conn:Disconnect()
  383. end
  384. end
  385. _connections = {}
  386. end
  387.  
  388. local function _minimizeUI()
  389. if _mainFrame then
  390. _mainFrame.Visible = false
  391. end
  392. if _minimizedBtn then
  393. _minimizedBtn.Visible = true
  394.  
  395. _minimizedBtn.Size = UDim2.new(0, 0, 0, 0)
  396. TweenService:Create(_minimizedBtn, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  397. Size = UDim2.new(0, 50, 0, 50)
  398. }):Play()
  399. end
  400. end
  401.  
  402. local function _maximizeUI()
  403. if _minimizedBtn then
  404. TweenService:Create(_minimizedBtn, TweenInfo.new(0.2, Enum.EasingStyle.Back, Enum.EasingDirection.In), {
  405. Size = UDim2.new(0, 0, 0, 0)
  406. }):Play()
  407.  
  408. task.wait(0.2)
  409. _minimizedBtn.Visible = false
  410. end
  411. if _mainFrame then
  412. _mainFrame.Visible = true
  413.  
  414. _mainFrame.Size = UDim2.new(0, 0, 0, 0)
  415. TweenService:Create(_mainFrame, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {
  416. Size = UDim2.new(0, 260, 0, 180)
  417. }):Play()
  418. end
  419. end
  420.  
  421. local function _createUI()
  422. if _screenGui then
  423. pcall(function() _screenGui:Destroy() end)
  424. _screenGui = nil
  425. end
  426.  
  427. _screenGui = Instance.new("ScreenGui")
  428. _screenGui.Name = "ClickTeleportUI_PreHistoria"
  429. _screenGui.ResetOnSpawn = false
  430. _screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
  431. _screenGui.Parent = game:GetService("CoreGui")
  432.  
  433. _mainFrame = Instance.new("Frame")
  434. _mainFrame.Name = "MainFrame"
  435. _mainFrame.Size = UDim2.new(0, 260, 0, 180)
  436. _mainFrame.Position = UDim2.new(0.5, -130, 0.5, -90)
  437. _mainFrame.BackgroundColor3 = CTTheme.Background
  438. _mainFrame.BackgroundTransparency = 0.05
  439. _mainFrame.BorderSizePixel = 0
  440. _mainFrame.Active = true
  441. _mainFrame.Draggable = true
  442. _mainFrame.Parent = _screenGui
  443.  
  444. local mainCorner = Instance.new("UICorner")
  445. mainCorner.CornerRadius = UDim.new(0, 12)
  446. mainCorner.Parent = _mainFrame
  447.  
  448. local mainStroke = Instance.new("UIStroke")
  449. mainStroke.Color = CTTheme.Accent
  450. mainStroke.Thickness = 2
  451. mainStroke.Transparency = 0.3
  452. mainStroke.Parent = _mainFrame
  453.  
  454. local bgGradient = Instance.new("UIGradient")
  455. bgGradient.Color = ColorSequence.new{
  456. ColorSequenceKeypoint.new(0, Color3.fromRGB(30, 30, 40)),
  457. ColorSequenceKeypoint.new(1, Color3.fromRGB(20, 20, 30))
  458. }
  459. bgGradient.Rotation = 45
  460. bgGradient.Parent = _mainFrame
  461.  
  462. local header = Instance.new("Frame")
  463. header.Size = UDim2.new(1, 0, 0, 50)
  464. header.BackgroundColor3 = CTTheme.Secondary
  465. header.BackgroundTransparency = 0.2
  466. header.BorderSizePixel = 0
  467. header.Parent = _mainFrame
  468.  
  469. local headerCorner = Instance.new("UICorner")
  470. headerCorner.CornerRadius = UDim.new(0, 12)
  471. headerCorner.Parent = header
  472.  
  473. local headerFix = Instance.new("Frame")
  474. headerFix.Size = UDim2.new(1, 0, 0, 12)
  475. headerFix.Position = UDim2.new(0, 0, 1, -12)
  476. headerFix.BackgroundColor3 = CTTheme.Secondary
  477. headerFix.BackgroundTransparency = 0.2
  478. headerFix.BorderSizePixel = 0
  479. headerFix.Parent = header
  480.  
  481. local title = Instance.new("TextLabel")
  482. title.Size = UDim2.new(1, -85, 1, 0)
  483. title.Position = UDim2.new(0, 15, 0, 0)
  484. title.BackgroundTransparency = 1
  485. title.Text = "Click Teleport"
  486. title.TextColor3 = CTTheme.Text
  487. title.TextSize = 17
  488. title.Font = Enum.Font.GothamBold
  489. title.TextXAlignment = Enum.TextXAlignment.Left
  490. title.Parent = header
  491.  
  492. local minimizeBtn = Instance.new("TextButton")
  493. minimizeBtn.Size = UDim2.new(0, 35, 0, 35)
  494. minimizeBtn.Position = UDim2.new(1, -78, 0.5, -17.5)
  495. minimizeBtn.BackgroundColor3 = Color3.fromRGB(255, 200, 100)
  496. minimizeBtn.BackgroundTransparency = 0.2
  497. minimizeBtn.Text = "-"
  498. minimizeBtn.TextColor3 = CTTheme.Text
  499. minimizeBtn.TextSize = 18
  500. minimizeBtn.Font = Enum.Font.GothamBold
  501. minimizeBtn.AutoButtonColor = false
  502. minimizeBtn.Parent = header
  503.  
  504. local minimizeCorner = Instance.new("UICorner")
  505. minimizeCorner.CornerRadius = UDim.new(0, 8)
  506. minimizeCorner.Parent = minimizeBtn
  507.  
  508. local closeBtn = Instance.new("TextButton")
  509. closeBtn.Size = UDim2.new(0, 35, 0, 35)
  510. closeBtn.Position = UDim2.new(1, -38, 0.5, -17.5)
  511. closeBtn.BackgroundColor3 = CTTheme.Danger
  512. closeBtn.BackgroundTransparency = 0.2
  513. closeBtn.Text = "X"
  514. closeBtn.TextColor3 = CTTheme.Text
  515. closeBtn.TextSize = 20
  516. closeBtn.Font = Enum.Font.GothamBold
  517. closeBtn.AutoButtonColor = false
  518. closeBtn.Parent = header
  519.  
  520. local closeCorner = Instance.new("UICorner")
  521. closeCorner.CornerRadius = UDim.new(0, 8)
  522. closeCorner.Parent = closeBtn
  523.  
  524. local container = Instance.new("Frame")
  525. container.Name = "Container"
  526. container.Size = UDim2.new(1, -20, 1, -60)
  527. container.Position = UDim2.new(0, 10, 0, 55)
  528. container.BackgroundTransparency = 1
  529. container.Parent = _mainFrame
  530.  
  531. local toggleBtn = Instance.new("TextButton")
  532. toggleBtn.Name = "ToggleBtn"
  533. toggleBtn.Size = UDim2.new(1, 0, 0, 55)
  534. toggleBtn.Position = UDim2.new(0, 0, 0, 0)
  535. toggleBtn.BackgroundColor3 = CTTheme.Danger
  536. toggleBtn.BackgroundTransparency = 0.1
  537. toggleBtn.Text = "DESATIVADO"
  538. toggleBtn.TextColor3 = CTTheme.Text
  539. toggleBtn.TextSize = 16
  540. toggleBtn.Font = Enum.Font.GothamBold
  541. toggleBtn.AutoButtonColor = false
  542. toggleBtn.Parent = container
  543.  
  544. local toggleCorner = Instance.new("UICorner")
  545. toggleCorner.CornerRadius = UDim.new(0, 10)
  546. toggleCorner.Parent = toggleBtn
  547.  
  548. local toggleStroke = Instance.new("UIStroke")
  549. toggleStroke.Name = "Stroke"
  550. toggleStroke.Color = CTTheme.Danger
  551. toggleStroke.Thickness = 2
  552. toggleStroke.Transparency = 0.3
  553. toggleStroke.Parent = toggleBtn
  554.  
  555. local statusLabel = Instance.new("TextLabel")
  556. statusLabel.Name = "StatusLabel"
  557. statusLabel.Size = UDim2.new(1, 0, 0, 25)
  558. statusLabel.Position = UDim2.new(0, 0, 0, 65)
  559. statusLabel.BackgroundTransparency = 1
  560. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  561. statusLabel.TextColor3 = CTTheme.TextDim
  562. statusLabel.TextSize = 12
  563. statusLabel.Font = Enum.Font.Gotham
  564. statusLabel.TextWrapped = true
  565. statusLabel.Parent = container
  566.  
  567. local infoLabel = Instance.new("TextLabel")
  568. infoLabel.Size = UDim2.new(1, 0, 0, 20)
  569. infoLabel.Position = UDim2.new(0, 0, 0, 92)
  570. infoLabel.BackgroundTransparency = 1
  571. infoLabel.Text = "Teleporte limpo e instantâneo"
  572. infoLabel.TextColor3 = CTTheme.Success
  573. infoLabel.TextSize = 11
  574. infoLabel.Font = Enum.Font.Gotham
  575. infoLabel.Parent = container
  576.  
  577. _minimizedBtn = Instance.new("TextButton")
  578. _minimizedBtn.Name = "MinimizedBtn"
  579. _minimizedBtn.Size = UDim2.new(0, 50, 0, 50)
  580. _minimizedBtn.Position = UDim2.new(1, -60, 0, 10)
  581. _minimizedBtn.BackgroundColor3 = CTTheme.Accent
  582. _minimizedBtn.BackgroundTransparency = 0.1
  583. _minimizedBtn.Text = "CT"
  584. _minimizedBtn.TextColor3 = CTTheme.Text
  585. _minimizedBtn.TextSize = 18
  586. _minimizedBtn.Font = Enum.Font.GothamBold
  587. _minimizedBtn.AutoButtonColor = false
  588. _minimizedBtn.Visible = false
  589. _minimizedBtn.Active = true
  590. _minimizedBtn.Draggable = true
  591. _minimizedBtn.Parent = _screenGui
  592.  
  593. local minimizedCorner = Instance.new("UICorner")
  594. minimizedCorner.CornerRadius = UDim.new(0, 12)
  595. minimizedCorner.Parent = _minimizedBtn
  596.  
  597. local minimizedStroke = Instance.new("UIStroke")
  598. minimizedStroke.Color = CTTheme.Accent
  599. minimizedStroke.Thickness = 2
  600. minimizedStroke.Parent = _minimizedBtn
  601.  
  602. local minimizedGradient = Instance.new("UIGradient")
  603. minimizedGradient.Color = ColorSequence.new{
  604. ColorSequenceKeypoint.new(0, Color3.fromRGB(100, 180, 255)),
  605. ColorSequenceKeypoint.new(1, Color3.fromRGB(70, 140, 255))
  606. }
  607. minimizedGradient.Rotation = 90
  608. minimizedGradient.Parent = _minimizedBtn
  609.  
  610. toggleBtn.MouseButton1Click:Connect(function()
  611. _enabled = not _enabled
  612.  
  613. if _enabled then
  614. toggleBtn.Text = "ATIVADO"
  615. toggleBtn.BackgroundColor3 = CTTheme.Success
  616. toggleStroke.Color = CTTheme.Success
  617. statusLabel.Text = "Clique em qualquer lugar para teleportar"
  618. _enableClickDetection()
  619. else
  620. toggleBtn.Text = "DESATIVADO"
  621. toggleBtn.BackgroundColor3 = CTTheme.Danger
  622. toggleStroke.Color = CTTheme.Danger
  623. statusLabel.Text = "Teleporte desativado"
  624. _disableClickDetection()
  625. end
  626. end)
  627.  
  628. minimizeBtn.MouseButton1Click:Connect(function()
  629. _minimizeUI()
  630. end)
  631.  
  632. _minimizedBtn.MouseButton1Click:Connect(function()
  633. _maximizeUI()
  634. end)
  635.  
  636. closeBtn.MouseButton1Click:Connect(function()
  637. _enabled = false
  638. _disableClickDetection()
  639.  
  640. if _screenGui then
  641. pcall(function() _screenGui:Destroy() end)
  642. _screenGui = nil
  643. _mainFrame = nil
  644. _minimizedBtn = nil
  645. end
  646.  
  647. _uiVisible = false
  648. Config.ClickTeleportEnabled = false
  649.  
  650. WindUI:Notify({
  651. Title = "Click Teleport",
  652. Content = "Desativado completamente",
  653. Duration = 1
  654. })
  655. end)
  656.  
  657. local function addHoverEffect(button, normalTrans)
  658. button.MouseEnter:Connect(function()
  659. TweenService:Create(button, TweenInfo.new(0.2), {
  660. BackgroundTransparency = 0
  661. }):Play()
  662. end)
  663.  
  664. button.MouseLeave:Connect(function()
  665. TweenService:Create(button, TweenInfo.new(0.2), {
  666. BackgroundTransparency = normalTrans or 0.1
  667. }):Play()
  668. end)
  669. end
  670.  
  671. addHoverEffect(toggleBtn, 0.1)
  672. addHoverEffect(minimizeBtn, 0.2)
  673. addHoverEffect(closeBtn, 0.2)
  674. addHoverEffect(_minimizedBtn, 0.1)
  675.  
  676. _uiVisible = true
  677. end
  678.  
  679. return {
  680. Init = function()
  681. print("Click Teleport Module Initialized")
  682. end,
  683.  
  684. Toggle = function(state)
  685. Config.ClickTeleportEnabled = state
  686.  
  687. if state then
  688. if not _uiVisible then
  689. _createUI()
  690.  
  691. WindUI:Notify({
  692. Title = "Click Teleport",
  693. Content = "Interface aberta!",
  694. Duration = 1
  695. })
  696. end
  697. else
  698. if _screenGui then
  699. _enabled = false
  700. _disableClickDetection()
  701.  
  702. pcall(function() _screenGui:Destroy() end)
  703. _screenGui = nil
  704. _mainFrame = nil
  705. _minimizedBtn = nil
  706. end
  707.  
  708. _uiVisible = false
  709.  
  710. WindUI:Notify({
  711. Title = "Click Teleport",
  712. Content = "Desativado",
  713. Duration = 1
  714. })
  715. end
  716. end,
  717.  
  718. Cleanup = function()
  719. _enabled = false
  720. _disableClickDetection()
  721.  
  722. if _screenGui then
  723. pcall(function() _screenGui:Destroy() end)
  724. _screenGui = nil
  725. _mainFrame = nil
  726. _minimizedBtn = nil
  727. end
  728.  
  729. _uiVisible = false
  730. print("Click Teleport Cleanup Complete")
  731. end,
  732.  
  733. IsEnabled = function()
  734. return Config.ClickTeleportEnabled
  735. end
  736. }
  737. end)()
  738.  
  739. ClickTeleportModule.Init()
  740.  
  741. --// ========== SISTEMA DE NÍVEL DO DINO (CORREÇÃO E MELHORIA) ========== //
  742.  
  743. local function getDinoLevelSilent()
  744. local now = tick()
  745. if now - DinoLevelCache.lastUpdate < DinoLevelCache.updateInterval then
  746. return DinoLevelCache.value -- Retorna valor do cache se a atualização for recente
  747. end
  748.  
  749. -- Palavras-chave para busca
  750. local keywords = {"level", "lvl", "nivel", "nível"}
  751. local dinoKeywords = {"dino", "dna"}
  752.  
  753. -- Função auxiliar para validar e extrair valor
  754. local function processValue(stat)
  755. local val = -1
  756. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  757. val = tonumber(stat.Value)
  758. elseif stat:IsA("StringValue") then
  759. local numStr = stat.Value:match("%d+")
  760. if numStr then val = tonumber(numStr) end
  761. end
  762.  
  763. if val and val >= 0 and val <= 150 then -- Limite de nível razoável para evitar falsos positivos
  764. DinoLevelCache.value = val
  765. DinoLevelCache.lastUpdate = now
  766. return val
  767. end
  768. return nil
  769. end
  770.  
  771. -- 1. Busca em leaderstats (mais confiável)
  772. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  773. if leaderstats then
  774. -- Prioriza stats com "dino" no nome
  775. for _, stat in ipairs(leaderstats:GetChildren()) do
  776. local name = stat.Name:lower()
  777. for _, dkey in ipairs(dinoKeywords) do
  778. if name:find(dkey) then
  779. local level = processValue(stat)
  780. if level then return level end
  781. end
  782. end
  783. end
  784. -- Busca genérica em leaderstats
  785. for _, stat in ipairs(leaderstats:GetChildren()) do
  786. local name = stat.Name:lower()
  787. for _, key in ipairs(keywords) do
  788. if name:find(key) then
  789. local level = processValue(stat)
  790. if level then return level end
  791. end
  792. end
  793. end
  794. end
  795.  
  796. -- 2. Busca no PlayerGui (segunda fonte mais confiável)
  797. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  798. if playerGui then
  799. for _, gui in ipairs(playerGui:GetDescendants()) do
  800. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  801. local text = gui.Text:lower()
  802. local hasKeyword = false
  803. for _, key in ipairs(keywords) do
  804. if text:find(key) then
  805. hasKeyword = true
  806. break
  807. end
  808. end
  809.  
  810. if hasKeyword then
  811. local numStr = text:match("[:%s/]+(%d+)") -- Padrão mais flexível para "Level: 5", "Level 5", "5/60"
  812. if numStr then
  813. local val = tonumber(numStr)
  814. if val and val >= 0 and val <= 150 then
  815. DinoLevelCache.value = val
  816. DinoLevelCache.lastUpdate = now
  817. return val
  818. end
  819. end
  820. end
  821. end
  822. end
  823. end
  824.  
  825. -- 3. Busca no Character
  826. local char = LocalPlayer.Character
  827. if char then
  828. for _, obj in ipairs(char:GetDescendants()) do
  829. if obj:IsA("IntValue") or obj:IsA("NumberValue") or obj:IsA("StringValue") then
  830. local name = obj.Name:lower()
  831. for _, key in ipairs(keywords) do
  832. if name:find(key) then
  833. local level = processValue(obj)
  834. if level then return level end
  835. end
  836. end
  837. end
  838. end
  839. end
  840.  
  841. -- 4. Busca em pastas do Workspace (último recurso)
  842. local dinoModel = char -- Assume que o modelo do dino pode ser o próprio personagem
  843. if dinoModel then
  844. for _, obj in ipairs(dinoModel:GetDescendants()) do
  845. if (obj:IsA("IntValue") or obj:IsA("NumberValue")) and (obj.Name:lower():find("level") or obj.Name:lower():find("nivel")) then
  846. local level = processValue(obj)
  847. if level then return level end
  848. end
  849. end
  850. end
  851.  
  852. -- Se nada for encontrado, atualiza o tempo e retorna o valor antigo
  853. DinoLevelCache.lastUpdate = now
  854. return DinoLevelCache.value
  855. end
  856.  
  857. local function debugPrintAllValues(parent, prefix)
  858. prefix = prefix or ""
  859.  
  860. for _, child in ipairs(parent:GetChildren()) do
  861. if child:IsA("IntValue") or child:IsA("NumberValue") or child:IsA("StringValue") then
  862. print(prefix .. "├─ " .. child.ClassName .. ": " .. child.Name .. " = " .. tostring(child.Value))
  863. end
  864.  
  865. if #child:GetChildren() > 0 then
  866. print(prefix .. "└─ Folder: " .. child.Name)
  867. debugPrintAllValues(child, prefix .. " ")
  868. end
  869. end
  870. end
  871.  
  872. local function getDinoLevelDebug()
  873. print("\n" .. string.rep("=", 50))
  874. print("INICIANDO BUSCA DE NÍVEL DO DINO (DEBUG)")
  875. print(string.rep("=", 50))
  876.  
  877. print("\n[1] Verificando leaderstats...")
  878. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  879. if leaderstats then
  880. print("leaderstats encontrado!")
  881. debugPrintAllValues(leaderstats, " ")
  882. else
  883. print("leaderstats não encontrado")
  884. end
  885.  
  886. print("\n[2] Verificando PlayerGui...")
  887. local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
  888. if playerGui then
  889. print("PlayerGui encontrado!")
  890.  
  891. for _, gui in ipairs(playerGui:GetDescendants()) do
  892. if gui:IsA("TextLabel") or gui:IsA("TextBox") then
  893. local text = gui.Text
  894. if text:lower():find("level") or text:lower():find("lvl") or text:lower():find("nivel") or text:lower():find("nível") then
  895. print(" └─ Possível texto de nível encontrado: '" .. text .. "' no objeto: " .. gui:GetFullName())
  896. local number = text:match("%d+")
  897. if number then
  898. print(" └─ Número extraído: " .. number)
  899. end
  900. end
  901. end
  902. end
  903. end
  904.  
  905. local finalLevel = getDinoLevelSilent()
  906. print("\n" .. string.rep("=", 50))
  907. print("RESULTADO FINAL DA BUSCA: " .. finalLevel)
  908. print(string.rep("=", 50) .. "\n")
  909.  
  910. return finalLevel
  911. end
  912.  
  913. --// ========== SISTEMA DE CRISTAIS ========== //
  914.  
  915. local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
  916.  
  917. local function getCrystalRank(name)
  918. name = name:lower()
  919. for key, rank in pairs(prioridadeMap) do
  920. if name:find(key) then return rank end
  921. end
  922. return 5
  923. end
  924.  
  925. local function getSortedCrystals()
  926. local found = {}
  927. for _, obj in ipairs(workspace:GetDescendants()) do
  928. if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
  929. local rank = getCrystalRank(obj.Parent.Name)
  930. if rank < 5 then
  931. table.insert(found, {part = obj, rank = rank})
  932. end
  933. end
  934. end
  935. table.sort(found, function(a, b) return a.rank < b.rank end)
  936. local parts = {}
  937. for _, entry in ipairs(found) do
  938. table.insert(parts, entry.part)
  939. end
  940. return parts
  941. end
  942.  
  943. --// ========== SISTEMA ESP DE CARNES ========== //
  944.  
  945. local ActiveMeatESPs = {}
  946. local meatUpdateLoop = nil
  947. local meatScanLoop = nil
  948.  
  949. local function isMeatObject(obj)
  950. if not obj then return false, nil end
  951.  
  952. if obj:IsA("ProximityPrompt") and obj.Enabled then
  953. local action = (obj.ActionText or ""):lower()
  954. local objText = (obj.ObjectText or ""):lower()
  955.  
  956. local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
  957.  
  958. for _, foodAction in ipairs(foodActions) do
  959. if action:find(foodAction) then
  960. local fullText = action .. " " .. objText
  961. local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
  962.  
  963. local isExcluded = false
  964. for _, word in ipairs(excludeWords) do
  965. if fullText:find(word) then
  966. isExcluded = true
  967. break
  968. end
  969. end
  970.  
  971. if not isExcluded then
  972. local parent = obj.Parent
  973. if parent and parent:IsA("BasePart") then
  974. for _, player in ipairs(Players:GetPlayers()) do
  975. if player.Character and parent:IsDescendantOf(player.Character) then
  976. return false, nil
  977. end
  978. end
  979. return true, parent
  980. end
  981. end
  982. end
  983. end
  984. end
  985.  
  986. if obj:IsA("Model") or obj:IsA("BasePart") then
  987. local name = (obj.Name or ""):lower()
  988.  
  989. local meatWords = {
  990. "meat", "carne", "beef", "steak", "chicken",
  991. "frango", "pork", "porco", "bacon", "ham"
  992. }
  993.  
  994. for _, word in ipairs(meatWords) do
  995. if name:find(word) then
  996. for _, player in ipairs(Players:GetPlayers()) do
  997. if player.Character and obj:IsDescendantOf(player.Character) then
  998. return false, nil
  999. end
  1000. end
  1001.  
  1002. if obj:IsA("Model") then
  1003. local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
  1004. return part ~= nil, part
  1005. else
  1006. return true, obj
  1007. end
  1008. end
  1009. end
  1010. end
  1011.  
  1012. return false, nil
  1013. end
  1014.  
  1015. local function findNearestMeat()
  1016. local char = LocalPlayer.Character
  1017. local root = char and char:FindFirstChild("HumanoidRootPart")
  1018. if not root then return nil, math.huge end
  1019.  
  1020. local nearestMeat = nil
  1021. local nearestDistance = math.huge
  1022.  
  1023. for _, obj in ipairs(workspace:GetDescendants()) do
  1024. local isMeat, part = isMeatObject(obj)
  1025. if isMeat and part and part.Parent then
  1026. local distance = (part.Position - root.Position).Magnitude
  1027. if distance < nearestDistance then
  1028. nearestDistance = distance
  1029. nearestMeat = part
  1030. end
  1031. end
  1032. end
  1033.  
  1034. return nearestMeat, nearestDistance
  1035. end
  1036.  
  1037. local function createMeatESP(part)
  1038. if not part or not part:IsA("BasePart") or not part.Parent then return end
  1039.  
  1040. local id = tostring(part:GetDebugId())
  1041. if ActiveMeatESPs[id] then return end
  1042.  
  1043. local esp = Instance.new("BillboardGui")
  1044. esp.Name = "MeatESP_" .. id
  1045. esp.Adornee = part
  1046. esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
  1047. esp.StudsOffset = Vector3.new(0, 3, 0)
  1048. esp.AlwaysOnTop = true
  1049. esp.LightInfluence = 0
  1050. esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
  1051. esp.Parent = workspace
  1052. esp.Enabled = true
  1053.  
  1054. local frame = Instance.new("Frame", esp)
  1055. frame.Size = UDim2.new(1, 0, 1, 0)
  1056. frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
  1057. frame.BackgroundTransparency = 0.4
  1058. frame.BorderSizePixel = 1
  1059. frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
  1060.  
  1061. local corner = Instance.new("UICorner", frame)
  1062. corner.CornerRadius = UDim.new(0, 6)
  1063.  
  1064. local iconLabel = Instance.new("TextLabel", frame)
  1065. iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
  1066. iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
  1067. iconLabel.BackgroundTransparency = 1
  1068. iconLabel.Text = "M"
  1069. iconLabel.TextScaled = true
  1070. iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1071. iconLabel.Font = Enum.Font.SourceSansBold
  1072. iconLabel.TextStrokeTransparency = 0.5
  1073.  
  1074. local distLabel = Instance.new("TextLabel", frame)
  1075. distLabel.Name = "Distance"
  1076. distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
  1077. distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
  1078. distLabel.BackgroundTransparency = 1
  1079. distLabel.Text = "0m"
  1080. distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  1081. distLabel.TextStrokeTransparency = 0.3
  1082. distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  1083. distLabel.Font = Enum.Font.GothamBold
  1084. distLabel.TextScaled = true
  1085.  
  1086. ActiveMeatESPs[id] = {
  1087. gui = esp,
  1088. part = part,
  1089. distLabel = distLabel,
  1090. frame = frame,
  1091. iconLabel = iconLabel
  1092. }
  1093.  
  1094. return true
  1095. end
  1096.  
  1097. local function scanForMeats()
  1098. if not Config.EspMeatActive then return end
  1099.  
  1100. for id, data in pairs(ActiveMeatESPs) do
  1101. if data.gui then
  1102. pcall(function() data.gui:Destroy() end)
  1103. end
  1104. end
  1105. ActiveMeatESPs = {}
  1106.  
  1107. local meatCount = 0
  1108. local checkedCount = 0
  1109.  
  1110. for _, obj in ipairs(workspace:GetDescendants()) do
  1111. checkedCount = checkedCount + 1
  1112.  
  1113. if checkedCount % 300 == 0 then
  1114. task.wait()
  1115. if not Config.EspMeatActive then return end
  1116. end
  1117.  
  1118. local isMeat, part = isMeatObject(obj)
  1119. if isMeat and part and part.Parent then
  1120. if createMeatESP(part) then
  1121. meatCount = meatCount + 1
  1122. end
  1123. end
  1124. end
  1125. end
  1126.  
  1127. local function updateMeatESPInfo()
  1128. if not Config.EspMeatActive then return end
  1129.  
  1130. local char = LocalPlayer.Character
  1131. local root = char and char:FindFirstChild("HumanoidRootPart")
  1132. if not root then return end
  1133.  
  1134. for id, data in pairs(ActiveMeatESPs) do
  1135. if data.part and data.part.Parent and data.gui and data.gui.Parent then
  1136. local distance = (data.part.Position - root.Position).Magnitude
  1137.  
  1138. data.gui.Enabled = true
  1139.  
  1140. if data.distLabel then
  1141. if distance < 100 then
  1142. data.distLabel.Text = string.format("%.0fm", distance)
  1143. elseif distance < 1000 then
  1144. data.distLabel.Text = string.format("%.0fm", distance)
  1145. else
  1146. data.distLabel.Text = string.format("%.1fkm", distance / 1000)
  1147. end
  1148. end
  1149.  
  1150. local scaleFactor
  1151. if distance <= 50 then scaleFactor = 1.0
  1152. elseif distance <= 200 then scaleFactor = 0.75
  1153. elseif distance <= 500 then scaleFactor = 0.6
  1154. elseif distance <= 1000 then scaleFactor = 0.5
  1155. elseif distance <= 2000 then scaleFactor = 0.4
  1156. elseif distance <= 3000 then scaleFactor = 0.35
  1157. elseif distance <= 5000 then scaleFactor = 0.3
  1158. elseif distance <= 10000 then scaleFactor = 0.25
  1159. else scaleFactor = 0.2 end
  1160.  
  1161. local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
  1162. data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
  1163.  
  1164. if data.frame then
  1165. local transparency
  1166. if distance < 300 then transparency = 0.3
  1167. elseif distance < 1000 then transparency = 0.5
  1168. elseif distance < 2500 then transparency = 0.65
  1169. elseif distance < 5000 then transparency = 0.75
  1170. elseif distance < 10000 then transparency = 0.8
  1171. else transparency = 0.85 end
  1172. data.frame.BackgroundTransparency = transparency
  1173. end
  1174.  
  1175. if distance < 100 then
  1176. data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
  1177. data.frame.BorderColor3 = Color3.fromRGB(200, 255, 200)
  1178. elseif distance < 500 then
  1179. data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
  1180. data.frame.BorderColor3 = Color3.fromRGB(255, 255, 150)
  1181. elseif distance < 1500 then
  1182. data.frame.BackgroundColor3 = Color3.fromRGB(255, 180, 100)
  1183. data.frame.BorderColor3 = Color3.fromRGB(255, 200, 150)
  1184. elseif distance < 3000 then
  1185. data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
  1186. data.frame.BorderColor3 = Color3.fromRGB(255, 150, 150)
  1187. elseif distance < 5000 then
  1188. data.frame.BackgroundColor3 = Color3.fromRGB(200, 150, 255)
  1189. data.frame.BorderColor3 = Color3.fromRGB(220, 180, 255)
  1190. elseif distance < 10000 then
  1191. data.frame.BackgroundColor3 = Color3.fromRGB(180, 180, 255)
  1192. data.frame.BorderColor3 = Color3.fromRGB(200, 200, 255)
  1193. else
  1194. data.frame.BackgroundColor3 = Color3.fromRGB(150, 150, 150)
  1195. data.frame.BorderColor3 = Color3.fromRGB(180, 180, 180)
  1196. end
  1197. else
  1198. if data.gui then
  1199. pcall(function() data.gui:Destroy() end)
  1200. end
  1201. ActiveMeatESPs[id] = nil
  1202. end
  1203. end
  1204. end
  1205.  
  1206. local function startMeatESP()
  1207. if meatUpdateLoop then return end
  1208.  
  1209. scanForMeats()
  1210.  
  1211. meatUpdateLoop = RunService.Heartbeat:Connect(function()
  1212. updateMeatESPInfo()
  1213. end)
  1214.  
  1215. meatScanLoop = task.spawn(function()
  1216. while Config.EspMeatActive do
  1217. task.wait(10)
  1218. if Config.EspMeatActive then
  1219. for _, obj in ipairs(workspace:GetDescendants()) do
  1220. if not Config.EspMeatActive then break end
  1221.  
  1222. local isMeat, part = isMeatObject(obj)
  1223. if isMeat and part then
  1224. local id = tostring(part:GetDebugId())
  1225. if not ActiveMeatESPs[id] then
  1226. createMeatESP(part)
  1227. end
  1228. end
  1229. end
  1230.  
  1231. for id, data in pairs(ActiveMeatESPs) do
  1232. if not data.part or not data.part.Parent then
  1233. if data.gui then
  1234. pcall(function() data.gui:Destroy() end)
  1235. end
  1236. ActiveMeatESPs[id] = nil
  1237. end
  1238. end
  1239. end
  1240. end
  1241. end)
  1242.  
  1243. workspace.DescendantAdded:Connect(function(obj)
  1244. if not Config.EspMeatActive then return end
  1245.  
  1246. task.wait(0.1)
  1247. local isMeat, part = isMeatObject(obj)
  1248. if isMeat and part then
  1249. local id = tostring(part:GetDebugId())
  1250. if not ActiveMeatESPs[id] then
  1251. createMeatESP(part)
  1252. end
  1253. end
  1254. end)
  1255. end
  1256.  
  1257. local function stopMeatESP()
  1258. if meatUpdateLoop then
  1259. meatUpdateLoop:Disconnect()
  1260. meatUpdateLoop = nil
  1261. end
  1262.  
  1263. if meatScanLoop then
  1264. task.cancel(meatScanLoop)
  1265. meatScanLoop = nil
  1266. end
  1267.  
  1268. for id, data in pairs(ActiveMeatESPs) do
  1269. if data.gui then
  1270. pcall(function() data.gui:Destroy() end)
  1271. end
  1272. end
  1273. ActiveMeatESPs = {}
  1274. end
  1275.  
  1276. --// ========== SISTEMA ESP DE JOGADORES (CORREÇÃO E MELHORIA) ========== //
  1277.  
  1278. local PlayerESP_Data = {}
  1279.  
  1280. local ESP_CONFIG = {
  1281. UpdateInterval = 0.1, -- Intervalo de atualização mais rápido para responsividade
  1282. HPBarMaxDistance = 4000,
  1283. HPBarSize = UDim2.new(0, 50, 0, 5),
  1284. HPBarYOffset = 0.5,
  1285. HighlightFillTransparency = 0.85,
  1286. OutlineTransparency = 0.15,
  1287. }
  1288.  
  1289. local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
  1290. local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
  1291. local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
  1292.  
  1293. local TeamColorMap = {}
  1294. local UsedHues = {}
  1295. local NextHueIndex = 0
  1296.  
  1297. local function generateUniqueTeamColor()
  1298. local goldenRatio = 0.618033988749895
  1299. local hue = (NextHueIndex * goldenRatio) % 1
  1300.  
  1301. if hue >= 0.25 and hue <= 0.45 then
  1302. hue = (hue + 0.35) % 1
  1303. end
  1304.  
  1305. local minDistance = 0.15
  1306. for _, usedHue in pairs(UsedHues) do
  1307. local distance = math.abs(hue - usedHue)
  1308. if distance < minDistance or distance > (1 - minDistance) then
  1309. NextHueIndex = NextHueIndex + 1
  1310. return generateUniqueTeamColor()
  1311. end
  1312. end
  1313.  
  1314. table.insert(UsedHues, hue)
  1315. NextHueIndex = NextHueIndex + 1
  1316.  
  1317. local sat = 0.8 + (math.random() * 0.2)
  1318. local val = 0.9 + (math.random() * 0.1)
  1319.  
  1320. return Color3.fromHSV(hue, sat, val)
  1321. end
  1322.  
  1323. local function isNeutralPlayer(p) return not p.Team end
  1324. local function isAllyPlayer(p) return LocalPlayer.Team and p.Team == LocalPlayer.Team end
  1325.  
  1326. local function shouldShowPlayerESP(p)
  1327. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1328. return true
  1329. end
  1330.  
  1331. local function shouldShowPlayerHP(p)
  1332. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  1333. return true
  1334. end
  1335.  
  1336. local function isValidPlayerCharacter(char)
  1337. return char and char.Parent and char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart")
  1338. end
  1339.  
  1340. local function cleanupPlayerESP(player)
  1341. local data = PlayerESP_Data[player]
  1342. if not data then return end
  1343.  
  1344. for _, conn in ipairs(data.conns or {}) do
  1345. if conn and conn.Connected then
  1346. conn:Disconnect()
  1347. end
  1348. end
  1349.  
  1350. if data.highlight then pcall(function() data.highlight:Destroy() end) end
  1351. if data.hpGui then pcall(function() data.hpGui:Destroy() end) end
  1352.  
  1353. PlayerESP_Data[player] = nil
  1354. end
  1355.  
  1356. local function setupPlayerESP(player)
  1357. if PlayerESP_Data[player] then cleanupPlayerESP(player) end
  1358.  
  1359. local data = { conns = {} }
  1360. PlayerESP_Data[player] = data
  1361.  
  1362. local function onCharacterAdded(char)
  1363. if not isValidPlayerCharacter(char) then return end
  1364. data.character = char
  1365.  
  1366. -- Cria Highlight
  1367. local hi = Instance.new("Highlight")
  1368. hi.Name = "PlayerESP_Highlight"
  1369. hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  1370. hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
  1371. hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
  1372. hi.Adornee = char
  1373. hi.Parent = char
  1374. data.highlight = hi
  1375.  
  1376. -- Cria HP Bar
  1377. local bill = Instance.new("BillboardGui")
  1378. bill.Name = "PlayerESP_HP"
  1379. bill.AlwaysOnTop = true
  1380. bill.LightInfluence = 0
  1381. bill.Size = ESP_CONFIG.HPBarSize
  1382. bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
  1383. -- O Parent e Adornee serão definidos no loop de atualização para garantir que existam
  1384.  
  1385. local bg = Instance.new("Frame", bill)
  1386. bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  1387. bg.BackgroundTransparency = 0.2
  1388. bg.BorderSizePixel = 0
  1389. bg.Size = UDim2.fromScale(1, 1)
  1390. Instance.new("UIStroke", bg).Color = Color3.fromRGB(0,0,0)
  1391. Instance.new("UICorner", bg).CornerRadius = UDim.new(0, 2)
  1392.  
  1393. local fill = Instance.new("Frame", bg)
  1394. fill.BackgroundColor3 = COLOR_FRIEND
  1395. fill.BorderSizePixel = 0
  1396. fill.Size = UDim2.fromScale(1, 1)
  1397. Instance.new("UICorner", fill).CornerRadius = UDim.new(0, 2)
  1398.  
  1399. data.hpGui = bill
  1400. data.hpFill = fill
  1401.  
  1402. -- Esconde a barra de vida padrão do Roblox
  1403. local hum = char:FindFirstChildOfClass("Humanoid")
  1404. if hum then hum.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff end
  1405. end
  1406.  
  1407. table.insert(data.conns, player.CharacterAdded:Connect(onCharacterAdded))
  1408. if player.Character then
  1409. onCharacterAdded(player.Character)
  1410. end
  1411.  
  1412. table.insert(data.conns, player.CharacterRemoving:Connect(function()
  1413. data.character = nil
  1414. if data.highlight then data.highlight.Enabled = false end
  1415. if data.hpGui then data.hpGui.Enabled = false end
  1416. end))
  1417. end
  1418.  
  1419. local function updateAllPlayerVisuals()
  1420. for player, data in pairs(PlayerESP_Data) do
  1421. if not player or not player.Parent then
  1422. cleanupPlayerESP(player)
  1423. continue
  1424. end
  1425.  
  1426. local char = data.character
  1427. if not isValidPlayerCharacter(char) then
  1428. if data.highlight then data.highlight.Enabled = false end
  1429. if data.hpGui then data.hpGui.Enabled = false end
  1430. continue
  1431. end
  1432.  
  1433. local hum = char:FindFirstChildOfClass("Humanoid")
  1434. local head = char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart")
  1435.  
  1436. -- Atualiza Highlight
  1437. if data.highlight and data.highlight.Parent == char then
  1438. local color = isAllyPlayer(player) and COLOR_FRIEND or (isNeutralPlayer(player) and COLOR_NEUTRAL or COLOR_ENEMY)
  1439. if player.Team and not isAllyPlayer(player) then
  1440. if not TeamColorMap[player.Team] then TeamColorMap[player.Team] = generateUniqueTeamColor() end
  1441. color = TeamColorMap[player.Team]
  1442. end
  1443. data.highlight.FillColor = color
  1444. data.highlight.OutlineColor = color
  1445. data.highlight.Enabled = Config.PlayerESP and shouldShowPlayerESP(player)
  1446. end
  1447.  
  1448. -- Atualiza HP Bar
  1449. if data.hpGui and hum and head then
  1450. if data.hpGui.Parent ~= char then data.hpGui.Parent = char end
  1451. if data.hpGui.Adornee ~= head then data.hpGui.Adornee = head end
  1452.  
  1453. local headSizeY = head:IsA("BasePart") and head.Size.Y or 4
  1454. data.hpGui.StudsOffset = Vector3.new(0, headSizeY / 2 + ESP_CONFIG.HPBarYOffset, 0)
  1455.  
  1456. local ratio = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
  1457. data.hpFill.Size = UDim2.fromScale(ratio, 1)
  1458. data.hpFill.BackgroundColor3 = Color3.fromHSV(ratio * 0.33, 1, 1) -- Verde para amarelo para vermelho
  1459.  
  1460. data.hpGui.Enabled = Config.PlayerESP_ShowHP and shouldShowPlayerHP(player) and hum.Health > 0 and hum.Health < hum.MaxHealth
  1461. elseif data.hpGui then
  1462. data.hpGui.Enabled = false
  1463. end
  1464. end
  1465. end
  1466.  
  1467. -- Gerenciamento de jogadores e loop de atualização
  1468. task.spawn(function()
  1469. Players.PlayerAdded:Connect(function(player)
  1470. if player ~= LocalPlayer then
  1471. task.wait(0.5) -- Espera para garantir que o personagem possa carregar
  1472. setupPlayerESP(player)
  1473. end
  1474. end)
  1475.  
  1476. Players.PlayerRemoving:Connect(cleanupPlayerESP)
  1477.  
  1478. for _, player in ipairs(Players:GetPlayers()) do
  1479. if player ~= LocalPlayer then
  1480. setupPlayerESP(player)
  1481. end
  1482. end
  1483.  
  1484. while task.wait(ESP_CONFIG.UpdateInterval) do
  1485. if Config.PlayerESP or Config.PlayerESP_ShowHP then
  1486. updateAllPlayerVisuals()
  1487. end
  1488. end
  1489. end)
  1490.  
  1491. local function togglePlayerESP(value)
  1492. Config.PlayerESP = value
  1493. if not value then -- Desliga todos os highlights se o ESP principal for desativado
  1494. for _, data in pairs(PlayerESP_Data) do
  1495. if data.highlight then data.highlight.Enabled = false end
  1496. end
  1497. end
  1498. updateAllPlayerVisuals() -- Atualiza imediatamente
  1499. end
  1500.  
  1501. local function togglePlayerHP(value)
  1502. Config.PlayerESP_ShowHP = value
  1503. if not value then -- Desliga todas as barras de HP se a opção for desativada
  1504. for _, data in pairs(PlayerESP_Data) do
  1505. if data.hpGui then data.hpGui.Enabled = false end
  1506. end
  1507. end
  1508. updateAllPlayerVisuals() -- Atualiza imediatamente
  1509. end
  1510.  
  1511. local function toggleTeamCheck(value)
  1512. Config.PlayerESP_TeamCheck = value
  1513. updateAllPlayerVisuals() -- Atualiza imediatamente
  1514. end
  1515.  
  1516.  
  1517. --// ========== SISTEMA DE TELEPORTS SALVOS ========== //
  1518.  
  1519. local function loadSavedTeleports()
  1520. local success, data = pcall(function()
  1521. return HttpService:JSONDecode(readfile("PreHistoria_Teleports.json"))
  1522. end)
  1523.  
  1524. if success and data then
  1525. Config.SavedTeleports = data
  1526. print("Carregado " .. #data .. " teleports salvos")
  1527. else
  1528. Config.SavedTeleports = {}
  1529. print("Nenhum teleport salvo encontrado")
  1530. end
  1531. end
  1532.  
  1533. loadSavedTeleports()
  1534.  
  1535. --// ========== CRIAR WINDOW WINDUI ========== //
  1536.  
  1537. local Window = WindUI:CreateWindow({
  1538. Title = "🦖 Pré-história - auto farm",
  1539. Author = "by NickZScripts",
  1540. Folder = "PreHistoria_WindUI",
  1541. Icon = "bird",
  1542. NewElements = true,
  1543. HideSearchBar = false,
  1544.  
  1545. OpenButton = {
  1546. Title = "Abrir Pré-história - Hub",
  1547. CornerRadius = UDim.new(1, 0),
  1548. StrokeThickness = 3,
  1549. Enabled = true,
  1550. Draggable = true,
  1551. OnlyMobile = false,
  1552. Color = ColorSequence.new(
  1553. Color3.fromHex("#30FF6A"),
  1554. Color3.fromHex("#e7ff2f")
  1555. )
  1556. }
  1557. })
  1558.  
  1559. --// ========== ABA MENU ========== //
  1560.  
  1561. local MenuTab = Window:Tab({
  1562. Title = "Menu",
  1563. Icon = "home",
  1564. })
  1565.  
  1566. MenuTab:Section({
  1567. Title = "Informações",
  1568. TextSize = 18,
  1569. FontWeight = Enum.FontWeight.SemiBold,
  1570. })
  1571.  
  1572. MenuTab:Section({
  1573. Title = "Players Online: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers,
  1574. TextSize = 14,
  1575. })
  1576.  
  1577. MenuTab:Section({
  1578. Title = "Script Info\nVersão: " .. ScriptVersion .. "\nStatus: Operacional",
  1579. TextSize = 13,
  1580. })
  1581.  
  1582. MenuTab:Section({
  1583. Title = "Jogador\nNome: " .. LocalPlayer.Name .. "\nDisplay: " .. LocalPlayer.DisplayName .. "\nID: " .. LocalPlayer.UserId,
  1584. TextSize = 13,
  1585. })
  1586.  
  1587. MenuTab:Space()
  1588.  
  1589. MenuTab:Section({
  1590. Title = "Sistemas Ativos",
  1591. TextSize = 16,
  1592. FontWeight = Enum.FontWeight.SemiBold,
  1593. })
  1594.  
  1595. MenuTab:Section({
  1596. Title = "Auto Farm - Desligado\nESP Carnes - Desligado\nESP Jogadores - Desligado\nAuto Coleta - Desligado\nClick Teleport - Desligado",
  1597. TextSize = 12,
  1598. })
  1599.  
  1600. MenuTab:Space()
  1601.  
  1602. MenuTab:Section({
  1603. Title = "Créditos",
  1604. TextSize = 16,
  1605. FontWeight = Enum.FontWeight.SemiBold,
  1606. })
  1607.  
  1608. MenuTab:Section({
  1609. Title = "Desenvolvedor: NickZScripts\nInterface: WindUI Library\nVersão: " .. ScriptVersion,
  1610. TextSize = 12,
  1611. })
  1612.  
  1613. --// ========== ABA AUTO FARM ========== //
  1614.  
  1615. local AutoFarmTab = Window:Tab({
  1616. Title = "Auto Farm",
  1617. Icon = "zap",
  1618. })
  1619.  
  1620. AutoFarmTab:Section({
  1621. Title = "Farm de Cristais",
  1622. TextSize = 18,
  1623. FontWeight = Enum.FontWeight.SemiBold,
  1624. })
  1625.  
  1626. -- Label de Nível Dinâmica
  1627. local LevelSection = AutoFarmTab:Section({
  1628. Title = "Nível do Dino: Carregando...",
  1629. TextSize = 14,
  1630. })
  1631.  
  1632. -- Sistema de Atualização do Nível em Tempo Real
  1633. task.spawn(function()
  1634. while true do
  1635. task.wait(1) -- Atualiza a cada 1 segundo
  1636.  
  1637. local currentLevel = getDinoLevelSilent()
  1638.  
  1639. -- Atualiza a label
  1640. if LevelSection then
  1641. pcall(function()
  1642. LevelSection.Title = "Nível do Dino: " .. currentLevel .. "/60"
  1643. end)
  1644. end
  1645.  
  1646. -- Se atingir nível 60 e auto farm estiver ligado, desliga automaticamente
  1647. if currentLevel >= 60 and Config.AutoFarm then
  1648. Config.AutoFarm = false
  1649.  
  1650. WindUI:Notify({
  1651. Title = "Completo",
  1652. Content = "Nível 60 atingido!",
  1653. Duration = 2
  1654. })
  1655. end
  1656. end
  1657. end)
  1658.  
  1659. AutoFarmTab:Space()
  1660.  
  1661. local AutoFarmToggle = AutoFarmTab:Toggle({
  1662. Title = "Auto Farm Cristais",
  1663. Desc = "Farma cristais automaticamente até nível 60",
  1664. Default = false,
  1665. Callback = function(Value)
  1666. Config.AutoFarm = Value
  1667.  
  1668. WindUI:Notify({
  1669. Title = Value and "Ativado" or "Desativado",
  1670. Content = "Auto Farm " .. (Value and "ligado" or "desligado"),
  1671. Duration = 1
  1672. })
  1673. end,
  1674. })
  1675.  
  1676. AutoFarmTab:Space()
  1677.  
  1678. AutoFarmTab:Section({
  1679. Title = "Auto Coleta",
  1680. TextSize = 18,
  1681. FontWeight = Enum.FontWeight.SemiBold,
  1682. })
  1683.  
  1684. AutoFarmTab:Space()
  1685.  
  1686. local AutoColetaToggle = AutoFarmTab:Toggle({
  1687. Title = "Auto Coleta",
  1688. Desc = "Coleta itens automaticamente (funciona sozinho ou com Auto Farm)",
  1689. Default = false,
  1690. Callback = function(Value)
  1691. Config.AutoColeta = Value
  1692.  
  1693. WindUI:Notify({
  1694. Title = Value and "Ativado" or "Desativado",
  1695. Content = "Auto Coleta " .. (Value and "ligado" or "desligado"),
  1696. Duration = 1
  1697. })
  1698. end,
  1699. })
  1700.  
  1701. --// ========== ABA ESP ========== //
  1702.  
  1703. local EspTab = Window:Tab({
  1704. Title = "ESP",
  1705. Icon = "eye",
  1706. })
  1707.  
  1708. EspTab:Section({
  1709. Title = "ESP de Jogadores",
  1710. TextSize = 18,
  1711. FontWeight = Enum.FontWeight.SemiBold,
  1712. })
  1713.  
  1714. EspTab:Space()
  1715.  
  1716. local EspJogadoresToggle = EspTab:Toggle({
  1717. Title = "ESP de Jogadores",
  1718. Desc = "Mostra highlight em todos os jogadores",
  1719. Default = false,
  1720. Callback = function(Value)
  1721. togglePlayerESP(Value) -- Usa a nova função de toggle
  1722. WindUI:Notify({
  1723. Title = Value and "Ativado" or "Desativado",
  1724. Content = "ESP Jogadores " .. (Value and "ligado" or "desligado"),
  1725. Duration = 1
  1726. })
  1727. end,
  1728. })
  1729.  
  1730. EspTab:Space()
  1731.  
  1732. local EspHPToggle = EspTab:Toggle({
  1733. Title = "Barra de Vida",
  1734. Desc = "Mostra HP dos jogadores (independente do ESP)",
  1735. Default = false,
  1736. Callback = function(Value)
  1737. togglePlayerHP(Value) -- Usa a nova função de toggle
  1738. WindUI:Notify({
  1739. Title = Value and "Ativado" or "Desativado",
  1740. Content = "Barra de Vida " .. (Value and "ligada" or "desligada"),
  1741. Duration = 1
  1742. })
  1743. end,
  1744. })
  1745.  
  1746. EspTab:Space()
  1747.  
  1748. local EspTeamCheckToggle = EspTab:Toggle({
  1749. Title = "TeamCheck (Só Inimigos)",
  1750. Desc = "Mostra ESP apenas em jogadores inimigos",
  1751. Default = false,
  1752. Callback = function(Value)
  1753. toggleTeamCheck(Value) -- Usa a nova função de toggle
  1754. WindUI:Notify({
  1755. Title = Value and "Ativado" or "Desativado",
  1756. Content = "TeamCheck " .. (Value and "ligado" or "desligado"),
  1757. Duration = 1
  1758. })
  1759. end,
  1760. })
  1761.  
  1762. EspTab:Space({ Columns = 2 })
  1763.  
  1764. EspTab:Section({
  1765. Title = "ESP de Carnes",
  1766. TextSize = 18,
  1767. FontWeight = Enum.FontWeight.SemiBold,
  1768. })
  1769.  
  1770. EspTab:Space()
  1771.  
  1772. local EspCarnesToggle = EspTab:Toggle({
  1773. Title = "ESP de Carnes",
  1774. Desc = "Mostra a localização das carnes no mapa",
  1775. Default = false,
  1776. Callback = function(Value)
  1777. Config.EspMeatActive = Value
  1778.  
  1779. if Value then
  1780. startMeatESP()
  1781. else
  1782. stopMeatESP()
  1783. end
  1784.  
  1785. WindUI:Notify({
  1786. Title = Value and "Ativado" or "Desativado",
  1787. Content = "ESP Carnes " .. (Value and "ligado" or "desligado"),
  1788. Duration = 1
  1789. })
  1790. end,
  1791. })
  1792.  
  1793. --// ========== ABA TELEPORT ========== //
  1794.  
  1795. local TeleportTab = Window:Tab({
  1796. Title = "Teleport",
  1797. Icon = "navigation",
  1798. })
  1799.  
  1800. TeleportTab:Section({
  1801. Title = "Teleportes Rápidos",
  1802. TextSize = 18,
  1803. FontWeight = Enum.FontWeight.SemiBold,
  1804. })
  1805.  
  1806. TeleportTab:Space()
  1807.  
  1808. TeleportTab:Button({
  1809. Title = "Teleportar para Carne Mais Próxima",
  1810. Desc = "Teleporta para a carne mais perto de você",
  1811. Icon = "drumstick",
  1812. Callback = function()
  1813. local char = LocalPlayer.Character
  1814. local root = char and char:FindFirstChild("HumanoidRootPart")
  1815. if not root then
  1816. WindUI:Notify({
  1817. Title = "Erro",
  1818. Content = "Personagem não encontrado!",
  1819. Duration = 1
  1820. })
  1821. return
  1822. end
  1823.  
  1824. local meat, distance = findNearestMeat()
  1825.  
  1826. if not meat then
  1827. WindUI:Notify({
  1828. Title = "Erro",
  1829. Content = "Nenhuma carne encontrada!",
  1830. Duration = 1
  1831. })
  1832. return
  1833. end
  1834.  
  1835. safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
  1836. end,
  1837. })
  1838.  
  1839. TeleportTab:Space({ Columns = 2 })
  1840.  
  1841. TeleportTab:Section({
  1842. Title = "Teleporte para Spawn",
  1843. TextSize = 18,
  1844. FontWeight = Enum.FontWeight.SemiBold,
  1845. })
  1846.  
  1847. TeleportTab:Space()
  1848.  
  1849. TeleportTab:Button({
  1850. Title = "Voltar ao Spawn",
  1851. Desc = "Teleporta de volta para o spawn inicial",
  1852. Icon = "home",
  1853. Callback = function()
  1854. if not LastSpawnPosition then
  1855. WindUI:Notify({
  1856. Title = "Erro",
  1857. Content = "Spawn não detectado!",
  1858. Duration = 1
  1859. })
  1860. return
  1861. end
  1862.  
  1863. safeTeleport(LastSpawnPosition, "Spawn")
  1864. end,
  1865. })
  1866.  
  1867. TeleportTab:Space({ Columns = 2 })
  1868.  
  1869. TeleportTab:Section({
  1870. Title = "Locais Salvos",
  1871. TextSize = 18,
  1872. FontWeight = Enum.FontWeight.SemiBold,
  1873. })
  1874.  
  1875. TeleportTab:Space()
  1876.  
  1877. if #Config.SavedTeleports > 0 then
  1878. for i, data in ipairs(Config.SavedTeleports) do
  1879. if data.position then
  1880. local locationName = data.name or ("Local " .. i)
  1881.  
  1882. TeleportTab:Button({
  1883. Title = locationName,
  1884. Desc = "Teleportar para: " .. locationName,
  1885. Icon = "map-pin",
  1886. Callback = function()
  1887. local pos = data.position
  1888.  
  1889. if not pos or not pos.X or not pos.Y or not pos.Z then
  1890. WindUI:Notify({
  1891. Title = "Erro",
  1892. Content = "Posição inválida!",
  1893. Duration = 1
  1894. })
  1895. return
  1896. end
  1897.  
  1898. local targetCF = CFrame.new(pos.X, pos.Y, pos.Z)
  1899. safeTeleport(targetCF, locationName)
  1900. end,
  1901. })
  1902.  
  1903. TeleportTab:Space()
  1904. end
  1905. end
  1906. else
  1907. TeleportTab:Section({
  1908. Title = "Nenhum Local Salvo\n\nVocê ainda não possui locais salvos.\nUse outros scripts para salvar posições.",
  1909. TextSize = 12,
  1910. })
  1911. end
  1912.  
  1913. --// ========== ABA OUTROS ========== //
  1914.  
  1915. local OutrosTab = Window:Tab({
  1916. Title = "Outros",
  1917. Icon = "settings",
  1918. })
  1919.  
  1920. OutrosTab:Section({
  1921. Title = "Ferramentas de Debug",
  1922. TextSize = 18,
  1923. FontWeight = Enum.FontWeight.SemiBold,
  1924. })
  1925.  
  1926. OutrosTab:Space()
  1927.  
  1928. OutrosTab:Button({
  1929. Title = "Debug: Buscar Nível",
  1930. Desc = "Veja o console (F9) para detalhes completos",
  1931. Icon = "search",
  1932. Callback = function()
  1933. local level = getDinoLevelDebug()
  1934. WindUI:Notify({
  1935. Title = "Debug",
  1936. Content = "Nível encontrado: " .. level .. "\nVeja o console (F9) para detalhes",
  1937. Duration = 3
  1938. })
  1939. end,
  1940. })
  1941.  
  1942. OutrosTab:Space({ Columns = 2 })
  1943.  
  1944. OutrosTab:Section({
  1945. Title = "Click Teleport",
  1946. TextSize = 18,
  1947. FontWeight = Enum.FontWeight.SemiBold,
  1948. })
  1949.  
  1950. OutrosTab:Space()
  1951.  
  1952. OutrosTab:Section({
  1953. Title = "Sobre o 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",
  1954. TextSize = 11,
  1955. })
  1956.  
  1957. OutrosTab:Space()
  1958.  
  1959. OutrosTab:Button({
  1960. Title = "Abrir Click Teleport",
  1961. Desc = "Abre a interface de Click Teleport",
  1962. Icon = "mouse-pointer",
  1963. Callback = function()
  1964. if not Config.ClickTeleportEnabled then
  1965. ClickTeleportModule.Toggle(true)
  1966.  
  1967. WindUI:Notify({
  1968. Title = "Click Teleport",
  1969. Content = "Interface aberta!\n\nPara fechar, clique no botão X na interface",
  1970. Duration = 2
  1971. })
  1972. else
  1973. WindUI:Notify({
  1974. Title = "Já Ativo",
  1975. Content = "Click Teleport já está aberto!\n\nPara desativar, use o botão X na interface",
  1976. Duration = 2
  1977. })
  1978. end
  1979. end,
  1980. })
  1981.  
  1982. OutrosTab:Space({ Columns = 2 })
  1983.  
  1984. OutrosTab:Section({
  1985. Title = "Informações",
  1986. TextSize = 18,
  1987. FontWeight = Enum.FontWeight.SemiBold,
  1988. })
  1989.  
  1990. OutrosTab:Space()
  1991.  
  1992. OutrosTab:Section({
  1993. 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.",
  1994. TextSize = 11,
  1995. })
  1996.  
  1997. --// ========== AUTO FARM LOOP ========== //
  1998.  
  1999. task.spawn(function()
  2000. local index = 1
  2001. while true do
  2002. task.wait(Config.CheckDelay)
  2003. if Config.AutoFarm then
  2004. local currentLevel = getDinoLevelSilent()
  2005.  
  2006. if currentLevel >= 60 then
  2007. Config.AutoFarm = false
  2008. AutoFarmToggle:Set(false)
  2009.  
  2010. WindUI:Notify({
  2011. Title = "Completo",
  2012. Content = "Nível 60 atingido!",
  2013. Duration = 2
  2014. })
  2015. else
  2016. local crystals = getSortedCrystals()
  2017. if #crystals > 0 then
  2018. for _, c in ipairs(crystals) do
  2019. if not Config.AutoFarm or not c or not c.Parent then break end
  2020. teleportToCrystal(c)
  2021.  
  2022. local fixarConexao = RunService.Heartbeat:Connect(function()
  2023. if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
  2024. local char = getCharacter()
  2025. if char and char.PrimaryPart then
  2026. char:SetPrimaryPartCFrame(CFrame.new(c.Position + Vector3.new(0, 4.5, 0)))
  2027. end
  2028. end
  2029. end)
  2030.  
  2031. local elapsed = 0
  2032. while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
  2033. task.wait(Config.CheckDelay)
  2034. elapsed += Config.CheckDelay
  2035. end
  2036. fixarConexao:Disconnect()
  2037. task.wait(Config.DelayBetweenCrystals)
  2038. end
  2039. else
  2040. index = (index % #Config.PatrulhaPontos) + 1
  2041. teleportTo(Config.PatrulhaPontos[index])
  2042. task.wait(2)
  2043. end
  2044. end
  2045. end
  2046. end
  2047. end)
  2048.  
  2049. --// ========== AUTO COLETA (FUNCIONA COM AUTO FARM OU INDIVIDUAL) ========== //
  2050.  
  2051. RunService.Heartbeat:Connect(function()
  2052. if not (Config.AutoFarm or Config.AutoColeta) then return end
  2053.  
  2054. if not Config.podeExecutar then return end
  2055. Config.podeExecutar = false
  2056.  
  2057. local root = getHumanoidRootPart()
  2058. if root then
  2059. for _, obj in ipairs(workspace:GetDescendants()) do
  2060. if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
  2061. if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
  2062. pcall(function()
  2063. fireproximityprompt(obj)
  2064. end)
  2065. end
  2066. end
  2067. end
  2068. end
  2069.  
  2070. task.delay(Config.delayEntreTentativas, function()
  2071. Config.podeExecutar = true
  2072. end)
  2073. end)
  2074.  
  2075. --// ========== CLEANUP AO SAIR ========== //
  2076.  
  2077. LocalPlayer.CharacterRemoving:Connect(function()
  2078. ClickTeleportModule.Cleanup()
  2079. end)
  2080.  
  2081. game:BindToClose(function()
  2082. for player, _ in pairs(PlayerESP_Data) do
  2083. cleanupPlayerESP(player)
  2084. end
  2085. end)
  2086.  
  2087. --// ========== LOGS FINAIS ========== //
  2088.  
  2089. print(string.rep("=", 60))
  2090. print(" Pré-história - auto farm")
  2091. print(string.rep("=", 60))
  2092. print(" GUI WindUI carregada!")
  2093. print(" Versão: " .. ScriptVersion)
  2094. print(" Jogador: " .. LocalPlayer.Name)
  2095. print(" Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
  2096. print(" Teleports Salvos: " .. #Config.SavedTeleports)
  2097. print(string.rep("=", 60))
  2098. print(" [✓] CORREÇÃO: Sistema de ESP e HP Bar totalmente estável e independente.")
  2099. print(" [✓] CORREÇÃO: Detecção de Nível do Dino agora é precisa e confiável.")
  2100. print(string.rep("=", 60))
  2101. print(" Sistema de Debug disponível na aba Outros")
  2102. print(" Auto Coleta: Integrado com Auto Farm")
  2103. print(" Sistema de Teleporte Ultra-Rápido")
  2104. print(" ESP com cores únicas garantidas por time")
  2105. print(" Click Teleport: SEM EFEITOS VISUAIS")
  2106. print(string.rep("=", 60))
  2107. print(" FUNCIONALIDADES ATIVAS:")
  2108. print(" Auto Farm de Cristais (com Auto Coleta integrado)")
  2109. print(" ESP de Jogadores (com HP Bar e cores únicas)")
  2110. print(" ESP de Carnes")
  2111. print(" Teleporte para Carnes")
  2112. print(" Teleporte para Spawn")
  2113. print(" Teleporte Seguro para Locais Salvos")
  2114. print(" Auto Coleta Inteligente (25 studs)")
  2115. print(" Click Teleport (Orientação + Sem Efeitos)")
  2116. print(" Detecção de Nível em Tempo Real")
  2117. print(string.rep("=", 60))
  2118. print(" ATUALIZAÇÃO " .. ScriptVersion .. ":")
  2119. print(" ESTABILIDADE: ESP de Jogadores e HP Bar totalmente reescritos para máxima performance.")
  2120. print(" CONFIABILIDADE: Sistema de Nível do Dinossauro corrigido e funcionando.")
  2121. print(" INTERFACE: Navegação simplificada e todas as funcionalidades preservadas.")
  2122. print(" Zero conflitos ou bugs")
  2123. print(string.rep("=", 60))
Advertisement
Add Comment
Please, Sign In to add comment