Nevzyn

Untitled

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