-- deobf by Suda
-- deobf by Suda
-- deobf by Suda
-- deobf by Suda
-- deobf by Suda
do
local stubFalse = function()
return false
end
local stubNoop = function()
end
if type(fn12) ~= "function" then
fn12 = stubFalse
end
if type(fn13) ~= "function" then
fn13 = stubFalse
end
if type(fn17) ~= "function" then
fn17 = function()
return "{}"
end
end
if type(fn14) ~= "function" then
fn14 = function(payload)
return payload
end
end
if type(fn21) ~= "function" then
fn21 = stubNoop
end
if type(fn22) ~= "function" then
fn22 = stubNoop
end
if type(fn23) ~= "function" then
fn23 = stubNoop
end
if type(fn24) ~= "function" then
fn24 = function()
return true, { Body = "{}" }
end
end
if type(fn25) ~= "function" then
fn25 = function()
return true
end
end
if type(fn19) ~= "function" then
fn19 = function(s)
return s
end
end
if type(handlers) ~= "table" then
handlers = {}
end
placeId = placeId or game.PlaceId
jobId = jobId or game.JobId
c = c or 0
if type(cloneref) == "function" then
local clonerefRaw = cloneref
cloneref = function(inst)
if inst == nil then
return nil
end
return clonerefRaw(inst)
end
elseif cloneref == nil then
cloneref = function(inst)
return inst
end
end
end
local PYHubEntry = function(loaderUrl, nodeUrl, scriptId, scriptVersion, _unusedScriptKey, extraC, extraD, sigSq, sigRp, debugPrint, progressPrint, reportFunc)
progressPrint = progressPrint or function(msg)
return function()
end
end
reportFunc = reportFunc or function()
end
debugPrint = debugPrint or function()
end
local v2 = progressPrint("正在初始化...")
local tbl = { p = 40 }
tbl.m = "\174yM\25\4q\210\162;\233)\184\230.~\171\229~\193T\17"
reportFunc(tbl)
local s = "\174)\197\28b\161\231\157za:\26\8\11'\20770lw\195\232\156S\234*\203XvJ\203n"
local v3 = "\130`$\217\169?\140\0268\1442F^\218\207\232"
if scriptId ~= s or scriptVersion ~= v3 then
end
local localPlayer = game:GetService("Players").LocalPlayer
local concat = table.concat
local sub = string.sub
local byte = string.byte
local char = string.char
local lshift = bit32.lshift
local rshift = bit32.rshift
local band = bit32.band
local bxor = bit32.bxor
local rrotate = bit32.rrotate
local bnot = bit32.bnot
local cloneFunc = clonefunction or function(...) return ... end
local v4 = cloneFunc(http and http.request or request or getfenv()["http" ])
local v5 = cloneFunc(debug.traceback)
local v6 = cloneFunc(debug.info)
local v7 = cloneFunc(pcall)
local v8 = cloneFunc(getfenv)
local v9 = cloneFunc(tostring)
local v10 = identifyexecutor()
local v11 = v6(1, "f")
local script = v8(0).script
local n2 = #v5():split("\n") - 4
v2()
local v12 = progressPrint("正在检查运行环境...")
local flag3 = fn12(concat) or fn12(sub) or fn12(byte) or fn12(char) or fn12(lshift) or fn12(rshift) or fn12(band) or fn12(bxor) or fn12(rrotate) or false
if not flag3 then
local find = table.find
flag3 = fn12(v4) ~= find({ "Xeno", "Helios Mac" }, v10) ~= nil
end
flag3 = flag3 or false
if flag3 or fn12(setmetatable) or fn12(v5) or fn12(v6) or fn12(v7) or fn12(task.wait) or fn12(math.floor, "fr") or fn12(math.random, "fr") or fn12(v8, "fr") then
end
if fn13(concat) or fn13(sub) or fn13(byte) or fn13(char) or fn13(lshift) or fn13(rshift) or fn13(band) or fn13(bxor) or fn13(rrotate) or fn13(bnot) or fn13(v4) or fn13(clonefunction) or fn13(setmetatable) or fn13(v5) or fn13(v6) or fn13(v7) or fn13(task.wait) or fn13(math.floor) or fn13(math.random) or fn13(v8) or fn13(v9) or fn13(identifyexecutor) then
end
if #v5():split("\n") ~= 4 + n2 then
end
if v6(1, "f") ~= v11 or v8(0).script ~= script then
end
-- 卡密 / 在线验证已移除:不再连接验证服务器或心跳
v16 = ""
k = nil
i = 0
e2 = ""
c = c or 0
v40 = nil
reportFunc({ s = true })
if v40 then
v43()
a = v40.a
b = v40.b
v = i
d = v40.d
f = v40.f
flag2 = true
g = v40.g
u = v40.h.u
d2 = v40.h.d
a2 = v40.h.a
b2 = v40.h.b
p = v40.h.p
else
reportFunc({ s = true })
end
fn2 = function(arg11, arg12)
local v43 = assert
local flag8 = type(arg11) == "string"
v43(flag8, "\229\235q!WBC2W6\155\247n%\222B\132`Q\171>+\174\175&\134\20\17G\215\229\7\163\227h\19\1\187\150\254\195\145\15\17\2389Z\164\252&\19\253\189\25l")
local v44 = assert
local flag9 = type(arg12) == "string"
v44(flag9, "x\206P\234f\147-\201\209\215YS\174\223\129&0\128G\0\151\232M^\198\203|\187\249\2378\246J\2297\198\219\15\249+\176\r\165Y\229`Z\21\224\224\227\156\4\17\150\196")
return "\20\160Q\200,X\246\171Zo92N" .. arg11 .. "\229r\132\155I\133\240\7nM\129" .. arg12 .. "\233\234<.\3\167E\137-\225H$M"
end
fn4 = function(arg11)
local v43 = assert
local flag8 = type(arg11) == "table"
v43(flag8, "\246`0K\174\196\154q\250k7\12\197\215I-\243cn(\144/S?\184\188\8\183\132\167\175/%3\229Z\180\188y\159\\\195\191Y\133\148\185-{\150Z\139B%\162")
local v44 = assert
local flag9 = type(arg11.Url) == "string"
v44(flag9, "\3D\6\225\214\1817g\214\211\6\21L^mk\229\238\172\242\179\130\224\201\127@7\155\131y\"\16\27iQr\173/\130T\132\213IqmO\135\191\252\242\146\208")
if arg11["\137\23\138!\210\176\15"] == nil then
local str6 = "\1271\"\218$+\145"
arg11[str6] = {}
end
if arg11["\230IA\27t\199"] == nil then
local str6 = "^\172[Q2\188"
arg11[str6] = "GET"
end
local v45, v46, v47 = fn24(arg11, true, v6(1, "f"), #v5():split("\n") - (1 - 2 * (3875480235 + 1251298450 + 3463155907) % 4294967296) * (1 + ((5166075928 + 3423858664 + 3790215179 + bit32.band(6155 * 65535 + bit32.lshift(bit32.band(403367925 + 57834 * 65535, 65535), 16), 4294967295) % 4294967296) % 4294967296 * 67108864 + (1275608216 + 3019359080 + bit32.band(1293 * 0 + bit32.lshift(bit32.band(1293 * bit32.rshift(0, 16) + 8541 * 0, 65535), 16), 4294967295) % 4294967296) % 4294967296) / 4503599627370496) * 2 ^ ((2022214747 + 2332765280 + 4234955590) % 4294967296 - 1023))
if not v45 then
if v46 == ",M\223\183<\239" then
return { success = false, reason = "request failed", error_message = v47 }
end
end
if not v45 then
return { success = false, reason = "tampering detected" }
end
return { success = true, response = v46 }
end
fn = function(arg11, arg12)
local v43 = assert
local flag8 = type(arg11) == "string"
v43(flag8, "\215\153SL\193\138\210\129\242V\219PL/\177\170 \21\134\192z\131\208a\192\21\157\2498\15\25\"0\200\190\23\182\230\245\178\r\151\148\159\234\179l\201\190\198\2169\22\238[\216")
local v44 = assert
local flag9 = type(arg12) == "table"
v44(flag9, "\207\225\158\250\2223YLu\17\239\210\190\242r\216qiml\189Ntg\198V1\170\244\145r\5\128\0\1289/\196\182\237\201N3H\193qc\255\207\165z\129\25L\218")
local v45 = fn4
local Settings = {}
local v46 = nodeUrl
Settings.Url = v46 .. "\167+q\187\248\2118\190\247\148\11\255\4\242\167\2511Z\198\156\128\31\167u"
Settings.Method = "\191i\6\2"
Settings.Body = fn17({ d = v14(fn17({ u = arg11, d = fn17(arg12), s = s }), v16), c = c })
local headers = {}
local str6 = "\2348\150-\206\251\\B\14\181\228\150"
headers[str6] = "\219KZ*\202\197\183\20\199\220\159\21\205~3="
Settings.Headers = headers
local v47 = v45(Settings)
if not v47.success then
return { success = false, fail_reason = v47.reason }
end
local v48, v49 = v7(function()
local v48 = v15
local response = v47.response
local v49 = v48(response["\8p\205\203"], v16)
return nil
end)
if not v48 then
local tbl10 = { success = false }
tbl10.fail_reason = "S\183|v\192\177\27TAn\235\212\159\237"
return tbl10
end
if not v49.success then
return { success = false, fail_reason = v49.reason }
end
return { success = true }
end
fn5 = function(arg11)
local v43 = assert
local flag8 = type(arg11) == "string"
v43(flag8, ";\226e\175@j\r!\8<\196E\178\215VO\180\169\12\2231':u\190\179\202\154^\213tVQ6e2\211\199\132S\223D\211A\"F\n\r\161\221\210<\23")
end
fn3 = function(arg11, arg12)
local v43 = assert
local flag8 = type(arg11) == "string"
v43(flag8, ":\174;?),\151\205-\190\209\n\214\239\189\18\253lp~\4\186\144\16N:M\202\172\147w\178\29\144?\241W\31a\22\191\204\202\197\236\144r\255\244\174\132]\252\135\182\185K7$\186\"\207\239S=")
local v44 = assert
local flag9 = type(arg12) == "function"
v44(flag9, "\251\179q\174\127}\172M\209\207\230L\196\176\216\193\207\240$@\200L(\251G\200e\201\1340\1\226\179\\\253\155\199`1\193l\160\245\134.4\166\43\146\214R\176\14\248Tt\161\165\136\188t7\216\210`\249")
handlers[arg11] = arg12
end
do
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
localPlayer2 = Players.LocalPlayer
pcall(function()
local antiCheat = ReplicatedStorage:FindFirstChild("AntiCheat", true)
if antiCheat and type(antiCheat) == "table" then
for k2, v35 in pairs(antiCheat) do
if type(v35) == "function" then
antiCheat[k2] = function(...)
local ok, result = pcall(v35, ...)
if ok then
return result
end
return true
end
end
end
end
end)
pcall(function()
local Ratchet = require(ReplicatedStorage:FindFirstChild("Ratchet", true))
local Sha256 = require(ReplicatedStorage:FindFirstChild("Sha256", true))
local v35 = getmetatable(Ratchet)
if v35 and v35.__index and not v35.__index.__patched then
v35.__index.catchUp = function(arg11, arg12)
while arg11.index < arg12 do
arg11:advance()
end
return true
end
v35.__index.respond = function(arg11, arg12)
return Sha256("resp|" .. tostring(arg11.state) .. "|" .. tostring(arg11.index) .. "|" .. tostring(arg12))
end
v35.__index.__patched = true
end
end)
end
if hookmetamethod and newcclosure then
local v27 = nil
local function fn38(...)
local arg11, arg12, arg13, arg14, arg15, descendant = ...
descendant = descendant or arg11
if arg11 == game and (arg12 == "GetService" or arg12 == "getService") then
return function(arg13, arg14)
if arg14 == "InsertService" or arg14 == "Selection" or arg14 == "Stats" then
return nil
end
return v27(arg11, arg14)
end
end
return v27(arg11, arg12)
end
v27 = hookmetamethod
v27 = v27(game, "__index", newcclosure(fn38))
end
local Players, ReplicatedStorage, RunService, localPlayer3, fn38, fn39, fn40, lib, tbl8, fn41
local fn42, v27, connection, flag8, v28, fn43, Settings, fn44, fn45, textButton
local flag9, flag10, fn46, fn47, fn48, fn49, tbl10, fn50, tbl11, tbl12
local tbl13, tbl14, tbl15, fn51, tbl16, tbl17, fn52, fn53, PoliceSettings, fn54
local MovementSettings, fn55, fn56, fn57, fn58, flag11, getSpeedLimitAtPos, fn59
do
local FlyState, fn60
do
local UserInputService, GuiService, ContextActionService, HttpService, Workspace, signal, fn61, v29, remote, playerEvent, playerFunc, tbl21, fn62, fn63, fn64, fn65, tbl22, connection2, Character, Core, module, fn66, v30, tbl23, connection3, screenGui, connection4, udim2, fn67, fn68, fn69, activate, activateServer, namecall, charPivotTo, notify, fn70, fn71, fn72, fn73, fn74, fn75, fn76, fn77, fn78, fn79, fn80, fn81, fn82, tbl24, fn83, fn84, fn85, n10, circle, fn86, circle2, line, tbl25, tbl26, fn87, fn88, fn89, fn90, tbl27, fn91, tbl28, fn92, fn93, fn94, thread, v31, controls, fn95, fn96, fn97, fn98, fn99, cloneFunc0, cloneFunc1, cloneFunc2, cloneFunc3
if hookmetamethod and newcclosure and getnamecallmethod then
do
local v32 = nil
local function cloneFunc4(arg11, ...)
local v33 = table.pack(...)
local v34 = getnamecallmethod()
if v34 == "Kick" and arg11 == localPlayer2 then
return
end
local v35
if v34 == "FireServer" and arg11.Name == "PlayerEvent" then
local v36 = ({ ... })[1]
if v36 == "char2" or v36 == "coreGame" or v36 == "vehicleTrack" or v36 == "platform" or v36 == "messageDeliver" or v36 == "runOverVictim" or v36 == "DEBUG2" or v36 == "chatCommand" or v36 == "controlsGuide" then
return
end
if v34 == "InvokeServer" and arg11.Name == "PlayerFunc" then
local tbl29 = { table.unpack(v33, 1, v33.n) }
v35 = tbl29[1]
local flag12 = v35 == "getPlayerData" or v35 == "getPlayerBanHistory"
local flag13 = flag12 or v35 == "getPlayerInGame"
local flag14 = flag13 or v35 == "getPlayerServerEncounters"
local flag15 = flag14 or v35 == "getSecret"
if flag15 then
return true
end
end
else
if not (v34 == "InvokeServer" and arg11.Name == "PlayerFunc") then
return v32(arg11, ...)
end
v35 = ({ ... })[1]
if v35 == "getPlayerData" or v35 == "getPlayerBanHistory" or v35 == "getPlayerInGame" or v35 == "getPlayerServerEncounters" or v35 == "getSecret" then
return true
end
end
return v32(arg11, table.unpack(v33, 1, v33.n))
end
v32 = hookmetamethod
v32 = v32(game, "__namecall", newcclosure(cloneFunc4))
end
Players = game:GetService("Players")
ReplicatedStorage = game:GetService("ReplicatedStorage")
RunService = game:GetService("RunService")
UserInputService = game:GetService("UserInputService")
GuiService = game:GetService("GuiService")
ContextActionService = game:GetService("ContextActionService")
HttpService = game:GetService("HttpService")
Workspace = game:GetService("Workspace")
localPlayer3 = Players.LocalPlayer
if not localPlayer3 then
signal = Players:GetPropertyChangedSignal("LocalPlayer")
signal:Wait()
localPlayer3 = Players.LocalPlayer
end
fn61 = function()
local hui = nil
pcall(function()
if type(gethui) == "function" then
hui = gethui()
end
end)
if hui then
return hui
end
pcall(function()
hui = game:FindService("CoreGui")
end)
if hui then
return hui
end
pcall(function()
hui = localPlayer3:WaitForChild("PlayerGui", 5)
end)
if hui then
return hui
end
pcall(function()
hui = localPlayer3:FindFirstChild("PlayerGui")
end)
return hui
end
v29 = fn61()
remote = ReplicatedStorage:WaitForChild("Remote", 30)
playerEvent = remote and remote:WaitForChild("PlayerEvent", 30)
playerFunc = remote and remote:WaitForChild("PlayerFunc", 30)
local function ensureMinimapCursor(root)
if not root then
return
end
local minimap = root.Name == "Minimap" and root or root:FindFirstChild("Minimap", true)
if not minimap or not minimap:IsA("Frame") or minimap:FindFirstChild("Cursor") then
return
end
local cursor = Instance.new("ImageLabel")
cursor.Name = "Cursor"
cursor.BackgroundTransparency = 1
cursor.ImageTransparency = 1
cursor.AnchorPoint = Vector2.new(0.5, 0.5)
cursor.Position = UDim2.fromScale(0.5, 0.5)
cursor.Size = UDim2.fromOffset(10, 10)
cursor.ZIndex = minimap.ZIndex + 1
cursor.Parent = minimap
end
task.spawn(function()
local playerGui = localPlayer3:FindFirstChild("PlayerGui") or localPlayer3:WaitForChild("PlayerGui", 10)
ensureMinimapCursor(playerGui)
if playerGui then
playerGui.DescendantAdded:Connect(function(descendant)
if descendant.Name == "Minimap" then
task.defer(ensureMinimapCursor, descendant)
end
end)
end
end)
tbl21 = {
["红色"] = Color3.fromRGB(255, 0, 0),
["黄色"] = Color3.fromRGB(255, 255, 0),
["绿色"] = Color3.fromRGB(0, 255, 0),
["蓝色"] = Color3.fromRGB(0, 150, 255),
["紫色"] = Color3.fromRGB(150, 0, 255),
["白色"] = Color3.fromRGB(255, 255, 255),
["黑色"] = Color3.fromRGB(0, 0, 0),
["青色"] = Color3.fromRGB(0, 255, 255),
["橙色"] = Color3.fromRGB(255, 165, 0),
["粉色"] = Color3.fromRGB(255, 105, 180),
}
fn38 = function(arg11)
local n11 = arg11 or 5
return Color3.fromHSV(tick() % n11 / n11, 1, 1)
end
fn39 = function(arg11)
if arg11 == "彩虹色" then
return fn38(5)
end
return tbl21[arg11] or Color3.fromRGB(255, 0, 0)
end
fn40 = function(arg11)
arg11 = arg11 or localPlayer3
local seen = {}
local list = {}
local function add(model)
if model and typeof(model) == "Instance" and model:IsA("Model") and not seen[model] then
seen[model] = true
table.insert(list, model)
end
end
pcall(function()
add(arg11.Character)
end)
pcall(function()
local charactersFolder = Workspace:FindFirstChild("Characters")
if charactersFolder then
add(charactersFolder:FindFirstChild(arg11.Name))
end
end)
for _, character in ipairs(list) do
local humanoid = character:FindFirstChildOfClass("Humanoid") or character:FindFirstChild("Humanoid", true)
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
or character:FindFirstChild("Torso")
or character:FindFirstChild("UpperTorso")
or (humanoid and humanoid.RootPart)
if not humanoidRootPart then
humanoidRootPart = character.PrimaryPart or character:FindFirstChildWhichIsA("BasePart")
end
if humanoidRootPart then
return character, humanoid, humanoidRootPart
end
end
end
fn62 = function(arg11)
local _, v33 = fn40(arg11)
return v33 ~= nil and v33.Health > 0
end
fn63 = function(arg11)
return arg11 and arg11.Team and arg11.Team.Name or "Civilian"
end
fn64 = function()
local v32, v33 = fn40(localPlayer3)
if not v32 or not v33 then
return
end
local tool = v32:FindFirstChildOfClass("Tool")
if tool then
return tool
end
local backpack = localPlayer3:FindFirstChild("Backpack")
if not backpack then
return
end
for _, child in ipairs(backpack:GetChildren()) do
if child:IsA("Tool") then
v33:EquipTool(child)
task.wait(0.1)
return v32:FindFirstChildOfClass("Tool")
end
end
end
if hookfunction and Font and Font.new then
local fontNew = Font.new
pcall(function()
hookfunction(fontNew, function(family, weight, style)
local ok, result = pcall(fontNew, family, weight, style)
if ok then
return result
end
weight = weight or Enum.FontWeight.Medium
style = style or Enum.FontStyle.Normal
ok, result = pcall(fontNew, Enum.Font.GothamMedium, weight, style)
if ok then
return result
end
return Font.fromEnum(Enum.Font.GothamMedium)
end)
end)
end
local windUiSrc = game:HttpGet("https://raw.githubusercontent.com/123fa98/Xi_Pro/refs/heads/main/UI.lua")
lib = loadstring(windUiSrc)()
if not lib then
warn("[PY Hub] WindUI 加载失败,请检查网络或 HttpGet")
return
end
tbl8 = {
randomBg = true,
borderColor = nil,
isBorderRainbow = true,
borderEnabled = false,
}
fn65 = function()
local ok, result = pcall(function()
return readfile("PYHub_Settings.txt")
end)
if ok and result then
local ok2, result2 = pcall(function()
return HttpService:JSONDecode(result)
end)
if ok2 and type(result2) == "table" then
for k2, v32 in pairs(result2) do
tbl8[k2] = v32
end
end
end
end
fn41 = function()
pcall(function()
writefile("PYHub_Settings.txt", HttpService:JSONEncode(tbl8))
end)
end
tbl22 = {
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
"https://raw.githubusercontent.com/PYHub/assets/main/bg.jpg",
}
fn42 = function()
if not tbl8.randomBg or #tbl22 == 0 then
return ""
end
return tbl22[math.random(1, #tbl22)]
end
v27 = nil
connection = nil
connection2 = nil
flag8 = false
v28 = nil
fn43 = function(color, arg11)
local main = v27 and v27.UIElements and v27.UIElements.Main
if not main then
return
end
local mainBorder = main:FindFirstChild("MainBorder")
if not mainBorder then
return
end
local borderGradient = mainBorder:FindFirstChild("BorderGradient")
if not borderGradient then
return
end
mainBorder.Enabled = tbl8.borderEnabled
if connection2 then
connection2:Disconnect()
connection2 = nil
end
if arg11 then
local colorSequence = ColorSequence.new
local tbl29 = {}
local v32 = ColorSequenceKeypoint.new(0, Color3.fromHex("FF0000"))
local v33 = ColorSequenceKeypoint.new(0.16, Color3.fromHex("FFA500"))
local v34 = ColorSequenceKeypoint.new(0.33, Color3.fromHex("FFFF00"))
local v35 = ColorSequenceKeypoint.new(0.5, Color3.fromHex("00FF00"))
local v36 = ColorSequenceKeypoint.new(0.66, Color3.fromHex("0000FF"))
local v37 = ColorSequenceKeypoint.new(0.83, Color3.fromHex("4B0082"))
tbl29[1] = v32
tbl29[2] = v33
tbl29[3] = v34
tbl29[4] = v35
tbl29[5] = v36
tbl29[6] = v37
do
local values = table.pack(ColorSequenceKeypoint.new(1, Color3.fromHex("EE82EE")))
table.move(values, 1, values.n, 7, tbl29)
end
borderGradient.Color = colorSequence(tbl29)
connection2 = RunService.Heartbeat:Connect(function()
if borderGradient.Parent then
borderGradient.Rotation = (borderGradient.Rotation + 1.5) % 360
end
end)
tbl8.isBorderRainbow = true
tbl8.borderColor = nil
else
color = color or Color3.new(1, 1, 1)
mainBorder.Color = color
borderGradient.Color = ColorSequence.new(color)
borderGradient.Rotation = 0
tbl8.isBorderRainbow = false
tbl8.borderColor = nil
end
end
Settings = {
stamina = false,
food = false,
combatBlock = false,
ghost = false,
noRagdoll = false,
noFallDamage = false,
antiPrisonPull = false,
autoMoney = false,
infiniteAmmo = false,
rapidFire = false,
farmer = false,
taxi = false,
bus = false,
autoMission = false,
autoHack = false,
golf = false,
autoCuff = false,
}
Character = nil
Core = nil
module = nil
pcall(function()
local framework = localPlayer3:WaitForChild("PlayerScripts", 15):WaitForChild("Framework", 15)
Character = require(framework:WaitForChild("Character", 15))
Core = require(framework:WaitForChild("Core", 15))
local inventory = framework.Character:FindFirstChild("Inventory")
if inventory then
module = require(inventory)
end
end)
fn66 = function()
RunService.Heartbeat:Connect(function()
if Core then
if Settings.stamina then
pcall(function()
Core.stamina = 100
end)
end
if Settings.food then
pcall(function()
Core.food = 100
end)
end
if Settings.rapidFire then
pcall(fn44)
end
end
if Settings.infiniteAmmo then
local characters = Workspace:FindFirstChild("Characters") and Workspace.Characters:FindFirstChild(localPlayer3.Name)
if characters then
for _, child in ipairs(characters:GetChildren()) do
local config = child:FindFirstChild("Config")
if config then
local ammo = config:FindFirstChild("Ammo")
local totalAmmo = config:FindFirstChild("TotalAmmo")
if ammo then
ammo.Value = math.huge
end
if totalAmmo then
totalAmmo.Value = math.huge
end
end
end
end
end
end)
end
fn44 = function()
if not Settings.rapidFire or not getgc then
return
end
for _, v32 in pairs(getgc(true)) do
if type(v32) == "table" then
if rawget(v32, "SHOOT_MODE") ~= nil then
rawset(v32, "SHOOT_MODE", 2)
end
if rawget(v32, "RPM") ~= nil then
rawset(v32, "RPM", math.huge)
end
end
end
end
v30 = nil
fn45 = function(combatBlock)
Settings.combatBlock = combatBlock
if combatBlock and not v30 and hookmetamethod and newcclosure then
v30 = hookmetamethod(game, "__namecall", newcclosure(function(arg11, ...)
local v32 = table.pack(...)
local tbl29 = { ... }
local v33 = getnamecallmethod()
if Settings.combatBlock and v33 == "FireServer" and tbl29[1] == "combatMode" then
return nil
end
return v30(arg11, table.unpack(v32, 1, v32.n))
end))
end
end
tbl23 = {}
connection3 = nil
screenGui = nil
textButton = nil
connection4 = nil
flag9 = false
flag10 = false
udim2 = UDim2.new(0, 100, 0.5, -25)
fn67 = function()
for _, v32 in ipairs(tbl23) do
pcall(function()
v32:Disconnect()
end)
end
tbl23 = {}
end
fn68 = function(arg11, arg12)
if not arg11 then
return
end
pcall(function()
arg11:SetAttribute("Invisible", arg12 or nil)
for _, descendant in ipairs(arg11:GetDescendants()) do
if descendant:IsA("BasePart") and descendant.Name ~= "HumanoidRootPart" then
descendant.LocalTransparencyModifier = arg12 and 0.55 or 0
descendant.Material = arg12 and Enum.Material.ForceField or Enum.Material.SmoothPlastic
elseif descendant:IsA("Decal") and descendant.Name == "face" then
descendant.Transparency = arg12 and 0.55 or 0
end
end
end)
end
fn69 = function()
if not textButton then
return
end
textButton.Text = Settings.ghost and "隐身: 开" or "隐身: 关"
textButton.TextColor3 = Settings.ghost and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0)
end
fn46 = function(ghost)
Settings.ghost = ghost
local character = localPlayer3.Character
if not character then
return
end
if ghost then
pcall(function()
local stuff = ReplicatedStorage:FindFirstChild("Stuff")
local locations = stuff and stuff:FindFirstChild("Locations")
locations = locations and locations:GetChildren()[1] or nil
if playerFunc then
playerFunc:InvokeServer("hideCharacterLocation", locations)
end
end)
if module and module.canEquipSlot then
pcall(function()
module.canEquipSlot(true)
end)
end
if Character and Character.lockHumanoidState then
pcall(function()
Character.lockHumanoidState("ghostMode", nil)
end)
end
pcall(function()
GuiService.TouchControlsEnabled = true
ContextActionService:UnbindAction("LoadingGuiNoResetOnDeath")
ContextActionService:UnbindAction("DisableCameraMovementNoResetOnDeath")
end)
if connection3 then
connection3:Disconnect()
end
connection3 = RunService.RenderStepped:Connect(function()
if Settings.ghost and localPlayer3.Character then
end
end)
else
if connection3 then
connection3:Disconnect()
connection3 = nil
end
pcall(function()
if playerFunc then
playerFunc:InvokeServer("hideCharacterLocation", false)
end
end)
end
end
fn47 = function()
if connection4 then
connection4:Disconnect()
connection4 = nil
end
if screenGui then
screenGui:Destroy()
screenGui = nil
textButton = nil
end
end
fn48 = function()
if not flag10 then
return
end
screenGui = Instance.new("ScreenGui")
screenGui.Name = "GhostQuickSwitch"
screenGui.ResetOnSpawn = false
local v32 = screenGui
local v33 = v29
local v34
if v29 then
v34 = v33
else
v34 = nil
end
v32.Parent = v34
textButton = Instance.new("TextButton")
textButton.Size = UDim2.new(0, 80, 0, 35)
textButton.Position = udim2
textButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
textButton.BackgroundTransparency = 0.4
textButton.BorderSizePixel = 0
textButton.Font = Enum.Font.GothamSemibold
textButton.TextSize = 12
textButton.Parent = screenGui
textButton.Active = not flag9
textButton.Draggable = not flag9
local uiCorner = Instance.new("UICorner")
uiCorner.CornerRadius = UDim.new(0, 8)
uiCorner.Parent = textButton
local uiStroke = Instance.new("UIStroke")
uiStroke.Name = "RainbowStroke"
uiStroke.Thickness = 1.5
uiStroke.Parent = textButton
connection4 = RunService.RenderStepped:Connect(function()
if uiStroke.Parent then
uiStroke.Color = fn38(5)
end
end)
textButton.MouseButton1Click:Connect(function()
end)
textButton:GetPropertyChangedSignal("Position"):Connect(function()
if not flag9 then
udim2 = textButton.Position
end
end)
end
activate = nil
activateServer = nil
pcall(function()
local Ragdoll = require(ReplicatedStorage.Modules.Ragdoll)
activate = Ragdoll.activate
activateServer = Ragdoll.activateServer
Ragdoll.activate = function(arg11, arg12, arg13, ...)
if Settings.noRagdoll and arg12 then
return
end
local v32 = activate
local v33 = table.pack(...)
v33.n = 4 + v33.n - 1
table.move(v33, 1, v33.n, 4, v33)
v33[1] = arg11
v33[2] = arg12
v33[3] = arg13
return v32(table.unpack(v33, 1, v33.n))
end
if activateServer then
Ragdoll.activateServer = function(arg11, arg12, arg13, ...)
if Settings.noRagdoll and arg12 then
return
end
local v32 = activateServer
local v33 = table.pack(...)
v33.n = 4 + v33.n - 1
table.move(v33, 1, v33.n, 4, v33)
v33[1] = arg11
v33[2] = arg12
v33[3] = arg13
return v32(table.unpack(v33, 1, v33.n))
end
end
end)
namecall = nil
pcall(function()
local v32 = getrawmetatable(game)
namecall = v32.__namecall
setreadonly(v32, false)
v32.__namecall = newcclosure(function(arg11, ...)
local v33 = table.pack(...)
local tbl29 = { ... }
local v34 = getnamecallmethod()
if Settings.noFallDamage and v34 == "FireServer" and tostring(arg11) == "PlayerEvent" and tbl29[1] == "takeDamage" then
return nil
end
return namecall(arg11, table.unpack(v33, 1, v33.n))
end)
setreadonly(v32, true)
end)
charPivotTo = nil
notify = nil
fn49 = function(antiPrisonPull)
Settings.antiPrisonPull = antiPrisonPull
pcall(function()
local Algorithms = require(ReplicatedStorage.Modules.Algorithms)
if antiPrisonPull and not charPivotTo then
charPivotTo = Algorithms.charPivotTo
Algorithms.charPivotTo = function()
return nil
end
elseif not antiPrisonPull and charPivotTo then
Algorithms.charPivotTo = charPivotTo
charPivotTo = nil
end
end)
pcall(function()
if not Core then
return
end
if antiPrisonPull and not notify then
notify = Core.notify
Core.notify = function(arg11)
if arg11 and arg11.message and string.find(arg11.message, "You can't leave prison yet") then
return nil
end
return notify(arg11)
end
elseif not antiPrisonPull and notify then
Core.notify = notify
notify = nil
end
end)
end
fn70 = function(arg11)
if not arg11 or not arg11.Parent then
return
end
local parent = arg11.Parent
if parent:IsA("BasePart") then
return parent.Position
end
if parent:IsA("Attachment") then
return parent.WorldPosition
end
if parent:IsA("Model") then
local primaryPart = parent.PrimaryPart or parent:FindFirstChildWhichIsA("BasePart")
if primaryPart then
return primaryPart.Position
end
end
end
fn71 = function(arg11)
if not arg11 then
return
end
pcall(function()
if fireproximityprompt then
fireproximityprompt(arg11, 0)
else
arg11.HoldDuration = 0
arg11:InputHoldBegin()
task.wait(0.1)
arg11:InputHoldEnd()
end
end)
end
fn72 = function(arg11)
local v32, v33, v34 = fn40(localPlayer3)
if not v32 or not v34 or not arg11 then
return
end
local cframe = CFrame.new(arg11 + Vector3.new(0, 3, 0))
v32:PivotTo(cframe)
pcall(function()
if playerEvent then
local n11 = ((v32:GetAttribute("CharPivotToId") or 0) + 1) % 100
v32:SetAttribute("CharPivotToId", n11)
playerEvent:FireServer("charPivotTo", cframe, v32, n11)
end
end)
end
fn73 = function()
task.spawn(function()
while true do
if Settings.autoMoney then
local v32, v33, v34 = fn40(localPlayer3)
if v34 then
local v35 = nil
local v36 = nil
for _, descendant in ipairs(Workspace:GetDescendants()) do
local isProximityPrompt = descendant:IsA("ProximityPrompt")
local flag12
if isProximityPrompt then
local promptName = descendant.Name
local actionText = string.lower(tostring(descendant.ActionText or ""))
local objectText = string.lower(tostring(descendant.ObjectText or ""))
flag12 = promptName == "CashDrop"
or promptName == "GetItem"
or promptName == "Money"
or actionText:find("pick", 1, true)
or actionText:find("cash", 1, true)
or actionText:find("collect", 1, true)
or actionText:find("grab", 1, true)
or objectText:find("cash", 1, true)
or objectText:find("money", 1, true)
else
flag12 = isProximityPrompt
end
if flag12 then
local v37 = fn70(descendant)
if v37 then
local magnitude = (v34.Position - v37).Magnitude
if not v35 or magnitude < v35 then
v35 = magnitude
v36 = descendant
continue
end
end
end
end
if v36 and v35 and v35 < 120 then
if v35 > 8 then
fn72(fn70(v36))
task.wait(0.3)
end
fn71(v36)
end
end
end
task.wait(0.3)
end
end)
end
tbl10 = {
missionInterval = 2,
priorityHighReward = false,
taxiSafe = false,
taxiDelayMode = "随机时间",
taxiOrigin = nil,
}
fn74 = function()
if not getgc then
return
end
for _, v32 in pairs(getgc(true)) do
if type(v32) == "table" and rawget(v32, "teamJobs") then
return v32.teamJobs
end
end
end
fn75 = function()
if localPlayer3:GetAttribute("Mission") then
return true
end
local v32 = fn74()
if v32 then
for _, v33 in pairs(v32) do
if v33.joined then
return true
end
end
end
return false
end
fn76 = function()
local v32 = fn74()
if not v32 then
return
end
local n11 = -math.huge
local v33 = nil
for k2, v34 in pairs(v32) do
if not v34.joined then
if not tbl10.priorityHighReward then
return k2
end
local n12 = (v34.profitability or 1) * 1000000 + (v34.reward or 0)
if n11 < n12 then
n11 = n12
v33 = k2
end
end
end
return v33
end
fn77 = function()
task.spawn(function()
while true do
if Settings.autoMission and playerFunc and not fn75() then
local v32 = fn76()
if v32 then
pcall(function()
playerFunc:InvokeServer("talkToMission", tostring(v32) .. "join")
end)
end
end
task.wait(tbl10.missionInterval)
end
end)
end
fn78 = function()
local gameplay = ReplicatedStorage:FindFirstChild("Gameplay")
gameplay = gameplay and gameplay:FindFirstChild("Missions")
gameplay = gameplay and gameplay:FindFirstChild("Active")
if gameplay then
for _, child in ipairs(gameplay:GetChildren()) do
if child.Name:find("^Farmer") then
for _, v32 in ipairs({ "DropOff", "Target", "Goal" }) do
local v33 = child:FindFirstChild(v32)
if v33 and v33:IsA("BasePart") then
return v33.Position
end
if v33 and v33:IsA("ObjectValue") and v33.Value and v33.Value:IsA("BasePart") then
return v33.Value.Position
end
end
end
end
end
end
fn79 = function()
task.spawn(function()
while true do
if Settings.farmer then
local v32 = localPlayer3.Character and localPlayer3.Character:FindFirstChildOfClass("Tool")
if v32 then
task.wait(0.4)
end
local v33, v34, v35 = fn40(localPlayer3)
if v35 then
local v36 = nil
local v37 = nil
for _, descendant in ipairs(Workspace:GetDescendants()) do
if descendant:IsA("ProximityPrompt") and descendant.ActionText == "Pick Up" then
local v38 = fn70(descendant)
if v38 then
local magnitude = (v35.Position - v38).Magnitude
if not v36 or magnitude < v36 then
v36 = magnitude
v37 = descendant
continue
end
end
end
end
if v37 then
local pickPos = fn70(v37)
if pickPos then
local pickDist = (v35.Position - pickPos).Magnitude
if pickDist > 8 then
fn72(pickPos)
task.wait(0.3)
else
fn71(v37)
end
end
end
end
end
task.wait(0.3)
end
end)
end
fn80 = function()
task.spawn(function()
local v32 = nil
while true do
if Settings.taxi then
local gameplay = Workspace:FindFirstChild("Gameplay")
gameplay = gameplay and gameplay:FindFirstChild("Entities")
gameplay = gameplay and gameplay:FindFirstChild("ClientContent")
if gameplay and gameplay:IsA("Model") then
local primaryPart = gameplay.PrimaryPart or gameplay:FindFirstChildWhichIsA("BasePart")
local v33, v34, v35 = fn40(localPlayer3)
if primaryPart and v35 then
local position = primaryPart.Position
if v32 == nil or (position - v32).Magnitude > 5 then
if tbl10.taxiSafe and tbl10.taxiOrigin then
v35.CFrame = CFrame.new(tbl10.taxiOrigin)
local magnitude = (tbl10.taxiOrigin - position).Magnitude
local n11
if tbl10.taxiDelayMode == "距离测算" then
n11 = math.clamp(15 + (math.clamp(magnitude, 2000, 6000) - 2000) / 4000 * 30 + math.random() * 2 - 1, 15, 45)
else
n11 = magnitude > 2000 and math.random(15, 45) or 15
end
task.wait(n11)
end
v35.CFrame = CFrame.new(position)
v32 = position
end
end
end
end
task.wait(0.5)
end
end)
end
fn81 = function()
local gameplay = Workspace:FindFirstChild("Gameplay")
gameplay = gameplay and gameplay:FindFirstChild("Entities")
gameplay = gameplay and gameplay:FindFirstChild("ClientContent")
gameplay = gameplay and gameplay:GetChildren()[1]
return gameplay and gameplay:FindFirstChild("Area")
end
fn82 = function()
task.spawn(function()
while true do
if Settings.bus then
local v32 = fn81()
local v33, v34, v35 = fn40(localPlayer3)
if v32 and v34 and v35 then
local seatPart = v34.SeatPart
if seatPart then
local cFrame = v35.CFrame
seatPart.CFrame = v32.CFrame * CFrame.new(17.5, 3, 6.5) * CFrame.Angles(0, 4.7123889803846897, 0) * cFrame:ToObjectSpace(seatPart.CFrame)
seatPart.AssemblyLinearVelocity = Vector3.zero
seatPart.AssemblyAngularVelocity = Vector3.zero
task.wait(0.1)
v34.Sit = false
else
v35.CFrame = v32.CFrame * CFrame.new(17.5, 3, 6.5) * CFrame.Angles(0, 4.7123889803846897, 0)
end
task.wait(5)
end
end
task.wait(1)
end
end)
end
tbl24 = {}
fn50 = function(autoHack)
Settings.autoHack = autoHack
pcall(function()
local framework = localPlayer3.PlayerScripts:FindFirstChild("Framework")
framework = framework and require(framework:FindFirstChild("Character"))
local GameRules = require(ReplicatedStorage.Modules.GameRules)
if GameRules then
GameRules.disableHacking = autoHack
GameRules.disableMinigames = autoHack
end
if framework then
if not tbl24.hackingMinigame then
tbl24.hackingMinigame = framework.hackingMinigame
end
if not tbl24.startMinigame then
tbl24.startMinigame = framework.startMinigame
end
if autoHack then
framework.hackingMinigame = function()
return true
end
framework.startMinigame = function()
return true
end
else
if tbl24.hackingMinigame then
framework.hackingMinigame = tbl24.hackingMinigame
end
if tbl24.startMinigame then
framework.startMinigame = tbl24.startMinigame
end
end
end
end)
end
fn83 = function()
task.spawn(function()
local function cloneFunc4(arg11)
local v32 = Workspace
for _, v33 in ipairs(arg11) do
v32 = v32 and v32:FindFirstChild(v33)
if not v32 then
return
end
end
return v32
end
while true do
if Settings.golf and playerFunc then
pcall(function()
playerFunc:InvokeServer("miniGolf", "createLobby")
task.wait(0.1)
playerFunc:InvokeServer("miniGolf", "setLobbyBid", { bid = 500 })
task.wait(0.1)
playerFunc:InvokeServer("miniGolf", "setLobbyReady")
task.wait(4)
playerFunc:InvokeServer("miniGolf", "shot")
task.wait(0.5)
local v32 = cloneFunc4({ "Gameplay", "Entities", "Content", localPlayer3.Name })
local v33 = cloneFunc4({ "Gameplay", "Entities", "Content", "_Flag", "FlagPole", "Part" })
if v32 and v33 and v32:IsA("BasePart") then
v32.Position = v33.Position
end
end)
end
task.wait(Settings.golf and 5 or 1)
end
end)
end
tbl11 = {
auraEnabled = false,
auraRange = 50,
auraDamage = 5,
auraInterval = 0.05,
auraOnlyPolice = false,
auraOnlyCivilian = false,
auraCombatCheck = false,
bulletEnabled = false,
bulletFov = 360,
bulletDistance = 300,
bulletPart = "Head",
bulletShowFov = true,
bulletColor = "红色",
bulletCombatCheck = false,
bulletOnlyPolice = false,
bulletOnlyCivilian = false,
}
fn84 = function(arg11, arg12, arg13)
if not arg11 or arg11 == localPlayer3 then
return false
end
if arg12 then
return arg11.Team and arg11.Team.Name == "Police"
end
if arg13 then
return arg11.Team and arg11.Team.Name == "Civilian"
end
return true
end
fn85 = function(arg11, arg12)
if not arg12 then
return true
end
return arg11:GetAttribute("CombatMode") == true or arg11:GetAttribute("Pursuit") == true
end
n10 = 0
RunService.Heartbeat:Connect(function()
if not tbl11.auraEnabled or not playerEvent then
return
end
local now = tick()
if now - n10 < tbl11.auraInterval then
return
end
local v32, v33, v34 = fn40(localPlayer3)
if not v34 then
return
end
local v35 = nil
local v36 = nil
for _, player in ipairs(Players:GetPlayers()) do
if fn84(player, tbl11.auraOnlyPolice, tbl11.auraOnlyCivilian) and fn62(player) and fn85(player, tbl11.auraCombatCheck) then
local char = player.Character
local v39 = char and fn87(char)
if v39 then
local magnitude = (v39.Position - v34.Position).Magnitude
if magnitude <= tbl11.auraRange and (not v36 or magnitude < v36) then
v35 = player
v36 = magnitude
end
end
end
end
if v35 then
local targetChar = v35.Character
local v39 = targetChar and fn87(targetChar)
local position = v34.Position
if not v39 then
return
end
pcall(function()
playerEvent:FireServer("damage", {
bodyParts = { { "Head", 1 } },
shotCode = { position, (v39.Position - position).Unit },
pos = v39.Position,
target = v35,
damageFactor = tbl11.auraDamage,
bulletProofTool = false,
})
end)
n10 = now
end
end)
circle = Drawing.new("Circle")
circle.Filled = false
circle.NumSides = 64
circle.Visible = false
fn86 = function()
local currentCamera = Workspace.CurrentCamera
if not currentCamera then
return
end
local vector2 = Vector2.new(currentCamera.ViewportSize.X / 2, currentCamera.ViewportSize.Y / 2)
local bulletFov = tbl11.bulletFov
local position = nil
for _, player in ipairs(Players:GetPlayers()) do
if fn84(player, tbl11.bulletOnlyPolice, tbl11.bulletOnlyCivilian) and fn62(player) and fn85(player, tbl11.bulletCombatCheck) then
local character = player.Character
if character then
character = character:FindFirstChild(tbl11.bulletPart) or character:FindFirstChild("HumanoidRootPart")
end
if character then
if (character.Position - currentCamera.CFrame.Position).Magnitude <= tbl11.bulletDistance then
local v32, v33 = currentCamera:WorldToScreenPoint(character.Position)
if v33 and v32.Z > 0 then
local magnitude = (Vector2.new(v32.X, v32.Y) - vector2).Magnitude
if magnitude < bulletFov then
position = character.Position
bulletFov = magnitude
end
end
end
end
end
end
return position
end
pcall(function()
local raycast = Workspace.Raycast
hookfunction(Workspace.Raycast, function(arg11, arg12, arg13, arg14)
if tbl11.bulletEnabled and arg12 and arg13 then
local _, _, v34 = fn40(localPlayer3)
if v34 and (arg12 - v34.Position).Magnitude < 15 then
local v35 = fn86()
if v35 then
arg13 = (v35 - arg12).Unit * arg13.Magnitude
end
end
end
return raycast(arg11, arg12, arg13, arg14)
end)
end)
RunService.RenderStepped:Connect(function()
local currentCamera = Workspace.CurrentCamera
if not currentCamera then
return
end
circle.Position = Vector2.new(currentCamera.ViewportSize.X / 2, currentCamera.ViewportSize.Y / 2)
circle.Radius = tbl11.bulletFov
circle.Thickness = 2
circle.Color = fn38(5)
circle.Visible = tbl11.bulletEnabled and tbl11.bulletShowFov
end)
tbl12 = {
enabled = false,
prediction = false,
teamCheck = false,
wallCheck = false,
showFov = false,
showCrosshair = false,
showTracer = false,
friendCheck = false,
onlyPolice = false,
onlyCivilian = false,
combatCheck = false,
fov = 50,
smoothness = 1,
targetMode = "准心最近",
targetPart = "头",
color = "红色",
fovThickness = 2,
}
circle2 = Drawing.new("Circle")
circle2.Filled = false
circle2.NumSides = 64
line = Drawing.new("Line")
tbl25 = {
Top = Drawing.new("Line"),
Bottom = Drawing.new("Line"),
Left = Drawing.new("Line"),
Right = Drawing.new("Line"),
Center = Drawing.new("Line"),
}
for _, v32 in pairs(tbl25) do
v32.Thickness = 2
v32.Visible = false
end
tbl26 = {
["头"] = { "Head" },
["胸"] = { "UpperTorso", "Torso" },
["左手"] = { "LeftHand", "Left Arm" },
["右手"] = { "RightHand", "Right Arm" },
["左腿"] = { "LeftFoot", "Left Leg" },
["右腿"] = { "RightFoot", "Right Leg" },
}
fn87 = function(arg11)
local v32 = ipairs
local tbl29 = tbl26[tbl12.targetPart] or { "Head" }
for _, v33 in v32(tbl29) do
local v34 = arg11:FindFirstChild(v33)
if v34 then
return v34
end
end
return arg11:FindFirstChild("HumanoidRootPart")
end
fn88 = function(arg11)
if not tbl12.wallCheck then
return true
end
local currentCamera = Workspace.CurrentCamera
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = { localPlayer3.Character, currentCamera }
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.IgnoreWater = true
local hit = Workspace:Raycast(currentCamera.CFrame.Position, arg11.Position - currentCamera.CFrame.Position, raycastParams)
return not hit or hit.Instance:IsDescendantOf(arg11.Parent)
end
fn89 = function()
local currentCamera = Workspace.CurrentCamera
if not currentCamera then
return
end
local vector2 = Vector2.new(currentCamera.ViewportSize.X / 2, currentCamera.ViewportSize.Y / 2)
local v32 = nil
local tbl29 = nil
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer3 and fn62(player) and fn84(player, tbl12.onlyPolice, tbl12.onlyCivilian) and fn85(player, tbl12.combatCheck) then
if not (tbl12.teamCheck and localPlayer3.Team and player.Team == localPlayer3.Team) then
if tbl12.friendCheck then
local ok, result = pcall(function()
return localPlayer3:IsFriendsWith(player.UserId)
end)
if ok and result then
continue
end
end
local character = player.Character
if not character then
continue
end
local v33 = fn87(character)
local v34 = character:FindFirstChildOfClass("Humanoid")
local v35 = character:FindFirstChild("HumanoidRootPart")
or character:FindFirstChild("Torso")
or character:FindFirstChild("UpperTorso")
if v33 and v34 and v35 and v34.Health > 0 and fn88(v33) then
local v36, v37 = currentCamera:WorldToViewportPoint(v33.Position)
if v37 then
local magnitude = (Vector2.new(v36.X, v36.Y) - vector2).Magnitude
if magnitude <= tbl12.fov then
if tbl12.targetMode == "距离最近" then
local _, _, v40 = fn40(localPlayer3)
magnitude = v40 and (v40.Position - v35.Position).Magnitude or math.huge
elseif tbl12.targetMode == "血量最低" then
magnitude = v34.Health
end
if not v32 or magnitude < v32 then
tbl29 = { player = player, part = v33, screen = v36 }
v32 = magnitude
end
end
end
end
end
end
end
return tbl29
end
RunService.RenderStepped:Connect(function(deltaTime)
local currentCamera = Workspace.CurrentCamera
if not currentCamera then
return
end
local vector2 = Vector2.new(currentCamera.ViewportSize.X / 2, currentCamera.ViewportSize.Y / 2)
local v32 = fn39(tbl12.color)
circle2.Position = vector2
circle2.Radius = tbl12.fov
circle2.Thickness = tbl12.fovThickness
circle2.Color = v32
circle2.Visible = tbl12.enabled and tbl12.showFov
tbl25.Top.From = Vector2.new(vector2.X, vector2.Y - 5)
tbl25.Top.To = Vector2.new(vector2.X, vector2.Y - 5 - 15)
tbl25.Bottom.From = Vector2.new(vector2.X, vector2.Y + 5)
tbl25.Bottom.To = Vector2.new(vector2.X, vector2.Y + 5 + 15)
tbl25.Left.From = Vector2.new(vector2.X - 5, vector2.Y)
tbl25.Left.To = Vector2.new(vector2.X - 5 - 15, vector2.Y)
tbl25.Right.From = Vector2.new(vector2.X + 5, vector2.Y)
tbl25.Right.To = Vector2.new(vector2.X + 5 + 15, vector2.Y)
tbl25.Center.From = Vector2.new(vector2.X - 2, vector2.Y)
tbl25.Center.To = Vector2.new(vector2.X + 2, vector2.Y)
for _, v33 in pairs(tbl25) do
v33.Color = v32
v33.Visible = tbl12.showCrosshair
end
line.Visible = false
if tbl12.enabled then
local v33 = fn89()
if v33 then
if tbl12.showTracer then
line.From = vector2
line.To = Vector2.new(v33.screen.X, v33.screen.Y)
line.Color = v32
line.Thickness = 2
line.Transparency = 0.5
line.Visible = true
end
local position = v33.part.Position
if tbl12.prediction then
position += v33.part.AssemblyLinearVelocity * deltaTime * 1.5
end
local cframe = CFrame.new(currentCamera.CFrame.Position, position)
currentCamera.CFrame = tbl12.smoothness >= 1 and cframe or currentCamera.CFrame:Lerp(cframe, tbl12.smoothness)
end
end
end)
tbl13 = {
enabled = false,
range = 150,
interval = 0.05,
bodyPart = "Head",
jobCheck = false,
wallCheck = false,
aliveCheck = false,
combatCheck = false,
policeLock = false,
civilianLock = false,
beam = false,
}
tbl14 = {
["头部"] = "Head",
["躯干"] = "Torso",
["左臂"] = "LeftArm",
["右臂"] = "RightArm",
["左腿"] = "LeftLeg",
["右腿"] = "RightLeg",
}
fn90 = function(position, position2)
local part = Instance.new("Part")
local part2 = Instance.new("Part")
for _, v32 in ipairs({ part, part2 }) do
v32.Anchored = true
v32.CanCollide = false
v32.Transparency = 1
v32.Size = Vector3.new(0.1, 0.1, 0.1)
v32.Parent = Workspace
end
part.Position = position
part2.Position = position2
local attachment = Instance.new("Attachment", part)
local attachment2 = Instance.new("Attachment", part2)
local beam = Instance.new("Beam", part)
beam.Attachment0 = attachment
beam.Attachment1 = attachment2
beam.Width0 = 0.15
beam.Width1 = 0.15
beam.Color = ColorSequence.new(Color3.fromRGB(180, 200, 255))
task.delay(0.8, function()
pcall(function()
part:Destroy()
part2:Destroy()
end)
end)
end
task.spawn(function()
while true do
if tbl13.enabled and playerEvent then
local v32, v33, v34 = fn40(localPlayer3)
if v34 then
local position = v34.Position
local v35 = fn63(localPlayer3)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer3 and fn84(player, tbl13.policeLock, tbl13.civilianLock) and fn85(player, tbl13.combatCheck) then
local v36, v37, v38Part = fn40(player)
local v38 = v36 and (v36:FindFirstChild(tbl13.bodyPart) or fn87(v36))
if v36 and v37 and v38 and v37.Health > 0 then
if tbl13.jobCheck and fn63(player) == v35 then
continue
end
if (v38.Position - position).Magnitude <= tbl13.range then
if tbl13.wallCheck then
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = { localPlayer3.Character, Workspace.CurrentCamera }
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
local hit = Workspace:Raycast(Workspace.CurrentCamera.CFrame.Position, v38.Position - Workspace.CurrentCamera.CFrame.Position, raycastParams)
if hit and not hit.Instance:IsDescendantOf(v36) then
continue
end
end
pcall(function()
playerEvent:FireServer("damage", {
bodyParts = { { tbl13.bodyPart, 1 } },
shotCode = { position, (v38.Position - position).Unit },
pos = v38.Position,
target = player,
damageFactor = 1.5,
bulletProofTool = false,
})
if tbl13.beam then
end
end)
continue
end
end
end
end
end
end
task.wait(tbl13.interval)
end
end)
tbl15 = {
active = false,
size = 10,
transparency = 0.7,
teamCheck = false,
color = "红色",
material = "Neon",
rainbow = false,
checkCorpses = false,
outline = false,
collision = false,
glow = false,
pulse = false,
affectNPC = false,
}
tbl27 = {}
fn51 = function(arg11)
arg11 = arg11 and arg11:FindFirstChild("HumanoidRootPart")
if not arg11 then
return
end
local v32 = tbl27[arg11]
if v32 then
arg11.Size = v32.Size
arg11.Transparency = v32.Transparency
arg11.Material = v32.Material
arg11.CanCollide = v32.CanCollide
arg11.Color = v32.Color
end
local pyHitboxHighlight = arg11:FindFirstChild("PY_HitboxHighlight")
if pyHitboxHighlight then
pyHitboxHighlight:Destroy()
end
local pyHitboxLight = arg11:FindFirstChild("PY_HitboxLight")
if pyHitboxLight then
pyHitboxLight:Destroy()
end
end
fn91 = function(arg11)
local humanoidRootPart = arg11 and arg11:FindFirstChild("HumanoidRootPart")
if not humanoidRootPart then
return
end
if not tbl27[humanoidRootPart] then
tbl27[humanoidRootPart] = {
Size = humanoidRootPart.Size,
Transparency = humanoidRootPart.Transparency,
Material = humanoidRootPart.Material,
CanCollide = humanoidRootPart.CanCollide,
Color = humanoidRootPart.Color,
}
end
if not tbl15.active then
return
end
local humanoid = arg11:FindFirstChildOfClass("Humanoid")
if tbl15.checkCorpses and humanoid and humanoid.Health <= 0 then
return
end
local size = tbl15.size
if tbl15.pulse then
size *= math.sin(tick() * 2) * 0.2 + 1
end
humanoidRootPart.Size = Vector3.new(size, size, size)
humanoidRootPart.Transparency = tbl15.transparency
humanoidRootPart.Material = Enum.Material[tbl15.material] or Enum.Material.Neon
humanoidRootPart.CanCollide = tbl15.collision
humanoidRootPart.Color = tbl15.rainbow and fn38(5) or fn39(tbl15.color)
if tbl15.outline then
local pyHitboxHighlight = humanoidRootPart:FindFirstChild("PY_HitboxHighlight") or Instance.new("Highlight")
pyHitboxHighlight.Name = "PY_HitboxHighlight"
pyHitboxHighlight.FillTransparency = 1
pyHitboxHighlight.OutlineColor = humanoidRootPart.Color
pyHitboxHighlight.OutlineTransparency = tbl15.transparency
pyHitboxHighlight.Parent = humanoidRootPart
else
local pyHitboxHighlight = humanoidRootPart:FindFirstChild("PY_HitboxHighlight")
if pyHitboxHighlight then
pyHitboxHighlight:Destroy()
end
end
if tbl15.glow then
local pyHitboxLight = humanoidRootPart:FindFirstChild("PY_HitboxLight") or Instance.new("PointLight")
pyHitboxLight.Name = "PY_HitboxLight"
pyHitboxLight.Brightness = 5
pyHitboxLight.Range = 15
pyHitboxLight.Color = humanoidRootPart.Color
pyHitboxLight.Parent = humanoidRootPart
else
local pyHitboxLight = humanoidRootPart:FindFirstChild("PY_HitboxLight")
if pyHitboxLight then
pyHitboxLight:Destroy()
end
end
end
RunService.Heartbeat:Connect(function()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer3 and fn40(player) then
if tbl15.teamCheck and localPlayer3.Team and player.Team == localPlayer3.Team then
continue
end
fn91(fn40(player))
end
end
if tbl15.affectNPC then
for _, descendant in ipairs(Workspace:GetDescendants()) do
if descendant:IsA("Model") and descendant:FindFirstChildOfClass("Humanoid") and not Players:GetPlayerFromCharacter(descendant) then
fn91(descendant)
end
end
end
end)
tbl16 = {
enabled = false,
name = true,
distance = true,
health = true,
highlight = true,
tracer = false,
tracerOrigin = "屏幕底部",
showFugitive = true,
selectedTeams = {
Chef = true,
Civilian = true,
Delivery = true,
Farmer = true,
Fire = true,
Police = true,
Medical = true,
Prisoner = true,
["Road Service"] = true,
Transit = true,
},
trackers = {},
}
tbl17 = {
Chef = "厨师",
Civilian = "平民",
Delivery = "配送员",
Farmer = "农民",
Fire = "消防员",
Police = "警察",
Medical = "医护人员",
Prisoner = "囚犯",
["Road Service"] = "道路服务",
Transit = "交通",
}
tbl28 = {
Chef = Color3.fromRGB(255, 200, 0),
Civilian = Color3.fromRGB(100, 200, 255),
Delivery = Color3.fromRGB(255, 150, 50),
Farmer = Color3.fromRGB(50, 200, 50),
Fire = Color3.fromRGB(255, 50, 50),
Police = Color3.fromRGB(50, 100, 255),
Medical = Color3.fromRGB(255, 50, 255),
Prisoner = Color3.fromRGB(255, 150, 150),
["Road Service"] = Color3.fromRGB(255, 255, 100),
Transit = Color3.fromRGB(100, 255, 255),
}
fn92 = function(arg11)
local flag12 = arg11.Team and arg11.Team.Name == "Civilian"
local attribute
if flag12 then
attribute = arg11:GetAttribute("CombatMode") or arg11:GetAttribute("Pursuit")
else
attribute = flag12
end
return attribute
end
fn93 = function(arg11)
if not tbl16.enabled or arg11 == localPlayer3 then
return false
end
if not fn40(arg11) then
return false
end
if tbl16.showFugitive and fn92(arg11) then
return true
end
local selectedCount = 0
local totalCount = 0
for _, selected in pairs(tbl16.selectedTeams) do
totalCount += 1
if selected then
selectedCount += 1
end
end
if selectedCount == 0 or selectedCount >= totalCount then
return true
end
local name = arg11.Team and arg11.Team.Name
if not name then
return true
end
if tbl16.selectedTeams[name] == true then
return true
end
for teamName, teamLabel in pairs(tbl17) do
if (teamLabel == name or teamName == name) and tbl16.selectedTeams[teamName] then
return true
end
end
return false
end
fn52 = function(player)
local v32 = tbl16.trackers[player]
if not v32 then
return
end
for _, v33 in pairs(v32) do
pcall(function()
if typeof(v33) == "RBXScriptConnection" then
v33:Disconnect()
elseif typeof(v33) == "Instance" then
v33:Destroy()
elseif type(v33) == "userdata" and v33.Remove then
v33:Remove()
end
end)
end
tbl16.trackers[player] = nil
end
local function getEspHolder()
local parent = v29 or fn61() or localPlayer3:FindFirstChild("PlayerGui")
v29 = parent
if not parent then
return
end
local holder = parent:FindFirstChild("PYHubESP")
if holder then
return holder
end
local ok, gui = pcall(function()
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "PYHubESP"
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
screenGui.DisplayOrder = 999
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = parent
return screenGui
end)
if ok then
return gui
end
return parent
end
fn94 = function(arg11)
if tbl16.trackers[arg11] or not fn93(arg11) then
return
end
local character, _, humanoidRootPart = fn40(arg11)
if not character or not humanoidRootPart then
return
end
local holder = getEspHolder()
if not holder then
return
end
local billboardGui = Instance.new("BillboardGui")
billboardGui.Name = "PlayerESP_" .. arg11.Name
billboardGui.AlwaysOnTop = true
billboardGui.Size = UDim2.new(8, 0, 3, 0)
billboardGui.StudsOffset = Vector3.new(0, 3.5, 0)
billboardGui.MaxDistance = 10000
billboardGui.Adornee = humanoidRootPart
billboardGui.Parent = holder
local frame = Instance.new("Frame")
frame.BackgroundTransparency = 1
frame.Size = UDim2.fromScale(1, 1)
frame.Parent = billboardGui
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 0.55, 0)
textLabel.BackgroundTransparency = 1
textLabel.Font = Enum.Font.GothamBold
textLabel.TextSize = 16
textLabel.TextStrokeTransparency = 0
textLabel.Text = arg11.Name
textLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
textLabel.Parent = frame
local textLabel2 = Instance.new("TextLabel")
textLabel2.Size = UDim2.new(1, 0, 0.45, 0)
textLabel2.Position = UDim2.new(0, 0, 0.55, 0)
textLabel2.BackgroundTransparency = 1
textLabel2.Font = Enum.Font.Gotham
textLabel2.TextSize = 14
textLabel2.TextStrokeTransparency = 0
textLabel2.TextColor3 = Color3.fromRGB(0, 255, 0)
textLabel2.Parent = frame
local highlight = Instance.new("Highlight")
highlight.Name = "PlayerESP_Highlight"
highlight.Adornee = character
highlight.FillTransparency = 0.65
highlight.OutlineTransparency = 0
pcall(function()
highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
end)
highlight.Parent = character
pcall(function()
billboardGui.Parent = humanoidRootPart
end)
if not billboardGui.Parent then
billboardGui.Parent = holder
end
local line2
pcall(function()
if Drawing and Drawing.new then
line2 = Drawing.new("Line")
line2.Thickness = 1
line2.Transparency = 0.5
line2.Visible = false
end
end)
tbl16.trackers[arg11] = {
bill = billboardGui,
highlight = highlight,
tracer = line2,
update = RunService.Heartbeat:Connect(function()
local currentCharacter, targetHumanoid, currentRoot = fn40(arg11)
if not fn93(arg11) or not currentCharacter or not currentRoot then
if line2 then
line2.Visible = false
end
if billboardGui.Parent then
billboardGui.Enabled = false
end
return
end
humanoidRootPart = currentRoot
billboardGui.Adornee = humanoidRootPart
billboardGui.Enabled = true
if highlight.Parent ~= currentCharacter then
highlight.Parent = currentCharacter
end
highlight.Adornee = currentCharacter
local showFugitive = fn92(arg11)
local name = arg11.Team and arg11.Team.Name
local color = showFugitive and Color3.fromRGB(255, 0, 0) or tbl28[name] or Color3.fromRGB(0, 255, 0)
textLabel.Text = "[" .. (showFugitive and "逃犯" or tbl17[name] or name or "未知") .. "] " .. arg11.Name
textLabel.TextColor3 = color
textLabel.Visible = tbl16.name
highlight.FillColor = color
highlight.OutlineColor = color
highlight.Enabled = tbl16.highlight
local _, _, v38 = fn40(localPlayer3)
local tbl29 = {}
if tbl16.distance and v38 then
table.insert(tbl29, string.format("%.1f", (v38.Position - humanoidRootPart.Position).Magnitude))
end
if tbl16.health and targetHumanoid then
table.insert(tbl29, tostring(math.floor(targetHumanoid.Health)))
end
textLabel2.Text = #tbl29 > 0 and "[" .. table.concat(tbl29, "/") .. "]" or ""
textLabel2.TextColor3 = color
textLabel2.Visible = tbl16.distance or tbl16.health
local currentCamera = Workspace.CurrentCamera
if line2 then
if tbl16.tracer and currentCamera then
local v39, v40 = currentCamera:WorldToViewportPoint(humanoidRootPart.Position)
if v40 then
local viewportSize = currentCamera.ViewportSize
if tbl16.tracerOrigin == "屏幕中心" then
line2.From = Vector2.new(viewportSize.X / 2, viewportSize.Y / 2)
elseif tbl16.tracerOrigin == "屏幕顶部" then
line2.From = Vector2.new(viewportSize.X / 2, 0)
else
line2.From = Vector2.new(viewportSize.X / 2, viewportSize.Y)
end
line2.To = Vector2.new(v39.X, v39.Y)
line2.Color = color
line2.Visible = true
else
line2.Visible = false
end
else
line2.Visible = false
end
end
end),
}
end
fn53 = function()
for k2 in pairs(tbl16.trackers) do
if not fn93(k2) then
fn52(k2)
end
end
if tbl16.enabled then
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer3 and fn93(player) and not tbl16.trackers[player] then
pcall(fn94, player)
end
end
end
end
local function hookEspPlayer(player)
if player == localPlayer3 then
return
end
player.CharacterAdded:Connect(function()
task.wait(0.25)
if tbl16.enabled then
fn52(player)
pcall(fn94, player)
end
end)
end
for _, player in ipairs(Players:GetPlayers()) do
hookEspPlayer(player)
end
Players.PlayerAdded:Connect(hookEspPlayer)
Players.PlayerRemoving:Connect(fn52)
local lastEspScan = 0
RunService.Heartbeat:Connect(function()
if not tbl16.enabled then
return
end
if tick() - lastEspScan < 0.2 then
return
end
lastEspScan = tick()
fn53()
end)
PoliceSettings = { range = 200, delay = 0.5, combatCheck = false, teleport = false }
thread = nil
fn54 = function()
if thread then
return
end
thread = task.spawn(function()
while Settings.autoCuff do
local v32, v33, v34 = fn40(localPlayer3)
if v34 and playerFunc then
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer3 and fn62(player) and fn85(player, PoliceSettings.combatCheck) then
local _, _, v37 = fn40(player)
if v37 and (v37.Position - v34.Position).Magnitude <= PoliceSettings.range then
pcall(function()
playerFunc:InvokeServer("handcuff", player, false)
end)
end
end
end
if PoliceSettings.teleport then
local v35 = nil
local v36 = nil
for _, player in ipairs(Players:GetPlayers()) do
local flag12 = player ~= localPlayer3 and player.Team and player.Team.Name == "Civilian"
if flag12 then
flag12 = (player:GetAttribute("WantedLevel") or 0) > 0
end
if flag12 then
local _, _, v39 = fn40(player)
if v39 then
local magnitude = (v39.Position - v34.Position).Magnitude
if magnitude <= PoliceSettings.range and (not v35 or magnitude < v35) then
v35 = magnitude
v36 = player
end
end
end
end
if v36 then
local _, _, v39 = fn40(v36)
if v39 then
v34.CFrame = CFrame.new(v39.Position - v39.CFrame.LookVector * 3)
end
end
end
end
task.wait(PoliceSettings.delay)
end
thread = nil
end)
end
MovementSettings = {
walkEnabled = false,
walkSpeed = 200,
jumpEnabled = false,
jumpPower = 50,
jumpMultiplier = 1,
infiniteJump = false,
flyEnabled = false,
flySpeed = 30,
flyMode = "传送",
noclip = false,
}
FlyState = {
walkConn = nil,
jumpConn = nil,
flyConn = nil,
bodyVelocity = nil,
bodyGyro = nil,
noclipConn = nil,
collisionCache = {},
}
v31 = nil
UDim2.new(0, 100, 0.5, -25)
controls = nil
pcall(function()
controls = require(localPlayer3.PlayerScripts:WaitForChild("PlayerModule")):GetControls()
end)
fn95 = function()
if FlyState.walkConn then
FlyState.walkConn:Disconnect()
FlyState.walkConn = nil
end
end
fn60 = function()
fn95()
if not MovementSettings.walkEnabled then
return
end
FlyState.walkConn = RunService.Heartbeat:Connect(function()
local _, v33 = fn40(localPlayer3)
if v33 and MovementSettings.walkEnabled then
v33.WalkSpeed = MovementSettings.walkSpeed
end
end)
end
fn96 = function(arg11)
if not arg11 then
return false
end
local state = arg11:GetState()
return state == Enum.HumanoidStateType.Landed or state == Enum.HumanoidStateType.Running or state == Enum.HumanoidStateType.RunningNoPhysics
end
fn55 = function()
if FlyState.jumpConn then
FlyState.jumpConn:Disconnect()
FlyState.jumpConn = nil
end
end
fn56 = function()
fn55()
if not MovementSettings.jumpEnabled then
return
end
FlyState.jumpConn = UserInputService.JumpRequest:Connect(function()
if not MovementSettings.jumpEnabled then
return
end
local v32, v33, v34 = fn40(localPlayer3)
if not v33 or not v34 or v33.Health <= 0 then
return
end
if not MovementSettings.infiniteJump and not fn96(v33) then
return
end
v34.CFrame = v34.CFrame + Vector3.new(0, MovementSettings.jumpPower * MovementSettings.jumpMultiplier * 0.1, 0)
end)
end
fn97 = function()
if FlyState.flyConn then
FlyState.flyConn:Disconnect()
FlyState.flyConn = nil
end
if FlyState.bodyVelocity then
FlyState.bodyVelocity:Destroy()
FlyState.bodyVelocity = nil
end
if FlyState.bodyGyro then
FlyState.bodyGyro:Destroy()
FlyState.bodyGyro = nil
end
local _, v33 = fn40(localPlayer3)
if v33 then
v33.PlatformStand = false
v33.AutoRotate = true
end
end
fn98 = function()
if FlyState.flyConn then
FlyState.flyConn:Disconnect()
FlyState.flyConn = nil
end
local _, v33 = fn40(localPlayer3)
if v33 then
v33.AutoRotate = true
end
end
fn99 = function()
if not v31 then
return
end
v31.Text = MovementSettings.flyEnabled and "飞行: 开" or "飞行: 关"
v31.TextColor3 = MovementSettings.flyEnabled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0)
end
cloneFunc0 = function()
local v32, v33, v34 = fn40(localPlayer3)
if not v34 or not v33 then
return
end
MovementSettings.flyEnabled = true
v33.AutoRotate = false
FlyState.flyConn = RunService.RenderStepped:Connect(function(deltaTime)
if not MovementSettings.flyEnabled or MovementSettings.flyMode ~= "传送" then
return
end
local v35, v36, v37 = fn40(localPlayer3)
local currentCamera = Workspace.CurrentCamera
if not v37 or not v36 or not currentCamera then
return
end
local moveVector = controls and controls:GetMoveVector() or Vector3.zero
local n11 = currentCamera.CFrame.LookVector * -moveVector.Z + currentCamera.CFrame.RightVector * moveVector.X
local n12
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
n12 = 1
else
n12 = 0
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
n12 = -1
end
end
v37.CFrame = v37.CFrame + (n11 + Vector3.new(0, n12, 0)) * MovementSettings.flySpeed * deltaTime
v37.AssemblyLinearVelocity = Vector3.zero
v37.AssemblyAngularVelocity = Vector3.zero
v36:ChangeState(Enum.HumanoidStateType.Climbing)
end)
end
cloneFunc1 = function()
local v32, v33, v34 = fn40(localPlayer3)
if not v34 or not v33 then
return
end
MovementSettings.flyEnabled = true
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.Name = "PYPlayerFlyVelocity"
bodyVelocity.MaxForce = Vector3.new(9e9, 9e9, 9e9)
bodyVelocity.Velocity = Vector3.zero
bodyVelocity.Parent = v34
FlyState.bodyVelocity = bodyVelocity
local bodyGyro = Instance.new("BodyGyro")
bodyGyro.Name = "PYPlayerFlyGyro"
bodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
bodyGyro.P = 90000
bodyGyro.Parent = v34
FlyState.bodyGyro = bodyGyro
v33.PlatformStand = true
v33.AutoRotate = false
FlyState.flyConn = RunService.RenderStepped:Connect(function()
if not MovementSettings.flyEnabled or MovementSettings.flyMode ~= "物理" then
return
end
local v35, v36, v37 = fn40(localPlayer3)
local currentCamera = Workspace.CurrentCamera
if not v37 or not v36 or not currentCamera then
return
end
if FlyState.bodyVelocity and FlyState.bodyGyro then
local moveVector = controls and controls:GetMoveVector() or Vector3.zero
local n11 = currentCamera.CFrame.LookVector * -moveVector.Z + currentCamera.CFrame.RightVector * moveVector.X
local n12
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
n12 = 1
else
n12 = 0
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
n12 = -1
end
end
local flySpeed = MovementSettings.flySpeed
FlyState.bodyVelocity.Velocity = (n11 + Vector3.new(0, n12, 0)) * flySpeed
FlyState.bodyGyro.CFrame = currentCamera.CFrame
end
end)
end
fn57 = function()
if MovementSettings.flyMode == "物理" then
cloneFunc1()
else
cloneFunc0()
end
end
cloneFunc2 = function()
for k2, v32 in pairs(FlyState.collisionCache) do
if k2 and k2.Parent then
pcall(function()
k2.CanCollide = v32
end)
end
end
FlyState.collisionCache = {}
end
cloneFunc3 = function()
if FlyState.noclipConn then
FlyState.noclipConn:Disconnect()
FlyState.noclipConn = nil
end
cloneFunc2()
end
fn58 = function()
cloneFunc3()
if not MovementSettings.noclip then
return
end
FlyState.noclipConn = RunService.Stepped:Connect(function()
if not MovementSettings.noclip then
return
end
local character = localPlayer3.Character
if not character then
return
end
for _, descendant in ipairs(character:GetDescendants()) do
if descendant:IsA("BasePart") then
if FlyState.collisionCache[descendant] == nil then
FlyState.collisionCache[descendant] = descendant.CanCollide
end
descendant.CanCollide = false
end
end
end)
end
localPlayer3.CharacterAdded:Connect(function()
task.wait(0.5)
FlyState.collisionCache = {}
if MovementSettings.walkEnabled then
fn60()
end
if MovementSettings.jumpEnabled then
fn56()
end
if MovementSettings.noclip then
fn58()
end
if MovementSettings.flyEnabled then
local flyMode = MovementSettings.flyMode
MovementSettings.flyEnabled = false
task.wait(0.2)
MovementSettings.flyMode = flyMode
fn57()
end
end)
pcall(fn66)
pcall(fn73)
pcall(fn77)
pcall(fn79)
pcall(fn80)
pcall(fn82)
pcall(fn83)
UDim2.new(0, 10, 0.5, -25)
flag11 = false
getSpeedLimitAtPos = nil
pcall(function()
local Algorithms = require(ReplicatedStorage.Modules.Algorithms)
getSpeedLimitAtPos = Algorithms.getSpeedLimitAtPos
Algorithms.getSpeedLimitAtPos = function(...)
if flag11 then
return 9999
end
return getSpeedLimitAtPos(...)
end
end)
fn59 = nil
fn59 = function()
if v27 then
pcall(function()
v27:Destroy()
end)
v27 = nil
end
v27 = lib:CreateWindow({
Title = "PY Hub/圣奥里破解版",
Icon = "zap",
IconTransparency = 0.5,
IconThemed = true,
Author = "Xi.Team",
Folder = "PYHub",
Size = UDim2.fromOffset(640, 460),
Transparent = true,
Theme = "Dark",
User = {
Enabled = false,
Callback = function()
end,
Anonymous = false,
},
SideBarWidth = 200,
ScrollBarEnabled = true,
Background = fn42(),
BackgroundImageTransparency = 0.4,
})
flag8 = true
local parent = v27.Parent
if parent then
local function cloneFunc4(descendant)
if descendant:IsA("TextLabel") or descendant:IsA("TextButton") then
if descendant.Font ~= Enum.Font.Code then
descendant.Font = Enum.Font.PermanentMarker
end
end
end
for _, descendant in ipairs(parent:GetDescendants()) do
cloneFunc4(descendant)
end
parent.DescendantAdded:Connect(cloneFunc4)
end
local v32 = v27:Tag({ Title = "当前时间: 00:00:00", Icon = "clock", Color = Color3.fromHex("#FFFFFF"), Border = true })
local n11 = 0
RunService.Heartbeat:Connect(function()
if tick() - n11 >= 0.1 then
v32:SetTitle("当前时间: " .. os.date("!%H:%M:%S", os.time() + 28800))
n11 = tick()
end
end)
local editOpenButton = v27.EditOpenButton
local v33 = v27
local tbl29 = {
Title = "PYHub1.0",
Icon = "crown",
CornerRadius = UDim.new(1, 16),
StrokeThickness = 1.5,
}
local colorSequence = ColorSequence.new
local tbl30 = {}
local v34 = ColorSequenceKeypoint.new(0, Color3.fromHex("FF1493"))
local v35 = ColorSequenceKeypoint.new(0.3, Color3.fromHex("FF69B4"))
local v36 = ColorSequenceKeypoint.new(0.6, Color3.fromHex("FFB6C1"))
local new = ColorSequenceKeypoint.new
local color = Color3.fromHex
tbl30[1] = v34
tbl30[2] = v35
tbl30[3] = v36
do
local values = table.pack(new(1, color("FFC0CB")))
table.move(values, 1, values.n, 4, tbl30)
end
tbl29.Color = colorSequence(tbl30)
tbl29.Draggable = true
editOpenButton(v33, tbl29)
local main = v27.UIElements.Main
if main then
local uiStroke = Instance.new("UIStroke")
uiStroke.Name = "MainBorder"
uiStroke.Thickness = 3
uiStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border
uiStroke.LineJoinMode = Enum.LineJoinMode.Round
uiStroke.Enabled = tbl8.borderEnabled
uiStroke.Parent = main
local uiGradient = Instance.new("UIGradient")
uiGradient.Name = "BorderGradient"
uiGradient.Parent = uiStroke
end
local v36 = v27:Tab({ Title = "公告", Icon = "message-circle", Locked = false })
v36:Paragraph({ Title = "破解版", Desc = "XI团队暴打所有联邦狗", Image = "message-circle", ImageSize = 32 })
v36:Paragraph({ Title = "开源人", Desc = "苏达", Image = "user", ImageSize = 32 })
local v37 = v27:Tab({ Title = "主页", Icon = "home", Locked = false })
v37:Paragraph({ Title = "PY Hub", Desc = "圣奥里精简版", Image = "zap", ImageSize = 32 })
v37:Paragraph({ Title = "玩家", Desc = "当前服务器ID: " .. game.PlaceId, Image = "users", ImageSize = 32 })
local v38 = v27:Tab({ Title = "UI设置", Icon = "settings", Locked = false })
v38:Toggle({
Title = "自定义光标",
Value = false,
Callback = function(arg11)
v27:ToggleCustomCursor(arg11)
end,
})
v38:Dropdown({
Title = "通知位置",
Values = { "左", "右" },
Value = "右",
Callback = function(arg11)
lib:SetNotifySide(arg11 == "左" and "Left" or "Right")
end,
})
v38:Dropdown({
Title = "DPI缩放",
Values = { "50%", "75%", "100%", "125%", "150%", "175%", "200%" },
Value = "100%",
Callback = function(arg11)
local num = tonumber(arg11:gsub("%%", ""))
if num then
v27:SetDPIScale(num / 100)
end
end,
})
v38:Keybind({
Title = "菜单按键",
Value = "RightShift",
Callback = function(arg11)
v27:SetToggleKey(Enum.KeyCode[arg11])
end,
})
v38:Divider()
v38:Toggle({
Title = "随机背景图",
Value = tbl8.randomBg,
Callback = function(randomBg)
tbl8.randomBg = randomBg
end,
})
v38:Divider()
v38:Toggle({
Title = "启用边框颜色",
Value = tbl8.borderEnabled,
Callback = function(borderEnabled)
tbl8.borderEnabled = borderEnabled
local main2 = v27 and v27.UIElements and v27.UIElements.Main
main2 = main2 and main2:FindFirstChild("MainBorder")
if main2 then
main2.Enabled = borderEnabled
end
end,
})
v38:Dropdown({
Title = "边框颜色",
Values = { "旋转彩虹", "默认白色", "红色", "橙色", "黄色", "绿色", "青色", "蓝色", "紫色", "粉色" },
Value = tbl8.isBorderRainbow and "旋转彩虹" or "默认白色",
Callback = function(arg11)
if arg11 == "旋转彩虹" then
elseif arg11 == "默认白色" then
fn43(Color3.new(1, 1, 1), false)
else
fn43(fn39(arg11), false)
end
end,
})
v38:Divider()
v38:Dropdown({
Title = "文字颜色",
Values = { "默认", "青色", "粉色", "紫色", "橙色", "红色", "绿色", "蓝色", "黄色", "白色", "彩虹" },
Value = "默认",
Callback = function(arg11)
v28 = arg11
end,
})
v38:Button({
Title = "确认应用文字颜色",
Icon = "check",
Callback = function()
local v39 = lib.GetThemes()
if not v39 or not v39.Dark then
return
end
if connection then
connection:Disconnect()
connection = nil
end
if v28 == "彩虹" then
connection = RunService.Heartbeat:Connect(function()
local v40 = nil
v39.Dark.Text = v40
v39.Dark.Placeholder = v40
v39.Dark.Button = v40
v39.Dark.TabTitle = v40
lib:SetTheme("Dark")
end)
elseif v28 and v28 ~= "默认" then
local v40 = nil
v39.Dark.Text = v40
v39.Dark.Placeholder = v40
v39.Dark.Button = v40
v39.Dark.TabTitle = v40
lib:SetTheme("Dark")
else
lib:SetTheme("Dark")
end
end,
})
local v39 = v27:Section({ Title = "功能", Opened = true })
local v40 = v39:Tab({ Title = "主要功能", Icon = "sliders-h" })
v40:Toggle({
Title = "无限体力",
Default = false,
Callback = function(stamina)
Settings.stamina = stamina
end,
})
v40:Toggle({
Title = "无限饥饿",
Default = false,
Callback = function(food)
Settings.food = food
end,
})
v40:Toggle({ Title = "战斗拦截", Default = false, Callback = fn45 })
v40:Toggle({ Title = "隐身", Default = false, Callback = fn46 })
v40:Toggle({
Title = "显示隐身悬浮窗",
Default = false,
Callback = function(arg11)
flag10 = arg11
if arg11 then
else
end
end,
})
v40:Toggle({
Title = "锁定隐身悬浮窗位置",
Default = false,
Callback = function(arg11)
flag9 = arg11
if textButton then
local active = not arg11
textButton.Active = active
textButton.Draggable = active
end
end,
})
v40:Toggle({
Title = "防布娃娃",
Default = false,
Callback = function(noRagdoll)
Settings.noRagdoll = noRagdoll
end,
})
v40:Toggle({
Title = "防摔伤",
Default = false,
Callback = function(noFallDamage)
Settings.noFallDamage = noFallDamage
end,
})
v40:Toggle({ Title = "防越狱拉回", Default = false, Callback = fn49 })
v40:Toggle({
Title = "自动捡钱",
Default = false,
Callback = function(autoMoney)
Settings.autoMoney = autoMoney
end,
})
v40:Toggle({
Title = "无限子弹",
Default = false,
Callback = function(infiniteAmmo)
Settings.infiniteAmmo = infiniteAmmo
end,
})
v40:Toggle({
Title = "快速射击",
Default = false,
Callback = function(rapidFire)
Settings.rapidFire = rapidFire
if rapidFire then
end
end,
})
local v41 = v39:Tab({ Title = "刷钱", Icon = "money-bill-wave" })
v41:Toggle({
Title = "自动接取任务",
Default = false,
Callback = function(autoMission)
Settings.autoMission = autoMission
end,
})
v41:Toggle({
Title = "优先高收益任务",
Default = false,
Callback = function(priorityHighReward)
tbl10.priorityHighReward = priorityHighReward
end,
})
v41:Input({
Title = "接取间隔",
Value = "2",
PlaceholderText = "输入间隔秒数",
ClearTextOnFocus = false,
Callback = function(arg11)
local missionInterval = tonumber(arg11)
if missionInterval and missionInterval > 0 then
tbl10.missionInterval = missionInterval
end
end,
})
v41:Toggle({
Title = "安全模式(出租车)",
Default = false,
Callback = function(taxiSafe)
tbl10.taxiSafe = taxiSafe
if taxiSafe then
local _, _, v44 = fn40(localPlayer3)
if v44 then
tbl10.taxiOrigin = v44.Position
end
end
end,
})
v41:Dropdown({
Title = "出租车延迟模式",
Values = { "随机时间", "距离测算" },
Value = "随机时间",
Callback = function(taxiDelayMode)
tbl10.taxiDelayMode = taxiDelayMode
end,
})
v41:Toggle({
Title = "出租车刷钱",
Default = false,
Callback = function(taxi)
Settings.taxi = taxi
end,
})
v41:Toggle({
Title = "公交车刷钱",
Default = false,
Callback = function(bus)
Settings.bus = bus
end,
})
v41:Toggle({
Title = "农民刷钱",
Default = false,
Callback = function(farmer)
Settings.farmer = farmer
end,
})
v41:Toggle({ Title = "自动黑客小游戏", Default = false, Callback = fn50 })
v41:Toggle({
Title = "高尔夫刷钱",
Default = false,
Callback = function(golf)
Settings.golf = golf
end,
})
local v42 = v39:Tab({ Title = "战斗", Icon = "crosshairs" })
v42:Toggle({
Title = "杀戮光环",
Default = false,
Callback = function(auraEnabled)
tbl11.auraEnabled = auraEnabled
end,
})
v42:Toggle({
Title = "只攻击警察",
Default = false,
Callback = function(auraOnlyPolice)
tbl11.auraOnlyPolice = auraOnlyPolice
if auraOnlyPolice then
tbl11.auraOnlyCivilian = false
end
end,
})
v42:Toggle({
Title = "只攻击平民",
Default = false,
Callback = function(auraOnlyCivilian)
tbl11.auraOnlyCivilian = auraOnlyCivilian
if auraOnlyCivilian then
tbl11.auraOnlyPolice = false
end
end,
})
v42:Toggle({
Title = "战斗检测",
Default = false,
Callback = function(auraCombatCheck)
tbl11.auraCombatCheck = auraCombatCheck
end,
})
v42:Slider({
Title = "攻击范围",
Value = { Min = 10, Max = 500, Default = 50 },
Callback = function(auraRange)
tbl11.auraRange = auraRange
end,
})
v42:Slider({
Title = "伤害倍率",
Value = { Min = 1, Max = 100, Default = 5 },
Callback = function(auraDamage)
tbl11.auraDamage = auraDamage
end,
})
local v43 = v39:Tab({ Title = "自瞄", Icon = "crosshairs" })
v43:Toggle({
Title = "开启/关闭自瞄",
Default = false,
Callback = function(enabled)
tbl12.enabled = enabled
end,
})
v43:Toggle({
Title = "显示Fov圈",
Default = false,
Callback = function(showFov)
tbl12.showFov = showFov
end,
})
v43:Toggle({
Title = "显示准心",
Default = false,
Callback = function(showCrosshair)
tbl12.showCrosshair = showCrosshair
end,
})
v43:Toggle({
Title = "显示追踪线",
Default = false,
Callback = function(showTracer)
tbl12.showTracer = showTracer
end,
})
v43:Toggle({
Title = "队伍检测",
Default = false,
Callback = function(teamCheck)
tbl12.teamCheck = teamCheck
end,
})
v43:Toggle({
Title = "好友检测",
Default = false,
Callback = function(friendCheck)
tbl12.friendCheck = friendCheck
end,
})
v43:Toggle({
Title = "墙壁检测",
Default = false,
Callback = function(wallCheck)
tbl12.wallCheck = wallCheck
end,
})
v43:Toggle({
Title = "预判自瞄",
Default = false,
Callback = function(prediction)
tbl12.prediction = prediction
end,
})
v43:Toggle({
Title = "只自瞄警察",
Default = false,
Callback = function(onlyPolice)
tbl12.onlyPolice = onlyPolice
if onlyPolice then
tbl12.onlyCivilian = false
end
end,
})
v43:Toggle({
Title = "只自瞄平民",
Default = false,
Callback = function(onlyCivilian)
tbl12.onlyCivilian = onlyCivilian
if onlyCivilian then
tbl12.onlyPolice = false
end
end,
})
v43:Toggle({
Title = "战斗检测",
Default = false,
Callback = function(combatCheck)
tbl12.combatCheck = combatCheck
end,
})
v43:Dropdown({
Title = "优先锁定模式",
Values = { "准心最近", "距离最近", "血量最低" },
Value = "准心最近",
Callback = function(targetMode)
tbl12.targetMode = targetMode
end,
})
v43:Dropdown({
Title = "瞄准身体部位",
Values = { "头", "胸", "左手", "右手", "左腿", "右腿" },
Value = "头",
Callback = function(targetPart)
tbl12.targetPart = targetPart
end,
})
v43:Slider({
Title = "Fov圈大小",
Value = { Min = 1, Max = 500, Default = 50 },
Callback = function(fov)
tbl12.fov = fov
end,
})
v43:Slider({
Title = "自瞄平滑度",
Value = { Min = 1, Max = 10, Default = 10 },
Callback = function(arg11)
tbl12.smoothness = arg11 / 10
end,
})
v43:Slider({
Title = "Fov圈厚度",
Value = { Min = 1, Max = 5, Default = 2 },
Callback = function(fovThickness)
tbl12.fovThickness = fovThickness
end,
})
v43:Dropdown({
Title = "颜色选择",
Values = { "红色", "黄色", "绿色", "蓝色", "紫色", "白色", "黑色", "彩虹色" },
Value = "红色",
Callback = function(color2)
tbl12.color = color2
end,
})
local v44 = v39:Tab({ Title = "Ragebot", Icon = "bot" })
v44:Toggle({
Title = "Ragebot",
Default = false,
Callback = function(enabled)
tbl13.enabled = enabled
end,
})
v44:Slider({
Title = "攻击距离",
Value = { Min = 10, Max = 500, Default = 150 },
Step = 1,
Callback = function(range)
tbl13.range = range
end,
})
v44:Slider({
Title = "攻击间隔",
Value = { Min = 0.01, Max = 1, Default = 0.05 },
Step = 0.01,
Callback = function(interval)
tbl13.interval = interval
end,
})
v44:Dropdown({
Title = "攻击部位",
Values = { "头部", "躯干", "左臂", "右臂", "左腿", "右腿" },
Value = "头部",
Callback = function(arg11)
tbl13.bodyPart = tbl14[arg11] or "Head"
end,
})
v44:Toggle({
Title = "职业检测",
Default = false,
Callback = function(jobCheck)
tbl13.jobCheck = jobCheck
end,
})
v44:Toggle({
Title = "墙壁检测",
Default = false,
Callback = function(wallCheck)
tbl13.wallCheck = wallCheck
end,
})
v44:Toggle({
Title = "活体检测",
Default = false,
Callback = function(aliveCheck)
tbl13.aliveCheck = aliveCheck
end,
})
v44:Toggle({
Title = "战斗状态检测",
Default = false,
Callback = function(combatCheck)
tbl13.combatCheck = combatCheck
end,
})
v44:Toggle({
Title = "锁定警察",
Default = false,
Callback = function(policeLock)
tbl13.policeLock = policeLock
if policeLock then
tbl13.civilianLock = false
end
end,
})
v44:Toggle({
Title = "锁定平民",
Default = false,
Callback = function(civilianLock)
tbl13.civilianLock = civilianLock
if civilianLock then
tbl13.policeLock = false
end
end,
})
v44:Toggle({
Title = "弹道显示",
Default = false,
Callback = function(beam)
tbl13.beam = beam
end,
})
local v45 = v39:Tab({ Title = "范围", Icon = "bullseye" })
v45:Toggle({
Title = "开启/关闭范围",
Default = false,
Callback = function(active)
tbl15.active = active
if not active then
for _, player in ipairs(Players:GetPlayers()) do
if player.Character then
end
end
end
end,
})
v45:Input({
Title = "范围大小设置",
Value = "10",
Callback = function(arg11)
local size = tonumber(arg11)
if size and size > 0 then
tbl15.size = size
end
end,
})
v45:Input({
Title = "范围透明度设置(0-1)",
Value = "0.7",
Callback = function(arg11)
local transparency = tonumber(arg11)
if transparency and transparency >= 0 and transparency <= 1 then
tbl15.transparency = transparency
end
end,
})
v45:Dropdown({
Title = "选择范围颜色",
Values = { "红色", "蓝色", "黄色", "绿色", "青色", "橙色", "紫色", "白色", "黑色", "彩虹色" },
Value = "红色",
Callback = function(color2)
tbl15.color = color2
tbl15.rainbow = color2 == "彩虹色"
end,
})
v45:Dropdown({
Title = "选择范围材质",
Values = { "Neon", "Plastic", "Wood", "Slate", "Concrete", "Metal", "SmoothPlastic" },
Value = "Neon",
Callback = function(material)
tbl15.material = material
end,
})
v45:Toggle({
Title = "NPC范围",
Default = false,
Callback = function(affectNPC)
tbl15.affectNPC = affectNPC
end,
})
v45:Toggle({
Title = "队伍检测",
Default = false,
Callback = function(teamCheck)
tbl15.teamCheck = teamCheck
end,
})
v45:Toggle({
Title = "活体检测",
Default = false,
Callback = function(checkCorpses)
tbl15.checkCorpses = checkCorpses
end,
})
v45:Toggle({
Title = "显示轮廓",
Default = false,
Callback = function(outline)
tbl15.outline = outline
end,
})
v45:Toggle({
Title = "启用/禁用碰撞",
Default = false,
Callback = function(collision)
tbl15.collision = collision
end,
})
v45:Toggle({
Title = "发光效果",
Default = false,
Callback = function(glow)
tbl15.glow = glow
end,
})
v45:Toggle({
Title = "脉动效果",
Default = false,
Callback = function(pulse)
tbl15.pulse = pulse
end,
})
local v46 = v39:Tab({ Title = "玩家", Icon = "user" })
v46:Toggle({
Title = "开启/关闭跳跃",
Default = false,
Callback = function(jumpEnabled)
MovementSettings.jumpEnabled = jumpEnabled
if jumpEnabled then
fn56()
else
fn55()
end
end,
})
v46:Slider({
Title = "设置跳跃高度",
Value = { Min = 50, Max = 400, Default = 50 },
Callback = function(jumpPower)
MovementSettings.jumpPower = jumpPower
end,
})
v46:Slider({
Title = "设置跳跃倍数",
Value = { Min = 1, Max = 10, Default = 1 },
Callback = function(jumpMultiplier)
MovementSettings.jumpMultiplier = jumpMultiplier
end,
})
v46:Toggle({
Title = "无限跳跃",
Default = false,
Callback = function(infiniteJump)
MovementSettings.infiniteJump = infiniteJump
end,
})
local v47 = v39:Tab({ Title = "警察功能", Icon = "handcuffs" })
v47:Toggle({
Title = "自动铐",
Default = false,
Callback = function(autoCuff)
Settings.autoCuff = autoCuff
if autoCuff then
fn54()
end
end,
})
v47:Toggle({
Title = "自动传送",
Default = false,
Callback = function(teleport)
PoliceSettings.teleport = teleport
end,
})
v47:Toggle({
Title = "战斗检测",
Default = false,
Callback = function(combatCheck)
PoliceSettings.combatCheck = combatCheck
end,
})
v47:Slider({
Title = "范围",
Value = { Min = 10, Max = 500, Default = 200 },
Step = 5,
Callback = function(range)
PoliceSettings.range = range
end,
})
v47:Slider({
Title = "间隔",
Value = { Min = 0.1, Max = 3, Default = 0.5 },
Step = 0.1,
Callback = function(delay)
PoliceSettings.delay = delay
end,
})
local v48 = v39:Tab({ Title = "ESP", Icon = "eye" })
v48:Toggle({
Title = "玩家透视总开关",
Default = false,
Callback = function(enabled)
if type(enabled) == "table" then
enabled = enabled.Value
end
tbl16.enabled = enabled == true
if not tbl16.enabled then
for k2 in pairs(tbl16.trackers) do
fn52(k2)
end
else
pcall(fn53)
end
end,
})
v48:Toggle({
Title = "显示名字",
Default = true,
Callback = function(name)
tbl16.name = name
end,
})
v48:Toggle({
Title = "显示距离",
Default = true,
Callback = function(distance)
tbl16.distance = distance
end,
})
v48:Toggle({
Title = "显示血量",
Default = true,
Callback = function(health)
tbl16.health = health
end,
})
v48:Toggle({
Title = "显示高亮",
Default = true,
Callback = function(highlight)
tbl16.highlight = highlight
end,
})
v48:Toggle({
Title = "显示追踪线",
Default = false,
Callback = function(tracer)
tbl16.tracer = tracer
end,
})
v48:Dropdown({
Title = "追踪线起点",
Values = { "屏幕底部", "屏幕中心", "屏幕顶部" },
Value = "屏幕底部",
Callback = function(tracerOrigin)
tbl16.tracerOrigin = tracerOrigin
end,
})
local tbl31 = { "逃犯", "厨师", "平民", "配送员", "农民", "消防员", "警察", "医护人员", "囚犯", "道路服务", "交通" }
v48:Dropdown({
Title = "选择透视队伍",
Values = tbl31,
Value = tbl31,
Multi = true,
AllowNone = true,
Callback = function(arg11)
for k2 in pairs(tbl16.selectedTeams) do
tbl16.selectedTeams[k2] = false
end
tbl16.showFugitive = false
if type(arg11) ~= "table" then
return
end
local function applyTeam(label)
if label == "逃犯" then
tbl16.showFugitive = true
return
end
for k2, v50 in pairs(tbl17) do
if v50 == label or k2 == label then
tbl16.selectedTeams[k2] = true
end
end
end
if arg11[1] ~= nil then
for _, v49 in ipairs(arg11) do
applyTeam(v49)
end
else
for k2, v49 in pairs(arg11) do
if v49 == true then
applyTeam(k2)
elseif type(v49) == "string" then
applyTeam(v49)
end
end
end
end,
})
v27:OnClose(function()
flag8 = false
v27 = nil
end)
v27:OnDestroy(function()
flag8 = false
v27 = nil
end)
end
end
end
end
task.defer(function()
pcall(function()
if fn59 then
fn59()
end
end)
end)
end
if getgenv().PYHubAutoRun ~= false then
task.defer(function()
local ok, err = pcall(PYHubEntry, "", "", "", "", "", nil, {}, nil, nil, function()
end, function(msg)
local step = tostring(msg or "")
return function()
if step ~= "" then
print("[PY Hub]", step)
end
end
end, function()
end)
if not ok then
warn("[PY Hub] 启动失败:", err)
end
end)
end
return PYHubEntry