-- ============================================ -- QQ飞车多功能修改器 (界面优化版) -- 功能:过检测、无限小喷、轻漂双喷、无限氮气、氮气延长、引擎提速、氮气加速 -- 界面优化:状态信息直接显示在菜单项前,简洁直观 -- 新增:公告栏、检测强度功能 -- 修改:更新"无限小喷"、"轻漂双喷"的搜索逻辑 -- ============================================ local savedValues = {} -- 用于保存各功能的原始值,以便恢复 local XGCK = -1 -- 菜单控制标志 function setvalue(address, flags, value) local tt = {{address = address, flags = flags, value = value}} gg.setValues(tt) end function getStatusIcon(value) return value and "✅" or "❌" end -- 新增功能:检测强度 function checkSecurity() gg.toast("开始检测游戏安全强度...") gg.clearResults() -- 使用C++ alloc内存区域进行搜索 gg.setRanges(gg.REGION_C_ALLOC) gg.searchNumber("67109633", gg.TYPE_DWORD) local results = gg.getResultCount() gg.clearResults() if results < 50 then gg.alert("检测结果:安全\n\n扫描到 " .. results .. " 个相关地址,低于阈值50。") gg.toast("✅ 安全") else gg.alert("⚠️ 检测结果:危险!\n\n扫描到 " .. results .. " 个相关地址,高于阈值50。") gg.toast("❌ 危险") end end function Main() -- ======================= 新增:公告栏 ======================= gg.alert("📢 公 告 栏\n确保桌面开了端口再进游戏,脚本过检登录界面开,大厅执行检测强度显示安全在开游戏,每次上号先用小号测试,不防人工!!\\n作者:花生 \\n", "知道了") local statusIcons = { getStatusIcon(savedValues.bypassDetection), getStatusIcon(savedValues.infiniteBoost), getStatusIcon(savedValues.lightDriftBoost), getStatusIcon(savedValues.infiniteNitro), getStatusIcon(savedValues.nitroDuration), getStatusIcon(savedValues.engine), getStatusIcon(savedValues.nitroBoost) } -- 修改菜单项:新增"检测强度",移除"无限氮气+无限小喷" local menuItems = { statusIcons[1] .. " 过检测(登录界面开)", "🛡️ 检测强度", -- 新增项 statusIcons[2] .. " 无限小喷(一局一开)", statusIcons[3] .. " 轻漂双喷(一局一开)", statusIcons[4] .. " 无限氮气(一局一开)", statusIcons[5] .. " 氮气延长", statusIcons[6] .. " 引擎提速", statusIcons[7] .. " 氮气加速", "🚀 一键氮气延长提速加速(默认参数)", -- 已移除:"🎯 无限氮气+无限小喷", "↩️ 恢复所有修改", "🚪 退出脚本" } local choice = gg.choice(menuItems, nil, "QQ飞车多功能修改器\n请选择功能:") if choice == nil then return elseif choice == 1 then bypassDetection() elseif choice == 2 then checkSecurity() -- 新增功能调用 elseif choice == 3 then modifyInfiniteBoost() -- 已按新逻辑重写 elseif choice == 4 then modifyLightDriftBoost() -- 已按新逻辑重写 elseif choice == 5 then modifyInfiniteNitro() elseif choice == 6 then modifyNitroDuration() elseif choice == 7 then modifyEngine() elseif choice == 8 then modifyNitroBoost() elseif choice == 9 then oneClickNitroCombo() elseif choice == 10 then restoreAll() elseif choice == 11 then Exit() end end -- 功能1:过检测功能 (保持不变) function bypassDetection() gg.toast("开始搜索过检测地址...") gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) local searchSuccess = pcall(function() gg.searchNumber("16385", gg.TYPE_DWORD) end) if not searchSuccess then gg.toast("❌ 过检测搜索失败!") return end local results = gg.getResults(9999) if not results or #results == 0 then gg.toast("❌ 未找到过检测地址!") return end local originalValues = {} for i, v in ipairs(results) do table.insert(originalValues, v.value) end for i, v in ipairs(results) do v.value = 0 v.freeze = false end gg.setValues(results) savedValues.bypassDetection = {targets = results, originalValues = originalValues} gg.toast(string.format("✅ 过检测修改成功!已修改%d个地址", #results)) end -- 功能3:无限小喷 (已按您的要求重写) function modifyInfiniteBoost() gg.toast("开始搜索无限小喷地址(新逻辑)...") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) -- 搜索 (1.39999997616;35;100~120::100) 中的第一个值 gg.searchNumber("1.39999997616", gg.TYPE_FLOAT) local results = gg.getResults(9999) if not results or #results == 0 then gg.toast("❌ 未找到地址!") return end local boostTargets = {} local boostOriginalValues = {} local modifyCount = 0 for i, v in ipairs(results) do -- 可选:添加地址范围过滤 (100~120),但通常搜索已限定在ANONYMOUS区域 -- 这里我们直接修改所有搜到的结果 table.insert(boostTargets, {address = v.address, flags = gg.TYPE_FLOAT, originalValue = v.value}) table.insert(boostOriginalValues, v.value) v.value = 300 v.freeze = false modifyCount = modifyCount + 1 end gg.setValues(results) if modifyCount == 0 then gg.toast("❌ 修改失败!") return end savedValues.infiniteBoost = {targets = boostTargets, originalValues = boostOriginalValues} gg.toast(string.format("✅ 无限小喷修改成功!修改%d个值", modifyCount)) end -- 功能4:轻漂双喷 (已按您的要求重写,不再依赖无限小喷的结果) function modifyLightDriftBoost() gg.toast("开始搜索轻漂双喷地址(新逻辑)...") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) -- 搜索 (1.39999997616;35;100~120::100) 中的第二个值 gg.searchNumber("35", gg.TYPE_FLOAT) local results = gg.getResults(9999) if not results or #results == 0 then gg.toast("❌ 未找到地址!") return end local driftTargets = {} local originalFloatValues = {} local modifyCount = 0 for i, v in ipairs(results) do table.insert(driftTargets, {address = v.address, flags = gg.TYPE_FLOAT, originalValue = v.value}) table.insert(originalFloatValues, v.value) v.value = 1 v.freeze = false modifyCount = modifyCount + 1 end gg.setValues(results) if modifyCount == 0 then gg.toast("❌ 轻漂双喷修改失败!") return end savedValues.lightDriftBoost = {targets = driftTargets, originalValues = originalFloatValues} gg.toast(string.format("✅ 轻漂双喷修改成功!修改%d个值", modifyCount)) end -- 功能5:无限氮气 (保持不变) function modifyInfiniteNitro() gg.toast("开始搜索无限氮气地址...") local maxLoops = 5 local loopInterval = 2000 local savedTargets = {} local savedOriginalValues = {} for loop = 1, maxLoops do gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) local searchSuccess = pcall(function() gg.searchNumber("1082969293", gg.TYPE_DWORD) end) if searchSuccess then local dwordResults = gg.getResults(9999) if dwordResults and #dwordResults > 0 then for i, dwordAddrInfo in ipairs(dwordResults) do local baseAddress = dwordAddrInfo.address local checkAddr = baseAddress + 0x1C local readSuccess, readResult = pcall(function() return gg.getValues({{address = checkAddr, flags = gg.TYPE_DWORD}}) end) if readSuccess and readResult and readResult[1] and readResult[1].value == 1065353216 then local finalAddress = baseAddress + 0x14 local alreadySaved = false for _, savedAddr in ipairs(savedTargets) do if savedAddr.address == finalAddress then alreadySaved = true break end end if not alreadySaved then local readFloatSuccess, floatResult = pcall(function() return gg.getValues({{address = finalAddress, flags = gg.TYPE_FLOAT}}) end) if readFloatSuccess and floatResult and floatResult[1] then table.insert(savedTargets, {address = finalAddress, flags = gg.TYPE_FLOAT, originalValue = floatResult[1].value}) table.insert(savedOriginalValues, floatResult[1].value) end end pcall(function() setvalue(finalAddress, gg.TYPE_FLOAT, 1) end) end end end end if loop < maxLoops then gg.sleep(loopInterval) end end if #savedTargets > 0 then savedValues.infiniteNitro = {targets = savedTargets, originalValues = savedOriginalValues} gg.toast(string.format("✅ 无限氮气已生效,修改%d个地址", #savedTargets)) else gg.toast("❌ 无限氮气未找到地址") end end -- 功能6:氮气延长 (保持不变) function modifyNitroDuration() local input = gg.prompt({"氮气延长值(原值1.0):"}, {"2.5"}, {"number"}) if not input then gg.toast("已取消氮气延长修改") return end local newVal = tonumber(input[1]) or 2.5 local so = gg.getRangesList('libil2cpp.so:bss')[1].start local offset = -0x18493060 savedValues.nitroDuration = {address = so+offset, original = 1.0, new = newVal} setvalue(so+offset, 16, newVal) gg.toast(string.format("✅ 氮气延长修改成功:1.0 → %s", newVal)) end -- 功能7:引擎提速 (保持不变) function modifyEngine() local input = gg.prompt({"引擎提速值(原值1.0):"}, {"3"}, {"number"}) if not input then gg.toast("已取消引擎提速修改") return end local newVal = tonumber(input[1]) or 3 local so = gg.getRangesList('libil2cpp.so:bss')[1].start local offset = -0x1849305C savedValues.engine = {address = so+offset, original = 1.0, new = newVal} setvalue(so+offset, 16, newVal) gg.toast(string.format("✅ 引擎提速修改成功:1.0 → %s", newVal)) end -- 功能8:氮气加速 (保持不变) function modifyNitroBoost() local input = gg.prompt({"氮气加速值(原值1.0):"}, {"1.12"}, {"number"}) if not input then gg.toast("已取消氮气加速修改") return end local newVal = tonumber(input[1]) or 1.12 local so = gg.getRangesList('libil2cpp.so:bss')[1].start local offset = -0x18493058 savedValues.nitroBoost = {address = so+offset, original = 1.0, new = newVal} setvalue(so+offset, 16, newVal) gg.toast(string.format("✅ 氮气加速修改成功:1.0 → %s", newVal)) end -- 功能9:一键氮气三件套 (保持不变) function oneClickNitroCombo() gg.toast("正在一键设置氮气三件套...") local so = gg.getRangesList('libil2cpp.so:bss')[1].start local offset1 = -0x18493060 setvalue(so+offset1, 16, 2.5) savedValues.nitroDuration = {address = so+offset1, original = 1.0, new = 2.5} gg.sleep(200) local offset2 = -0x1849305C setvalue(so+offset2, 16, 3) savedValues.engine = {address = so+offset2, original = 1.0, new = 3} gg.sleep(200) local offset3 = -0x18493058 setvalue(so+offset3, 16, 1.12) savedValues.nitroBoost = {address = so+offset3, original = 1.0, new = 1.12} gg.sleep(200) gg.toast("✅ 氮气三件套一键设置完成!") gg.alert("一键设置完成!\n\n推荐参数已生效:\n• 氮气延长:2.5\n• 引擎提速:3\n• 氮气加速:1.12") end -- 已移除: function modifyTwoFunctions() -- 功能10:恢复所有修改 (保持不变,但恢复列表因移除modifyTwoFunctions无需修改) function restoreAll() local msg = "恢复结果:\n" local cnt = 0 if savedValues.bypassDetection and savedValues.bypassDetection.targets then local ts = savedValues.bypassDetection.targets local ovs = savedValues.bypassDetection.originalValues for i, t in ipairs(ts) do if ovs[i] then t.value = ovs[i] gg.setValues({t}) end end msg = msg .. string.format("✅ 过检测:%d个\n", #ts) cnt = cnt + 1 savedValues.bypassDetection = nil end if savedValues.infiniteBoost and savedValues.infiniteBoost.targets then local ts = savedValues.infiniteBoost.targets local ovs = savedValues.infiniteBoost.originalValues for i, t in ipairs(ts) do if ovs[i] then setvalue(t.address, t.flags, ovs[i]) end end msg = msg .. string.format("✅ 无限小喷:%d个\n", #ts) cnt = cnt + 1 savedValues.infiniteBoost = nil end if savedValues.lightDriftBoost and savedValues.lightDriftBoost.targets then local ts = savedValues.lightDriftBoost.targets local ovs = savedValues.lightDriftBoost.originalValues for i, t in ipairs(ts) do if ovs[i] then setvalue(t.address, t.flags, ovs[i]) end end msg = msg .. string.format("✅ 轻漂双喷:%d个\n", #ts) cnt = cnt + 1 savedValues.lightDriftBoost = nil end if savedValues.infiniteNitro and savedValues.infiniteNitro.targets then local ts = savedValues.infiniteNitro.targets local ovs = savedValues.infiniteNitro.originalValues for i, t in ipairs(ts) do if ovs[i] then setvalue(t.address, t.flags, ovs[i]) end end msg = msg .. string.format("✅ 无限氮气:%d个\n", #ts) cnt = cnt + 1 savedValues.infiniteNitro = nil end if savedValues.nitroDuration then setvalue(savedValues.nitroDuration.address, 16, 1.0) msg = msg .. "✅ 氮气延长\n" cnt = cnt + 1 savedValues.nitroDuration = nil end if savedValues.engine then setvalue(savedValues.engine.address, 16, 1.0) msg = msg .. "✅ 引擎提速\n" cnt = cnt + 1 savedValues.engine = nil end if savedValues.nitroBoost then setvalue(savedValues.nitroBoost.address, 16, 1.0) msg = msg .. "✅ 氮气加速\n" cnt = cnt + 1 savedValues.nitroBoost = nil end if cnt > 0 then gg.alert(msg .. string.format("\n✅ 总计恢复 %d 个功能", cnt)) gg.toast("✅ 已恢复所有修改") else gg.alert("无修改可恢复!") end end -- 功能11:退出脚本 (保持不变) function Exit() if gg.alert("确认退出脚本?", "确定", "取消") == 1 then if savedValues.bypassDetection or savedValues.infiniteBoost or savedValues.lightDriftBoost or savedValues.infiniteNitro or savedValues.nitroDuration or savedValues.engine or savedValues.nitroBoost then if gg.alert("有未恢复的修改,先恢复?", "先恢复", "直接退出", "取消") == 1 then restoreAll() gg.sleep(1000) elseif gg.alert("", "", "", "取消") == 3 then return end end gg.toast("脚本已退出") os.exit() end end -- 脚本主循环 gg.toast("多功能修改器已启动") gg.toast("点击悬浮窗显示菜单") while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false) end gg.clearResults() if XGCK == 1 then Main() XGCK = -1 end gg.sleep(100) end