Nevzyn

Untitled

Nov 3rd, 2025
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.93 KB | None | 0 0
  1. --[[
  2. ╔═══════════════════════════════════════════════════════════╗
  3. ║ Pré-história - By: NickZScripts ║
  4. ║ Interface: WindUI Library ║
  5. ╚═══════════════════════════════════════════════════════════╝
  6. ]]
  7.  
  8. -- Verificação inicial
  9. print("="..string.rep("=", 60))
  10. print("🦖 PRÉ-HISTÓRIA - INICIANDO...")
  11. print("="..string.rep("=", 60))
  12.  
  13. -- Verificar se está em um jogo Roblox válido
  14. if not game or not game:GetService("Players") then
  15. error("❌ ERRO: Este script deve ser executado dentro do Roblox!")
  16. return
  17. end
  18.  
  19. --// ========== SERVICES ========== //
  20. print("📦 Carregando Services...")
  21. local Players = game:GetService("Players")
  22. local RunService = game:GetService("RunService")
  23. local HttpService = game:GetService("HttpService")
  24. local TweenService = game:GetService("TweenService")
  25. local UserInputService = game:GetService("UserInputService")
  26. local CoreGui = game:GetService("CoreGui")
  27.  
  28. --// ========== VARIÁVEIS GLOBAIS ========== //
  29. print("🔧 Configurando variáveis...")
  30. local LocalPlayer = Players.LocalPlayer
  31. local ScriptVersion = "v5.1.0"
  32. local LastSpawnPosition = nil
  33. local Camera = workspace.CurrentCamera
  34. local ActiveTeleportConnection = nil
  35.  
  36. --// ========== CONFIGURAÇÕES ========== //
  37. local Config = {
  38. AutoFarm = false,
  39. AutoColeta = false,
  40. CheckDelay = 0.3,
  41. DelayBetweenCrystals = 0.1,
  42. raioDeColeta = 25,
  43. delayEntreTentativas = 0.25,
  44. podeExecutar = true,
  45.  
  46. EspMeatActive = false,
  47. ESP_MIN_SIZE = 35,
  48. ESP_MAX_SIZE = 65,
  49. ESP_UPDATE_RATE = 0.1,
  50. MAX_VISIBLE_DISTANCE = 999999,
  51.  
  52. PlayerESP = false,
  53. PlayerESP_ShowHP = false,
  54. PlayerESP_TeamCheck = false,
  55.  
  56. ClickTeleportEnabled = false,
  57. SavedTeleports = {},
  58.  
  59. PatrulhaPontos = {
  60. CFrame.new(0, 30, 0),
  61. CFrame.new(800, 30, 400),
  62. CFrame.new(-750, 30, -600),
  63. CFrame.new(450, 30, -1000),
  64. CFrame.new(-900, 30, 700),
  65. CFrame.new(0, 30, 1000),
  66. },
  67. }
  68.  
  69. --// ========== CACHE DE NÍVEL ========== //
  70. local DinoLevelCache = {
  71. value = 0,
  72. lastUpdate = 0,
  73. updateInterval = 2
  74. }
  75.  
  76. --// ========== DETECTAR SPAWN ========== //
  77. print("📍 Detectando posição de spawn...")
  78. task.spawn(function()
  79. local success, err = pcall(function()
  80. local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
  81. local root = char:WaitForChild("HumanoidRootPart", 10)
  82.  
  83. if root then
  84. task.wait(2)
  85. LastSpawnPosition = root.CFrame
  86. print("✅ Spawn detectado!")
  87. end
  88.  
  89. LocalPlayer.CharacterAdded:Connect(function(newChar)
  90. task.wait(2)
  91. local newRoot = newChar:FindFirstChild("HumanoidRootPart")
  92. if newRoot then
  93. LastSpawnPosition = newRoot.CFrame
  94. end
  95. end)
  96. end)
  97.  
  98. if not success then
  99. warn("⚠️ Erro ao detectar spawn: " .. tostring(err))
  100. end
  101. end)
  102.  
  103. --// ========== FUNÇÕES UTILITÁRIAS ========== //
  104.  
  105. local function getCharacter()
  106. return LocalPlayer.Character
  107. end
  108.  
  109. local function getHumanoidRootPart()
  110. local char = getCharacter()
  111. return char and char:FindFirstChild("HumanoidRootPart")
  112. end
  113.  
  114. local function teleportTo(cf)
  115. local root = getHumanoidRootPart()
  116. if root and root.Parent then
  117. root.CFrame = cf
  118. end
  119. end
  120.  
  121. local function teleportToCrystal(c)
  122. local root = getHumanoidRootPart()
  123. if root and c then
  124. root.CFrame = CFrame.new(c.Position + Vector3.new(0, 4.5, 0))
  125. end
  126. end
  127.  
  128. local function safeTeleport(targetCFrame, locationName)
  129. if ActiveTeleportConnection then
  130. ActiveTeleportConnection:Disconnect()
  131. ActiveTeleportConnection = nil
  132. end
  133.  
  134. local char = LocalPlayer.Character
  135. local root = char and char:FindFirstChild("HumanoidRootPart")
  136. local humanoid = char and char:FindFirstChild("Humanoid")
  137.  
  138. if not root or not humanoid then
  139. return false
  140. end
  141.  
  142. root.CFrame = targetCFrame
  143.  
  144. task.spawn(function()
  145. task.wait(0.05)
  146.  
  147. local rayParams = RaycastParams.new()
  148. rayParams.FilterType = Enum.RaycastFilterType.Blacklist
  149. rayParams.FilterDescendantsInstances = {char}
  150.  
  151. local rayResult = workspace:Raycast(
  152. root.Position,
  153. Vector3.new(0, -100, 0),
  154. rayParams
  155. )
  156.  
  157. if rayResult then
  158. root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
  159. end
  160. end)
  161.  
  162. return true
  163. end
  164.  
  165. --// ========== SISTEMA DE NÍVEL ========== //
  166.  
  167. local function getDinoLevelSilent()
  168. local now = tick()
  169. if (now - DinoLevelCache.lastUpdate) < DinoLevelCache.updateInterval then
  170. return DinoLevelCache.value
  171. end
  172.  
  173. local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
  174. if leaderstats then
  175. for _, stat in ipairs(leaderstats:GetChildren()) do
  176. local name = stat.Name:lower()
  177. if name:find("level") or name:find("lvl") or name:find("nivel") then
  178. if stat:IsA("IntValue") or stat:IsA("NumberValue") then
  179. local val = tonumber(stat.Value) or 0
  180. if val > 0 then
  181. DinoLevelCache.value = val
  182. DinoLevelCache.lastUpdate = now
  183. return val
  184. end
  185. end
  186. end
  187. end
  188. end
  189.  
  190. DinoLevelCache.lastUpdate = now
  191. return DinoLevelCache.value
  192. end
  193.  
  194. --// ========== SISTEMA DE CRISTAIS ========== //
  195.  
  196. local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
  197.  
  198. local function getCrystalRank(name)
  199. name = name:lower()
  200. for key, rank in pairs(prioridadeMap) do
  201. if name:find(key) then return rank end
  202. end
  203. return 5
  204. end
  205.  
  206. local function getSortedCrystals()
  207. local found = {}
  208. for _, obj in ipairs(workspace:GetDescendants()) do
  209. if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
  210. local rank = getCrystalRank(obj.Parent.Name)
  211. if rank < 5 then
  212. table.insert(found, {part = obj, rank = rank})
  213. end
  214. end
  215. end
  216. table.sort(found, function(a, b) return a.rank < b.rank end)
  217. local parts = {}
  218. for _, entry in ipairs(found) do
  219. table.insert(parts, entry.part)
  220. end
  221. return parts
  222. end
  223.  
  224. --// ========== ESP DE CARNES ========== //
  225.  
  226. local ActiveMeatESPs = {}
  227. local meatUpdateLoop = nil
  228. local meatScanLoop = nil
  229.  
  230. local function isMeatObject(obj)
  231. if not obj then return false, nil end
  232.  
  233. if obj:IsA("ProximityPrompt") and obj.Enabled then
  234. local action = (obj.ActionText or ""):lower()
  235. local objText = (obj.ObjectText or ""):lower()
  236.  
  237. local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
  238.  
  239. for _, foodAction in ipairs(foodActions) do
  240. if action:find(foodAction) then
  241. local fullText = action .. " " .. objText
  242. local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
  243.  
  244. local isExcluded = false
  245. for _, word in ipairs(excludeWords) do
  246. if fullText:find(word) then
  247. isExcluded = true
  248. break
  249. end
  250. end
  251.  
  252. if not isExcluded then
  253. local parent = obj.Parent
  254. if parent and parent:IsA("BasePart") then
  255. for _, player in ipairs(Players:GetPlayers()) do
  256. if player.Character and parent:IsDescendantOf(player.Character) then
  257. return false, nil
  258. end
  259. end
  260. return true, parent
  261. end
  262. end
  263. end
  264. end
  265. end
  266.  
  267. if obj:IsA("Model") or obj:IsA("BasePart") then
  268. local name = (obj.Name or ""):lower()
  269.  
  270. local meatWords = {
  271. "meat", "carne", "beef", "steak", "chicken",
  272. "frango", "pork", "porco", "bacon", "ham"
  273. }
  274.  
  275. for _, word in ipairs(meatWords) do
  276. if name:find(word) then
  277. for _, player in ipairs(Players:GetPlayers()) do
  278. if player.Character and obj:IsDescendantOf(player.Character) then
  279. return false, nil
  280. end
  281. end
  282.  
  283. if obj:IsA("Model") then
  284. local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
  285. return part ~= nil, part
  286. else
  287. return true, obj
  288. end
  289. end
  290. end
  291. end
  292.  
  293. return false, nil
  294. end
  295.  
  296. local function findNearestMeat()
  297. local char = LocalPlayer.Character
  298. local root = char and char:FindFirstChild("HumanoidRootPart")
  299. if not root then return nil, math.huge end
  300.  
  301. local nearestMeat = nil
  302. local nearestDistance = math.huge
  303.  
  304. for _, obj in ipairs(workspace:GetDescendants()) do
  305. local isMeat, part = isMeatObject(obj)
  306. if isMeat and part and part.Parent then
  307. local distance = (part.Position - root.Position).Magnitude
  308. if distance < nearestDistance then
  309. nearestDistance = distance
  310. nearestMeat = part
  311. end
  312. end
  313. end
  314.  
  315. return nearestMeat, nearestDistance
  316. end
  317.  
  318. local function createMeatESP(part)
  319. if not part or not part:IsA("BasePart") or not part.Parent then return end
  320.  
  321. local id = tostring(part:GetDebugId())
  322. if ActiveMeatESPs[id] then return end
  323.  
  324. local esp = Instance.new("BillboardGui")
  325. esp.Name = "MeatESP_" .. id
  326. esp.Adornee = part
  327. esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
  328. esp.StudsOffset = Vector3.new(0, 3, 0)
  329. esp.AlwaysOnTop = true
  330. esp.LightInfluence = 0
  331. esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
  332. esp.Parent = workspace
  333. esp.Enabled = true
  334.  
  335. local frame = Instance.new("Frame", esp)
  336. frame.Size = UDim2.new(1, 0, 1, 0)
  337. frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
  338. frame.BackgroundTransparency = 0.4
  339. frame.BorderSizePixel = 1
  340. frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
  341.  
  342. local corner = Instance.new("UICorner")
  343. corner.CornerRadius = UDim.new(0, 6)
  344. corner.Parent = frame
  345.  
  346. local iconLabel = Instance.new("TextLabel", frame)
  347. iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
  348. iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
  349. iconLabel.BackgroundTransparency = 1
  350. iconLabel.Text = "🥩"
  351. iconLabel.TextScaled = true
  352. iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  353. iconLabel.Font = Enum.Font.SourceSansBold
  354. iconLabel.TextStrokeTransparency = 0.5
  355.  
  356. local distLabel = Instance.new("TextLabel", frame)
  357. distLabel.Name = "Distance"
  358. distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
  359. distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
  360. distLabel.BackgroundTransparency = 1
  361. distLabel.Text = "0m"
  362. distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  363. distLabel.TextStrokeTransparency = 0.3
  364. distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
  365. distLabel.Font = Enum.Font.GothamBold
  366. distLabel.TextScaled = true
  367.  
  368. ActiveMeatESPs[id] = {
  369. gui = esp,
  370. part = part,
  371. distLabel = distLabel,
  372. frame = frame,
  373. iconLabel = iconLabel
  374. }
  375.  
  376. return true
  377. end
  378.  
  379. local function scanForMeats()
  380. if not Config.EspMeatActive then return end
  381.  
  382. for id, data in pairs(ActiveMeatESPs) do
  383. if data.gui then
  384. pcall(function() data.gui:Destroy() end)
  385. end
  386. end
  387. ActiveMeatESPs = {}
  388.  
  389. for _, obj in ipairs(workspace:GetDescendants()) do
  390. if not Config.EspMeatActive then return end
  391.  
  392. local isMeat, part = isMeatObject(obj)
  393. if isMeat and part and part.Parent then
  394. createMeatESP(part)
  395. end
  396. end
  397. end
  398.  
  399. local function updateMeatESPInfo()
  400. if not Config.EspMeatActive then return end
  401.  
  402. local char = LocalPlayer.Character
  403. local root = char and char:FindFirstChild("HumanoidRootPart")
  404. if not root then return end
  405.  
  406. for id, data in pairs(ActiveMeatESPs) do
  407. if data.part and data.part.Parent and data.gui and data.gui.Parent then
  408. local distance = (data.part.Position - root.Position).Magnitude
  409.  
  410. data.gui.Enabled = true
  411.  
  412. if data.distLabel then
  413. if distance < 1000 then
  414. data.distLabel.Text = string.format("%.0fm", distance)
  415. else
  416. data.distLabel.Text = string.format("%.1fkm", distance / 1000)
  417. end
  418. end
  419.  
  420. local scaleFactor = 1.0
  421. if distance > 50 then scaleFactor = 0.75 end
  422. if distance > 200 then scaleFactor = 0.6 end
  423. if distance > 500 then scaleFactor = 0.5 end
  424.  
  425. local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
  426. data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
  427.  
  428. if data.frame then
  429. local transparency = 0.3
  430. if distance > 300 then transparency = 0.5 end
  431. if distance > 1000 then transparency = 0.7 end
  432. data.frame.BackgroundTransparency = transparency
  433. end
  434.  
  435. if distance < 100 then
  436. data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
  437. elseif distance < 500 then
  438. data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
  439. else
  440. data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
  441. end
  442. else
  443. if data.gui then
  444. pcall(function() data.gui:Destroy() end)
  445. end
  446. ActiveMeatESPs[id] = nil
  447. end
  448. end
  449. end
  450.  
  451. local function startMeatESP()
  452. if meatUpdateLoop then return end
  453.  
  454. scanForMeats()
  455.  
  456. meatUpdateLoop = RunService.Heartbeat:Connect(function()
  457. updateMeatESPInfo()
  458. end)
  459.  
  460. meatScanLoop = task.spawn(function()
  461. while Config.EspMeatActive do
  462. task.wait(10)
  463. if Config.EspMeatActive then
  464. scanForMeats()
  465. end
  466. end
  467. end)
  468. end
  469.  
  470. local function stopMeatESP()
  471. if meatUpdateLoop then
  472. meatUpdateLoop:Disconnect()
  473. meatUpdateLoop = nil
  474. end
  475.  
  476. if meatScanLoop then
  477. task.cancel(meatScanLoop)
  478. meatScanLoop = nil
  479. end
  480.  
  481. for id, data in pairs(ActiveMeatESPs) do
  482. if data.gui then
  483. pcall(function() data.gui:Destroy() end)
  484. end
  485. end
  486. ActiveMeatESPs = {}
  487. end
  488.  
  489. --// ========== ESP DE JOGADORES ========== //
  490.  
  491. local PlayerESP_Data = {}
  492.  
  493. local ESP_CONFIG = {
  494. UpdateInterval = 0.5,
  495. HPBarMaxDistance = 4000,
  496. HPBarSize = UDim2.new(0, 50, 0, 5),
  497. HPBarYOffset = 0.5,
  498. HighlightFillTransparency = 0.85,
  499. OutlineTransparency = 0.15,
  500. }
  501.  
  502. local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
  503. local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
  504. local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
  505.  
  506. local function isNeutralPlayer(p)
  507. return p.Team == nil
  508. end
  509.  
  510. local function isAllyPlayer(p)
  511. return LocalPlayer.Team and p.Team == LocalPlayer.Team
  512. end
  513.  
  514. local function colorForPlayer(p)
  515. if isNeutralPlayer(p) then return COLOR_NEUTRAL end
  516. if isAllyPlayer(p) then return COLOR_FRIEND end
  517. return COLOR_ENEMY
  518. end
  519.  
  520. local function shouldShowPlayerESP(p)
  521. if not Config.PlayerESP then return false end
  522. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  523. return true
  524. end
  525.  
  526. local function shouldShowPlayerHP(p)
  527. if not Config.PlayerESP_ShowHP then return false end
  528. if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
  529. return true
  530. end
  531.  
  532. local function clearPlayerESP(plr)
  533. local pack = PlayerESP_Data[plr]
  534. if not pack then return end
  535.  
  536. if pack.highlight then
  537. pcall(function() pack.highlight:Destroy() end)
  538. pack.highlight = nil
  539. end
  540.  
  541. if pack.hpGui then
  542. pcall(function() pack.hpGui:Destroy() end)
  543. pack.hpGui = nil
  544. end
  545.  
  546. PlayerESP_Data[plr] = nil
  547. end
  548.  
  549. local function setupPlayerESP(plr)
  550. if plr == LocalPlayer then return end
  551. if not plr.Character then return end
  552.  
  553. clearPlayerESP(plr)
  554.  
  555. local char = plr.Character
  556. local hum = char:FindFirstChildOfClass("Humanoid")
  557. local root = char:FindFirstChild("HumanoidRootPart")
  558. local head = char:FindFirstChild("Head")
  559.  
  560. if not hum or not root then return end
  561.  
  562. PlayerESP_Data[plr] = {}
  563.  
  564. local hi = Instance.new("Highlight")
  565. hi.Name = "PlayerESP_Highlight"
  566. hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
  567. hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
  568. hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
  569. hi.Adornee = char
  570. hi.Parent = char
  571.  
  572. local col = colorForPlayer(plr)
  573. hi.FillColor = col
  574. hi.OutlineColor = col
  575. hi.Enabled = shouldShowPlayerESP(plr)
  576.  
  577. PlayerESP_Data[plr].highlight = hi
  578.  
  579. local bill = Instance.new("BillboardGui")
  580. bill.Name = "PlayerESP_HP"
  581. bill.AlwaysOnTop = true
  582. bill.LightInfluence = 0
  583. bill.Size = ESP_CONFIG.HPBarSize
  584. bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
  585. bill.Parent = char
  586.  
  587. if head then
  588. bill.Adornee = head
  589. local headSize = head.Size.Y
  590. bill.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
  591. else
  592. bill.Adornee = root
  593. bill.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
  594. end
  595.  
  596. local bg = Instance.new("Frame", bill)
  597. bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
  598. bg.BackgroundTransparency = 0.2
  599. bg.BorderSizePixel = 0
  600. bg.Size = UDim2.fromScale(1, 1)
  601.  
  602. local bgCorner = Instance.new("UICorner")
  603. bgCorner.CornerRadius = UDim.new(0, 2)
  604. bgCorner.Parent = bg
  605.  
  606. local bgStroke = Instance.new("UIStroke")
  607. bgStroke.Color = Color3.fromRGB(0, 0, 0)
  608. bgStroke.Thickness = 1.5
  609. bgStroke.Parent = bg
  610.  
  611. local fill = Instance.new("Frame", bg)
  612. fill.BackgroundColor3 = COLOR_FRIEND
  613. fill.BorderSizePixel = 0
  614. fill.Size = UDim2.fromScale(1, 1)
  615.  
  616. local fillCorner = Instance.new("UICorner")
  617. fillCorner.CornerRadius = UDim.new(0, 2)
  618. fillCorner.Parent = fill
  619.  
  620. bill.Enabled = shouldShowPlayerHP(plr)
  621.  
  622. PlayerESP_Data[plr].hpGui = bill
  623. PlayerESP_Data[plr].hpFill = fill
  624. PlayerESP_Data[plr].hum = hum
  625. end
  626.  
  627. task.spawn(function()
  628. while true do
  629. task.wait(ESP_CONFIG.UpdateInterval)
  630.  
  631. for plr, pack in pairs(PlayerESP_Data) do
  632. if plr and plr.Parent and plr.Character then
  633. local hum = pack.hum
  634.  
  635. if hum and pack.hpFill then
  636. local h = hum.Health
  637. local m = hum.MaxHealth
  638. if m <= 0 then m = 100 end
  639.  
  640. local ratio = math.clamp(h / m, 0, 1)
  641. pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
  642.  
  643. local r, g
  644. if ratio > 0.5 then
  645. r = (1 - ratio) * 2 * 255
  646. g = 255
  647. else
  648. r = 255
  649. g = ratio * 2 * 255
  650. end
  651.  
  652. pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, 0)
  653.  
  654. if pack.hpGui then
  655. pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
  656. end
  657. end
  658.  
  659. if pack.highlight then
  660. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  661. end
  662. else
  663. clearPlayerESP(plr)
  664. end
  665. end
  666. end
  667. end)
  668.  
  669. Players.PlayerAdded:Connect(function(plr)
  670. plr.CharacterAdded:Connect(function()
  671. task.wait(1)
  672. setupPlayerESP(plr)
  673. end)
  674. end)
  675.  
  676. Players.PlayerRemoving:Connect(function(plr)
  677. clearPlayerESP(plr)
  678. end)
  679.  
  680. for _, plr in ipairs(Players:GetPlayers()) do
  681. if plr ~= LocalPlayer and plr.Character then
  682. setupPlayerESP(plr)
  683. end
  684.  
  685. plr.CharacterAdded:Connect(function()
  686. task.wait(1)
  687. setupPlayerESP(plr)
  688. end)
  689. end
  690.  
  691. --// ========== CARREGAR WINDUI ========== //
  692.  
  693. print("🔄 Carregando WindUI...")
  694.  
  695. local WindUI
  696. local loadSuccess = false
  697. local loadAttempts = 0
  698. local maxAttempts = 3
  699.  
  700. while not loadSuccess and loadAttempts < maxAttempts do
  701. loadAttempts = loadAttempts + 1
  702. print(string.format("📥 Tentativa %d/%d de carregar WindUI...", loadAttempts, maxAttempts))
  703.  
  704. local success, result = pcall(function()
  705. return loadstring(game:HttpGet("https://raw.githubusercontent.com/Footagesus/WindUI/refs/heads/main/source.lua"))()
  706. end)
  707.  
  708. if success and result then
  709. WindUI = result
  710. loadSuccess = true
  711. print("✅ WindUI carregada com sucesso!")
  712. else
  713. warn("⚠️ Falha ao carregar WindUI: " .. tostring(result))
  714. if loadAttempts < maxAttempts then
  715. print("⏳ Aguardando 2 segundos antes de tentar novamente...")
  716. task.wait(2)
  717. end
  718. end
  719. end
  720.  
  721. if not loadSuccess or not WindUI then
  722. error("❌ ERRO FATAL: Não foi possível carregar WindUI após " .. maxAttempts .. " tentativas!\n\nPossíveis soluções:\n1. Verifique sua conexão com a internet\n2. Tente outro executor\n3. O repositório WindUI pode estar offline")
  723. return
  724. end
  725.  
  726. print("🎨 Criando interface...")
  727.  
  728. --// ========== CRIAR JANELA PRINCIPAL ========== //
  729.  
  730. local Window = WindUI:CreateWindow({
  731. Title = "🦖 Pré-história",
  732. Author = "NickZScripts - " .. ScriptVersion,
  733. Folder = "PreHistoriaHub",
  734. Size = UDim2.fromOffset(550, 670),
  735. KeySystem = false,
  736. Transparent = false,
  737. Theme = "Dark",
  738. SideBarWidth = 170,
  739. })
  740.  
  741. print("✅ Janela criada com sucesso!")
  742.  
  743. --// ========== SISTEMA DE NOTIFICAÇÃO ========== //
  744.  
  745. local function Notify(title, description, duration)
  746. pcall(function()
  747. Window:Notify({
  748. Title = title,
  749. Description = description,
  750. Duration = duration or 3
  751. })
  752. end)
  753. end
  754.  
  755. --// ========== ABA MENU ========== //
  756.  
  757. print("📋 Criando aba Menu...")
  758.  
  759. local MenuTab = Window:Tab({
  760. Title = "Menu",
  761. Icon = "home"
  762. })
  763.  
  764. local InfoSection = MenuTab:Section({
  765. Title = "📊 Informações do Servidor"
  766. })
  767.  
  768. local PlayersCountLabel = InfoSection:Label({
  769. Text = "👥 Players: Carregando..."
  770. })
  771.  
  772. local function updatePlayerCount()
  773. local current = #Players:GetPlayers()
  774. local max = Players.MaxPlayers
  775. PlayersCountLabel:Set(string.format("👥 Players Online: %d/%d", current, max))
  776. end
  777.  
  778. updatePlayerCount()
  779.  
  780. Players.PlayerAdded:Connect(updatePlayerCount)
  781. Players.PlayerRemoving:Connect(updatePlayerCount)
  782.  
  783. task.spawn(function()
  784. while task.wait(5) do
  785. updatePlayerCount()
  786. end
  787. end)
  788.  
  789. InfoSection:Label({Text = "📜 Versão: " .. ScriptVersion})
  790. InfoSection:Label({Text = "✅ Status: Operacional"})
  791. InfoSection:Label({Text = "🎨 Interface: WindUI"})
  792.  
  793. local PlayerSection = MenuTab:Section({
  794. Title = "👤 Informações do Jogador"
  795. })
  796.  
  797. PlayerSection:Label({Text = "Nome: " .. LocalPlayer.Name})
  798. PlayerSection:Label({Text = "Display: " .. LocalPlayer.DisplayName})
  799. PlayerSection:Label({Text = "ID: " .. LocalPlayer.UserId})
  800.  
  801. local SystemsSection = MenuTab:Section({
  802. Title = "⚡ Sistemas Ativos"
  803. })
  804.  
  805. local AutoFarmStatusLabel = SystemsSection:Label({Text = "💎 Auto Farm - Desligado"})
  806. local EspCarnesStatusLabel = SystemsSection:Label({Text = "🥩 ESP Carnes - Desligado"})
  807. local EspJogadoresStatusLabel = SystemsSection:Label({Text = "👥 ESP Jogadores - Desligado"})
  808. local AutoColetaStatusLabel = SystemsSection:Label({Text = "🔄 Auto Coleta - Desligado"})
  809.  
  810. --// ========== ABA AUTO FARM ========== //
  811.  
  812. print("⚡ Criando aba Auto Farm...")
  813.  
  814. local FarmTab = Window:Tab({
  815. Title = "Auto Farm",
  816. Icon = "zap"
  817. })
  818.  
  819. local CrystalSection = FarmTab:Section({
  820. Title = "💎 Farm de Cristais"
  821. })
  822.  
  823. local DinoLevelLabel = CrystalSection:Label({
  824. Text = "🦖 Nível do Dino: 0/60"
  825. })
  826.  
  827. task.spawn(function()
  828. while task.wait(2) do
  829. local level = getDinoLevelSilent()
  830. DinoLevelLabel:Set(string.format("🦖 Nível do Dino: %d/60", level))
  831. end
  832. end)
  833.  
  834. CrystalSection:Toggle({
  835. Title = "Auto Farm Cristais",
  836. Description = "Farma cristais automaticamente",
  837. Default = false,
  838. Callback = function(Value)
  839. Config.AutoFarm = Value
  840.  
  841. if Value then
  842. AutoFarmStatusLabel:Set("💎 Auto Farm - Ligado")
  843. Notify("✅ Ativado", "Auto Farm ligado", 2)
  844. else
  845. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  846. Notify("❌ Desativado", "Auto Farm desligado", 2)
  847. end
  848. end
  849. })
  850.  
  851. local ColetaSection = FarmTab:Section({
  852. Title = "🔄 Auto Coleta"
  853. })
  854.  
  855. ColetaSection:Toggle({
  856. Title = "Auto Coleta",
  857. Description = "Coleta itens automaticamente",
  858. Default = false,
  859. Callback = function(Value)
  860. Config.AutoColeta = Value
  861.  
  862. if Value then
  863. AutoColetaStatusLabel:Set("🔄 Auto Coleta - Ligado")
  864. Notify("✅ Ativado", "Auto Coleta ligado", 2)
  865. else
  866. AutoColetaStatusLabel:Set("🔄 Auto Coleta - Desligado")
  867. Notify("❌ Desativado", "Auto Coleta desligado", 2)
  868. end
  869. end
  870. })
  871.  
  872. --// ========== ABA ESP ========== //
  873.  
  874. print("👁️ Criando aba ESP...")
  875.  
  876. local EspTab = Window:Tab({
  877. Title = "ESP",
  878. Icon = "eye"
  879. })
  880.  
  881. local PlayerESPSection = EspTab:Section({
  882. Title = "👥 ESP de Jogadores"
  883. })
  884.  
  885. PlayerESPSection:Toggle({
  886. Title = "ESP de Jogadores",
  887. Description = "Mostra jogadores através de paredes",
  888. Default = false,
  889. Callback = function(Value)
  890. Config.PlayerESP = Value
  891.  
  892. if Value then
  893. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Ligado")
  894.  
  895. for _, plr in ipairs(Players:GetPlayers()) do
  896. if plr ~= LocalPlayer then
  897. setupPlayerESP(plr)
  898. end
  899. end
  900.  
  901. Notify("✅ Ativado", "ESP Jogadores ligado", 2)
  902. else
  903. EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Desligado")
  904.  
  905. for plr, pack in pairs(PlayerESP_Data) do
  906. if pack.highlight then pack.highlight.Enabled = false end
  907. if pack.hpGui then pack.hpGui.Enabled = false end
  908. end
  909.  
  910. Notify("❌ Desativado", "ESP Jogadores desligado", 2)
  911. end
  912. end
  913. })
  914.  
  915. PlayerESPSection:Toggle({
  916. Title = "Barra de Vida",
  917. Description = "Mostra HP dos jogadores",
  918. Default = false,
  919. Callback = function(Value)
  920. Config.PlayerESP_ShowHP = Value
  921.  
  922. for plr, pack in pairs(PlayerESP_Data) do
  923. if pack.hpGui then
  924. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  925. end
  926. end
  927.  
  928. Notify(Value and "✅ Ativado" or "❌ Desativado", "Barra de Vida " .. (Value and "ligada" or "desligada"), 2)
  929. end
  930. })
  931.  
  932. PlayerESPSection:Toggle({
  933. Title = "TeamCheck",
  934. Description = "Mostra apenas inimigos",
  935. Default = false,
  936. Callback = function(Value)
  937. Config.PlayerESP_TeamCheck = Value
  938.  
  939. for plr, pack in pairs(PlayerESP_Data) do
  940. if pack.highlight then
  941. pack.highlight.Enabled = shouldShowPlayerESP(plr)
  942. end
  943. if pack.hpGui then
  944. pack.hpGui.Enabled = shouldShowPlayerHP(plr)
  945. end
  946. end
  947.  
  948. Notify(Value and "✅ Ativado" or "❌ Desativado", "TeamCheck " .. (Value and "ligado" or "desligado"), 2)
  949. end
  950. })
  951.  
  952. local MeatESPSection = EspTab:Section({
  953. Title = "🥩 ESP de Carnes"
  954. })
  955.  
  956. MeatESPSection:Toggle({
  957. Title = "ESP de Carnes",
  958. Description = "Mostra carnes no mapa",
  959. Default = false,
  960. Callback = function(Value)
  961. Config.EspMeatActive = Value
  962.  
  963. if Value then
  964. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Ligado")
  965. startMeatESP()
  966. Notify("✅ Ativado", "ESP Carnes ligado", 2)
  967. else
  968. EspCarnesStatusLabel:Set("🥩 ESP Carnes - Desligado")
  969. stopMeatESP()
  970. Notify("❌ Desativado", "ESP Carnes desligado", 2)
  971. end
  972. end
  973. })
  974.  
  975. --// ========== ABA TELEPORT ========== //
  976.  
  977. print("🚀 Criando aba Teleport...")
  978.  
  979. local TeleportTab = Window:Tab({
  980. Title = "Teleport",
  981. Icon = "navigation"
  982. })
  983.  
  984. local QuickTPSection = TeleportTab:Section({
  985. Title = "🍖 Teleportes Rápidos"
  986. })
  987.  
  988. QuickTPSection:Button({
  989. Title = "TP para Carne Mais Próxima",
  990. Description = "Teleporta para a carne mais perto",
  991. Callback = function()
  992. local meat, distance = findNearestMeat()
  993.  
  994. if not meat then
  995. Notify("❌ Erro", "Nenhuma carne encontrada!", 2)
  996. return
  997. end
  998.  
  999. safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
  1000. Notify("✅ Teleportado", string.format("Carne a %.0fm", distance), 2)
  1001. end
  1002. })
  1003.  
  1004. local SpawnTPSection = TeleportTab:Section({
  1005. Title = "🏠 Teleporte para Spawn"
  1006. })
  1007.  
  1008. SpawnTPSection:Button({
  1009. Title = "Voltar ao Spawn",
  1010. Description = "TP para seu spawn inicial",
  1011. Callback = function()
  1012. if not LastSpawnPosition then
  1013. Notify("❌ Erro", "Spawn não detectado!", 2)
  1014. return
  1015. end
  1016.  
  1017. safeTeleport(LastSpawnPosition, "Spawn")
  1018. Notify("✅ Teleportado", "Voltou ao spawn!", 2)
  1019. end
  1020. })
  1021.  
  1022. --// ========== ABA CONFIGURAÇÕES ========== //
  1023.  
  1024. print("⚙️ Criando aba Configurações...")
  1025.  
  1026. local SettingsTab = Window:Tab({
  1027. Title = "Configurações",
  1028. Icon = "settings"
  1029. })
  1030.  
  1031. local AboutSection = SettingsTab:Section({
  1032. Title = "ℹ️ Sobre o Script"
  1033. })
  1034.  
  1035. AboutSection:Label({Text = "🦖 Pré-história Hub"})
  1036. AboutSection:Label({Text = "Desenvolvedor: NickZScripts"})
  1037. AboutSection:Label({Text = "Versão: " .. ScriptVersion})
  1038. AboutSection:Label({Text = "Interface: WindUI"})
  1039. AboutSection:Label({Text = ""})
  1040. AboutSection:Label({Text = "✨ Funcionalidades:"})
  1041. AboutSection:Label({Text = "✅ Auto Farm de Cristais"})
  1042. AboutSection:Label({Text = "✅ Auto Coleta"})
  1043. AboutSection:Label({Text = "✅ ESP de Jogadores"})
  1044. AboutSection:Label({Text = "✅ ESP de Carnes"})
  1045. AboutSection:Label({Text = "✅ Teleportes Rápidos"})
  1046.  
  1047. --// ========== AUTO FARM LOOP ========== //
  1048.  
  1049. print("🔄 Iniciando sistema de Auto Farm...")
  1050.  
  1051. task.spawn(function()
  1052. local index = 1
  1053. while task.wait(Config.CheckDelay) do
  1054. if Config.AutoFarm then
  1055. local currentLevel = getDinoLevelSilent()
  1056.  
  1057. if currentLevel >= 60 then
  1058. Config.AutoFarm = false
  1059. AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
  1060. Notify("✅ Completo", "Nível 60 atingido!", 3)
  1061. else
  1062. local crystals = getSortedCrystals()
  1063. if #crystals > 0 then
  1064. for _, c in ipairs(crystals) do
  1065. if not Config.AutoFarm or not c or not c.Parent then break end
  1066. teleportToCrystal(c)
  1067.  
  1068. local fixarConexao = RunService.Heartbeat:Connect(function()
  1069. if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
  1070. local char = getCharacter()
  1071. if char and char.PrimaryPart then
  1072. char.PrimaryPart.CFrame = CFrame.new(c.Position + Vector3.new(0, 4.5, 0))
  1073. end
  1074. end
  1075. end)
  1076.  
  1077. local elapsed = 0
  1078. while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
  1079. task.wait(Config.CheckDelay)
  1080. elapsed = elapsed + Config.CheckDelay
  1081. end
  1082. fixarConexao:Disconnect()
  1083. task.wait(Config.DelayBetweenCrystals)
  1084. end
  1085. else
  1086. index = (index % #Config.PatrulhaPontos) + 1
  1087. teleportTo(Config.PatrulhaPontos[index])
  1088. task.wait(2)
  1089. end
  1090. end
  1091. end
  1092. end
  1093. end)
  1094.  
  1095. --// ========== AUTO COLETA ========== //
  1096.  
  1097. print("🔄 Iniciando sistema de Auto Coleta...")
  1098.  
  1099. RunService.Heartbeat:Connect(function()
  1100. if not (Config.AutoFarm or Config.AutoColeta) then return end
  1101. if not Config.podeExecutar then return end
  1102.  
  1103. Config.podeExecutar = false
  1104.  
  1105. local root = getHumanoidRootPart()
  1106. if root then
  1107. for _, obj in ipairs(workspace:GetDescendants()) do
  1108. if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
  1109. if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
  1110. pcall(function()
  1111. fireproximityprompt(obj)
  1112. end)
  1113. end
  1114. end
  1115. end
  1116. end
  1117.  
  1118. task.delay(Config.delayEntreTentativas, function()
  1119. Config.podeExecutar = true
  1120. end)
  1121. end)
  1122.  
  1123. --// ========== FINALIZAÇÃO ========== //
  1124.  
  1125. print("="..string.rep("=", 60))
  1126. print("✅ SCRIPT CARREGADO COM SUCESSO!")
  1127. print("="..string.rep("=", 60))
  1128. print("📌 Versão: " .. ScriptVersion)
  1129. print("🎮 Jogador: " .. LocalPlayer.Name)
  1130. print("📊 Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
  1131. print("="..string.rep("=", 60))
  1132.  
  1133. Notify("🦖 Bem-vindo!", "Script carregado com sucesso!\nVersão: " .. ScriptVersion, 5)
  1134.  
  1135. task.wait(1)
  1136. print("🎉 Tudo pronto! Aproveite o script!")
Advertisement
Add Comment
Please, Sign In to add comment