function Vimal()end function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) gg.addListItems(t) else gg.toast("@Vɪᴍᴀʟ_OP", false) return false end else gg.toast("Vᴀʟᴜᴇs Nᴏᴛ Fᴏᴜɴᴅ") return false end end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "" .. xgsl .. "") else gg.toast(qmnb[2]["name"] .. "") end end end end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function setvalue(address,flags,value) Vimal("Modify address value(Address, value type, value to be modified)") local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end Main = 1 function Main() SN = gg.choice({ "上下坡防拉", "", "", "", "", "", "退出脚本" }, nil, "楼主") 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() qmnb = { {["memory"] = 16384}, {["name"] = ""}, {["value"] = -1.3697733999143556E28, ["type"] = 16}, {["lv"] = -5.729406412975114E27, ["offset"] = -8, ["type"] = 16}, {["lv"] = -1.053036724121916E28, ["offset"] = -4, ["type"] = 16}, {["lv"] = -5.729405232383493E27, ["offset"] = 8, ["type"] = 16}, {["lv"] = -2.8024562771669074E28, ["offset"] = 12, ["type"] = 16}, {["lv"] = -3.7444097189855772E28, ["offset"] = 16, ["type"] = 16}, {["lv"] = -9007278711635968.0, ["offset"] = 20, ["type"] = 16}, } qmxg = { {["value"] = 0, ["offset"] = 4, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 16384}, {["name"] = ""}, {["value"] = -8.504575919048233E22, ["type"] = 16}, {["lv"] = -3.6965559815205867E20, ["offset"] = -8, ["type"] = 16}, {["lv"] = -2.1989356605392476E22, ["offset"] = -4, ["type"] = 16}, {["lv"] = -3.8369227673315867E21, ["offset"] = 12, ["type"] = 16}, {["lv"] = 8.35388098596502E-28, ["offset"] = 16, ["type"] = 16}, } qmxg = { {["value"] = 0, ["offset"] = 4, ["type"] = 16}, {["value"] = 0, ["offset"] = 8, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 16384}, {["name"] = ""}, {["value"] = -5.574659185697959E27, ["type"] = 16}, {["lv"] = -1.053036724121916E28, ["offset"] = -8, ["type"] = 16}, {["lv"] = -3.6979964297139035E20, ["offset"] = -4, ["type"] = 16}, {["lv"] = -9007225024544768.0, ["offset"] = 12, ["type"] = 16}, } qmxg = { {["value"] = 0, ["offset"] = 4, ["type"] = 16}, {["value"] = 0, ["offset"] = 8, ["type"] = 16}, } xqmnb(qmnb) end function b() end function c() end function d() end function e() end function f() end function Exit() print("楼主") os.exit() end cs = "这里可以改成你想说的话" while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false) end gg.clearResults() if XGCK == 1 then Main() end end