Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- ╔═══════════════════════════════════════════════════════════╗
- ║ Pré-história - By: NickZScripts ║
- ║ Interface: WindUI Library ║
- ╚═══════════════════════════════════════════════════════════╝
- ]]
- -- Verificação inicial
- print("="..string.rep("=", 60))
- print("🦖 PRÉ-HISTÓRIA - INICIANDO...")
- print("="..string.rep("=", 60))
- -- Verificar se está em um jogo Roblox válido
- if not game or not game:GetService("Players") then
- error("❌ ERRO: Este script deve ser executado dentro do Roblox!")
- return
- end
- --// ========== SERVICES ========== //
- print("📦 Carregando Services...")
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local HttpService = game:GetService("HttpService")
- local TweenService = game:GetService("TweenService")
- local UserInputService = game:GetService("UserInputService")
- local CoreGui = game:GetService("CoreGui")
- --// ========== VARIÁVEIS GLOBAIS ========== //
- print("🔧 Configurando variáveis...")
- local LocalPlayer = Players.LocalPlayer
- local ScriptVersion = "v5.1.0"
- local LastSpawnPosition = nil
- local Camera = workspace.CurrentCamera
- local ActiveTeleportConnection = nil
- --// ========== CONFIGURAÇÕES ========== //
- local Config = {
- AutoFarm = false,
- AutoColeta = false,
- CheckDelay = 0.3,
- DelayBetweenCrystals = 0.1,
- raioDeColeta = 25,
- delayEntreTentativas = 0.25,
- podeExecutar = true,
- EspMeatActive = false,
- ESP_MIN_SIZE = 35,
- ESP_MAX_SIZE = 65,
- ESP_UPDATE_RATE = 0.1,
- MAX_VISIBLE_DISTANCE = 999999,
- PlayerESP = false,
- PlayerESP_ShowHP = false,
- PlayerESP_TeamCheck = false,
- ClickTeleportEnabled = false,
- SavedTeleports = {},
- PatrulhaPontos = {
- CFrame.new(0, 30, 0),
- CFrame.new(800, 30, 400),
- CFrame.new(-750, 30, -600),
- CFrame.new(450, 30, -1000),
- CFrame.new(-900, 30, 700),
- CFrame.new(0, 30, 1000),
- },
- }
- --// ========== CACHE DE NÍVEL ========== //
- local DinoLevelCache = {
- value = 0,
- lastUpdate = 0,
- updateInterval = 2
- }
- --// ========== DETECTAR SPAWN ========== //
- print("📍 Detectando posição de spawn...")
- task.spawn(function()
- local success, err = pcall(function()
- local char = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
- local root = char:WaitForChild("HumanoidRootPart", 10)
- if root then
- task.wait(2)
- LastSpawnPosition = root.CFrame
- print("✅ Spawn detectado!")
- end
- LocalPlayer.CharacterAdded:Connect(function(newChar)
- task.wait(2)
- local newRoot = newChar:FindFirstChild("HumanoidRootPart")
- if newRoot then
- LastSpawnPosition = newRoot.CFrame
- end
- end)
- end)
- if not success then
- warn("⚠️ Erro ao detectar spawn: " .. tostring(err))
- end
- end)
- --// ========== FUNÇÕES UTILITÁRIAS ========== //
- local function getCharacter()
- return LocalPlayer.Character
- end
- local function getHumanoidRootPart()
- local char = getCharacter()
- return char and char:FindFirstChild("HumanoidRootPart")
- end
- local function teleportTo(cf)
- local root = getHumanoidRootPart()
- if root and root.Parent then
- root.CFrame = cf
- end
- end
- local function teleportToCrystal(c)
- local root = getHumanoidRootPart()
- if root and c then
- root.CFrame = CFrame.new(c.Position + Vector3.new(0, 4.5, 0))
- end
- end
- local function safeTeleport(targetCFrame, locationName)
- if ActiveTeleportConnection then
- ActiveTeleportConnection:Disconnect()
- ActiveTeleportConnection = nil
- end
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- local humanoid = char and char:FindFirstChild("Humanoid")
- if not root or not humanoid then
- return false
- end
- root.CFrame = targetCFrame
- task.spawn(function()
- task.wait(0.05)
- local rayParams = RaycastParams.new()
- rayParams.FilterType = Enum.RaycastFilterType.Blacklist
- rayParams.FilterDescendantsInstances = {char}
- local rayResult = workspace:Raycast(
- root.Position,
- Vector3.new(0, -100, 0),
- rayParams
- )
- if rayResult then
- root.CFrame = CFrame.new(rayResult.Position + Vector3.new(0, 3, 0))
- end
- end)
- return true
- end
- --// ========== SISTEMA DE NÍVEL ========== //
- local function getDinoLevelSilent()
- local now = tick()
- if (now - DinoLevelCache.lastUpdate) < DinoLevelCache.updateInterval then
- return DinoLevelCache.value
- end
- local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
- if leaderstats then
- for _, stat in ipairs(leaderstats:GetChildren()) do
- local name = stat.Name:lower()
- if name:find("level") or name:find("lvl") or name:find("nivel") then
- if stat:IsA("IntValue") or stat:IsA("NumberValue") then
- local val = tonumber(stat.Value) or 0
- if val > 0 then
- DinoLevelCache.value = val
- DinoLevelCache.lastUpdate = now
- return val
- end
- end
- end
- end
- end
- DinoLevelCache.lastUpdate = now
- return DinoLevelCache.value
- end
- --// ========== SISTEMA DE CRISTAIS ========== //
- local prioridadeMap = { legendary = 1, epic = 2, rare = 3, crystal = 4 }
- local function getCrystalRank(name)
- name = name:lower()
- for key, rank in pairs(prioridadeMap) do
- if name:find(key) then return rank end
- end
- return 5
- end
- local function getSortedCrystals()
- local found = {}
- for _, obj in ipairs(workspace:GetDescendants()) do
- if obj:IsA("BasePart") and obj.Parent and obj.Parent:IsA("Model") then
- local rank = getCrystalRank(obj.Parent.Name)
- if rank < 5 then
- table.insert(found, {part = obj, rank = rank})
- end
- end
- end
- table.sort(found, function(a, b) return a.rank < b.rank end)
- local parts = {}
- for _, entry in ipairs(found) do
- table.insert(parts, entry.part)
- end
- return parts
- end
- --// ========== ESP DE CARNES ========== //
- local ActiveMeatESPs = {}
- local meatUpdateLoop = nil
- local meatScanLoop = nil
- local function isMeatObject(obj)
- if not obj then return false, nil end
- if obj:IsA("ProximityPrompt") and obj.Enabled then
- local action = (obj.ActionText or ""):lower()
- local objText = (obj.ObjectText or ""):lower()
- local foodActions = {"coma", "eat", "pegar", "pick", "grab", "take"}
- for _, foodAction in ipairs(foodActions) do
- if action:find(foodAction) then
- local fullText = action .. " " .. objText
- local excludeWords = {"plant", "fish", "berry", "fruit", "vegetable", "seed"}
- local isExcluded = false
- for _, word in ipairs(excludeWords) do
- if fullText:find(word) then
- isExcluded = true
- break
- end
- end
- if not isExcluded then
- local parent = obj.Parent
- if parent and parent:IsA("BasePart") then
- for _, player in ipairs(Players:GetPlayers()) do
- if player.Character and parent:IsDescendantOf(player.Character) then
- return false, nil
- end
- end
- return true, parent
- end
- end
- end
- end
- end
- if obj:IsA("Model") or obj:IsA("BasePart") then
- local name = (obj.Name or ""):lower()
- local meatWords = {
- "meat", "carne", "beef", "steak", "chicken",
- "frango", "pork", "porco", "bacon", "ham"
- }
- for _, word in ipairs(meatWords) do
- if name:find(word) then
- for _, player in ipairs(Players:GetPlayers()) do
- if player.Character and obj:IsDescendantOf(player.Character) then
- return false, nil
- end
- end
- if obj:IsA("Model") then
- local part = obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")
- return part ~= nil, part
- else
- return true, obj
- end
- end
- end
- end
- return false, nil
- end
- local function findNearestMeat()
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- if not root then return nil, math.huge end
- local nearestMeat = nil
- local nearestDistance = math.huge
- for _, obj in ipairs(workspace:GetDescendants()) do
- local isMeat, part = isMeatObject(obj)
- if isMeat and part and part.Parent then
- local distance = (part.Position - root.Position).Magnitude
- if distance < nearestDistance then
- nearestDistance = distance
- nearestMeat = part
- end
- end
- end
- return nearestMeat, nearestDistance
- end
- local function createMeatESP(part)
- if not part or not part:IsA("BasePart") or not part.Parent then return end
- local id = tostring(part:GetDebugId())
- if ActiveMeatESPs[id] then return end
- local esp = Instance.new("BillboardGui")
- esp.Name = "MeatESP_" .. id
- esp.Adornee = part
- esp.Size = UDim2.new(0, Config.ESP_MAX_SIZE, 0, Config.ESP_MAX_SIZE * 0.4)
- esp.StudsOffset = Vector3.new(0, 3, 0)
- esp.AlwaysOnTop = true
- esp.LightInfluence = 0
- esp.MaxDistance = Config.MAX_VISIBLE_DISTANCE
- esp.Parent = workspace
- esp.Enabled = true
- local frame = Instance.new("Frame", esp)
- frame.Size = UDim2.new(1, 0, 1, 0)
- frame.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
- frame.BackgroundTransparency = 0.4
- frame.BorderSizePixel = 1
- frame.BorderColor3 = Color3.fromRGB(255, 200, 0)
- local corner = Instance.new("UICorner")
- corner.CornerRadius = UDim.new(0, 6)
- corner.Parent = frame
- local iconLabel = Instance.new("TextLabel", frame)
- iconLabel.Size = UDim2.new(0.3, 0, 0.9, 0)
- iconLabel.Position = UDim2.new(0, 2, 0.05, 0)
- iconLabel.BackgroundTransparency = 1
- iconLabel.Text = "🥩"
- iconLabel.TextScaled = true
- iconLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- iconLabel.Font = Enum.Font.SourceSansBold
- iconLabel.TextStrokeTransparency = 0.5
- local distLabel = Instance.new("TextLabel", frame)
- distLabel.Name = "Distance"
- distLabel.Size = UDim2.new(0.7, -4, 0.9, 0)
- distLabel.Position = UDim2.new(0.3, 2, 0.05, 0)
- distLabel.BackgroundTransparency = 1
- distLabel.Text = "0m"
- distLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
- distLabel.TextStrokeTransparency = 0.3
- distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
- distLabel.Font = Enum.Font.GothamBold
- distLabel.TextScaled = true
- ActiveMeatESPs[id] = {
- gui = esp,
- part = part,
- distLabel = distLabel,
- frame = frame,
- iconLabel = iconLabel
- }
- return true
- end
- local function scanForMeats()
- if not Config.EspMeatActive then return end
- for id, data in pairs(ActiveMeatESPs) do
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- end
- ActiveMeatESPs = {}
- for _, obj in ipairs(workspace:GetDescendants()) do
- if not Config.EspMeatActive then return end
- local isMeat, part = isMeatObject(obj)
- if isMeat and part and part.Parent then
- createMeatESP(part)
- end
- end
- end
- local function updateMeatESPInfo()
- if not Config.EspMeatActive then return end
- local char = LocalPlayer.Character
- local root = char and char:FindFirstChild("HumanoidRootPart")
- if not root then return end
- for id, data in pairs(ActiveMeatESPs) do
- if data.part and data.part.Parent and data.gui and data.gui.Parent then
- local distance = (data.part.Position - root.Position).Magnitude
- data.gui.Enabled = true
- if data.distLabel then
- if distance < 1000 then
- data.distLabel.Text = string.format("%.0fm", distance)
- else
- data.distLabel.Text = string.format("%.1fkm", distance / 1000)
- end
- end
- local scaleFactor = 1.0
- if distance > 50 then scaleFactor = 0.75 end
- if distance > 200 then scaleFactor = 0.6 end
- if distance > 500 then scaleFactor = 0.5 end
- local newSize = Config.ESP_MIN_SIZE + ((Config.ESP_MAX_SIZE - Config.ESP_MIN_SIZE) * scaleFactor)
- data.gui.Size = UDim2.new(0, newSize, 0, newSize * 0.4)
- if data.frame then
- local transparency = 0.3
- if distance > 300 then transparency = 0.5 end
- if distance > 1000 then transparency = 0.7 end
- data.frame.BackgroundTransparency = transparency
- end
- if distance < 100 then
- data.frame.BackgroundColor3 = Color3.fromRGB(100, 255, 100)
- elseif distance < 500 then
- data.frame.BackgroundColor3 = Color3.fromRGB(255, 255, 100)
- else
- data.frame.BackgroundColor3 = Color3.fromRGB(255, 120, 120)
- end
- else
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- ActiveMeatESPs[id] = nil
- end
- end
- end
- local function startMeatESP()
- if meatUpdateLoop then return end
- scanForMeats()
- meatUpdateLoop = RunService.Heartbeat:Connect(function()
- updateMeatESPInfo()
- end)
- meatScanLoop = task.spawn(function()
- while Config.EspMeatActive do
- task.wait(10)
- if Config.EspMeatActive then
- scanForMeats()
- end
- end
- end)
- end
- local function stopMeatESP()
- if meatUpdateLoop then
- meatUpdateLoop:Disconnect()
- meatUpdateLoop = nil
- end
- if meatScanLoop then
- task.cancel(meatScanLoop)
- meatScanLoop = nil
- end
- for id, data in pairs(ActiveMeatESPs) do
- if data.gui then
- pcall(function() data.gui:Destroy() end)
- end
- end
- ActiveMeatESPs = {}
- end
- --// ========== ESP DE JOGADORES ========== //
- local PlayerESP_Data = {}
- local ESP_CONFIG = {
- UpdateInterval = 0.5,
- HPBarMaxDistance = 4000,
- HPBarSize = UDim2.new(0, 50, 0, 5),
- HPBarYOffset = 0.5,
- HighlightFillTransparency = 0.85,
- OutlineTransparency = 0.15,
- }
- local COLOR_ENEMY = Color3.fromRGB(255, 85, 85)
- local COLOR_FRIEND = Color3.fromRGB(85, 255, 85)
- local COLOR_NEUTRAL = Color3.fromRGB(240, 240, 240)
- local function isNeutralPlayer(p)
- return p.Team == nil
- end
- local function isAllyPlayer(p)
- return LocalPlayer.Team and p.Team == LocalPlayer.Team
- end
- local function colorForPlayer(p)
- if isNeutralPlayer(p) then return COLOR_NEUTRAL end
- if isAllyPlayer(p) then return COLOR_FRIEND end
- return COLOR_ENEMY
- end
- local function shouldShowPlayerESP(p)
- if not Config.PlayerESP then return false end
- if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
- return true
- end
- local function shouldShowPlayerHP(p)
- if not Config.PlayerESP_ShowHP then return false end
- if Config.PlayerESP_TeamCheck then return not isAllyPlayer(p) end
- return true
- end
- local function clearPlayerESP(plr)
- local pack = PlayerESP_Data[plr]
- if not pack then return end
- if pack.highlight then
- pcall(function() pack.highlight:Destroy() end)
- pack.highlight = nil
- end
- if pack.hpGui then
- pcall(function() pack.hpGui:Destroy() end)
- pack.hpGui = nil
- end
- PlayerESP_Data[plr] = nil
- end
- local function setupPlayerESP(plr)
- if plr == LocalPlayer then return end
- if not plr.Character then return end
- clearPlayerESP(plr)
- local char = plr.Character
- local hum = char:FindFirstChildOfClass("Humanoid")
- local root = char:FindFirstChild("HumanoidRootPart")
- local head = char:FindFirstChild("Head")
- if not hum or not root then return end
- PlayerESP_Data[plr] = {}
- local hi = Instance.new("Highlight")
- hi.Name = "PlayerESP_Highlight"
- hi.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
- hi.FillTransparency = ESP_CONFIG.HighlightFillTransparency
- hi.OutlineTransparency = ESP_CONFIG.OutlineTransparency
- hi.Adornee = char
- hi.Parent = char
- local col = colorForPlayer(plr)
- hi.FillColor = col
- hi.OutlineColor = col
- hi.Enabled = shouldShowPlayerESP(plr)
- PlayerESP_Data[plr].highlight = hi
- local bill = Instance.new("BillboardGui")
- bill.Name = "PlayerESP_HP"
- bill.AlwaysOnTop = true
- bill.LightInfluence = 0
- bill.Size = ESP_CONFIG.HPBarSize
- bill.MaxDistance = ESP_CONFIG.HPBarMaxDistance
- bill.Parent = char
- if head then
- bill.Adornee = head
- local headSize = head.Size.Y
- bill.StudsOffset = Vector3.new(0, headSize/2 + ESP_CONFIG.HPBarYOffset, 0)
- else
- bill.Adornee = root
- bill.StudsOffset = Vector3.new(0, 2.5 + ESP_CONFIG.HPBarYOffset, 0)
- end
- local bg = Instance.new("Frame", bill)
- bg.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
- bg.BackgroundTransparency = 0.2
- bg.BorderSizePixel = 0
- bg.Size = UDim2.fromScale(1, 1)
- local bgCorner = Instance.new("UICorner")
- bgCorner.CornerRadius = UDim.new(0, 2)
- bgCorner.Parent = bg
- local bgStroke = Instance.new("UIStroke")
- bgStroke.Color = Color3.fromRGB(0, 0, 0)
- bgStroke.Thickness = 1.5
- bgStroke.Parent = bg
- local fill = Instance.new("Frame", bg)
- fill.BackgroundColor3 = COLOR_FRIEND
- fill.BorderSizePixel = 0
- fill.Size = UDim2.fromScale(1, 1)
- local fillCorner = Instance.new("UICorner")
- fillCorner.CornerRadius = UDim.new(0, 2)
- fillCorner.Parent = fill
- bill.Enabled = shouldShowPlayerHP(plr)
- PlayerESP_Data[plr].hpGui = bill
- PlayerESP_Data[plr].hpFill = fill
- PlayerESP_Data[plr].hum = hum
- end
- task.spawn(function()
- while true do
- task.wait(ESP_CONFIG.UpdateInterval)
- for plr, pack in pairs(PlayerESP_Data) do
- if plr and plr.Parent and plr.Character then
- local hum = pack.hum
- if hum and pack.hpFill then
- local h = hum.Health
- local m = hum.MaxHealth
- if m <= 0 then m = 100 end
- local ratio = math.clamp(h / m, 0, 1)
- pack.hpFill.Size = UDim2.new(ratio, 0, 1, 0)
- local r, g
- if ratio > 0.5 then
- r = (1 - ratio) * 2 * 255
- g = 255
- else
- r = 255
- g = ratio * 2 * 255
- end
- pack.hpFill.BackgroundColor3 = Color3.fromRGB(r, g, 0)
- if pack.hpGui then
- pack.hpGui.Enabled = shouldShowPlayerHP(plr) and (h > 0)
- end
- end
- if pack.highlight then
- pack.highlight.Enabled = shouldShowPlayerESP(plr)
- end
- else
- clearPlayerESP(plr)
- end
- end
- end
- end)
- Players.PlayerAdded:Connect(function(plr)
- plr.CharacterAdded:Connect(function()
- task.wait(1)
- setupPlayerESP(plr)
- end)
- end)
- Players.PlayerRemoving:Connect(function(plr)
- clearPlayerESP(plr)
- end)
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= LocalPlayer and plr.Character then
- setupPlayerESP(plr)
- end
- plr.CharacterAdded:Connect(function()
- task.wait(1)
- setupPlayerESP(plr)
- end)
- end
- --// ========== CARREGAR WINDUI ========== //
- print("🔄 Carregando WindUI...")
- local WindUI
- local loadSuccess = false
- local loadAttempts = 0
- local maxAttempts = 3
- while not loadSuccess and loadAttempts < maxAttempts do
- loadAttempts = loadAttempts + 1
- print(string.format("📥 Tentativa %d/%d de carregar WindUI...", loadAttempts, maxAttempts))
- local success, result = pcall(function()
- return loadstring(game:HttpGet("https://raw.githubusercontent.com/Footagesus/WindUI/refs/heads/main/source.lua"))()
- end)
- if success and result then
- WindUI = result
- loadSuccess = true
- print("✅ WindUI carregada com sucesso!")
- else
- warn("⚠️ Falha ao carregar WindUI: " .. tostring(result))
- if loadAttempts < maxAttempts then
- print("⏳ Aguardando 2 segundos antes de tentar novamente...")
- task.wait(2)
- end
- end
- end
- if not loadSuccess or not WindUI then
- 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")
- return
- end
- print("🎨 Criando interface...")
- --// ========== CRIAR JANELA PRINCIPAL ========== //
- local Window = WindUI:CreateWindow({
- Title = "🦖 Pré-história",
- Author = "NickZScripts - " .. ScriptVersion,
- Folder = "PreHistoriaHub",
- Size = UDim2.fromOffset(550, 670),
- KeySystem = false,
- Transparent = false,
- Theme = "Dark",
- SideBarWidth = 170,
- })
- print("✅ Janela criada com sucesso!")
- --// ========== SISTEMA DE NOTIFICAÇÃO ========== //
- local function Notify(title, description, duration)
- pcall(function()
- Window:Notify({
- Title = title,
- Description = description,
- Duration = duration or 3
- })
- end)
- end
- --// ========== ABA MENU ========== //
- print("📋 Criando aba Menu...")
- local MenuTab = Window:Tab({
- Title = "Menu",
- Icon = "home"
- })
- local InfoSection = MenuTab:Section({
- Title = "📊 Informações do Servidor"
- })
- local PlayersCountLabel = InfoSection:Label({
- Text = "👥 Players: Carregando..."
- })
- local function updatePlayerCount()
- local current = #Players:GetPlayers()
- local max = Players.MaxPlayers
- PlayersCountLabel:Set(string.format("👥 Players Online: %d/%d", current, max))
- end
- updatePlayerCount()
- Players.PlayerAdded:Connect(updatePlayerCount)
- Players.PlayerRemoving:Connect(updatePlayerCount)
- task.spawn(function()
- while task.wait(5) do
- updatePlayerCount()
- end
- end)
- InfoSection:Label({Text = "📜 Versão: " .. ScriptVersion})
- InfoSection:Label({Text = "✅ Status: Operacional"})
- InfoSection:Label({Text = "🎨 Interface: WindUI"})
- local PlayerSection = MenuTab:Section({
- Title = "👤 Informações do Jogador"
- })
- PlayerSection:Label({Text = "Nome: " .. LocalPlayer.Name})
- PlayerSection:Label({Text = "Display: " .. LocalPlayer.DisplayName})
- PlayerSection:Label({Text = "ID: " .. LocalPlayer.UserId})
- local SystemsSection = MenuTab:Section({
- Title = "⚡ Sistemas Ativos"
- })
- local AutoFarmStatusLabel = SystemsSection:Label({Text = "💎 Auto Farm - Desligado"})
- local EspCarnesStatusLabel = SystemsSection:Label({Text = "🥩 ESP Carnes - Desligado"})
- local EspJogadoresStatusLabel = SystemsSection:Label({Text = "👥 ESP Jogadores - Desligado"})
- local AutoColetaStatusLabel = SystemsSection:Label({Text = "🔄 Auto Coleta - Desligado"})
- --// ========== ABA AUTO FARM ========== //
- print("⚡ Criando aba Auto Farm...")
- local FarmTab = Window:Tab({
- Title = "Auto Farm",
- Icon = "zap"
- })
- local CrystalSection = FarmTab:Section({
- Title = "💎 Farm de Cristais"
- })
- local DinoLevelLabel = CrystalSection:Label({
- Text = "🦖 Nível do Dino: 0/60"
- })
- task.spawn(function()
- while task.wait(2) do
- local level = getDinoLevelSilent()
- DinoLevelLabel:Set(string.format("🦖 Nível do Dino: %d/60", level))
- end
- end)
- CrystalSection:Toggle({
- Title = "Auto Farm Cristais",
- Description = "Farma cristais automaticamente",
- Default = false,
- Callback = function(Value)
- Config.AutoFarm = Value
- if Value then
- AutoFarmStatusLabel:Set("💎 Auto Farm - Ligado")
- Notify("✅ Ativado", "Auto Farm ligado", 2)
- else
- AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
- Notify("❌ Desativado", "Auto Farm desligado", 2)
- end
- end
- })
- local ColetaSection = FarmTab:Section({
- Title = "🔄 Auto Coleta"
- })
- ColetaSection:Toggle({
- Title = "Auto Coleta",
- Description = "Coleta itens automaticamente",
- Default = false,
- Callback = function(Value)
- Config.AutoColeta = Value
- if Value then
- AutoColetaStatusLabel:Set("🔄 Auto Coleta - Ligado")
- Notify("✅ Ativado", "Auto Coleta ligado", 2)
- else
- AutoColetaStatusLabel:Set("🔄 Auto Coleta - Desligado")
- Notify("❌ Desativado", "Auto Coleta desligado", 2)
- end
- end
- })
- --// ========== ABA ESP ========== //
- print("👁️ Criando aba ESP...")
- local EspTab = Window:Tab({
- Title = "ESP",
- Icon = "eye"
- })
- local PlayerESPSection = EspTab:Section({
- Title = "👥 ESP de Jogadores"
- })
- PlayerESPSection:Toggle({
- Title = "ESP de Jogadores",
- Description = "Mostra jogadores através de paredes",
- Default = false,
- Callback = function(Value)
- Config.PlayerESP = Value
- if Value then
- EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Ligado")
- for _, plr in ipairs(Players:GetPlayers()) do
- if plr ~= LocalPlayer then
- setupPlayerESP(plr)
- end
- end
- Notify("✅ Ativado", "ESP Jogadores ligado", 2)
- else
- EspJogadoresStatusLabel:Set("👥 ESP Jogadores - Desligado")
- for plr, pack in pairs(PlayerESP_Data) do
- if pack.highlight then pack.highlight.Enabled = false end
- if pack.hpGui then pack.hpGui.Enabled = false end
- end
- Notify("❌ Desativado", "ESP Jogadores desligado", 2)
- end
- end
- })
- PlayerESPSection:Toggle({
- Title = "Barra de Vida",
- Description = "Mostra HP dos jogadores",
- Default = false,
- Callback = function(Value)
- Config.PlayerESP_ShowHP = Value
- for plr, pack in pairs(PlayerESP_Data) do
- if pack.hpGui then
- pack.hpGui.Enabled = shouldShowPlayerHP(plr)
- end
- end
- Notify(Value and "✅ Ativado" or "❌ Desativado", "Barra de Vida " .. (Value and "ligada" or "desligada"), 2)
- end
- })
- PlayerESPSection:Toggle({
- Title = "TeamCheck",
- Description = "Mostra apenas inimigos",
- Default = false,
- Callback = function(Value)
- Config.PlayerESP_TeamCheck = Value
- for plr, pack in pairs(PlayerESP_Data) do
- if pack.highlight then
- pack.highlight.Enabled = shouldShowPlayerESP(plr)
- end
- if pack.hpGui then
- pack.hpGui.Enabled = shouldShowPlayerHP(plr)
- end
- end
- Notify(Value and "✅ Ativado" or "❌ Desativado", "TeamCheck " .. (Value and "ligado" or "desligado"), 2)
- end
- })
- local MeatESPSection = EspTab:Section({
- Title = "🥩 ESP de Carnes"
- })
- MeatESPSection:Toggle({
- Title = "ESP de Carnes",
- Description = "Mostra carnes no mapa",
- Default = false,
- Callback = function(Value)
- Config.EspMeatActive = Value
- if Value then
- EspCarnesStatusLabel:Set("🥩 ESP Carnes - Ligado")
- startMeatESP()
- Notify("✅ Ativado", "ESP Carnes ligado", 2)
- else
- EspCarnesStatusLabel:Set("🥩 ESP Carnes - Desligado")
- stopMeatESP()
- Notify("❌ Desativado", "ESP Carnes desligado", 2)
- end
- end
- })
- --// ========== ABA TELEPORT ========== //
- print("🚀 Criando aba Teleport...")
- local TeleportTab = Window:Tab({
- Title = "Teleport",
- Icon = "navigation"
- })
- local QuickTPSection = TeleportTab:Section({
- Title = "🍖 Teleportes Rápidos"
- })
- QuickTPSection:Button({
- Title = "TP para Carne Mais Próxima",
- Description = "Teleporta para a carne mais perto",
- Callback = function()
- local meat, distance = findNearestMeat()
- if not meat then
- Notify("❌ Erro", "Nenhuma carne encontrada!", 2)
- return
- end
- safeTeleport(CFrame.new(meat.Position + Vector3.new(0, 3, 0)), "Carne")
- Notify("✅ Teleportado", string.format("Carne a %.0fm", distance), 2)
- end
- })
- local SpawnTPSection = TeleportTab:Section({
- Title = "🏠 Teleporte para Spawn"
- })
- SpawnTPSection:Button({
- Title = "Voltar ao Spawn",
- Description = "TP para seu spawn inicial",
- Callback = function()
- if not LastSpawnPosition then
- Notify("❌ Erro", "Spawn não detectado!", 2)
- return
- end
- safeTeleport(LastSpawnPosition, "Spawn")
- Notify("✅ Teleportado", "Voltou ao spawn!", 2)
- end
- })
- --// ========== ABA CONFIGURAÇÕES ========== //
- print("⚙️ Criando aba Configurações...")
- local SettingsTab = Window:Tab({
- Title = "Configurações",
- Icon = "settings"
- })
- local AboutSection = SettingsTab:Section({
- Title = "ℹ️ Sobre o Script"
- })
- AboutSection:Label({Text = "🦖 Pré-história Hub"})
- AboutSection:Label({Text = "Desenvolvedor: NickZScripts"})
- AboutSection:Label({Text = "Versão: " .. ScriptVersion})
- AboutSection:Label({Text = "Interface: WindUI"})
- AboutSection:Label({Text = ""})
- AboutSection:Label({Text = "✨ Funcionalidades:"})
- AboutSection:Label({Text = "✅ Auto Farm de Cristais"})
- AboutSection:Label({Text = "✅ Auto Coleta"})
- AboutSection:Label({Text = "✅ ESP de Jogadores"})
- AboutSection:Label({Text = "✅ ESP de Carnes"})
- AboutSection:Label({Text = "✅ Teleportes Rápidos"})
- --// ========== AUTO FARM LOOP ========== //
- print("🔄 Iniciando sistema de Auto Farm...")
- task.spawn(function()
- local index = 1
- while task.wait(Config.CheckDelay) do
- if Config.AutoFarm then
- local currentLevel = getDinoLevelSilent()
- if currentLevel >= 60 then
- Config.AutoFarm = false
- AutoFarmStatusLabel:Set("💎 Auto Farm - Desligado")
- Notify("✅ Completo", "Nível 60 atingido!", 3)
- else
- local crystals = getSortedCrystals()
- if #crystals > 0 then
- for _, c in ipairs(crystals) do
- if not Config.AutoFarm or not c or not c.Parent then break end
- teleportToCrystal(c)
- local fixarConexao = RunService.Heartbeat:Connect(function()
- if Config.AutoFarm and c and c:IsDescendantOf(workspace) then
- local char = getCharacter()
- if char and char.PrimaryPart then
- char.PrimaryPart.CFrame = CFrame.new(c.Position + Vector3.new(0, 4.5, 0))
- end
- end
- end)
- local elapsed = 0
- while c:IsDescendantOf(workspace) and elapsed < 12 and Config.AutoFarm do
- task.wait(Config.CheckDelay)
- elapsed = elapsed + Config.CheckDelay
- end
- fixarConexao:Disconnect()
- task.wait(Config.DelayBetweenCrystals)
- end
- else
- index = (index % #Config.PatrulhaPontos) + 1
- teleportTo(Config.PatrulhaPontos[index])
- task.wait(2)
- end
- end
- end
- end
- end)
- --// ========== AUTO COLETA ========== //
- print("🔄 Iniciando sistema de Auto Coleta...")
- RunService.Heartbeat:Connect(function()
- if not (Config.AutoFarm or Config.AutoColeta) then return end
- if not Config.podeExecutar then return end
- Config.podeExecutar = false
- local root = getHumanoidRootPart()
- if root then
- for _, obj in ipairs(workspace:GetDescendants()) do
- if obj:IsA("ProximityPrompt") and obj.Parent and obj.Parent:IsA("BasePart") then
- if obj.Enabled and (obj.Parent.Position - root.Position).Magnitude <= Config.raioDeColeta then
- pcall(function()
- fireproximityprompt(obj)
- end)
- end
- end
- end
- end
- task.delay(Config.delayEntreTentativas, function()
- Config.podeExecutar = true
- end)
- end)
- --// ========== FINALIZAÇÃO ========== //
- print("="..string.rep("=", 60))
- print("✅ SCRIPT CARREGADO COM SUCESSO!")
- print("="..string.rep("=", 60))
- print("📌 Versão: " .. ScriptVersion)
- print("🎮 Jogador: " .. LocalPlayer.Name)
- print("📊 Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
- print("="..string.rep("=", 60))
- Notify("🦖 Bem-vindo!", "Script carregado com sucesso!\nVersão: " .. ScriptVersion, 5)
- task.wait(1)
- print("🎉 Tudo pronto! Aproveite o script!")
Advertisement
Add Comment
Please, Sign In to add comment