local Players = game:GetService("Players") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") local VirtualInputManager = game:GetService("VirtualInputManager") -- ================= การตั้งค่า ================= local settings = { -- Hitbox & Highlight headHitboxEnabled = false, highlightEnabled = false, hitboxSize = Vector3.new(4, 4, 4), highlightColor = Color3.fromRGB(255, 0, 0), -- Auto Farm autoFarmResources = false, autoFarmMaterials = false, autoFarmDeer = false, autoFarmWeaponCrates = false, autoFarmFoodCrates = false, continuousZombieTeleport = false, -- ทรัพยากรที่เลือกเก็บ selectedResources = { Rock = true, Stick = true, Plastic = true, Metal = true, Cloth = true, Blueberries = true }, -- เทเลพอร์ต teleportHeight = 5, teleportDelay = 1.5, waitAfterTeleport = 0.5, zombieTeleportDistance = 20, teleportInterval = 1 } local zombieHighlights, zombieHitboxes = {}, {} local teleportingZombies = {} -- ================= ฟังก์ชัน ================= local function preventRagdoll() if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) humanoid:ChangeState(Enum.HumanoidStateType.Running) humanoid.AutoRotate = true end end local function stableTeleport(cframe) preventRagdoll() humanoidRootPart.CFrame = cframe + Vector3.new(0, settings.teleportHeight, 0) task.wait(settings.waitAfterTeleport) preventRagdoll() end local function getCFrame(item) if item:IsA("BasePart") then return item.CFrame end if item:IsA("Model") then if item.PrimaryPart then return item.PrimaryPart.CFrame elseif item:FindFirstChild("HumanoidRootPart") then return item.HumanoidRootPart.CFrame elseif item:FindFirstChild("Head") then return item.Head.CFrame else local parts = {} for _, p in ipairs(item:GetDescendants()) do if p:IsA("BasePart") then table.insert(parts, p.Position) end end if #parts > 0 then local sum = Vector3.new() for _, pos in ipairs(parts) do sum += pos end return CFrame.new(sum / #parts) end end end end local function shouldFarmItem(item) for name, enabled in pairs(settings.selectedResources) do if enabled and string.find(item.Name, name) then return true end end end -- ================= ฟังก์ชันกดปุ่มอัตโนมัติ ================= local function performAutoClick() if settings.autoFarmResources or settings.autoFarmMaterials or settings.autoFarmWeaponCrates or settings.autoFarmFoodCrates then VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game) task.wait(0.1) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game) end end -- ================= Highlight & Hitbox ================= local function createZombieHighlight(zombie) if zombieHighlights[zombie] then return end local h = Instance.new("Highlight") h.Name = "ZombieHighlight" h.FillColor = settings.highlightColor h.FillTransparency = 0.7 h.OutlineColor = settings.highlightColor h.OutlineTransparency = 0.3 h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop h.Adornee = zombie h.Parent = zombie h.Enabled = settings.highlightEnabled zombieHighlights[zombie] = h end local function updateZombies() local folder = workspace:FindFirstChild("Zombies") if not folder then return end for _, z in pairs(folder:GetChildren()) do if z:IsA("Model") then if settings.highlightEnabled and not zombieHighlights[z] then createZombieHighlight(z) end if settings.headHitboxEnabled and z:FindFirstChild("Head") then local head = z.Head head.Size = settings.hitboxSize head.CanCollide = false head.Transparency = 0.3 if not head:FindFirstChild("HitboxGlow") then local glow = Instance.new("PointLight") glow.Name = "HitboxGlow" glow.Color = Color3.fromRGB(0, 255, 255) glow.Brightness = 2 glow.Range = 8 glow.Parent = head end zombieHitboxes[z] = true else if zombieHitboxes[z] and z:FindFirstChild("Head") then local head = z.Head head.Size = Vector3.new(1,1,1) head.CanCollide = true head.Transparency = 0 local g = head:FindFirstChild("HitboxGlow") if g then g:Destroy() end zombieHitboxes[z] = nil end end if zombieHighlights[z] then zombieHighlights[z].Enabled = settings.highlightEnabled end end end for z, h in pairs(zombieHighlights) do if not z.Parent or z.Parent ~= folder then h:Destroy() zombieHighlights[z] = nil zombieHitboxes[z] = nil teleportingZombies[z] = nil end end end -- ================= ฟังก์ชันเทเลพอร์ตซอมบี้ ================= local function continuousZombieTeleport() local folder = workspace:FindFirstChild("Zombies") if not folder then return end local playerPos = humanoidRootPart.Position local playerLook = humanoidRootPart.CFrame.LookVector local centerPos = playerPos + (playerLook * settings.zombieTeleportDistance) centerPos = Vector3.new(centerPos.X, playerPos.Y, centerPos.Z) local zombieCount = 0 for _, zombie in pairs(folder:GetChildren()) do if zombie:IsA("Model") and zombie:FindFirstChild("HumanoidRootPart") then local zombieRoot = zombie.HumanoidRootPart local zombiePos = zombieRoot.Position local distance = (playerPos - zombiePos).Magnitude if distance > 25 then zombieRoot.CFrame = CFrame.new(centerPos) local zombieHumanoid = zombie:FindFirstChild("Humanoid") if zombieHumanoid then zombieHumanoid.WalkSpeed = 0 task.delay(1, function() if zombieHumanoid and zombieHumanoid.Parent then zombieHumanoid.WalkSpeed = 12 end end) end zombieCount = zombieCount + 1 end teleportingZombies[zombie] = true end end end -- ================= ลูปกดปุ่มอัตโนมัติ ================= task.spawn(function() while true do performAutoClick() task.wait(0.5) end end) -- ================= ลูปเทเลพอร์ตซอมบี้ ================= task.spawn(function() while true do if settings.continuousZombieTeleport then pcall(function() continuousZombieTeleport() end) end task.wait(settings.teleportInterval) end end) -- ================= ลูปหลัก ================= task.spawn(function() while true do task.wait(0.5) preventRagdoll() if settings.autoFarmResources then local f = workspace:FindFirstChild("Resources") if f then for _, i in pairs(f:GetChildren()) do if shouldFarmItem(i) and i:IsA("Model") then local c = getCFrame(i) if c then stableTeleport(c) task.wait(settings.teleportDelay) end end if not settings.autoFarmResources then break end end end end if settings.autoFarmMaterials then local f = workspace:FindFirstChild("Materials") if f then for _, i in pairs(f:GetChildren()) do if i:IsA("Model") then local c = getCFrame(i) if c then stableTeleport(c) task.wait(settings.teleportDelay) end end if not settings.autoFarmMaterials then break end end end end if settings.autoFarmDeer then local n = workspace:FindFirstChild("NPC_Workspace") if n then local deer = n:FindFirstChild("NPCs") and n.NPCs:FindFirstChild("Deer") if deer and deer:IsA("Model") then local c = getCFrame(deer) if c then stableTeleport(c) task.wait(4) end end end end if settings.autoFarmWeaponCrates then local f = workspace:FindFirstChild("WeaponCrates") if f then for _, i in pairs(f:GetChildren()) do if i:IsA("Model") then local c = getCFrame(i) if c then stableTeleport(c) task.wait(settings.teleportDelay) end end if not settings.autoFarmWeaponCrates then break end end end end if settings.autoFarmFoodCrates then local f = workspace:FindFirstChild("FoodCrates") if f then for _, i in pairs(f:GetChildren()) do if i:IsA("Model") then local c = getCFrame(i) if c then stableTeleport(c) task.wait(settings.teleportDelay) end end if not settings.autoFarmFoodCrates then break end end end end end end) task.spawn(function() while true do task.wait(1); updateZombies() end end) -- ================= UI ================= local screenGui = Instance.new("ScreenGui") screenGui.Name = "ThaiHelperGUI" screenGui.Parent = player:WaitForChild("PlayerGui") screenGui.ResetOnSpawn = false local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 250, 0, 400) mainFrame.Position = UDim2.new(0, 10, 0, 10) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.BorderSizePixel = 2 mainFrame.BorderColor3 = Color3.fromRGB(80, 80, 80) mainFrame.Parent = screenGui local hideButton = Instance.new("TextButton") hideButton.Text = "▲ ซ่อน UI ▲" hideButton.Size = UDim2.new(0, 80, 0, 25) hideButton.Position = UDim2.new(0, 270, 0, 10) hideButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60) hideButton.TextColor3 = Color3.fromRGB(255, 255, 255) hideButton.Font = Enum.Font.GothamBold hideButton.Parent = screenGui local isUIVisible = true hideButton.MouseButton1Click:Connect(function() isUIVisible = not isUIVisible mainFrame.Visible = isUIVisible hideButton.Text = isUIVisible and "▲ ซ่อน UI ▲" or "▼ แสดง UI ▼" end) local function makeButton(text, ypos, callback) local b = Instance.new("TextButton") b.Text = text b.Size = UDim2.new(0.9, 0, 0, 30) b.Position = UDim2.new(0.05, 0, 0, ypos) b.BackgroundColor3 = Color3.fromRGB(80, 80, 80) b.TextColor3 = Color3.fromRGB(255, 255, 255) b.Font = Enum.Font.GothamBold b.Parent = mainFrame b.MouseButton1Click:Connect(callback) return b end local title = Instance.new("TextLabel") title.Text = "🐉 ระบบช่วยเล่นไทย 🐉" title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundColor3 = Color3.fromRGB(60, 60, 60) title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Font = Enum.Font.GothamBold title.Parent = mainFrame local hitboxButton = makeButton("🔴 ขยายหัวซอมบี้: ปิด",40,function() settings.headHitboxEnabled = not settings.headHitboxEnabled hitboxButton.Text = settings.headHitboxEnabled and "🟢 ขยายหัวซอมบี้: เปิด" or "🔴 ขยายหัวซอมบี้: ปิด" hitboxButton.BackgroundColor3 = settings.headHitboxEnabled and Color3.fromRGB(0,100,0) or Color3.fromRGB(80,80,80) updateZombies() end) local highlightButton = makeButton("🔴 เน้นซอมบี้: ปิด",80,function() settings.highlightEnabled = not settings.highlightEnabled highlightButton.Text = settings.highlightEnabled and "🟢 เน้นซอมบี้: เปิด" or "🔴 เน้นซอมบี้: ปิด" highlightButton.BackgroundColor3 = settings.highlightEnabled and Color3.fromRGB(100,0,0) or Color3.fromRGB(80,80,80) updateZombies() end) local farmButtons = { {name="📦 เก็บทรัพยากร", setting="autoFarmResources", y=120}, {name="🔩 เก็บวัสดุ", setting="autoFarmMaterials", y=160}, {name="🦌 ล่ากวาง", setting="autoFarmDeer", y=200}, {name="🔫 เก็บหีบอาวุธ", setting="autoFarmWeaponCrates", y=240}, {name="🍎 เก็บหีบอาหาร", setting="autoFarmFoodCrates", y=280}, {name="🌀 เทเลพอร์ตซอมบี้", setting="continuousZombieTeleport", y=320} } for _,info in ipairs(farmButtons) do makeButton("🔴 "..info.name..": ปิด",info.y,function(btn) settings[info.setting] = not settings[info.setting] btn.Text = settings[info.setting] and "🟢 "..info.name..": เปิด" or "🔴 "..info.name..": ปิด" btn.BackgroundColor3 = settings[info.setting] and Color3.fromRGB(0,80,0) or Color3.fromRGB(80,80,80) if info.setting == "continuousZombieTeleport" and not settings[info.setting] then for zombie, _ in pairs(teleportingZombies) do if zombie:FindFirstChild("Humanoid") then zombie.Humanoid.WalkSpeed = 12 end end teleportingZombies = {} end end) end print("✅ ระบบช่วยเล่นไทยโหลดสำเร็จ! - พร้อมใช้งาน")