do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '斩泪内置', appid = '101642', appkey = 'MQFgmoG6M6MgqbGb', rc4key = '66On86SSt8gOCfO7', version = '2.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= '3ed4bd5bbd15f20d9dd50336a8eeda8c' then os.exit() return end end function Main() SN = gg.choice({ "选择进程", "自动改车牌", "修改金币", "自改速度", "自改广角", "保持Q弹", "退出脚本" }, 2018, "作者QQ:2518579189") if SN == 1 then a() end if SN == 2 then b() end if SN == 3 then c() end if SN == 4 then d() end if SN == 5 then e() end if SN == 6 then f() end if SN == 7 then Exit() end XGCK = -1 end function a() gg.setProcessX() gg.toast("开启成功") end function b() function main() while true do local prompt = gg.prompt( {"请输入旧车牌:", "请输入新车牌:"}, {[1]="", [2]=""}, {[1]="text", [2]="text"} ) -- 只有点取消 / 关闭面板才结束脚本 if prompt == nil then gg.toast("脚本已退出") return end local oldText = prompt[1] local newText = prompt[2] -- 空输入不退出,只提示后重新回到面板 if oldText == "" or newText == "" then gg.toast("文本不能为空,请重新输入") else -- ★★★ 核心修改:在开始搜索前,隐藏GG界面(这样就不会弹进度条弹窗了) ★★★ gg.setVisible(false) -- 设置内存范围 gg.setRanges( gg.REGION_JAVA_HEAP | gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_C_DATA | gg.REGION_C_BSS | gg.REGION_PPSSPP | gg.REGION_ANONYMOUS ) gg.clearResults() -- 搜索 UTF-16LE 文本(此时会在后台静默执行,不再弹窗) gg.searchNumber(";" .. oldText, gg.TYPE_UNICODE) local count = gg.getResultsCount() if count == 0 then gg.toast("未找到: " .. oldText) else -- 先加载结果,再批量替换 gg.getResults(count) gg.editAll(";" .. newText, gg.TYPE_WORD) gg.toast("成功替换 " .. count .. " 处") end gg.clearResults() -- ★★★ 搜索完成后,重新显示GG界面(可选,如果你想保持隐藏可删除这行) ★★★ gg.setVisible(true) end -- 循环回到 while,重新弹出输入面板 end end main() gg.toast("取消") end function c() -- ========================================== -- GameGuardian Lua:可重复执行的搜索替换并冻结 -- 自动默认继续下一次替换(点输入框的“取消”才会退出) -- 修复:editAll 报错,隐藏搜索界面,带非空校验 -- ========================================== local type = gg.TYPE_DWORD -- 类型 DWORD (如果是其他类型,请修改这里) gg.setVisible(false) -- 隐藏 GG 界面,防止弹出搜索进度窗口 gg.toast("脚本已启动,可连续输入替换。点输入框的取消即可退出。") while true do -- 主循环,自动回到输入界面 -- ================== 1. 获取输入 ================== local searchVal, replaceVal local inputOk = false while not inputOk do -- 弹出输入框(标题提示如何退出) local prompt = gg.prompt( {"原有的数量 (点取消退出):", "替换的数量:"}, {"", ""}, {"number", "number"} ) -- 如果用户点了取消,直接退出整个脚本 if not prompt then gg.toast("已取消,脚本结束") return end local input1 = prompt[1] and prompt[1]:match("^%s*(.-)%s*$") or "" local input2 = prompt[2] and prompt[2]:match("^%s*(.-)%s*$") or "" -- 校验是否为空 if input1 == "" or input2 == "" then gg.alert("❌ 提示:不能为空!\n请重新输入。") else searchVal = tonumber(input1) replaceVal = tonumber(input2) -- 校验是否是有效数字 if not searchVal or not replaceVal then gg.alert("❌ 提示:请输入有效的数字!") else inputOk = true -- 输入没问题,跳出校验循环 end end end -- ================== 2. 执行一次搜索替换 ================== gg.setVisible(false) -- 再次隐藏界面 gg.clearResults() -- 清除上一次的结果 -- 搜索数值(用 pcall 保护,防止搜索崩溃) local searchSuccess = pcall(function() gg.searchNumber(searchVal, type) end) if not searchSuccess then gg.alert("搜索失败,请检查游戏是否运行或数值是否正确。") else local count = gg.getResultsCount() if count > 0 then local results = gg.getResults(count) -- 修改值并设置冻结 for i, v in ipairs(results) do v.value = replaceVal v.freeze = true v.freezeType = gg.FREEZE_NORMAL end -- 写入内存并添加到冻结列表(用 pcall 防止写入崩溃) local writeSuccess = pcall(function() gg.setValues(results) gg.addListItems(results) end) if writeSuccess then gg.toast("✅ 成功替换并冻结 " .. count .. " 个地址") else gg.toast("⚠️ 写入内存失败,可能地址已失效") end else gg.toast("❌ 未找到数值:" .. searchVal) end end -- ================== 3. 自动继续下一次 ================== gg.sleep(500) -- 稍微停顿半秒,让游戏和GG缓一缓 end gg.toast("开启成功") end function d() gg.toast("不是会员用户") end function e() gg.toast("不是会员用户") end function f() gg.toast("不是会员用户") end function Exit() print("结束脚本") os.exit() end cs = "作者QQ:2518579189" while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false) end gg.clearResults() if XGCK == 1 then Main() end end --[[Welcome to Dluae]]