-- ============================================ -- 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 Main() 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 modifyInfiniteBoost() elseif choice == 3 then modifyLightDriftBoost() elseif choice == 4 then modifyInfiniteNitro() elseif choice == 5 then modifyNitroDuration() elseif choice == 6 then modifyEngine() elseif choice == 7 then modifyNitroBoost() elseif choice == 8 then oneClickNitroCombo() elseif choice == 9 then modifyTwoFunctions() 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 -- 功能2:无限小喷 function modifyInfiniteBoost() gg.toast("开始搜索并验证无限小喷地址...") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) local searchSuccess = pcall(function() gg.searchNumber("1068708659", gg.TYPE_DWORD) end) if not searchSuccess then gg.toast("❌ 无限小喷搜索失败!") return end local dwordResults = gg.getResults(9999) if not dwordResults or #dwordResults == 0 then gg.toast("❌ 未找到地址!") return end local boostTargets = {} local boostOriginalValues = {} for i, addrInfo in ipairs(dwordResults) do local baseAddress = addrInfo.address local targetAddress = baseAddress + 0xB0 local verifySuccess, verifyValue = pcall(function() local readOp = {{address = targetAddress, flags = gg.TYPE_DWORD}} local readResult = gg.getValues(readOp) return readResult and readResult[1] and readResult[1].value end) if verifySuccess and verifyValue == 1068708659 then local readSuccess, floatValue = pcall(function() local readOp = {{address = targetAddress, flags = gg.TYPE_FLOAT}} local readResult = gg.getValues(readOp) return readResult and readResult[1] and readResult[1].value end) if readSuccess and floatValue then table.insert(boostTargets, {address = targetAddress, flags = gg.TYPE_FLOAT, originalValue = floatValue}) table.insert(boostOriginalValues, floatValue) pcall(function() setvalue(targetAddress, gg.TYPE_FLOAT, 300) end) end end end if #boostTargets == 0 then gg.toast("❌ 未找到有效地址对!") return end savedValues.infiniteBoost = {targets = boostTargets, originalValues = boostOriginalValues} gg.toast(string.format("✅ 无限小喷修改成功!修改%d个值", #boostTargets)) end -- 功能3:轻漂双喷 function modifyLightDriftBoost() if not savedValues.infiniteBoost or not savedValues.infiniteBoost.targets or #savedValues.infiniteBoost.targets == 0 then gg.toast("❌ 请先运行'无限小喷'功能!") return end gg.toast("正在修改轻漂双喷...") local boostTargets = savedValues.infiniteBoost.targets local driftTargets = {} local originalFloatValues = {} local modifyCount = 0 for i, targetInfo in ipairs(boostTargets) do local verifiedAddress = targetInfo.address local driftAddress = verifiedAddress + 0x14 local readSuccess, floatValue = pcall(function() local readOp = {{address = driftAddress, flags = gg.TYPE_FLOAT}} local readResult = gg.getValues(readOp) return readResult and readResult[1] and readResult[1].value end) if readSuccess and floatValue then table.insert(driftTargets, {address = driftAddress, flags = gg.TYPE_FLOAT, originalValue = floatValue}) table.insert(originalFloatValues, floatValue) local setSuccess = pcall(function() setvalue(driftAddress, gg.TYPE_FLOAT, 0) end) if setSuccess then modifyCount = modifyCount + 1 end end end if modifyCount == 0 then gg.toast("❌ 轻漂双喷修改失败!") return end savedValues.lightDriftBoost = {targets = driftTargets, originalValues = originalFloatValues} gg.toast(string.format("✅ 轻漂双喷修改成功!修改%d个值", modifyCount)) end -- 功能4:无限氮气 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 -- 功能5:氮气延长 function modifyNitroDuration() local input = gg.prompt({"氮气延长值(默认2.5):"}, {"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 -- 功能6:引擎提速 function modifyEngine() local input = gg.prompt({"引擎提速值(默认3):"}, {"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 -- 功能7:氮气加速 function modifyNitroBoost() local input = gg.prompt({"氮气加速值(默认1.12):"}, {"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 -- 功能8:一键氮气三件套 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 -- 功能9:双功能一起开 function modifyTwoFunctions() gg.toast("开始同时修改两个功能...") local count = 0 if not savedValues.infiniteBoost then modifyInfiniteBoost() count = count + 1 end if not savedValues.infiniteNitro then modifyInfiniteNitro() count = count + 1 end if count > 0 then gg.toast("✅ 双功能已同时开启") else gg.toast("双功能均已开启") end end -- 功能10:恢复所有修改 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