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() -- ========================================== -- Cheat Engine Lua:自动搜索并替换 DWORD 内存 -- 上面输入:要搜索的数量 -- 下面输入:替换成的数量 -- 类型:DWORD (4 字节整数) -- ========================================== -- 把整数转成 4 字节小端字符串 local function intToBytes(value) local b = {} for i = 0, 3 do b[#b + 1] = string.char((value >> (i * 8)) & 0xFF) end return table.concat(b) end -- 创建窗口 local form = createForm(true) form.Caption = "自动搜索替换内存 (DWORD)" form.Width = 420 form.Height = 230 form.Position = poScreenCenter -- 上面:搜索值 local label1 = createLabel(form) label1.Caption = "剩余金币数量:" label1.Left = 20 label1.Top = 20 label1.Width = 120 local editSearch = createEdit(form) editSearch.Left = 150 editSearch.Top = 18 editSearch.Width = 220 editSearch.Text = "0" -- 下面:替换值 local label2 = createLabel(form) label2.Caption = "替换成的数量:" label2.Left = 20 label2.Top = 60 label2.Width = 120 local editReplace = createEdit(form) editReplace.Left = 150 editReplace.Top = 58 editReplace.Width = 220 editReplace.Text = "0" -- 按钮 local button = createButton(form) button.Caption = "开始搜索并替换" button.Left = 150 button.Top = 100 button.Width = 220 button.Height = 32 -- 日志框 local memo = createMemo(form) memo.Left = 20 memo.Top = 145 memo.Width = 370 memo.Height = 60 memo.ReadOnly = true memo.ScrollBars = ssBoth -- 点击按钮执行 button.OnClick = function(sender) local searchStr = editSearch.Text local replaceStr = editReplace.Text local searchVal = tonumber(searchStr) local replaceVal = tonumber(replaceStr) if not searchVal or not replaceVal then memo.Lines.Text = "错误:请输入有效的数字" return end -- 限制为 32 位整数 searchVal = searchVal & 0xFFFFFFFF replaceVal = replaceVal & 0xFFFFFFFF memo.Lines.Text = "正在扫描内存,请稍候..." form.Refresh() local searchBytes = intToBytes(searchVal) local replaceBytes = intToBytes(replaceVal) -- 使用 AOBScan 搜索字节模式 local scanResult = AOBScan(searchBytes) if not scanResult then memo.Lines.Text = "未找到匹配的内存。" return end local count = 0 local failed = 0 local total = scanResult.Count for i = 0, total - 1 do local addrStr = scanResult[i] local addr = tonumber(addrStr, 16) -- 只处理 4 字节对齐的地址(DWORD 通常对齐) if addr % 4 == 0 then if writeBytes(addr, replaceBytes) then count = count + 1 else failed = failed + 1 end end end scanResult.destroy() -- 释放扫描结果 memo.Lines.Text = string.format( "完成!共找到 %d 个地址,成功替换 %d 个,失败 %d 个。", total, count, failed ) end form.Show() 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]]