local gg, string = gg, string local Jh, Ch, Ca, Cd, Cb, PS, A, J, S, As, V, O, BAD, Xa, Xs = 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.REGION_JAVA, gg.REGION_STACK, gg.REGION_ASHMEM, gg.REGION_VIDEO, gg.REGION_OTHER, gg.REGION_BAD, gg.REGION_CODE_APP, gg.REGION_CODE_APP local AU, D, F, E, W, B, Q, X = gg.TYPE_AUTO, gg.TYPE_DWORD, gg.TYPE_FLOAT, gg.TYPE_DOUBLE, gg.TYPE_WORD, gg.TYPE_BYTE, gg.TYPE_QWORD, gg.TYPE_XOR set_Memory = function(_type) if type(_type) == "table" then local t = {} for k, v in pairs(_type) do t[#t + 1] = v end local tt = table.concat(t, ",") local Load = load("return bit32.bor(" .. tt .. ")")() return gg.setRanges(Load) else return gg.setRanges(_type) end end function Format(tab, format, write, Function) if format == "查看" then return print(tab) elseif format == "修改" then local Table = {} for k, v in pairs(tab) do for kk, vv in pairs(write) do Table[#Table + 1] = { ["address"] = v["address"] + vv[2], ["flags"] = vv[3], ["value"] = vv[1] } end end return gg.setValues(Table) elseif format == "载入" then gg.loadResults(tab) elseif format == "冻结" then local Table = {} for k, v in pairs(tab) do for kk, vv in pairs(write) do Table[#Table + 1] = { ["address"] = v["address"] + vv[2], ["flags"] = vv[3], ["value"] = vv[1], ["freeze"] = true } end end return gg.addListItems(Table) end end function LSQ_type_conversion(txt, type1, type2) gg.allocatePage(gg.PROT_READ | gg.PROT_WRITE | gg.PROT_EXEC, 0x99999999) local Table = { { ["address"] = 0x99999999, ["flags"] = type1, ["value"] = txt } } local set = gg.setValues(Table) Table[1]["flags"] = type2 local get = gg.getValues(Table)[1]["value"] return get end function Get_value() if gg.getResultsCount() > 100000 then local result = {} local Table = {} while true do local Results = gg.getResults(100000) if not Results or #Results == 0 then break end result[#result + 1] = Results local remove = gg.removeResults(Results) end for k = 1, #result do for kk, vv in pairs(result[k]) do Table[#Table + 1] = vv end end return Table else return gg.getResults(gg.getResultsCount()) end end function Type_filtering(values) if string.find(values, ".") then start, v = string.match(values, "^(.-)%.(.)") value = string.format("%s.%s", start, v) return value else return values end end function LSQ_pointer(search, write, mode) if search[1][5] and search[1][6] then region_start = search[1][5] region_end = search[1][6] else region_start = 0 region_end = -1 end gg.clearResults() set_Memory(search[1][3]) if search[1][2] == "16" and search[1][2] == "64" then local Value = LSQ_type_conversion(search[1][1], search[1][2], Q) gg.searchNumber(Value, Q, false, gg.SIGN_EQUAL, region_start, region_end) gg.searchNumber(Value, Q, false, gg.SIGN_EQUAL, region_start, region_end) else gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end) gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end) end if gg.getResultsCount() == 0 then gg.toast("没有搜索到指针数据") return false else local result = Get_value() gg.clearResults() for i = 2, #search do local offset_array = {} for k, v in ipairs(result) do offset_array[#offset_array + 1] = { ["address"] = v["address"] + search[i][2], ["flags"] = search[i][3] } end offset_array = gg.getValues(offset_array) local verify_array = {} for k, v in ipairs(offset_array) do if v["flags"] == 16 then v["value"] = Type_filtering(v["value"]) end if v["flags"] == 64 then v["value"] = Type_filtering(v["value"]) end if not string.find(search[i][1], "~") then if v["value"] == search[i][1] then verify_array[#verify_array + 1] = result[k] end else min, max = string.match(search[i][1], '^(.-)~(.-)$') min, max = tonumber(min), tonumber(max) if v["value"] >= min and v["value"] <= max then verify_array[#verify_array + 1] = result[k] end end end result = verify_array end if #result > 0 then Format(result, mode, write) return #result else return false end end end function Main() MB = gg.multiChoice({ "作者的话", "玲珑宝塔专用", "宠物变态属性", "人物变态属性", "退出脚本", }, nil,os.date "作者:啦啦啦 \n啦啦啦提醒您现在时间是:%Y年-%m月-%d日 %H时:%M分:%S秒") if MB == nil then else if MB[1] == true then zzdh() end if MB[2] == true then djms() end if MB[3] == true then cwsx() end if MB[4] == true then btsx() end if MB[5] == true then tcjb() end end LY = -1 end function zzdh() a = gg.alert("注意事项:①不要去装逼②别打组队的关卡,如果打了请退出③别打神魔和仙位容易封号","返回") if a == 1 then Main() end end function djms() a = gg.alert("玲珑宝塔人物技能秒杀开启或关闭","开启","关闭","返回") if a == 1 then local Search_array = { {0.02, 64, 32, "秒杀开启"}, {0.0, -0x38, 64}, {0.0, -0x30, 64}, {0.0, 0x8, 64}, {0.0, 0x38, 64}, {0.0, 0x40, 64}, {0.1, 0x70, 64}, {0.0, 0x78, 64}, {0.2, 0xA8, 64}, {0.2, 0xB0, 64}, } local Modifythe_array = { {99999999.0, -0x38, 64}, {99999999.0, 0x0, 64}, {99999999.0, 0x38, 64}, {99999999.0, 0x70, 64}, {99999999.0, 0xA8, 64}, } local num = LSQ_pointer(Search_array, Modifythe_array, "修改") if num == false then b = "开启失败" gg.alert(b) else b = "开启成功" gg.alert(b) end end if a == 2 then local Search_array = { {99999999.0, 64, 32, "秒杀关闭"}, {99999999.0, -0x38, 64}, {99999999.0, 0x38, 64}, {99999999.0, 0x70, 64}, {99999999.0, 0xA8, 64}, } local Modifythe_array = { {0.0, -0x38, 64}, {0.02, 0x0, 64}, {0.05, 0x38, 64}, {0.1, 0x70, 64}, {0.2, 0xA8, 64}, } local num = LSQ_pointer(Search_array, Modifythe_array, "修改") if num == false then b = "开启失败" gg.alert(b) else b = "开启成功" gg.alert(b) end end if a == 3 then Main() end end function cwsx() b = gg.alert("宠物属性开启或关闭","开启","关闭","返回") if b == 1 then local Search_array = { {0.04, 64, 32, "属性开启"}, {0.0, 0x30, 64}, {0.8, -0x80, 64}, {0.8, -0x98, 64}, } local Modifythe_array = { {99999999.0, -0x98, 64}, {99999999.0, 0x0, 64}, } local num = LSQ_pointer(Search_array, Modifythe_array, "修改") if num == false then c = "开启失败" gg.alert(c) else c = "开启成功" gg.alert(c) end end if b == 2 then local Search_array = { {99999999.0, 64, 32, "属性开启"}, {99999999.0, -0x98, 64}, } local Modifythe_array = { {0.8, -0x98, 64}, {0.04, 0x0, 64}, } local num = LSQ_pointer(Search_array, Modifythe_array, "修改") if num == false then c = "开启失败" gg.alert(c) else c = "开启成功" gg.alert(c) end end if b == 3 then Main() end end function btsx() MC = gg.choice({ "悟空", "唐僧", "八戒", "沙僧", "龙女", "白龙", "萧嫣", "返回" }, nil, "造梦无双全角色变态属性系列\n欢迎大家使用。") if MC == 1 then a() end if MC == 2 then b() end if MC == 3 then c() end if MC == 4 then d() end if MC == 5 then e() end if MC == 6 then f() end if MC == 7 then g() end if MC == 8 then Main() end LY = -1 end function a() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('1.02;1.08;1.03;1.02;0.92:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.08;1.03;1.02;0.92',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.getResults(2000) gg.editAll('99999999.0',gg.TYPE_DOUBLE) gg.alert("开启成功") gg.clearResults() end function b() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('1.3;0.7;1.05;0.95;1.2;0.8:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.02;1.08;1.03;1.02;0.92:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.getResults(2000) gg.editAll('99999999.0',gg.TYPE_DOUBLE) gg.alert("开启成功") gg.clearResults() end function c() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('1.15;0.92;1.05;0.95;1.05;0.88:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.15;0.92;1.05;0.95;1.05;0.88:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.getResults(2000) gg.editAll('99999999.0',gg.TYPE_DOUBLE) gg.alert("开启成功") gg.clearResults() end function d() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('1.09;0.97;0.98;1.01;0.98;0.97:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.09;0.97;0.98;1.01;0.98;0.97:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.getResults(2000) gg.editAll('99999999.0',gg.TYPE_DOUBLE) gg.alert("开启成功") gg.clearResults() end function e() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('1.12;0.96;0.98;0.98;0.98;0.98:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.12;0.96;0.98;0.98;0.98;0.98:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.getResults(2000) gg.editAll('99999999.0',gg.TYPE_DOUBLE) gg.alert("开启成功") gg.clearResults() end function f() local Search_array = { {1.0, 64, 32, "测试"}, {1.0, -0x10, 64}, {1.0, -0x20, 64}, {1.0, -0x30, 64}, {1.0, -0x40, 64}, {1.0, -0x50, 64}, {"0.1~2", -0x60, 64}, {"0.1~2", 0x10, 64}, } local Modifythe_array = { {99999999.0, 0x0, 64}, {99999999.0, -0x10, 64}, {99999999.0, -0x20, 64}, {99999999.0, -0x30, 64}, {99999999.0, -0x40, 64}, {99999999.0, -0x50, 64}, } local num = LSQ_pointer(Search_array, Modifythe_array, "修改") if num == false then b = "开启失败" gg.alert(b) else b = "开启成功" gg.alert(num) end end function g() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('0.89;0.99;1.06;0.95;1.1;1.01:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('0.89;0.99;1.06;0.95;1.1;1.01:81',gg.TYPE_DOUBLE,false,gg.SIGN_EQUAL,0, -1) gg.getResults(2000) gg.editAll('99999999.0',gg.TYPE_DOUBLE) gg.alert("开启成功") gg.clearResults() end function tcjb() os.exit() end while true do if gg.isVisible(true)then LY=1 gg.setVisible(false) end if LY==1 then Main() end end