loadYunLua(utf8.char(104,116,116,112,115,58,47,47,121,122,46,120,116,50,48,46,99,110,47,68,74)) do if type(gettlyunyz) ~= 'function' then gg.alert("运行异常,请重试") os.exit() end local info = { name = "全防", appid = "10673", appkey = "z8VCioq6vvC798yR", rc4_key = "pi7sekeFkJM10673", version = "1.0", mi = true } local tlyunyz = gettlyunyz(info) local ret = tlyunyz.start() if not ret or ret.sign~="220eedb642324035350c3400ebf041ea" then os.exit() end end ----下方放你的脚本 draw.setStyle('填充') draw.text(os.date'挽风内部', 40,120) draw.setColor('#00ffff') --draw.text(os.date'[代理] 6 712', 40,180) draw.text(os.date'主频道@TGDUSR', 40,180)draw.setColor('#00ffff') draw.text(os.date'登录时间2023年%m月%d日%H时%M分',40,240) draw.setColor('#00ffff') ML="欢迎老板使用挽风内部" gg.playMusic("htt挽风://fanyi.baidu.com/gettts?lan=zh&text="..ML.."&spd=5&source=wise") --string.toMusic(os.date("脚本启动时间为:%Y年%m月%d日%H时%M分%S秒")) --string.toMusic("欢迎老板使用挽风内部") ---draw.setSize(49) ---draw.setStyle('填充') ---draw3 = require('draw3') ---text1 = draw3.text('挽风内部',40,120) ---text2 = draw3.text('[代理] 无',40,180) ---text3 = draw3.text('主频道@TGDUSR',40,240) --text4 = draw3.text(os.date'登录时间2023年%m月%d日%H时%M分',40,300) --draw.setColor('#fc913a') --local color = math.random(000000, 0xFFFFFF)-- 设置随机颜色 --text1.setColor(color)-- 设置随机颜色 ---text2.setColor(color)-- 设置随机颜色 ---text3.setColor(color)-- 设置随机颜色 ---text4.setColor(color)-- 设置随机颜色 ---菜单配置区 --下面是视频 --gg.playVideo("htt挽风://tc.24ly.cn/view.php/60f5fedfdff08918b0350e74931eae76.mp4") function ui_init()--------ui初始化 ----------------------------------------------------------------↓音乐↓--------------------------------------------------------------- local json =json local g = {} g.file = gg.getFile() g.sel = nil gqlb={"请先搜索歌曲",} idb={"1010"} SN,gc=1,nil g.config = gg.getFile():gsub("%lua$", "").."cfg" function bei() g.data = loadfile("-- WSG PRO 1.0.9(109)\n"..g.config) if g.data ~= nil then g.sel = g.data() g.data = nil end if g.sel == nil then g.sel = {"请输入歌曲名","10"} end end bei() --搜索歌曲 function start(name,sl) fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end --歌词 --播放音乐 function play(id,name) gg.toast("正在播放音乐:"..name,true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end --停止播放 function stop() gg.toast("正在停止音乐") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end ---- function Play(gqlb,idb) SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1) end XGCK=-1 end end function zjson(jsonr) local str = jsonr -- 匹配Json Key的正则表达式 local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end function json(con) res=zjson(con) zd=res.result.songCount pd=go3-zd if pd <= 0 then else go3=zd end ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首" gqlb={} idb={} for i=1,go3 do gqlb[i]=res.result.songs[i].name idb[i]=res.result.songs[i].id end --print(idb) end function YY998() Obtain=gg.makeRequest("htt挽风://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end ----------------------------------------------------------------个音乐个--------------------------------------------------------------- -------------------------------------------------------------------------------------美化------------------------------------------------------------------------- function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end --遍历写法 local function readD ( a ) return gg.getValues ( { { address = a , flags = 4 } } ) [ 1 ].value 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 addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end function xfnb(add,lx) return gg.getValues({ { address=add,flags = lx } })[1].value end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value 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 addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true] = 32, [false] = 4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address = addr, flags = va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能 getRanges = getRanges or (function() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写 ranges[#ranges+1] = v end end return ranges end) local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位 valtype = gg.TYPE_QWORD end for i in pairs(ranges) do local _name = ranges[i]["internalName"]:gsub('^.*/', '') if so[1] == _name and so[2] == ranges[i]["state"] then sostart = ranges[i]["start"] break end end if sostart then if offset[1] then for i = 1, #offset do rest = {{flags = valtype,address = sostart + offset[i]}} rest = gg.getValues(rest) if i == #offset then break end if valtype == gg.TYPE_DWORD then sostart = rest[1].value & 0xFFFFFFFF--对值进行补位操作 else sostart = rest[1].value end end end print(rest) if #rest == 1 then end return Format(rest, format, value, type, Function) end gg.toast("功能:" .. Function .. "开启失败") print("功能开启失败原因: 未找到静态头") return os.exit() end function Format(tab, format, value, type, Function) if format == "查看" then tab[1]["flags"] = type return print(gg.getValues(tab)) elseif format == "修改" then tab[1]["flags"] = type tab[1]["value"] = value return gg.setValues(tab) elseif format == "冻结" then tab[1]["flags"] = type tab[1]["freeze"] = true tab[1]["name"] = Function or "功能" return gg.addListItems(tab) elseif format == "加载" then tab[1]["flags"] = type return gg.loadResults(tab) 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 read(address, flags) local tt = {} tt[1] = {} tt[1].address = address tt[1].flags = flags filzer = gg.getValues(tt)[1].value return filzer end function getbase(address) local tt = {} tt[1] = {} tt[1].address = address tt[1].flags = 32 filzer = gg.getValues(tt)[1].value return filzer end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x2C4D6BCE) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end ----动态基址写法配置 function 挽风() end function setvalue(address,flags,value) 挽风('修改地址数值(地址,数值类型,要256)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) 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"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true 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) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "地址成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "失败") end end end end --仿XS写法配置 function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end -- 读取内存地址的函数 function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end -- 修改内存地址的函数 function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end local Ranges=gg.getRangesList('/') local function Read(module,type) for k,v in pairs(Ranges) do if v['internalName']:match('[^/]*$')==module and v['type']==type then return v['start'] end end end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end --遍历写法 local function readD ( a ) return gg.getValues ( { { address = a , flags = 4 } } ) [ 1 ].value 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 addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end function xfnb(add,lx) return gg.getValues({ { address=add,flags = lx } })[1].value end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value 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 addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end ----------------------------------------------------------------------------------个美化个--------------------------------------------------------------------- ----------------------------------------------------------------------------------↓防封↓--------------------------------------------------------------------- function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x2C4D6BCE) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end ----动态基址写法配置 function 挽风() end function setvalue(address,flags,value) 挽风('修改地址数值(地址,数值类型,要256)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) 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"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true 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) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "地址成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "失败") end end end end --仿XS写法配置 function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end -- 读取内存地址的函数 function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end -- 修改内存地址的函数 function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end ----------------------------------------------------------------------------------个防封个----------------------------------------------------------------------- -------------------------------------------------------------↓脚本配置↓----------------------------------------------------------- changan = {} local changan = changan local android = import('android.*') function write(fileName, content) --f = assert( io.open( fileName, 'w')) f:write( content ) f:close() if file.write(fileName, content) == false then gg.alert("请给框架和修改器 文件储存权限\n否则无法正常运行") os.exit() end end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function pdcf(lujing) rec = "/sdcard/挽风内部[1.0]/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end sleep = gg.sleep if gg.isHTTPdump()==true and panduan("/sdcard/挽风内部[1.0]/配置文件/vpn.txt") == false then gg.alert("\n操你妈想开源找个牢坐吧!如果没想抓包就把加速器关了再打开【实在不行直接来找我拿源码啊哈哈】") os.exit() end function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end function wtcf(lujing,neirong) write("/sdcard/挽风内部[1.0]/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/sdcard/挽风内部[1.0]/配置文件/"..lujing) end function pmusic(x) if audiokg == "开" then tmp1 = 0 gg.playMusic(x) tmp1 = 1 end end if pdcf("audio") ~= true then wtcf("audio","开") end audiokg = rdcf("audio") function camusic(ress) tmp1 = 0 if audiokg == "开" then if panduan("/sdcard/挽风内部[1.0]/音频/"..ress) == true then pmusic("/sdcard/挽风内部[1.0]/音频/"..ress) tmp1 = 1 else download("htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..ress ,"/sdcard/挽风内部[1.0]/音频/"..ress) pmusic("/sdcard/挽风内部[1.0]/音频/"..ress) tmp1 = 1 end end end 开 = "开" 关 = "关" function checkimg(tmp) if panduan("/sdcard/挽风内部[1.0]/图片/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."\n请耐心等待") download("htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/挽风内部[1.0]/图片/"..tmp) end end file.getdirs("/sdcard/挽风内部[1.0]/状态读取/") ckimg = { "KBlogo", "check1", "arblackx", "check2", "exit", "sj", "hsj" } for i = 1,#ckimg do jindu = i checkimg(ckimg[i]) end context = app.context window = context:getSystemService("window") -- 获取窗口管理器 function getLayoutParams() LayoutParams = WindowManager.LayoutParams layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end function getj6() jianbian6 = luajava.new(GradientDrawable) jianbian6:setCornerRadius(20) jianbian6:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian6:setColors(菜单小背景颜色) jianbian6:setStroke(3,菜单小背景边框)--边框宽度和颜色 return jianbian6 end function getseekgra() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(其他控件背景) jianbians:setStroke(4,"0xeeffffff")--边框宽度和颜色 return jianbians end function getseekgra2() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(8) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0xeeffffff,0xccffffff}) jianbians:setStroke(1,"0xee000000")--边框宽度和颜色 return jianbians end function 获取图片(txt) ntxt=string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http")~=nil then if panduan("/storage/emulated/0/图片/图标.png"..ntxt)==false then download(txt,"/storage/emulated/0/图片/图标.png"..ntxt) end txt="/storage/emulated/0/图片/图标.png"..ntxt end return luajava.getBitmapDrawable(txt) end jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(侧边按钮背景1) jianbians:setStroke(4,"0xaa000000")--边框宽度和颜色 slctb = jianbians jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(侧边按钮背景2) jianbians:setStroke(4,"0xaa000000")--边框宽度和颜色 slcta = jianbians slctc = luajava.loadlayout { GradientDrawable, color = "#11ffffff", cornerRadius = 8 } slctd = luajava.loadlayout { GradientDrawable, color = "#55ffffff", cornerRadius = 8 } slcte = luajava.loadlayout { GradientDrawable, color = "#11ffffff", cornerRadius = 12 } slctf = luajava.loadlayout { GradientDrawable, color = "#aa1E1C27", cornerRadius = 15 } function getjb() local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(15) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0xff397EF8,0xff25C4FD}) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) return jianbians end function chatbg2() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#aa0082FF", cornerRadius = 12 }) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, getjb()) -- 没点击的背景 return selector end function getshape9() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(button颜色) jianbians:setStroke(4,"0xeeFFffff")--边框宽度和颜色 return jianbians end jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0xaaFF6EBF,0x660072ff}) jianbians:setStroke(4,"0xeeFFffff")--边框宽度和颜色 t3s=jianbians t4s=luajava.loadlayout { GradientDrawable, color = "#87000000", cornerRadius = 12 } t5s=jianbians t6s=luajava.loadlayout { GradientDrawable, color = "#87000000", cornerRadius = 12 } function getSelector3() t9s=getshape9() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, t4s) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, t9s) -- 没点击的背景 return selector end function getSelector5() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, t6s) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, t5s) -- 没点击的背景 return selector end function getSelector() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slcta) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctb) -- 没点击的背景 return selector end function getSelector2() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slctd) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctc) -- 没点击的背景 return selector end jianbian = luajava.new(GradientDrawable) jianbian:setCornerRadius(30) jianbian:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian2 = luajava.new(GradientDrawable) jianbian2:setCornerRadius(30) jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT) local isswitch YoYoImpl = luajava.getYoYoImpl() changan.menu = function(sview) if isswitch then return false end for i=1,#stab do _ENV["jmb"..i]=getSelector() end if #stab> #sview then gg.alert("菜单标题参数多于菜单配置,请检查") os.exit() end isswitch = true cebian = { LinearLayout, id = "侧边", visibility = "gone", layout_height = "230dp", layout_width = "58dp", orientation = "vertical", background = { GradientDrawable, color = "#00ffffff", cornerRadius = 10 }, } gund = { LinearLayout, orientation = "vertical", } for i = 1,#stab do _ENV["jm"..i]=luajava.loadlayout({ LinearLayout, id = "jm"..i, layout_height = "38.3dp", layout_width = "58dp", layout_marginTop = "2dp", layout_marginBottom = "2dp", background = _ENV["jmb"..i], onClick=function() changan.controlFlip(_ENV["jm"..i],500) 切换(i) end, { TextView, gravity = "center", textColor=侧边文字颜色, text = stab[i][1], layout_height = "38.3dp", layout_width = "58dp", --onClick = function() 切换(i) end }}) gund[#gund+1] = _ENV["jm"..i] end cebian[#cebian+1] = { ScrollView, layout_height = "fill_parent", layout_width = "fill_parent", gund } cebian = luajava.loadlayout(cebian) for i = 1,#stab do _ENV["layout"..i] = luajava.loadlayout( { ScrollView, background = getj6(), fillViewport = "true", padding = "2dp", id = "layout"..i, visibility = "gone", gravity="center", layout_width = "260dp", layout_height = "230dp", orientation = "vertical", { LinearLayout, --background = getj6(), id = "layoutm"..i, gravity = "top", layout_width = "260dp", orientation = "vertical", gravity = "center_horizontal", }, }) end _ENV["layout".. 4] = luajava.loadlayout( {LinearLayout, orientation = "horizontal", layout_width="wrap_content", layout_height="230dp", visibility = "gone", { ScrollView, background = getj6(), fillViewport = "true", padding = "3dp", id = "layouts".. 4, layout_width = "260dp", layout_height = "230dp", orientation = "vertical", { LinearLayout, --background = getj6(), id = "layoutm"..4, gravity = "top", layout_width = "260dp", orientation = "vertical", gravity = "center_horizontal", }}, {ScrollView, fillViewport = "true", id="ltg4", {LinearLayout, id="layoutg4", orientation="vertical", gravity="center", layout_width="230dp", layout_height="wrap_content", }} }) ckou = { LinearLayout, id = "chuangk", padding="4dp", visibility = "gone", layout_width = "wrap_content", layout_height = "wrap_content", orientation = "horizontal", cebian, } for i = 1,#stab do ckou[#ckou+1] = _ENV["layout"..i] end luajava.newThread(function() develo(ckou) end):start() ckou = luajava.loadlayout(ckou) title = luajava.loadlayout({ TextView, id = "title", textColor = "#000000", visibility = "gone", text = stab[1][2], gravity = "center", textSize = "24sp", layout_width = "fill_parent", }) control1=luajava.loadlayout({ ImageView, id = "control", hardwareAccelerated="true", layout_gravity = "left", background = xfcpic, layout_width = "40dp", layout_height = "40dp", }) frme=luajava.loadlayout({ FrameLayout, padding = "8dp", layout_width = "match_parent", layout_height = "wrap_content", orientation = "horizontal", background = beij2, gravity = "center", control1, title, { ImageView, id = "exitt", visibility = "gone", layout_gravity = "right", src = "/sdcard/挽风内部[1.0]/图片/arwhitex", layout_width = "20dp", layout_height = "20dp", layout_marginTop = "10dp", layout_marginRight = "14dp", } }) floatWindow = { LinearLayout, id = "motion", layout_width = "wrap_content", orientation = "vertical", gravity = "center_vertical", layout_height = "wrap_content", frme, ckou }local function invoke() local ok local RawX, RawY, x, y mainLayoutParams = getLayoutParams() floatWindow = luajava.loadlayout(floatWindow) local function invoke2() block('start') for k = 1,#stab do for i = 1,#sview[k] do _ENV["layoutm"..k]:addView(sview[k][i]) end end window:addView(floatWindow, mainLayoutParams) block('end') end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) block('join') control.onClick = function() 隐藏() end exitt.onClick = function() 隐藏() end jm4.onClick = function() changan.controlFlip(jm4,500) 切换(4) gundong() already = true changan.setedit("",qltname) changan.setedit("",qlticon) end local isMove hanshu = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() x = mainLayoutParams.x y = mainLayoutParams.y elseif Action == MotionEvent.ACTION_MOVE then isMove = true mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(floatWindow, mainLayoutParams) end end motion.onTouch = hanshu control.onTouch = hanshu exitt.onTouch = hanshu for i = 1,#stab do --_ENV["jm"..i].onTouch = hanshu end end invoke(swib1,swib2) jm1:setBackground(slcta) gg.setVisible(false) luajava.setFloatingWindowHide(true) end corbk = true 当前ui = 1 function 切换(x) 当前ui = x luajava.runUiThread(function() for i = 1,#stab do _ENV["jm"..i]:setBackground(_ENV["jmb"..i]) _ENV["layout"..i]:setVisibility(View.GONE) end title:setText(stab[当前ui][2]) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) _ENV["jm"..当前ui]:setBackground(slcta) YoYoImpl:with("FadeIn"):duration(200):playOn(_ENV["layout"..当前ui]) end) end 显示 = 0 beij = luajava.new(GradientDrawable) beij:setCornerRadius(20) beij:setGradientType(GradientDrawable.LINEAR_GRADIENT) beij:setColors((大背景颜色)) beij:setStroke(6,大背景边框)--边框宽度和颜色 beij2 = luajava.loadlayout({ GradientDrawable, color = "#001E1C27", cornerRadius = 10 }) titlejb = luajava.new(GradientDrawable) titlejb:setCornerRadius(20) titlejb:setGradientType(GradientDrawable.LINEAR_GRADIENT) titlejb:setColors((标题颜色)) if 标题边框开关~=0 then titlejb:setStroke(6,标题边框颜色)--边框宽度和颜色 end function getcolor(cl) cl[1] = tonumber(math.ceil(cl[1]*2.6,0,5)) if cl[1] > 255 then cl[1] = "0xff" else cl[1] = "0x"..string.format("%x",cl[1]) end for i = 1,3 do cl[i+1] = string.format("%x",cl[i+1]) if string.len(cl[i+1]) == 1 then cl[i+1] = "0"..cl[i+1] end end cl = cl[1]..cl[2]..cl[3]..cl[4] return cl end function getrgb(cl) if string.sub(cl,1,1) == "#" then cl = "0x"..string.sub(cl,2,-1) end cl = { tonumber(string.sub(cl,0,4)),tonumber("0x"..string.sub(cl,5,6)),tonumber("0x"..string.sub(cl,7,8))} return cl end function 隐藏() luajava.runUiThread(function() --control:setBackground(luajava.getBitmapDrawable("/sdcard/挽风内部[1.0]/图片/arlogo")) if tonumber(tostring(cebian:getVisibility())) == 8.0 then chuangk:setVisibility(View.VISIBLE) cebian:setVisibility(View.VISIBLE) title:setVisibility(View.VISIBLE) exitt:setVisibility(View.VISIBLE) frme:setBackground(titlejb) 显示=1 mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window:updateViewLayout(floatWindow, mainLayoutParams) YoYoImpl:with("SlideInDown"):duration(200):playOn(cebian) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(_ENV["layout"..当前ui]) floatWindow:setBackground(beij) else 显示=0 luajava.runUiThread(function()mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE window:updateViewLayout(floatWindow, mainLayoutParams) end) frme:setBackground(beij2) --control:setBackground(luajava.getBitmapDrawable("/sdcard/挽风内部[1.0]/图片/arlogo")) title:setVisibility(View.GONE) exitt:setVisibility(View.GONE) floatWindow:setBackground(beij2) chuangk:setVisibility(View.GONE) cebian:setVisibility(View.GONE) _ENV["layout"..当前ui]:setVisibility(View.GONE) end end) end function guid() seed = { 'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' } tb = {} for i = 1,32 do table.insert(tb,seed[math.random(1,16)]) end sid = table.concat(tb) return string.format('%s%s%s%s%s', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) ..string.format('%s%s%s%s%s', string.sub(sid,1,6), string.sub(sid,21,25) ) end chazhi = {} chajv = {} function changan.seek(name,bian,smin,smax,nows) _ENV[bian] = nows thum=getseekgra() thum:setSize(60, 60) smin = tonumber(smin) smax = tonumber(smax) chajv[bian] = smax-smin chazhi[bian] = 1-smin if smin == nil then smin = 1 smax = 10 end truesmin = 1 truesmax = truesmin+chajv[bian] if not nows then nows = smin tnows = (smin-nows) else tnows = (nows-smin)+1 end if _ENV[bian] == nil then _ENV[bian] = 1.0 end if not name then name = "未设置" end local names = name..guid() rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = getseekgra(), { TextView, gravity = "top", textColor=txtco, text = name..":"..nows, id = luajava.newId(names), layout_width = '110dp', layout_marginLeft = "5dp", layout_marginRight = "0dp", }, { SeekBar, layout_width = '100dp', min = truesmin, max = truesmax, progress = tnows, progressDrawable={getseekgra2()}, thumb=thum, onSeekBarChange = { onProgressChanged = function(SeekBar, var2, var3) if not var3 then return end local resultvar = tonumber(string.sub(var2,0,-3))-chazhi[bian] luajava.runUiThread(function() luajava.getIdValue(names):setText(name..":".. resultvar) end) _ENV[bian] = resultvar end }} }}) return rest end function changan.switch(name,func1,func2) local func = 开关(name,func1,func2) if not name then name = "未设置" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = getseekgra(), { TextView, gravity = "top", text = name, layout_width = '140dp', layout_marginLeft = "10dp", layout_marginRight = "10dp", }, { Switch, gravity = "top", layout_width = 'match_parent', layout_hight = "10dp", --id=luajava.newId(tid), switchMinWidth = "20dp", onCheckedChange = function(Switch,var2,var3) if var2 == true then var2 = "开" else var2 = "关" end luajava.newThread(function() func() end):start() end, }} }) return rest end function changan.edit(name) _ENV[name] = name..guid() if not name then name = "" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = getseekgra(), { EditText, gravity = "top", hint = name, gravity = "center", id = luajava.newId(_ENV[name]), layout_width = 'fill', layout_marginLeft = "10dp", layout_marginRight = "10dp", }} }) return rest end function changan.radio(radio) firadio = { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", padding = "10dp", orientation = "vertical" } if type(radio[1]) == "string" or type(radio[1]) == "number" then firadio[#firadio+1] = { TextView,text = radio[1], textColor=txtco } end radios = { RadioGroup,background = getseekgra(), layout_width = 'fill_parent', } for i = 2,#radio do radios[#radios+1] = { RadioButton, layout_width = 'fill_parent', text = radio[i][1], textColor=txtco, onClick = function() luajava.newThread(function() pcall(radio[i][2]) end):start() end, } end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function changan.check(cklist) local rest = { GridLayout, columnCount = '3', layout_width = 'match_parent', layout_height = "wrap_content", layout_marginLeft = "3dp", layout_marginRight = "3dp", gravity = "center" } for i = 1,#cklist do local name = cklist[i][1] local func1 = cklist[i][2] local func2 = cklist[i][3] if not name then name = "未设置" end rstt = changan.intcheck(name,func1,func2) rest[#rest+1] = rstt end return luajava.loadlayout({ LinearLayout,rest }) end function changan.intcheck(name,func1,func2) nid = name..guid() local func = 开关3(name,func1,func2,nid) if not name then name = "未设置" end local rest = luajava.loadlayout({ LinearLayout, layout_width = 'wrap_content', layout_height = "32dp", layout_marginTop = "1dp", layout_marginBottom = "1dp", padding = "1dp", { LinearLayout, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = 'fill_parent', layout_height = "32dp", gravity = "center_vertical", { TextView, gravity = "left", text = name, textColor="#FFFFFFFF", textSize = "12sp", gravity="center", --layout_marginLeft="8dp", layout_width = '45dp', }, { FrameLayout, id = luajava.newId(nid), background = checkbg, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = '38dp', layout_height = 'wrap_content', padding="1dp", { LinearLayout, layout_gravity="left", id = luajava.newId(nid.."k"), background = checkbg1, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = '21dp', layout_height = '21dp', },{ LinearLayout, visibility="gone", layout_gravity="right", id = luajava.newId(nid.."g"), background = checkbg2, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = '21dp', layout_height = '21dp', } }} }) return rest end function 开关3(name,func1,func2,nid) _ENV [ name ] = "关" if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1 ) == "function" then return function() namers = _ENV [ name ] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(nid.."k"):setVisibility(View.GONE) luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE) luajava.getIdValue(nid):setBackground(checkbga) end) _ENV [ name ] = "开" pcall(func1 ) else luajava.runUiThread(function() luajava.getIdValue(nid.."g"):setVisibility(View.GONE) luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE) luajava.getIdValue(nid):setBackground(checkbg) end) _ENV [ name ] = "关" pcall(func2 ) end end end end function getShape(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(tmp1) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(1,tmp3)--边框宽度和颜色 return jianbians end function getShape2(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(tmp1) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(1,tmp3)--边框宽度和颜色 return jianbians end checkbg=getShape( 45, {0xffB8B8B8,0xffB8B8B8}, 4,0xaa000000) checkbga=getShape( 45, {0xff0BBE56,0xff0BBE56}, 4,0xaa000000) checkbg1=getShape2( 45, {0xffffffff,0xffffffff}, 4,0xaa000000) checkbg2=getShape2( 45, {0xffffffff,0xffffffff}, 4,0xaa000000) function changan.button(txt,func) if not txt then txt = "未设置" end return luajava.loadlayout( { LinearLayout, layout_width = 'fill_parent', layout_hight = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_horizontal", layout_marginRight = "10dp", layout_marginLeft = "10dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", background = getSelector3(), onClick = function() luajava.newThread(function() pcall(func) end):start() end, { TextView, --id = luajava.newId(tid), text = txt, textColor=txtco, textSize = "16sp", layout_width = "wrap_content", }, }}) end function changan.text(txt,color,size) if not txt then txt = "未设置文字" end if not color then color = "#ffffff" end if not size then size = "18sp" end return luajava.loadlayout( { TextView, text = txt, textSize = size, textColor = color, layout_width = "wrap_content", }) end corb = true function changan.setedit(name,txt) txt = tostring(txt) luajava.runUiThread(function() luajava.getIdValue(_ENV[name]):setText(txt) end) end function changan.getedit(name) gg.alert(edit) edit = tostring(luajava.getIdValue(_ENV[name]):getText()) return edit end function 开关(name,func1,func2) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then _ENV[name] = "开" pcall(func1) else _ENV[name] = "关" pcall(func2) end end end end function 开关2(name,func1,func2,nid) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png")) end) _ENV[name] = "开" func1() else luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png")) end) _ENV[name] = "关" func2() end end end end function deve(t) luajava.newThread(function() gg.alert(tostring(t)) end):start() end changan.controlChange = function(control,colors) luajava.runUiThread(function() if type(colors) ~= "table" then end import "android.animation.ObjectAnimator" import "android.animation.ArgbEvaluator" import "android.animation.ValueAnimator" import "android.graphics.Color" colorAnim = ObjectAnimator:ofInt(control,"textColor", colors) colorAnim:setDuration(7000) colorAnim:setEvaluator(ArgbEvaluator()) colorAnim:setRepeatCount(ValueAnimator.INFINITE) colorAnim:setRepeatMode(ValueAnimator.REVERSE) colorAnim:start() end) end changan.controlRotetion = function(control,time) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", { 0, 360 }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.REVERSE) xuanzhuandonghua:setDuration(time) xuanzhuandonghua:start() end) end xuanzhuandonghua = nil -- 全局变量用于保存动画对象 changan.controlRotation2 = function(control, time) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", { 0, 360 }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(time) xuanzhuandonghua:start() end) end -- 停止旋转动画 changan.stopRotation = function() if xuanzhuandonghua then xuanzhuandonghua:cancel() end end changan.controlFlip = function(control,time) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua1 = ObjectAnimator:ofFloat(control, "rotationY", {0, 360}) xuanzhuandonghua1:setRepeatCount(0) xuanzhuandonghua1:setRepeatMode(Animation.REVERSE) xuanzhuandonghua1:setDuration(time) xuanzhuandonghua1:start() end) end function tuic() gg.toast("悬浮窗已退出") window:removeView(floatWindow) luajava.setFloatingWindowHide(false) luajava.newThread(function() os.exit() end):start() bloc("end") end zidong = luajava.newThread(function() while true do if zdbf then logvid = luajava.getIdView("video") logvid.start(logvid) end gg.sleep(500) end end) url="htt挽风://api.qqsuu.cn/api/dm-xjj?type=video&apiKey=56ecfa25f1478b202b174b7e871a5a61" bloc = luajava.getBlock() local runnable = luajava.getRunnable(function() vidd=luajava.loadlayout({ VideoView, id = luajava.newId('video'), videoPath = url, layout_width = "fill_parent", layout_height = "wrap_content", }) bloc("end") end) local handler = luajava.getHandler() handler:post(runnable) bloc("join") web6 = luajava.loadlayout({FrameLayout, gravity="top|center_vertical", {LinearLayout, gravity="center",orientation="vertical", vidd,changan.button("换一个",function() zdbf=false changan.controlFlip(web6,2500) gg.sleep(500) logvid = luajava.getIdView("video") logvid:setVideoPath(url) gg.sleep(2000) zdbf=true end), },{LinearLayout, gravity="center", changan.switch("暂停播放", function() zdbf = true end, function() zdbf=false logvid = luajava.getIdView("video") logvid.pause(logvid) end), }, } ) zdbf=false zidong:start() do local path = "/sdcard/.游客信息jj.lua" --用户信息 local r = io.open(path, "r") if r then qltname = r:read("*a") else qltname = "游客" .. math.random(1111111, 9999999) io.open(path, "w"):write(qltname) end local path = "/sdcard/.用户头像jj.lua" --用户信息 local r = io.open(path, "r") if r then qlticon = r:read("*a") else qlticon = "" io.open(path, "w"):write(qlticon) end end httpip="http://47.101.220.155/jj/caa.php" httpip2="http://47.101.220.155/jj/" function getu(name) fs=gg.makeRequest(httpip.."?name="..name.."&mode=get").content if fs=="00" then return "获取失败" else return fs end end function uplo(name,txt) fs=gg.makeRequest(httpip.."?txt="..txt.."&name="..name.."&mode=set").content end function uprec(name,txt) txt=string.bin2hex(txt) if string.len(txt)<=7000 then uplo(name,txt) else uplo(name,string.sub(txt,1,7000)) for i=2,(string.len(txt)/7000)-1 do fs=gg.makeRequest(httpip.."?txt="..string.sub(txt,(i-1)*7000,i*7000).."&name="..name.."&mode=set2").content end txt=string.sub(txt,math.floor(string.len(txt)/7000)*7000+1,-1) fs=gg.makeRequest(httpip.."?txt="..txt.."&name="..name.."&mode=set2").content end end function 修改名字(lttext) if string.len(lttext) <= 0 then return 0 end if string.len(lttext) >= 400 then gg.toast("用户名长度上限20字节") return 0 end local path = "/sdcard/.游客信息jj.lua" --用户信息 qltname = lttext io.open(path, "w"):write(qltname) gg.alert("修改成功\n"..lttext) local function invoke2() _ENV["ltg4"]:fullScroll(View.FOCUS_DOWN) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end function 修改头像(txt) local path2 = "" if string.find(txt,"emulated/0") ~= nil or string.find(txt,"/sdcard") ~= nil then gg.alert("") return 0 end if tonumber(txt) ~= nil then txt = "http://q1.qlogo.cn/g?b=qq&nk="..txt.."&s=100" end if string.find(txt,"http%%") ~= nil or string.find(txt,"htt挽风%%") ~= nil then gg.alert("格式有误,请重新输入") return 0 end txt = string.url(txt,"en") qlticon = txt io.open(path2, "w"):write(qlticon) local function invoke2() _ENV["ltg4"]:fullScroll(View.FOCUS_UP) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) gg.alert("") ltfunc() end lastlttm = os.time()-3 function 发送聊天(lttext) if os.time()-lastlttm <= 3 then gg.alert(""..3 -(os.time()-lastlttm).."秒") return 0 end local server = "" --服务器地址 local chat_log = gg.makeRequest(server .. "lts.php?hq=true").content local uptime = gg.makeRequest(server .. "lts.php?updat=true").content if uptime then io.open(path, "w"):write(GT[2]) if string.len(lttext) <= 0 then return 0 end if string.len(lttext) >= 400 then gg.toast("") else changan.setedit("","") lastlttm = os.time() lttext = string.gsub(lttext,"·","•") lttext = string.gsub(lttext,"~","~") lttext = string.gsub(lttext,"—","-") lttext = string.gsub(lttext,"…","...") if not qlticon or qlticon == "" or qlticon == "nil" then qlticon = "htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" qlticon=string.url(qlticon,"en") end local p = gg.makeRequest(server .. "lts.php?lticon="..qlticon.."&nr=" .. lttext .. "&name=" .. qltname).content if p ~= "发送成功" then gg.alert(qlticon.."\nerror -149: 消息发送失败") else gg.toast("发送成功") end end else end shuaxinchat() end function FGUtilStringSplit(str,split_char) local sub_str_tab = {} while (true) do local pos = string.find(str, split_char); if (not pos) then sub_str_tab[#sub_str_tab + 1] = str; break end local sub_str = string.sub(str, 1, pos - 1).."…" sub_str_tab[#sub_str_tab + 1] = sub_str; str = string.sub(str, pos + 1, #str); end return sub_str_tab end nowtime = 0 localres = {} function shuaxinchat() local server = "" --服务器地址 local uptime = gg.makeRequest(server .. "time.txt").content if uptime then if tonumber(uptime) > nowtime then local chat_log = gg.makeRequest(server .. "lts.php?hq=true").content nowtime = tonumber(uptime) newltres = {} ltres = FGUtilStringSplit(chat_log,"…") for i = 1,#ltres do if string.find(ltres[i],"·") == nil or string.find(ltres[i],"~") == nil then else newltres[#newltres+1] = {} newltres[#newltres].ltname = ltres[i]:match("·(.-)—") newltres[#newltres].lttext = ltres[i]:match("~(.-)…") newltres[#newltres].lttime = ltres[i]:match("—(.-)~") newltres[#newltres].lticon = ltres[i]:match("㊢(.-)·") end end for i = 1,#newltres do isnew = true for j = 1,#localres do if newltres[i].ltname == localres[j].ltname and newltres[i].lttime == localres[j].lttime and newltres[i].lttext == localres[j].lttext then isnew = false end end if isnew == true then isnew = false xuyaoshuaxin = true localres[#localres+1] = newltres[i] gg.alert(tostring(localres[#localres])) addchat(changan.chat(localres[#localres])) end end gg.alert(tostring(localres)) if xuyaoshuaxin == true and already == true then gundong() xuyaoshuaxin = false end end else end end function addchat(cha) local function invoke2() layoutm4:addView(cha) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end function gundong() if already then gg.sleep(100) local function invoke2() _ENV["layouts4"]:fullScroll(View.FOCUS_DOWN) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end end function removechat(cha) local function invoke2() _ENV["layoutm4"]:removeView(cha) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end function changan.chat(ltlist) ltname = ltlist.ltname lticon = ltlist.lticon lttext = ltlist.lttext lttime = ltlist.lttime if not lticon or lticon == "" or lticon == "nil" then lticon = "htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end bitmap = luajava.getBitmapDrawable(lticon) if not bitmap then bitmap = luajava.getBitmapDrawable("htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2") end if not _ENV[lticon] then _ENV[lticon] = bitmap end if not lttext or lttext == "" then lttext = " " end if string.find(lticon,"http%%") ~= nil then lticon = "htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end if string.find(lticon,"/sdcard") == nil and string.find(lticon,"emulated") == nil and string.find(lticon,"http:/") == nil and string.find(lticon,"htt挽风:/") == nil then lticon = "htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end if not lttext then lttext = " " end if string.find(lttext,"☔️音")==nil then local ctbg=chatbg() ltresult = luajava.loadlayout( { LinearLayout, layout_width = "190dp", layout_height = "wrap_content", orientation = "horizontal", { LinearLayout, layout_height = "50dp", layout_width = "0dp", background = _ENV[lticon], }, { LinearLayout, layout_height = "wrap_content", layout_width = "wrap_content", layout_marginLeft = "10dp", orientation = "vertical", { TextView, text = ltname.."\n"..lttime, textSize = "10sp", layout_width = "wrap_content", layout_height = "wrap_content", }, { TextView, text = lttext, textSize = "15sp", background = ctbg, padding = "3dp", layout_width = "wrap_content", layout_height = "wrap_content", } }}) else local ctbg=chatbg2() local playPath=lttext:match("☔️音(.-)☔️音") ltresult = luajava.loadlayout( { LinearLayout, layout_width = "190dp", layout_height = "wrap_content", orientation = "horizontal", { LinearLayout, layout_height = "50dp", layout_width = "50dp", background = _ENV[lticon], }, { LinearLayout, layout_height = "wrap_content", layout_width = "wrap_content", layout_marginLeft = "10dp", orientation = "vertical", { TextView, text = ltname.."\n"..lttime, textSize = "10sp", layout_width = "wrap_content", layout_height = "wrap_content", }, { TextView, text = "[ 语音 ]ᵒ", textSize = "15sp", background = ctbg, onClick=function() playPath=playPath luajava.newThread( function() if panduan("/sdcard/挽风内部[1.0]/音频/"..playPath)~=true then file.download(tostring(httpip2..playPath),"/sdcard/挽风内部[1.0]/音频/"..playPath) end gg.alert("/sdcard/挽风内部[1.0]/音频/"..playPath) based=string.hex2bin(file.read("/sdcard/挽风内部[1.0]/音频/"..playPath)) gg.alert(based) file.write("/sdcard/挽风内部[1.0]/test.mpp",based) gg.playMusic("/sdcard/挽风内部[1.0]/test.mpp") end):start() end, padding = "3dp", layout_width = "wrap_content", layout_height = "wrap_content", } }}) end return ltresult end function chatbg() local jb=luajava.loadlayout({ GradientDrawable, color = "#aa2383FF", cornerRadius = 18 }) return jb end function visi(tid,ttid) local tview = luajava.getIdValue(tid) local ttview = luajava.getIdValue(ttid) if not tview then return 0 end if tonumber(tostring(tview:getVisibility())) == 8.0 then tview:setVisibility(View.VISIBLE) ttview:setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png")) else tview:setVisibility(View.GONE) ttview:setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png")) end end function changan.box(views) local tid = "box"..guid() local ttid = tid.."6" firadio = { LinearLayout, layout_width = '210dp', layout_height = "wrap_content", layout_marginTop = "2dp", layout_marginBottom = "2dp", orientation = "vertical", } if type(views[1]) == "string" or type(views[1]) == "number" then firadio[#firadio+1] = { LinearLayout, layout_width = 'fill_parent', layout_height = "30dp", gravity = "center_vertical", layout_marginTop = "2dp", layout_marginBottom = "4dp", onClick = function() visi(tid,ttid) end, background = getSelector3(), { ImageView, layout_marginLeft = "10dp", id = luajava.newId(ttid), background = "/sdcard/挽风内部[1.0]/图片/sj", layout_width = "20dp", layout_height = "20dp", layout_marginTop = "0dp", }, { TextView,text = views[1], textSize = "16sp", layout_marginLeft = "15dp", layout_width = "100dp", textColor = "#ffffff", gravity = "left", }} else gg.alert("changan.box第一个参数必须是string") os.exit() end radios = { LinearLayout, layout_marginLeft = "0dp", layout_marginRight = "0dp", orientation = "vertical", visibility = "gone", id = luajava.newId(tid), padding = "0dp", layout_width = 'fill_parent', } for i = 2,#views do radios[#radios+1] = views[i] end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function getLayoutParams2() local prm = luajava.new(WindowManager.LayoutParams) layoutParams1 = prm if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY else layoutParams1.type = prm.TYPE_PHONE end layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams1.gravity = Gravity.CENTER -- 重力设置 layoutParams1.width = prm.WRAP_CONTENT -- 布局宽度 layoutParams1.height = prm.WRAP_CONTENT -- 布局高度 return layoutParams1 end end function getShape3() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(12) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0x00000000,0x00000000}) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(2,0xaaffffff)--边框宽度和颜色 return jianbians end -------------------------------------------------------------个脚本配置个----------------------------------------------------------- gg.loopKillGG()-----杀GG 标题颜色={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF}-----上面方框的颜色 标题边框开关=1 --0关1开 标题边框颜色="0xee000000"-----上面边框 大背景颜色={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF} ---请不要泛滥或二次出售此ui --如果泛滥了或出售此ui --我将会关闭接扣 停止使用 大背景边框="0xee000000" button颜色={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF}------按钮颜色 ---请不要泛滥或二次出售此ui --如果泛滥了或出售此ui --我将会关闭接扣 停止使用 侧边文字颜色="0xee000000" 菜单小背景颜色={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF}------背景 菜单小背景边框="0xee000000" 其他控件背景={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF} 侧边按钮背景2={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF}---按钮点击 侧边按钮背景1={0xB3000000,0x9CFF0069,0x8E00AFFF,0x8E00AFFF}----按钮 stab = { {"公告","主页专区"}, {"防封","防封专区"}, {"功能","功能专区"}, {"聊天","聊天室"}, {"音乐","网易云"}, {"快手","美女视频"}, } xfcpic="httPS://tvax1.sinaimg.cn/large/008vOhrAgy1hhvzf7k29qj30ku0kujsz.jpg" -----悬浮窗 ui_init()--ui初始化不要动 changan.menu( { {--第一页 changan.text("欢迎使用挽风内部","#FFFFFF","15sp"), changan.text("挽风内部主作『挽风』","#FFFFFF","15sp"), changan.text("挽风内部副作『无』","#FFFFFF","15sp"), changan.text("代理: 无 ","#FFFFFF","15sp"), changan.text("官方频道@TGDUSR 进程如果掉开启防掉进程即可下面往下滑即可","#00ffff","15sp"), changan.button("选择进程", function() string.toMusic('请选择进程') gg.setProcessX() end), changan.button("收起页面",隐藏),--只填function名字写法 changan.button("退出脚本",tuic), changan.button("防掉进程", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{-301047508,4,16,['name']='防掉进程'},{0,4,1272},},{{256,4,1268,true},},"修改") string.toMusic("开始成功") end), changan.button("高光播报", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{80102,4,32,['name']='高光播报'},{1,4,40},},{{20011,4,36,true},},"修改") string.toMusic("开启成功") end), }, {--第二页 changan.text("全部功能已更新","#FFFFFF","15sp"),-- changan.text("娱乐功能小合集页面","#FF00FF00","15sp"),--空文本可用于换行,sp changan.check({--勾选,内容无限,每行3个 {"司空震二技能360", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{-394509074,4,4,['name']='数量'},{0,4,84},},{{99,4,88,false},},"修改") xyss({{16777235,4,4,['name']='司空震二技能360'},{15000,4,860},},{{3,4,856,true},},"修改") gg.toast("100%初始化完毕") string.toMusic('Logo开启完毕')---语音 end, function() string.toMusic("无法关闭") end, },{"百里二技能360", function() function xqmnb(Search,Modification) time=os.clock() gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'注入失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast('['..Search[2].name..']注入成功,共修改'..sum..'条数据\n耗时:'..os.clock()-time..'秒') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end local qmnb= { {['memory']=4}, {['name']='偏移'}, {['value']=196200, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=360,['offset']=2036, ['type']=4}, } local qmxg= { {['value']=3,['offset']=2048,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='数量'}, {['value']=-1420754562, ['type']=4}, {['lv']=1610612736,['offset']=-12, ['type']=4}, {['lv']=1974699135,['offset']=4, ['type']=4}, } local qmxg= { {['value']=75,['offset']=88,['type']=4}, } xqmnb(qmnb,qmxg) gg.alert('百里二技能360') gg.toast("100%初始化完毕") string.toMusic('百里二技能360')---语音 end, function() string.toMusic("无法关闭") end, },{"王者小功能合集[Free]", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function Sear(search,write,xglx) if search[1][5]==nil or search[1][6]==nil then search[1][5]=0 search[1][6]=-1 end gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) time=os.clock() gg.searchNumber(search[1][1],search[1][2],false,gg.SlGN_EQUAL,search[1][5],search[1][6]) if gg.getResultsCount()==0 then gg.toast("未搜索到主特征码")return false else local result=gg.getResults(gg.getResultsCount()) gg.clearResults() for i=2,#search do local mtp={} for w,r in ipairs(result)do mtp[#mtp+1]={address=r.address+search[i][2],flags=search[i][3]} end mtp=gg.getValues(mtp) local hook={} for w,r in ipairs(mtp)do if r.value==search[i][1]then hook[#hook+1]=result[w] end end result=hook end if #result>0 then local tb={{},{}} for i,v in ipairs(result)do for _,vv in ipairs(write)do local p={address=v.address+vv[2],flags=vv[3],value=vv[1]} if vv[4]then table.insert(tb[1],p) else table.insert(tb[1],p) end if xglx=="冻结"then ts="冻结" gg.addListItems({{address=v.address+vv[2],flags=vv[3],value=vv[1],freeze=true}}) gg.clearList() end end end if xglx=="修改"then ts="修改" gg.setValues(tb[1]) end if xglx=="载入"then ts="载入" gg.loadResults(tb[1]) end gg.toast(search[1][4].."已"..ts.."共"..ts..(#tb[1]+#tb[2]).."条数据 耗时"..os.clock()-time.."秒")else gg.alert(search[1][4]..ts.."失败") end end end --二改倒卖四全家 --拿完进1016278819 --挽风制作-2025-3-2 function Main() SY=gg.multiChoice({ "技能释放+范围区", "防御塔水晶区", "全图透视+上帝区", "自身等级+攻速定义", "退出脚本", },nil,"任何做到极致便是艺术\n作者:NorthMoon\n1016278819交流群") if SY == nil then else if SY[1] == true then jnsf() end if SY[2] == true then fytsj() end if SY[3] == true then tssj() end if SY[4] == true then djgs() end if SY[5] == true then Exit() end end XGCK = -1 end function jnsf() EY=gg.multiChoice({ "百里二技能360", "百里二技能献祭流", "百里二技能必中", "返回主页", },nil,"局内开的,请勿在局外开启\n献祭流可能会在后面小更新失效") if EY == nil then else if EY[1] == true then bl360() end if EY[2] == true then blxjl() end if EY[3] == true then blfw() end if EY[4] == true then Main() end end XGCK = -1 end function bl360() Sear({{-1420754562,4,4,"百里数量"},{1,88,4},},{{88,88,4},},"修改") Sear({{196200,4,4,"百里二技能偏移"},{100,12,4},{360,2160,4},},{{3,2176,4},},"修改") end function blxjl() Sear({{196290,4,-2080896,"献祭流"},{1982288487,168,4},}, {{-60290467,168,4},{130719744,172,4},},"修改") end function blfw() Sear({{3200,4,4,"范围"},{-500,-12,4},{10000,-4,4},},{{8000,-8,4},},"修改") end function fytsj() Sy=gg.multiChoice({ "蓝方水晶自爆", "红方水晶自爆", "防御塔全掉", "返回主页", },nil,"水晶自爆局外局内都可以\n防御塔只可以局内") if Sy == nil then else if Sy[1] == true then lfsjzb() end if Sy[2] == true then hfsjzb() end if Sy[3] == true then fytqd() end if Sy[4] == true then Main() end end XGCK = -1 end function lfsjzb() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x143620, 0x4C8, 0xC20}--92;55;9,300;9,000;600;420;10;200;5,000改善55 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = -10000}}) gg.alert("蓝方水晶自爆注入成功\nPowered by.NorthMoon") end function hfsjzb() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x143620, 0x4F8, 0xC20}--95;55;9,300;9,000;600;420;10;200;5,000改善55 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = -10000}}) gg.alert("红方水晶自爆注入成功\nPowered by.NorthMoon") end function fytqd() Sear({{5734400,4,4,"防御塔"},{81920000,20,4},},{{0,-4,4},},"修改") end function tssj() dy=gg.multiChoice({ "全图透视", "自定义上帝视角", "返回主页", },nil,"视角默认0.0最好的高速是2\n全图透视实战一把就封没什么用") if dy == nil then else if dy[1] == true then qtts() end if dy[2] == true then sdsj() end if dy[3] == true then Main() end end XGCK = -1 end function qtts() local t = {"libGameCore.so", "Cd"} local tt = {0x1E298, 0xACC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 705168086}}) gg.alert("全图透视注入成功\nPowered by.NorthMoon") end function sdsj() SJ = gg.prompt({"请输入高度"},{[1]="默认0"},{[1]="number"})[1] local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x16AD050, 0xA54}--5深度4000偏移 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = SJ}}) gg.alert("切换相机即可\n注入成功\nPowered by.NorthMoon") end function djgs() B=gg.prompt({"英雄等级","攻速"},{[1]="默认1" ,[2]="最优为500"}, {[1]="number",[2]="number"}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1955B0, 0x4C8, 0x168, 0x60, 0x2C} local ttt = S_Pointer(t, tt, true) gg.setValues({ {address = ttt, flags = 4, value = B[1]*8192}, {address = ttt+0x4, flags = 4, value = 9}, {address = ttt-0x133c, flags = 4, value = B[2]*819200}, }) gg.alert("等级攻速注入成功\nPowered by.NorthMoon") end function Exit() print("Powered by.NorthMoon\n交流群:1016278819") os.exit() end gg.showUiButton() while true do if gg.isClickedUiButton()==true then Main() end end gg.alert('王者小功能合集[Free]') gg.toast("100%初始化完毕") string.toMusic("王者小功能合集") end, },{"王者功能[2.0]", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end --配置勿动 function Main() SN=gg.choice({ "自定义功能区", "偏向娱乐区", "苍穹功能区", "退出脚本", },2018,"作者:挽风\nTG@TGDUSRQQ\n1027816594交流群") if SN==1 then zdyq() end if SN==2 then pxylq() end if SN==3 then cqq() end if SN==4 then Exit() end FX1=0 end --本人也是看源码自己琢磨会的我相信你也可以 --这个门槛很低只需要研究一下基本就会了 --接定制脚本😌--发源文件是我看不上这些东西 function zdyq() dy=gg.choice({ "自定义英雄改皮肤", "自定义英雄技能冷却后摇", "自定义英雄开局全技能", "返回主页", },2018,"不会使用的建议去搜教程\n我做但不想教什么东西") if dy==1 then zdypf() end if dy==2 then zdyjn() end if dy==3 then zdyyxjn() end if dy==4 then Main() end FX1=0 end function zdypf() B=gg.prompt({"英雄代码","英雄皮肤"},{[1]="106",[2]="默认1"}, {[1]="number",[2]="number"}) local qmnb= { {['memory']=-2080896}, {['name']='英雄皮肤'}, {['value']=B[1].."00", ['type']=4}, {['lv']=1367888256,['offset']=8, ['type']=4}, } local qmxg= { {['value']=B[2],['offset']=4,['type']=4}, {['value']=B[2],['offset']=16,['type']=4}, } xqmnb(qmnb,qmxg) end function zdyjn() local qmnb= { {['memory']=-2080896}, {['name']='英雄技能冷却'}, {['value']=19620, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=320,['type']=4}, } xqmnb(qmnb,qmxg) end function zdyyxjn() a = gg.prompt({"请输入英雄代码"},{[1]="106"},{[1]="number"})[1] local qmnb= { {['memory']=-2080896}, {['name']='英雄技能'}, {['value']=a, ['type']=4}, {['lv']=1354985197,['offset']=8, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=228,['type']=4}, {['value']=-1,['offset']=248,['type']=4}, {['value']=-1,['offset']=268,['type']=4}, {['value']=-1,['offset']=288,['type']=4}, } xqmnb(qmnb,qmxg) end function pxylq() ey=gg.choice({ "无限火力[局外]", "鬼谷子吸全图", "苏烈大招全图秒杀", "全装备零元购", "返回主页", },2018,"除无限火力其他功能均局内开") if ey==1 then wxhl() end if ey==2 then ggzxqt() end if ey==3 then sldzms() end if ey==4 then qzbly() end if ey==5 then Main() end FX1=0 end function wxhl() local qmnb= { {['memory']=-2080896}, {['name']='无限火力'}, {['value']=-60290467, ['type']=4}, {['lv']=-60290467,['offset']=168, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=104,['type']=4}, {['value']=-1,['offset']=160,['type']=4}, {['value']=-1,['offset']=296,['type']=4}, } xqmnb(qmnb,qmxg) end function ggzxqt() local qmnb= { {['memory']=4}, {['name']='吸全图'}, {['value']=189200, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-1268,['type']=4}, } xqmnb(qmnb,qmxg) end function sldzms() local qmnb= { {['memory']=4}, {['name']='苏烈大招秒全图'}, {['value']=194390, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=0,['offset']=0x84,['type']=4}, {['value']=0,['offset']=0xc0,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='大招伤害'}, {['value']=194300, ['type']=4}, {['lv']=1982288487,['offset']=168, ['type']=4}, } local qmxg= { {['value']=99999,['offset']=212,['type']=4}, } xqmnb(qmnb,qmxg) end function qzbly() local qmnb= { {['memory']=-2080896}, {['name']='零元购'}, {['value']=417094601, ['type']=4}, {['lv']=417094601,['offset']=32, ['type']=4}, } local qmxg= { {['value']=0,['offset']=28,['type']=4}, } xqmnb(qmnb,qmxg) end function cqq() sy=gg.choice({ "七星光芒斩", "雅典娜全图戳", "澜全图刮", "司马懿全图A", "典韦大招砍全图", "典韦大招砍队友", "返回主页", },2018,"可以有很多但是我懒得搞\n如果你可以自己写的话就去写吧") if sy==1 then qxgmz() end if sy==2 then ydnqtc() end if sy==3 then lqtg() end if sy==4 then smyqta() end if sy==5 then dwdzkqt() end if sy==6 then dwdzkdy() end if sy==7 then Main() end FX1=0 end function qxgmz() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=53603, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=53603,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function ydnqtc() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=18303, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=18303,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function lqtg() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=52805, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=52805,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function smyqta() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=13707, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=13707,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function dwdzkqt() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=12930, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=0x140,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=53603,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function ydnqtc() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=18303, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=18303,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function lqtg() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=52805, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=52805,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function smyqta() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=13707, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=13707,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function dwdzkqt() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=12930, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=0x140,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, {['value']=0,['offset']=0x118,['type']=4}, {['value']=0,['offset']=0x12c,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=12930,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function dwdzkdy() local qmnb= { {['memory']=-2080896}, {['name']='范围属性'}, {['value']=12930, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=0x140,['type']=4}, {['value']=5201314,['offset']=228,['type']=4}, {['value']=5201314,['offset']=232,['type']=4}, {['value']=5201314,['offset']=236,['type']=4}, {['value']=5201314,['offset']=240,['type']=4}, {['value']=5201314,['offset']=244,['type']=4}, {['value']=2052,['offset']=0x118,['type']=4}, {['value']=0,['offset']=0x12c,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='苍穹属性'}, {['value']=11311, ['type']=4}, {['lv']=417094601,['offset']=8, ['type']=4}, } local qmxg= { {['value']=0,['offset']=36,['type']=4}, {['value']=9999,['offset']=96,['type']=4}, {['value']=9999,['offset']=112,['type']=4}, {['value']=30000,['offset']=136,['type']=4}, {['value']=12930,['offset']=352,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='去除打塔上限'}, {['value']=360000, ['type']=4}, {['lv']=366,['offset']=-4, ['type']=4}, {['lv']=367,['offset']=4, ['type']=4}, } local qmxg= { {['value']=999999,['offset']=-32,['type']=4}, } xqmnb(qmnb,qmxg) end function Exit() print("挽风") os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main() end end gg.toast("100%初始化完毕") string.toMusic("王者功能[2.0]开启成功") end, },{"王者功能", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function Main() SN=gg.choice({ "局外功能", "局内功能", "退出脚本", },2018,"作者:挽风\nTG@TGDUSR\n接定制脚本") if SN==1 then jwgn() end if SN==2 then jngn() end if SN==3 then Exit() end FX1=0 end --NorthMoon挽风挽风挽风 --TG@TGDUSR删除原作者名死全家,二改倒卖死全家死绝 function jwgn() SY=gg.choice({ "自定义技能冷却[三]", "自定义技能冷却[单]", "马超背水一战", "返回主页", },2018,"技能冷却三是英雄三个技能都改\n单是只设置一个技能") if SY==1 then a() end if SY==2 then b() end if SY==3 then c() end if SY==4 then Main() end FX1=0 end function a() B=gg.prompt({"英雄技能①","英雄技能②","英雄技能③"}, {[1]="10610",[2]="10620",[3]="10630"}, {[1]="number",[2]="number",[3]="number"}) local qmnb= { {['memory']=-2080896}, {['name']='英雄技能'}, {['value']=B[1], ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=320,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='英雄技能'}, {['value']=B[2], ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=320,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='英雄技能'}, {['value']=B[3], ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=320,['type']=4}, } xqmnb(qmnb,qmxg) end function b() B=gg.prompt({"请输入英雄技能"},{[1]="10610"},{[1]="number"}) local qmnb= { {['memory']=-2080896}, {['name']='英雄技能'}, {['value']=B[1], ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=320,['type']=4}, } xqmnb(qmnb,qmxg) end function c() local qmnb= { {['memory']=-2080896}, {['name']='马超普攻'}, {['value']=518, ['type']=4}, {['lv']=1354985197,['offset']=8, ['type']=4}, {['lv']=51800,['offset']=200, ['type']=4}, } local qmxg= { {['value']=51806,['offset']=200,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=-2080896}, {['name']='马超普攻无冷却后摇'}, {['value']=51806, ['type']=4}, {['lv']=-60290467,['offset']=24, ['type']=4}, } local qmxg= { {['value']=-1,['offset']=128,['type']=4}, {['value']=-1,['offset']=184,['type']=4}, {['value']=-1,['offset']=320,['type']=4}, } xqmnb(qmnb,qmxg) end function jngn() EY=gg.choice({ "百里二技能范围必中", "百里二技能360释放", "自定义元歌傀儡", "返回主页", },2018,"如果没效果就再开一遍\n必须局内开否则没效果") if EY==1 then a1() end if EY==2 then a2() end if EY==3 then a3() end if EY==4 then Main() end FX1=0 end function a1() local qmnb= { {['memory']=4}, {['name']='百里范围必中'}, {['value']=3200, ['type']=4}, {['lv']=-500,['offset']=-12, ['type']=4}, {['lv']=1000,['offset']=-8, ['type']=4}, {['lv']=10000,['offset']=-4, ['type']=4}, } local qmxg= { {['value']=8000,['offset']=-8,['type']=4}, } xqmnb(qmnb,qmxg) end function a2() local qmnb= { {['memory']=4}, {['name']='百里二技能数量'}, {['value']=-1420754562, ['type']=4}, {['lv']=1974699135,['offset']=4, ['type']=4}, {['lv']=1,['offset']=88, ['type']=4}, } local qmxg= { {['value']=58,['offset']=88,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='百里360释放'}, {['value']=196200, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=3,['offset']=2248,['type']=4}, } xqmnb(qmnb,qmxg) end function a3() a = gg.prompt({"请输入想要的英雄"},{[1]="106"},{[1]="number"})[1] local qmnb= { {['memory']=4}, {['name']='元歌傀儡自定义'}, {['value']=-779610544, ['type']=4}, {['lv']=12510,['offset']=56, ['type']=4}, } local qmxg= { {['value']=a,['offset']=-1184,['type']=4}, } xqmnb(qmnb,qmxg) end function Exit() print("挽风") os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main() end end gg.toast("王者功能开启成功") string.toMusic('王者功能开启成功')---语音 end, function() so=gg.getRangesList('libgcloud.so')[1].start--关 py=0x42B3D8 setvalue(so+py,4, 62,762,945) gg.toast("王者功能关闭成功") string.toMusic('王者功能关闭成功')---语音 end, },{"雾绕王者防tp86", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"libtersafe.so:bss", "Cb"} local tt = {0xCA8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 256, freeze = true}}) local t = {"libtersafe.so:bss", "Cb"} local tt = {0xD50} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 256, freeze = true}}) gg.toast("雾绕王者防tp86开启成功") string.toMusic('雾绕王者防tp86开启成功')---语音 end, function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"libtersafe.so:bss", "Cb"} local tt = {0xCA8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 256, freeze = true}}) local t = {"libtersafe.so:bss", "Cb"} local tt = {0xD50} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 256, freeze = true}}) gg.toast("雾绕王者防tp86关闭成功") string.toMusic('雾绕王者防tp86关闭成功')---语音 end, }, }) }, {--第三 changan.check({--勾选,内容无限,自动换行 {"别点我", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x22C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999}}) local m = gg.prompt({'建议200~1600'}, {'1.0'}, {'text'}) if m then local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = m[1]}}) gg.toast("开启成功") string.toMusic('开启成功')---语音 end end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x22C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.05000000075}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) string.toMusic("跳远关闭成功") end, },{"别点我", function() 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 local r = gg.prompt({'自改超广角[推荐2]'}, {'2.0'}, {'text'}) if r then so=gg.getRangesList('libUE4.so')[1].start py1=0x320a9f8 setvalue(so+py1,16,r[1]) gg.toast("开启成功") string.toMusic("开启成功") end end, function() string.toMusic("无法关闭") end, },{"别点我", function() OP=gg.prompt({'建议60~144'},{[1]='144'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else local t = {"libUE4.so:bss", "Cb"} local tt = {0x469600,0x38} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x469600,0x34} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) gg.toast("锁定成功") string.toMusic("画质帧数修改成功") end end, },{"马超无限戳[局外][基址]", function() function xy_Actad(tab) local v,address=gg.getRangesList(tab[1]) if not v[1] then gg.toast("获取失败,原因:未获取模块") return end local pd=gg.getTargetInfo().x64 local address=v[1].start+tab[2][1] for i=2,#tab[2] do if pd then address=gg.getValues({{address=address,flags=32}})[1].value+tab[2][i] else address=gg.getValues({{address=address,flags=4}})[1].value & 0xFFFFFFFFF address=address+tab[2][i] end end if address==tab[2][#tab[2]] then gg.toast("获取失败,原因:指针错误") return end return address end local addr1=xy_Actad({"libGameCore.so:bss",{0x141370,0x6B8,0xC8}}) local addr2=xy_Actad({"libGameCore.so:bss",{0x142CE0,0x4D18,0xB8}}) if addr1==nil or addr2==nil then return end gg.setValues({{address=addr2,flags=4,value=0}, {address=addr1,flags=4,value=51806}, {address=addr2-0x38,flags=4,value=-1}, }) print('又欠制作:3102660060')--又欠 gg.toast("开启成功") string.toMusic("开启成功") end, function() string.toMusic("无法关闭") end, },{"破军爆改", function() function Sear(search, write, xglx) if search[1][5] == nil or search[1][6] == nil then search[1][5] = 0 search[1][6] = -1 end gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) time = os.clock() gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, search[1][5], search[1][6]) if gg.getResultsCount() == 0 then gg.toast("未搜索到主特征码") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = {address = r.address + search[i][2], flags = search[i][3]} end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = { {}, {} } for i, v in ipairs(result) do for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1]} if vv[4] then table.insert(tb[1], p) else table.insert(tb[1], p) end if xglx == "冻结" then ts = "冻结" gg.addListItems({{address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = true}}) gg.clearList() end end end if xglx == "修改" then ts = "修改" gg.setValues(tb[1]) end if xglx == "载入" then ts = "载入" gg.loadResults(tb[1]) end gg.toast(search[1][4] .. "已" .. ts .. "共" .. (#tb[1] + #tb[2]) .. "条数据 耗时" .. (os.clock() - time) .. "秒") else gg.alert(search[1][4] .. ts .. "失败") end end end Sear({{1138,4,-2080896,"破军爆改"},{2680,36,4},{170,96,4},},{{0,36,4},{1000000,96,4},{1000000,100,4},{1000000,104,4},{1000000,108,4},{1000000,112,4},{1000000,116,4},{1000000,120,4},{1000000,124,4},{1000000,144,4},{1000000,148,4},},"修改") gg.toast("开启成功") string.toMusic("开启成功") end, function() string.toMusic("关闭成功") end, },{"基址聚点", function() so=gg.getRangesList('libUE4.so')[1].start py=0x52BFF74 setvalue(so+py,16,8.47963525e-21) gg.toast("聚点开启成功") string.toMusic('聚点开启成功')---语音 end, function() string.toMusic("无法关闭") end, },{"零秒cd", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{-60290467,4,-2080896,['name']=' 自定义CD'},{-60290467,4,-168},{-60290467,4,-152},},{{0,4,-8,false},},"修改") dy({{-60290467,4,-2080896,['name']='技能无后摇+无蓝耗'},{-60290467,4,16},{-60290467,4,168},},{{-256,4,100,false},{-256,4,104,false},{-256,4,108,false},{-256,4,112,false},},"修改") string.toMusic('修改成功') end, function() string.toMusic("关闭成功") end, },{"掉进+单机+麦克风+训练营+资源损坏+聊天栏+技能暴击+技能吸血+技能无后摇+被控时可释放技能+技能不会被打断+模式属性增加+CD两秒+死亡释放技能", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{16384,4,16,['name']='掉进'},{16384,4,48},{16384,4,104},},{{256,4,0,false},{256,4,48,false},{256,4,104,false},},"修改") dy({{-787807233,4,16384,['name']='资源损坏'},{-698416192,4,-32},{-1447396355,4,-28},{-1459523588,4,-24},},{{1384120352,4,-28,false},{-698416192,4,-24,false},},"修改") dy({{1109393408,4,32,['name']='单机'},{3450,4,-68},},{{3448,4,-68,false},},"修改") --dy({{956321800,4,16384,['name']='麦克风聊天栏'},{905969890,4,-4},},{{956321800,4,-4,false},},"修改") dy({{20044,4,-2080896,['name']='训练营'},{-833224347,4,8},},{{16777216,4,908,false},},"修改") --dy({{1982288487,4,-2080896,['name']='技能暴击吸血'},{65535,4,584},},{{10000,4,-84,false},{0,4,-80,false},{65536,4,816,false},},"修改") --dy({{-60290467,4,-2080896,['name']='技能无后摇不会被打断可被控制时释放'},{-60290467,4,16},{-60290467,4,168},},{{256,4,100,false},{256,4,104,false},{256,4,108,false},{256,4,112,false},{65792,4,164,false},{-1,4,176,false},},"修改") --dy({{10550,4,-2080896,['name']='模式属性增加'},{10000,4,-12},{8000,4,12},},{{10000000,4,-528,false},{10000000,4,-520,false},{10000000,4,-516,false},{10000000,4,-508,false},{10000000,4,-504,false},{10000000,4,-496,false},{10000000,4,-492,false},{10000000,4,-484,false},{10000000,4,-480,false},{10000000,4,-472,false},{10000000,4,-468,false},{10000000,4,-460,false},{10000000,4,-456,false},{-10000000,4,-452,false},{10000000,4,-448,false},{10000000,4,-444,false},{10000000,4,-436,false},{10000000,4,-432,false},{10000000,4,-424,false},{10000000,4,-420,false},{10000000,4,-412,false},{10000000,4,-408,false},{10000000,4,-400,false},{10000000,4,-396,false},{10000000,4,-388,false},{10000000,4,-384,false},{10000000,4,-376,false},{10000000,4,-372,false},{10000000,4,-364,false},{10000000,4,-360,false},{10000000,4,-352,false},{10000000,4,-348,false},{10000000,4,-340,false},{10000000,4,-336,false},{-10000000,4,-332,false},{10000000,4,-328,false},{10000000,4,-324,false},{10000000,4,-316,false},{10000000,4,-312,false},{-10000000,4,-308,false},{10000000,4,-304,false},{10000000,4,-300,false},{10000000,4,-292,false},{10000000,4,-288,false},{10000000,4,-280,false},{10000000,4,-276,false},{10000000,4,-268,false},{10000000,4,-264,false},{10000000,4,-256,false},{10000000,4,-252,false},{10000000,4,-244,false},{10000000,4,-240,false},{10000000,4,-232,false},{10000000,4,-228,false},{10000000,4,-220,false},{10000000,4,-216,false},{-10000000,4,-212,false},{10000000,4,-208,false},{10000000,4,-204,false},{10000000,4,-196,false},{10000000,4,-192,false},{-10000000,4,-188,false},{10000000,4,-184,false},{10000000,4,-180,false},{10000000,4,-172,false},{10000000,4,-168,false},{10000000,4,-160,false},{10000000,4,-156,false},{10000000,4,-148,false},{10000000,4,-144,false},{10000000,4,-136,false},{10000000,4,-132,false},{10000000,4,-124,false},{10000000,4,-120,false},{10000000,4,-112,false},{10000000,4,-108,false},{10000000,4,-100,false},{10000000,4,-96,false},{-10000000,4,-92,false},{10000000,4,-88,false},{10000000,4,-84,false},{-10000000,4,-80,false},{10000000,4,-76,false},{10000000,4,-72,false},{10000000,4,-64,false},{10000000,4,-60,false},},"修改") --dy({{-60290467,4,-2080896,['name']=' CD两秒'},{-60290467,4,-168},{-60290467,4,-152},},{{2000,4,-8,false},},"修改") --dy({{1354985197,4,-2080896,['name']='测试'},{7000,4,80},},{{1,4,592,false},},"修改") gg.toast("开启成功") string.toMusic('开启成功') end, function() so=gg.getRangesList('libUE4.so')[1].start py=0x3209128 setvalue(so+py,16,0.10000000149) gg.setValues({{address = ttt, flags = 16, value = 8192}}) string.toMusic('关闭成功') end, },{"基址装备遍历价格", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end --晚风制作 local t = {"libGameCore.so:bss", "Cb"} local tt = {0x195A00, 0x240, 0x3C8, 0x1A8, 0x24} local ttt = S_Pointer(t, tt, true) py=0 for i=1,250 do gg.setValues({{address = ttt+py, flags = 4, value = 0}}) py=py+0x1F0 end gg.toast("开启成功") string.toMusic('开启成功') end, function() string.toMusic("无法关闭") end, },{"无限火力[指针]", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end --[[ 作者挽风->利用英雄技能偏移0x28获取到-60290467的这个值偏移A8会获得到一个相等的数值,这个值是王者大改后通用的技能乱码值,已知是共有的值且这个值是唯一的英雄技能有效乱码值那么我们就可以直接做到全英雄无限火力了 ]] xyss({{-60290467,4,-2080896,['name']='测试'},{-60290467,4,168},},{ {-1,4,104,false},{-1,4,160,false},{-1,4,296,false},},'修改') gg.alert("无限火力开启成功") gg.toast("开启成功") end, function() string.toMusic("不可关闭") end, },{"小乔一技能数量99+", function() function xy_Offset_Search(search,modify) gg.setRanges(search[1][3]) local name=search[1]['name'] or '' local time = os.clock() gg.clearResults() gg.searchNumber(search[1][1],search[1][2],nil,nil,search[1][4] or 0 ,search[1][5] or -1) local k=gg.getResults(gg.getResultsCount()) gg.clearResults() for a=2,#search do local b,hook={},{} for i,v in pairs(k) do b[#b+1]={address=v.address+search[a][3],flags=search[a][2]} end b=gg.getValues(b) if type(search[a][1])=='string' then local zxsl=0 if string.find(search[a][1],'~')~=nil then zxsl=zxsl+1 local sz={search[a][1]:match('(.+)~(.+)')} local sz={tonumber(sz[1]),tonumber(sz[2])} for i,v in pairs(b) do if v.value>=sz[1] and v.value<=sz[2] then hook[#hook+1]=k[i] end end end if search[a][1]:find('<')~=nil and not search[a][1]:find('=') then zxsl=zxsl+1 local sz=search[a][1]:match('<(.+)') local sz=tonumber(sz) for i,v in pairs(b) do if v.value')~=nil and not search[a][1]:find('=') then zxsl=zxsl+1 local sz=search[a][1]:match('>(.+)') local sz=tonumber(sz) for i,v in pairs(b) do if v.value>sz then hook[#hook+1]=k[i] end end end if search[a][1]:find('<=')~=nil then zxsl=zxsl+1 local sz=search[a][1]:match('<=(.+)') local sz=tonumber(sz) for i,v in pairs(b) do if v.value<=sz then hook[#hook+1]=k[i] end end end if search[a][1]:find('>=')~=nil then zxsl=zxsl+1 local sz=search[a][1]:match('>=(.+)') local sz=tonumber(sz) for i,v in pairs(b) do if v.value>=sz then hook[#hook+1]=k[i] end end end if zxsl==0 then search[a][1]=tonumber(search[a][1]) for i,v in pairs(b) do if v.value==search[a][1] then hook[#hook+1]=k[i] end end end else for i,v in pairs(b) do if v.value==search[a][1] then hook[#hook+1]=k[i] end end end k=hook end local zr,xg,dj,jg,sr1,sr2,jlsj,hqz={},{},{},{},{},{},{},{} for x,y in pairs(modify) do if #k==0 then break end if y[4]=='修改' then for i,v in pairs(k) do xg[#xg+1]={address=v.address+y[3],flags=y[2],value=y[1]} end end if y[4]=='载入' then for i,v in pairs(k) do zr[#zr+1]={address=v.address+y[3],flags=y[2]} end end if y[4]=='冻结' then for i,v in pairs(k) do dj[#dj+1]={address=v.address+y[3],flags=y[2],value=y[1],freeze=true} end end if y[4]=='保存' then for i,v in pairs(k) do dj[#dj+1]={address=v.address+y[3],flags=y[2],name=y.name} end end if y[4]=='获取' then local hq={} for i,v in pairs(k) do hq[#hq+1]={address=v.address+y[3],flags=y[2]} end local hq=gg.getValues(hq) jg[#jg+1]=hq end if y[4]=='自定义修改' then sr1[#sr1+1]=y.name or '没名字属性' hqz[#hqz+1]={address=k[1].address+y[3],flags=y[2]} jlsj[#jlsj+1]=x..'>修改' end if y[4]=='自定义冻结' then sr1[#sr1+1]=y.name or '没名字属性' hqz[#hqz+1]={address=k[1].address+y[3],flags=y[2]} jlsj[#jlsj+1]=x..'>冻结' end end if #jlsj >0 then local hqz=gg.getValues(hqz) for i,v in pairs(hqz) do sr2[#sr2+1]=v.value end local pro=gg.prompt(sr1,sr2) if not pro then gg.toast('你选择了取消/没输入') return end for x,y in pairs(jlsj) do local zxsz,zxlx=y:match('(.+)>(.+)') local zxsz=tonumber(zxsz) if zxlx=='修改' then for i,v in pairs(k) do xg[#xg+1]={address=v.address+modify[zxsz][3],flags=modify[zxsz][2],value=pro[x]} end end if zxlx=='冻结' then for i,v in pairs(k) do dj[#dj+1]={address=v.address+modify[zxsz][3],flags=modify[zxsz][2],value=pro[x],freeze=true} end end end end gg.setValues(xg) gg.addListItems(dj) gg.loadResults(zr) gg.toast('['..name..']执行完毕\n耗时:'..os.clock()-time..'秒\n执行共修改:'..#xg..',冻结/保存:'..#dj..',载入:'..#zr..',获取:'..#jg..'个偏移') if #jg>0 then return jg end end gg.setVisible(false) yy=gg.getTargetPackage() if yy ~= 'com.tencent.tmgp.sgame' then gg.alert('你是不是没有选择王者的进程?快去选!') os.exit()else end gg.setRanges(-2080896) local ranges=gg.getRangesList("libc.so") gg.clearResults() for _, range in pairs(ranges) do gg.searchNumber(":scudo:secondary", 1, nil, nil, range['start'], range['end']) local count=gg.getResultCount() if count > 0 then gg.getResults(count) gg.editAll(":libc_malloc", 1) gg.clearResults() end end xy_Offset_Search({ {1055260444,4,4,name="功能",start,over}, {0,4,84}, }, { {99,4,88,"修改",name="名字"}, }) gg.toast("启动成功") string.toMusic('启动成功') end },{"正式服廉颇改冰雪主宰技能有伤害", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{105,4,-2080896,['name']='廉颇改冰雪主宰'},{1354985197,4,8},},{{15895552,4,60,false},{21450,4,200,false},{4011230,4,220,false},{16777217,4,228,false},{1,4,232,false},{4011250,4,240,false},{16777217,4,248,false},{1,4,252,false},{4011240,4,260,false},{16777217,4,268,false},{1,4,272,false},{4011120,4,280,false},{0,4,2004564,false},{0,4,2004568,false},{0,4,2005188,false},{0,4,2005192,false},{0,4,2005812,false},},"修改") dy({{40112301,4,-2080896,['name']='廉颇改冰雪主宰2'},{1982288487,4,168},},{{685281792,4,172,false},{0,4,176,false},{2,4,200,false},{500,4,212,false},{10000,4,216,false},{685281792,4,2412,false},{0,4,2416,false},{2,4,2440,false},{500,4,2452,false},{10000,4,2456,false},{685281792,4,4652,false},{0,4,4656,false},{2,4,4680,false},{500,4,4692,false},{10000,4,4696,false},},"修改") gg.alert("正式服廉颇改冰雪主宰技能有伤害包开启成功") gg.toast("开启成功") end },{"名刀改狄仁杰二技能移动释放", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end db=gg.getRangesList("dataCache.db")[1] xyss({{417094601,4,-2080896,['name']='名刀0金币',db["start"],db["end"]},{1127,4,-40},},{{0,4,-4,false},},'修改') xyss({{91127,4,-2080896,['name']='替换效果',db["start"],db["end"]},{-297008191,4,16},},{{0,4,4,false},{-60290467,4,32,false},{102940160,4,36,false},{3,4,40,false},{0,4,76,false},},'修改') gg.toast("开启成功") string.toMusic("修改成功") end },{"秒复活", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{16384,4,4,['name']='秒复活'},{15000,4,60},},{{0,4,60,false},},'修改') gg.toast("开启成功") string.toMusic("修改成功") end },{"蒙恬2.0", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{16703,4,-2080896,['name']='蒙恬'},{-60290467,4,192},},{{115671552,4,196,false},{16777728,4,276,false},{527065,4,528,false},{527066,4,532,false},{1500,4,536,false},{1500,4,540,false},{115671552,4,820,false},{16777728,4,900,false},{527065,4,1152,false},{527066,4,1156,false},{1500,4,1160,false},{1500,4,1164,false},{115671552,4,1444,false},{16777728,4,1524,false},{527065,4,1776,false},{527066,4,1780,false},{1500,4,1784,false},{1500,4,1788,false},{115671552,4,512500,false},{115671552,4,519364,false},{1354985197,4,3426380,false},{14955776,4,3426384,false},{200,4,3426396,false},{10000,4,3426400,false},{1354985197,4,3426892,false},{14955776,4,3426896,false},{200,4,3426908,false},{10000,4,3426912,false},{1354985197,4,3427404,false},{14955776,4,3427408,false},{200,4,3427420,false},{10000,4,3427424,false},{1354985197,4,3427916,false},{14955776,4,3427920,false},{200,4,3427932,false},{10000,4,3427936,false},{1354985197,4,3428428,false},{14955776,4,3428432,false},{200,4,3428444,false},{10000,4,3428448,false},{1354985197,4,3428940,false},{14955776,4,3428944,false},{200,4,3428956,false},{10000,4,3428960,false},{1354985197,4,3429452,false},{14955776,4,3429456,false},{200,4,3429468,false},{10000,4,3429472,false},{1354985197,4,3429964,false},{14955776,4,3429968,false},{200,4,3429980,false},{10000,4,3429984,false},{1354985197,4,3430476,false},{14955776,4,3430480,false},{200,4,3430492,false},{10000,4,3430496,false},{1354985197,4,3430988,false},{14955776,4,3430992,false},{200,4,3431004,false},{10000,4,3431008,false},{1354985197,4,3431500,false},{14955776,4,3431504,false},{200,4,3431516,false},{10000,4,3431520,false},{1354985197,4,3432012,false},{14955776,4,3432016,false},{200,4,3432028,false},{10000,4,3432032,false},{1354985197,4,3432524,false},{14955776,4,3432528,false},{200,4,3432540,false},{10000,4,3432544,false},{1354985197,4,3433036,false},{14955776,4,3433040,false},{200,4,3433052,false},{10000,4,3433056,false},{1354985197,4,3433548,false},{14955776,4,3433552,false},{200,4,3433564,false},{10000,4,3433568,false},{1354985197,4,3434060,false},{14955776,4,3434064,false},{200,4,3434076,false},{10000,4,3434080,false},{1354985197,4,3434572,false},{14955776,4,3434576,false},{200,4,3434588,false},{10000,4,3434592,false},{1354985197,4,3435084,false},{14955776,4,3435088,false},{200,4,3435100,false},{10000,4,3435104,false},{1354985197,4,3435596,false},{14955776,4,3435600,false},{200,4,3435612,false},{10000,4,3435616,false},{1354985197,4,3436108,false},{14955776,4,3436112,false},{200,4,3436124,false},{10000,4,3436128,false},{1354985197,4,3436620,false},{14955776,4,3436624,false},{200,4,3436636,false},{10000,4,3436640,false},{1354985197,4,3437132,false},{14955776,4,3437136,false},{200,4,3437148,false},{10000,4,3437152,false},{1354985197,4,3437644,false},{14955776,4,3437648,false},{200,4,3437660,false},{10000,4,3437664,false},{1354985197,4,3438156,false},{14955776,4,3438160,false},{200,4,3438172,false},{10000,4,3438176,false},{1354985197,4,3438668,false},{14955776,4,3438672,false},{200,4,3438684,false},{10000,4,3438688,false},{1354985197,4,3439180,false},{14955776,4,3439184,false},{200,4,3439196,false},{10000,4,3439200,false},{1354985197,4,3439692,false},{14955776,4,3439696,false},{200,4,3439708,false},{10000,4,3439712,false},{1354985197,4,3440204,false},{14955776,4,3440208,false},{200,4,3440220,false},{10000,4,3440224,false},{1354985197,4,3440716,false},{14955776,4,3440720,false},{200,4,3440732,false},{10000,4,3440736,false},{-60290467,4,6292148,false},{151904256,4,6292152,false},{500,4,6292156,false},{-60290467,4,6293268,false},{151904256,4,6293272,false},{1000,4,6293276,false},{0,4,6294068,false},{0,4,6294124,false},{0,4,6294128,false},{-60290467,4,6297748,false},{151904256,4,6297752,false},{500,4,6297756,false},{-60290467,4,6311188,false},{151904256,4,6311192,false},{1500,4,6311196,false},{0,4,6311988,false},{0,4,6312308,false},{0,4,6312312,false},{-60290467,4,14101908,false},{151904256,4,14101912,false},{2000,4,14101916,false},},"修改") dy({{16700,4,-2080896,['name']='测试11'},{-60290467,4,192},},{{115671552,4,196,false},{115671552,4,820,false},{115671552,4,1444,false},},"修改") gg.toast("开启成功") string.toMusic("修改成功") end },{"挽风最新扁鹊一技能全污染峡谷毁天灭地毒药", function() function xyss(tzb,xgb,gnlx)--挽风(TG@TGDUSR) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end--挽风(TG@TGDUSR) xyss({{1920166056,4,4,['name']='数量'},{1610612736,4,-12},{737320263,4,4},},{{30,4,88,false},},'修改') xyss({{119100,4,4,['name']='模型'},{2048336131,4,-2292},{-876234256,4,-2288},},{{50,16,-2136,false},{50,16,-2132,false},{50,16,-2128,false},{50,16,-2124,false},},'修改') xyss({{119100,4,4,['name']='360'},{360,4,-4928},{18000,4,-4896},},{{3,4,-4912,false},{8000,4,-4896,false},},'修改') xyss({{119100,4,4,['name']='全图'},{100,4,-4},{16777216,4,132},{16777216,4,192},},{{0,4,132,false},{0,4,192,false},},'修改') gg.toast("开启成功") string.toMusic("修改成功") end },{"露娜吸全图", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{146200,4,4,['name']='测试'},{100,4,-4},{65536,4,184},},{{175290,4,4,false},{0,4,192,false},},'修改') gg.toast("开启成功") string.toMusic("修改成功") end },{"老夫子捆队友", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{139300,4,4,['name']='老夫子捆队友'},{100,4,-8},{65536,4,136},},{{0,4,128,false},},'修改') gg.toast("开启成功") string.toMusic("修改成功") end },{"蓝方水晶自爆", function() function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end end -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD editData( { {["memory"] = gg.REGION_OTHER}, {["name"] = "蓝方水晶自爆"}, {["value"] = 73728000, ["type"] = D}, {["lv"] = 4915200,["offset"] =0x4, ["type"] = D}, {["lv"] = 308,["offset"] =0x3C, ["type"] = D}, {["lv"] = 81920000,["offset"] =0x18, ["type"] = D}, }, { {["value"] = 0,["offset"] =0x0, ["type"] = D,["freeze"] = false}, } ) gg.clearResults() gg.toast("开启成功") string.toMusic("修改成功") end },{"红方水晶自爆", function() function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end end -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD editData( { {["memory"] = gg.REGION_OTHER}, {["name"] = "红方水晶自爆"}, {["value"] = 73728000, ["type"] = D}, {["lv"] = 4915200,["offset"] =0x4, ["type"] = D}, {["lv"] = 2,["offset"] =-0x3C, ["type"] = D}, {["lv"] = 81920000,["offset"] =0x18, ["type"] = D}, }, { {["value"] = 0,["offset"] =0x0, ["type"] = D,["freeze"] = false}, } ) gg.clearResults() gg.toast("开启成功") string.toMusic("修改成功") end },{"光信二技能数量99+", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end xyss({{1662608350,4,4,['name']='测试'},{0,4,84},},{{99,4,88,false},},"修改") --第一段 xyss({{1245443779,4,4,['name']='测试'},{0,4,80},},{{99,4,84,false},},"修改") --第二段 xyss({{1845377349,4,4,['name']='测试'},{0,4,84},},{{99,4,88,false},},"修改") --第三段 xyss({{-1161003098,4,4,['name']='测试'},{0,4,80},},{{99,4,84,false},},"修改") --第四段') gg.toast("开启成功") string.toMusic("修改成功") end },{"达摩仿盲僧", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{134,4,-2080896,['name']='达摩仿盲僧'},{1354985197,4,8},{7000,4,88},},{{17810,4,220,false},{0,4,236,false},{16820,4,280,false},{13410,4,296,false},{256,4,764420,false},{117445376,4,764488,false},{103619328,4,765656,false},{121145600,4,765736,false},{50000,4,765768,false},{50000,4,765772,false},{50000,4,765776,false},{50000,4,765780,false},{50000,4,765784,false},{50000,4,765800,false},{50000,4,765804,false},{50000,4,765808,false},{103285760,4,880384,false},{93256192,4,880392,false},{103287296,4,880400,false},{103321856,4,880408,false},{103354112,4,880416,false},{103354112,4,880424,false},{103364864,4,880432,false},{103406592,4,880472,false},{0,4,880540,false},{103620352,4,880552,false},{-1,4,880556,false},{10,4,880664,false},{5,4,880668,false},{103501312,4,923440,false},{89274112,4,923448,false},{103502848,4,923456,false},{103536384,4,923464,false},{103570176,4,923472,false},{103570176,4,923480,false},{103578624,4,923488,false},{103619328,4,923528,false},{138141696,4,923608,false},{103501312,4,924064,false},{89274112,4,924072,false},{103502848,4,924080,false},{103536384,4,924088,false},{103570176,4,924096,false},{103570176,4,924104,false},{103578624,4,924112,false},{103619328,4,924152,false},{500000,4,924264,false},{500000,4,924268,false},{500000,4,924272,false},{500000,4,924276,false},{500000,4,924280,false},{500000,4,924288,false},{500000,4,924296,false},{500000,4,924300,false},{500000,4,924304,false},{695392256,4,6503888,false},{695392256,4,6506128,false},{1500,4,6509492,false},{695392256,4,8620688,false},{0,4,8620716,false},{13403,4,43010212,false},{9934,4,43010216,false},{3,4,43010228,false},},"修改") gg.toast("开启成功") string.toMusic("修改成功") end },{"达摩", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{134,4,-2080896,['name']='达摩'},{1354985197,4,8},},{{17810,4,220,false},{0,4,236,false},{0,4,765152,false},{103670272,4,922868,false},{89114368,4,922876,false},{103671808,4,922884,false},{103705344,4,922892,false},{103739136,4,922900,false},{103739136,4,922908,false},{103747584,4,922916,false},{103788288,4,922956,false},{103789312,4,923036,false},{5500,4,923068,false},{5500,4,923072,false},{6000,4,923076,false},{6000,4,923080,false},{6000,4,923084,false},{6000,4,923100,false},{6500,4,923104,false},{10000,4,923108,false},{103670272,4,923492,false},{89114368,4,923500,false},{103671808,4,923508,false},{103705344,4,923516,false},{103739136,4,923524,false},{103739136,4,923532,false},{103747584,4,923540,false},{103788288,4,923580,false},{500000,4,923692,false},{500000,4,923696,false},{500000,4,923700,false},{500000,4,923704,false},{500000,4,923708,false},{500000,4,923716,false},{500000,4,923724,false},{500000,4,923728,false},{500000,4,923732,false},{688571904,4,6500108,false},{684483328,4,6501228,false},{1000,4,6501232,false},{1000,4,6512432,false},},"修改") dy({{134300,4,-2080896,['name']='达摩1'},{1982288487,4,168},},{{688571904,4,172,false},{2000,4,5776,false},{0,4,4484648,false},{0,4,4484652,false},{0,4,4485768,false},{0,4,4485772,false},{-60290467,4,4486888,false},{153922816,4,4486892,false},{0,4,4486896,false},{-60290467,4,6639528,false},{165694720,4,6639532,false},},"修改") gg.toast("开启成功") string.toMusic("修改成功") end },{"自定义英雄改皮肤", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function Main() SN=gg.choice({ "编辑英雄皮肤", "退出脚本", },2018,"作者:北月\n1032759937交流群\n接定制脚本") if SN==1 then a() end if SN==2 then Exit() end FX1=0 end --懒得加密给小白一个参考 function a() B=gg.prompt({"英雄代码","英雄皮肤"},{[1]="106",[2]="默认1"}, {[1]="number",[2]="number"}) local qmnb= { {['memory']=-2080896}, {['name']='英雄皮肤'}, {['value']=B[1].."00", ['type']=4}, {['lv']=1367888256,['offset']=8, ['type']=4}, } local qmxg= { {['value']=B[2],['offset']=4,['type']=4}, {['value']=B[2],['offset']=16,['type']=4}, } xqmnb(qmnb,qmxg) end function Exit() print("挽风") os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main() end end gg.toast("开启成功") string.toMusic("修改成功") end },{"自定义廉颇改隐藏英雄", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function Main() SN=gg.choice({ "开启功能", "退出脚本", },2018,"作者:挽风\nTG@TGDUSR\n接定制脚本") if SN==1 then a() end if SN==2 then Exit() end FX1=0 end function a() local qmnb= { {['memory']=32}, {['name']='廉颇'}, {['value']=105, ['type']=4}, {['lv']=1354985197,['offset']=8, ['type']=4}, } local qmxg= { {['value']=771,['offset']=0,['type']=4},--我懒得写prompt去定义自己去改吧 } xqmnb(qmnb,qmxg) end function Exit() os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main() end end gg.toast("开启成功") string.toMusic("修改成功") end },{"程咬金改", function() function dy(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4]==true then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."开启成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end dy({{14420,4,-2080896,['name']='程咬金改'},{-60290467,4,192},},{{10000,4,-440,false},{10000,4,-396,false},{10000,4,-392,false},{10000,4,-388,false},{10000,4,-384,false},{10000,4,-380,false},{10000,4,-364,false},{10000,4,-360,false},{10000,4,184,false},{186406912,4,196,false},{65539,4,208,false},{7000,4,228,false},{7000,4,232,false},{7000,4,236,false},{7000,4,240,false},{7000,4,244,false},{7000,4,260,false},{7000,4,264,false},{29,4,496,false},{65539,4,832,false},{7000,4,852,false},{7000,4,856,false},{7000,4,860,false},{7000,4,864,false},{7000,4,868,false},{7000,4,884,false},{7000,4,888,false},{29,4,1120,false},{0,4,5898028,false},{2000,4,5898032,false},{-60290467,4,5902464,false},{186406912,4,5902468,false},{500,4,5902472,false},{-60290467,4,14329344,false},{107710208,4,14329348,false},{1,4,14329352,false},{0,4,14330144,false},},"修改") gg.toast("开启成功") string.toMusic("修改成功") end },{"苍穹改典韦全图", function() function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end --晚风制作 xyss({{91000,4,-2080896,['name']='苍穹改典韦'},{9,4,-28},{1000,4,-24},},{{12930,4,-32,false},},'修改') xyss({{12930,4,-2080896,['name']='测试'},{-60290467,4,-168},},{{-1,4,128,false},{0,4,184,false},{1314520,4,228,false},{1314520,4,232,false},{1314520,4,236,false},{1314520,4,240,false},{1314520,4,244,false},{1314520,4,256,false},{1314520,4,260,false},{1314520,4,264,false},{1314520,4,268,false},{0,4,308,false},{12930,4,61727600,false},{12930,4,61727632,false},},'修改') xyss({{11311,4,-2080896,['name']='测试'},{417094601,4,-56},},{{0,4,36,false},{3500,4,96,false},{3000,4,116,false},{99999,4,136,false},},'修改') gg.toast("开启成功") string.toMusic("修改成功") end },{"百里二技能移动", function() --[[ 作者:北月 二改死全家,如内置到自己的项目请注释原作者 2448299423QQ ]] function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function Main() SN=gg.choice({ "局外步骤", "局内步骤", "退出脚本", },2018,"懒得写") if SN==1 then a1() end if SN==2 then a2() end if SN==3 then Exit() end FX1=0 end function a1() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x10DAC0, 0x2AC8, 0x970}--特征码19620;1500的技能乱码 od local ttt = S_Pointer(t, tt, true) A=gg.getValues({{address=ttt,flags=4}})[1].value B=gg.getValues({{address=ttt+4,flags=4}})[1].value local t = {"libGameCore.so:bss", "Cb"}--196;19610;19620 od 19620的偏移4的19622被动 local tt = {0x10C150, 0x4B8, 0x824} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 11330}}) local t = {"libGameCore.so:bss", "Cb"}--11330;6000 od local tt = {0x110248, 0x93C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}}) gg.setValues({{address = ttt+0x1c, flags = 4, value = A}}) gg.setValues({{address = ttt+0x20, flags = 4, value = B}}) gg.alert("局外步骤注入成功") end function a2() local qmnb= { {['memory']=4},--如果局内效果显示特征码失败或其他问题改为-2080896 {['name']='百里移动'}, {['value']=-2051403109, ['type']=4}, {['lv']=1243391857,['offset']=4, ['type']=4}, } local qmxg= { {['value']=1,['offset']=-8,['type']=4}, } xqmnb(qmnb,qmxg) end function Exit() os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main() end end gg.toast("开启成功") string.toMusic("修改成功") end, function() string.toMusic("不可关闭") end, } }) }, { ----------------------------------------勿动------------------------------------------------------ }, {--第五页 changan.switch("搜索音乐", function() search = gg.prompt({ "输入要搜索的歌曲\n可加上歌手名字", "设置显示数量(数字)", },g.sel,{ "text", }) if not search then return end gg.saveVariable(search,g.config) bei() go1=search[1] go3=search[2] jg=start(go1,go3) if jg.code == 200 then fh=jg.content fh=json(fh) --print(fh) Play(gqlb,idb) else function inspect() gg.alert("访问网络异常,错误代码:\n\n"..jg.code) end if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end end XGCK=-1 end, function() string.toMusic("关闭成功") end), changan.switch("关闭音乐", function() gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end, function() string.toMusic("关闭成功") end), changan.switch("播放热歌", function() Obtain=gg.makeRequest("htt挽风://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end, function() string.toMusic("关闭成功") end), changan.box({"热门音乐", changan.radio({"Music",--栏目名 { "必杀技",--小功能名 function() gg.playMusic('http://music.163.com/song/media/outer/url?id=1940086099.mp3') end }, { "武家坡", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1891431677.mp3") end }, { "海阔天空", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1357374736.mp3") end }, { "光辉岁月", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=28875158.mp3") end }, { "广东爱情故事", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1989479877.mp3") end }, { "鬼新娘(dj版)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1854927969.mp3") end }, { "压迫感", function() gg.playMusic("htt挽风://out.zxglife.top/view.php/f923557b0bb36ab3968503202964db1b.mp3") end },{ "Walk", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=1873321491.mp3') end }, { "释怀是一辈子的必修课", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=1940376172.mp3') end }, { "我结婚了", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=1879904599.mp3') end }, { "心做", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=2008921547.mp3') end }, { "原神启动", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2056964874.mp3") end }, { "心如止水", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1928002636.mp3") end }, { "篝火旁", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=518725853.mp3") end }, { "恐龙抗狼", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1950940221.mp3") end }, { "月亮之矢", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=419375250.mp3") end }, { "最后一页", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=247936.mp3") end }, { "起风了", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1330348068.mp3") end }, { "凄美地", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2004333593.mp3") end }, { "向云端", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2049512697.mp3") end }, { "若把你", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=865632948.mp3") end }, { "可不可以", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=553755659.mp3") end }, { "旧金山", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3") end }, {"停止音乐", function() gg.toast("已停止音乐") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end sp="关闭成功" end }, }) }), }, {--第六页 web6 } }) chattable = { { ltname = "系统", lticon = "htt挽风://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/124.png", lttext = "这里是公共聊天室 畅所欲言", lttime = "暂无服务器请勿使用" }, } tmp = { changan.edit("输入聊天内容"), changan.button("发送聊天",function() 发送聊天(changan.getedit("输入聊天内容")) end), changan.box({ " 聊天设置", changan.edit(".用户名"), changan.button("修改昵称",function() 修改名字(changan.getedit(".用户名")) end), changan.text(""), changan.edit("请输入链接或QQ"), changan.button("修改头像",function() 修改头像(changan.getedit("请输入链接或QQ")) end), }), } chatlayout = {} for i = 1,#chattable do chatlayout[#chatlayout+1] = changan.chat(chattable[i]) end local function invoke2() for i = 1,#chatlayout do _ENV["layoutm4"]:addView(chatlayout[i]) end for i = 1,#tmp do _ENV["layoutg4"]:addView(tmp[i]) end end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) function nth(t) luajava.newThread(t):start() end luajava.newThread(function()--更新逻辑 while true do gg.sleep(1000) if already==true and 当前ui==4 then pcall(shuaxinchat()) end end end):start() pcall(shuaxinchat()) 显示=1 ii=1 function proo() changan.controlRotation2(control1,3000) end luajava.newThread(function()--更新逻辑 while true do gg.sleep(3000) if 显示==0 then proo() end end end):start() bloc = luajava.getBlock() bloc('join') local t = {"libanogs.so:bss", "Cb"} local tt = {0x2448} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17022, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2470} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17022, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2548} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17022, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2730} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17022, freeze = true}})