Nevzyn

Untitled

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