gg.alert("不想做了,一周两块钱,我连馒头都吃不起,卡密验证关了,随便输就行,我也不更新了,但这个赛季还是有点功能可以用的,我也不加密了,有能力的你去弄源码也行") do if type(getrlyunyz) ~= 'function' then ces=balert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '晓燕宇宙服助手(2)', appid = '58717', appkey = '0qSqine7pRn2230P', rc4key = 'ASAaU9t5qsZoOXyG', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= 'a4d77539f9780e0de9a08badc70ea006' then os.exit() return end end local JCXX = gg.getTargetInfo(); local DJSFLB={}; local ZDYJLB={}; function NCZH(S) if(S==2)then return "Jh"; elseif(S==1)then return "Ch"; elseif(S==4)then return "Ca"; elseif(S==8)then return "Cd"; elseif(S==16)then return "Cb"; elseif(S==262144)then return "PS"; elseif(S==32)then return "A"; elseif(S==65536)then return "J"; elseif(S==64)then return "S"; elseif(S==524288)then return "As"; elseif(S==1048576)then return "V"; elseif(S==-2080896)then return "O"; elseif(S==131072)then return "B"; elseif(S==16384)then return "Xa"; elseif(S==32768)then return "Xs"; end end function QNCL(N) local x={}; local z=0; local n=gg.getRangesList(); for v,w in ipairs(n)do if w.state == N then x[#x+1]=w; x[#x].size=w["end"]-w["start"]; end end return x,#x; end function NCPX(nclb,sj) local nclc=#nclb; if(sj==1)then for i=1,nclc-1 do for j=1 ,nclc-1 do if(nclb[j].size>nclb[j+1].size)then local temp = nclb[j+1]; nclb[j + 1] = nclb[j]; nclb[j] = temp; end end end elseif(sj==2)then for i=1,nclc-1 do for j=1 ,nclc-1 do if(nclb[j].size0 or data.ncks>0 or data.ncjw<100)then local nclb,ncsl=QNCL(NCZH(data.ncfw)); if(ncsl==0)then gg.toast(data.gnm.."开启失败"); return false; end local nclb=NCPX(nclb,data.ncpx); local ks,GGBox=math.modf(#nclb*(data.ncks*0.01)); if(ks==0)then ks=1; end local jw,GGBox=math.modf(#nclb*(data.ncjw*0.01)); if(jw==0)then jw=#nclb; end for i=ks,jw do gg.clearResults(); gg.searchNumber(data.xss.sz, data.xss.lx, false, gg.SIGN_EQUAL, nclb[i]["start"], nclb[i]["end"], 0); gg.refineNumber(data.gs.sz, data.gs.lx); local sl=gg.getResultsCount(); if(sl>0)then local sj=gg.getResults(sl) for j=1,sl do sssl=sssl+1; sssj[sssl]=sj[j]; end end gg.clearResults(); end if(#sssj==0)then gg.toast(data.gnm.."开启失败"); return false; end; gg.loadResults(sssj); gg.getResults(sssl) else gg.clearResults(); gg.setRanges(data.ncfw); gg.searchNumber(data.xss.sz, data.xss.lx); gg.refineNumber(data.gs.sz, data.gs.lx); sssl=gg.getResultsCount(); if(sssl==0)then gg.toast(data.gnm.."开启失败"); return false; end; sssj=gg.getResults(sssl); end local xgz=data.xg.sz; if(data.zdyjl and ZDYJLB[data.md5])then xgz=ZDYJLB[data.md5]; end if(data.zdyxg)then local zdy=gg.prompt({data.zdybz},{xgz},{"number"}); if(zdy)then xgz=zdy[1]; if(data.zdyjl)then ZDYJLB[data.md5]=zdy[1]; end else gg.clearResults(); gg.toast(data.gnm.."取消开启"); return false; end; end; if(data.xgdj==false)then gg.editAll(xgz, data.xg.lx); gg.clearResults(); gg.toast(data.gnm.."开启成功"); return true; end; if(data.djsf)then if(DJSFLB[data.md5])then gg.removeListItems(DJSFLB[data.md5]); end; DJSFLB[data.md5]={}; for i, v in ipairs(sssj) do if v.flags == data.xg.lx then v.value = xgz; v.freeze = true; DJSFLB[data.md5][#DJSFLB[data.md5]+1]=v.address; end; end; else for i, v in ipairs(sssj) do if v.flags == data.xg.lx then v.value = xgz; v.freeze = true; end; end; end; gg.addListItems(sssj); gg.clearResults(); gg.toast(data.gnm.."开启成功"); return true; end; function PYXG(M,md5,S,G) local sfs=0; local sfl=0; if(DJSFLB[md5])then sfl=#DJSFLB[md5]; gg.removeListItems(DJSFLB[md5]); end; DJSFLB[md5]={}; local zdyjmsj={}; zdyjmsj.t={}; zdyjmsj.s={}; zdyjmsj.r={}; zdyjmsj.j={}; local zdyjl=0; for i,v in pairs(G) do if(v.zd)then zdyjl=zdyjl+1; zdyjmsj.t[zdyjl]=v.bz; if(v.jl and ZDYJLB[md5])then zdyjmsj.s[zdyjl]=ZDYJLB[md5][zdyjl]; else zdyjmsj.s[zdyjl]=v.sz; end zdyjmsj.r[zdyjl]="number"; zdyjmsj.j[zdyjl]=i end; end; if(zdyjl>0)then local zdy=gg.prompt(zdyjmsj.t,zdyjmsj.s,zdyjmsj.r); if(zdy)then ZDYJLB[md5]={}; for i=1,#zdyjmsj.j do ZDYJLB[md5][i]=zdy[i]; G[zdyjmsj.j[i]].sz=zdy[i]; end; else gg.toast(M.."取消开启"); return false; end; end; local xg,xgs,dj,djs={},0,{},0; for i,v in ipairs(S)do for I,V in ipairs(G)do local shuju={}; shuju["address"]=v.address+V.py; shuju["flags"]=V.lx; shuju["value"]=V.sz; if(V.dj)then shuju["freeze"]=true; djs=djs+1; dj[djs]=shuju; if(V.sf)then sfs=sfs+1; DJSFLB[md5][sfs]=v.address+V.py; end; else xgs=xgs+1; xg[xgs]=shuju; end; end; end; gg.setValues(xg); gg.addListItems(dj); gg.toast(M.."开启成功\n修改"..xgs.."|冻结"..djs.."|释放"..sfl); end; function TZMPT(ztz,ftz) local linshishuju; local xinshuju; local ftzs=#ftz for i=1,ftzs do linshishuju={}; xinshuju={}; for ii,v in ipairs(ztz)do linshishuju[ii]={}; linshishuju[ii].address=v.address+ftz[i].py; linshishuju[ii].flags=ftz[i].lx; end; for ii,v in ipairs(gg.getValues(linshishuju))do if(v.value==ftz[i].sz)then xinshuju[#xinshuju+1]=ztz[ii] end; end; if(#xinshuju==0)then return false; end; ztz=xinshuju; end; return ztz end; function PYSS(data) local sssl=0; local sssj={}; if(data.ncpx>0 or data.ncks>0 or data.ncjw<100)then local nclb,ncsl=QNCL(NCZH(data.ncfw)); if(ncsl==0)then gg.toast(data.gnm.."开启失败"); return false; end local nclb=NCPX(nclb,data.ncpx); local ks,GGBox=math.modf(#nclb*(data.ncks*0.01)); if(ks==0)then ks=1; end local jw,GGBox=math.modf(#nclb*(data.ncjw*0.01)); if(jw==0)then jw=#nclb; end for i=ks,jw do gg.clearResults(); gg.searchNumber(data.ztz.sz, data.ztz.lx, false, gg.SIGN_EQUAL, nclb[i]["start"], nclb[i]["end"], 0); local sl=gg.getResultsCount(); if(sl>0)then local sj=gg.getResults(sl) for j=1,sl do sssl=sssl+1; sssj[sssl]=sj[j]; end end gg.clearResults(); end if(#sssj==0)then gg.toast(data.gnm.."开启失败\n未找到主特征"); return false; end; gg.clearResults(); else gg.clearResults(); gg.setRanges(data.ncfw); gg.searchNumber(data.ztz.sz, data.ztz.lx); sssl=gg.getResultsCount(); if(sssl<1)then gg.toast(data.gnm.."开启失败\n未找到主特征"); return false; end; sssj=gg.getResults(sssl); gg.clearResults(); end sssj=TZMPT(sssj,data.ftz); if(sssj)then PYXG(data.gnm,data.md5,sssj,data.xgz); else gg.toast(data.gnm.."开启失败\n未找到副特征"); return false; end; end; function ZZTZ(mk,zzlt) local zzlts=#zzlt; if(zzlts==0)then return false; end local sjlx; if(JCXX.x64)then sjlx=32; else sjlx=4; end; local shuzu={}; shuzu[1] = {}; shuzu[1].address = mk.start + zzlt[1]; shuzu[1].flags = sjlx; if zzlts ~= 1 then for i = 2, zzlts do local dushuju = gg.getValues(shuzu); shuzu = {} for _ in pairs(dushuju) do if not JCXX.x64 then dushuju[_].value = dushuju[_].value & 0xFFFFFFFF end shuzu[1] = {} shuzu[1].address = dushuju[_].value + zzlt[i] shuzu[1].flags = sjlx end; end; end; return shuzu; end; function ZZSS(data) local mklb={}; local mklbs=0; local t = gg.getRangesList('^/data/*'..data.mkm..'*$'); for i,v in pairs(t) do if(v.type:sub(1, 1)=="r" and (v.state==NCZH(data.nclx)))then mklbs=mklbs+1; mklb[mklbs]=v; end; end; if(mklbs==0)then gg.toast(data.gnm.."开启失败\n没找到模块头"); return false; end local k,j; if(data.xh==0)then k=1; j=mklbs; else if(mklbs 0 then local Table = { {}, {} } for k, v in ipairs(result) do for kk, vv in ipairs(write) do local Modifythe_array = { ["address"] = v["address"] + vv[2], ["flags"] = vv[3], ["value"] = vv[1], ["freeze"] = vv[4] } if vv[4] then Table[2][#Table[2] + 1] = Modifythe_array else Table[1][#Table[1] + 1] = Modifythe_array end end end gg.addListItems(Table[2]) gg.setValues(Table[1]) gg.toast("功能: [" .. search[1][4] .. "]开启成功共修改" .. (#Table[1] + #Table[2]) .. "条数据") else gg.toast("未找到偏移数据") end end end local ReadPointer = function(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) 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]) 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(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 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 SearchWrite(Search,Modification) gg.clearResults() gg.searchNumber(Search[1][1],Search[1][2],false,536870912,start,over) if gg.getResultCount()==0 then gg.toast(Name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum=0 for i=2,#Search do for index=1,#Result do if gg.getValues({{address=Result[index].address+Search[i][3],flags=Search[i][2]}})[1].value~=Search[i][1]then Result[index].Usable=true sum=sum+1 end end end if sum==#Result then gg.toast(Name..'开启失败') return end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in pairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value[3],flags=value[2],value=value[1],freeze=true} sum=sum+1 if value[4]then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) if Freeze==0 then gg.toast(Name..'开启成功,共修改'..sum..'条数据.') else gg.toast(Name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据.') end end function XGBase(Address,AFV) local address=0 for index,offset in ipairs(Address)do if index==1 then address=offset else address=gg.getValues({{address=address+offset,flags=4}})[1].value end end local Value,Freeze={},{} for index,value in ipairs(AFV)do local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true} if value[4]then Freeze[#Freeze+1]=VALUE else Value[#Value+1]=VALUE end end gg.setValues(Value) gg.addListItems(Freeze) end function Format(tab,format,write,Function)if format=="查看" then return print(tab)elseif format=="修改"then local Table={}for k,v in pairs(tab)do for kk,vv in pairs(write)do Table[#Table+1]={["address"]=v["address"]+vv[2],["flags"]=vv[3],["value"]=vv[1]}end end return gg.setValues(Table)elseif format=="载入"then gg.loadResults(tab)elseif format=="冻结"then local Table={}for k,v in pairs(tab)do for kk,vv in pairs(write)do Table[#Table+1]={["address"]=v["address"]+vv[2],["flags"]=vv[3],["value"]=vv[1],["freeze"]=true}end end return gg.addListItems(Table)end end function LSQ_type_conversion(txt,type1,type2)gg.allocatePage(gg.PROT_READ|gg.PROT_WRITE|gg.PROT_EXEC,0x99999999)local Table={{["address"]=0x99999999,["flags"]=type1,["value"]=txt}}local set=gg.setValues(Table)Table[1]["flags"]=type2 local get=gg.getValues(Table)[1]["value"]return get end function Get_value()if gg.getResultsCount()>100000 then local result={}local Table={}while true do local Results=gg.getResults(100000)if not Results or #Results==0 then break end result[#result+1]=Results local remove=gg.removeResults(Results)end for k=1,#result do for kk,vv in pairs(result[k])do Table[#Table+1]=vv end end return Table else return gg.getResults(gg.getResultsCount())end end function Type_filtering(values)if string.find(values,".") then start,v=string.match(values,"^(.-)%.(.)")value=string.format("%s.%s",start,v)return value else return values end end function LSQ_pointer(search,write,mode)if search[1][5] and search[1][6] then region_start=search[1][5]region_end=search[1][6]else region_start=0 region_end=-1 end gg.clearResults()if search[1][2] =="16"and search[1][2] =="64"then local Value=LSQ_type_conversion(search[1][1],search[1][2],Q)gg.setRanges(search[1][3])gg.searchNumber(Value,Q,false,gg.SIGN_EQUAL,region_start,region_end)gg.searchNumber(Value,Q,false,gg.SIGN_EQUAL,region_start,region_end)else gg.setRanges(search[1][3])gg.searchNumber(search[1][1],search[1][2],false,gg.SIGN_EQUAL,region_start,region_end)gg.searchNumber(search[1][1],search[1][2],false,gg.SIGN_EQUAL,region_start,region_end)end if gg.getResultsCount()==0 then gg.toast("未搜索到指针数据")return false else local result=Get_value()gg.clearResults()for i=2,#search do local offset_array={}for k,v in ipairs(result) do offset_array[#offset_array+1]={["address"]=v["address"]+search[i][2],["flags"]=search[i][3]}end offset_array=gg.getValues(offset_array)local verify_array={}for k,v in ipairs(offset_array) do if v["flags"]==16 then v["value"]=Type_filtering(v["value"])end if v["flags"]==64 then v["value"]=Type_filtering(v["value"])end if not string.find(search[i][1],"~") then if v["value"]==search[i][1] then verify_array[#verify_array+1]=result[k]end else min,max=string.match(search[i][1],'^(.-)~(.-)$')min,max=tonumber(min),tonumber(max)if v["value"]>=min and v["value"]<=max then verify_array[#verify_array+1]=result[k]end end end result=verify_array end gg.toast("[功能]"..search[1][4].."开启成功") if #result>0 then Format(result,mode,write)return #result else return false end end end function JNXG(gn) local db=gg.getRangesList("dataCache.db")[1] xyss({{gn["技能代码"],4,-2080896,db["start"],db["end"]},{-241108919,4,24},},{{14220,4,0,false},},"载入") if gg.getResultsCount()==0 then gg.toast("开启失败") return end local a=gg.getResults(1)[1].address local xgb={} if gn["冷却"]~=nil then xgb[#xgb+1]={address=a+0xB8,flags=4,value=gn["冷却"]} end if gn["后摇"]~=nil then xgb[#xgb+1]={address=a+0x80,flags=4,value=gn["后摇"]} end if gn["死亡释放"]~=nil then xgb[#xgb+1]={address=a+0xBC,flags=4,value=gn["死亡释放"]} end if gn["锁定方位"]~=nil then xgb[#xgb+1]={address=a+0x114,flags=4,value=gn["锁定方位"]} end if gn["冷却"]~=nil then xgb[#xgb+1]={address=a+0x114,flags=4,value=gn["冷却"]} end if gn["全图锁定"]~=nil then table.insert(xgb,{address=a+0xE4,flags=4,value=99999999}) table.insert(xgb,{address=a+0xE4+4,flags=4,value=99999999}) table.insert(xgb,{address=a+0xE4+8,flags=4,value=99999999}) table.insert(xgb,{address=a+0xE4+12,flags=4,value=99999999}) table.insert(xgb,{address=a+0xE4+16,flags=4,value=99999999}) end if gn["锁定类型"]~=nil then xgb[#xgb+1]={address=a+0x124,flags=4,value=gn["锁定类型"]} end gg.setValues(xgb) gg.toast("开启成功,共修改"..#xgb.."个值") end function YXXG(gn) local db=gg.getRangesList("dataCache.db")[1] xyss({{gn["英雄代码"],4,-2080896,db["start"],db["end"]},{7000,4,76},{90000,4,288},},{{196,4,0,false},},"载入") if gg.getResultsCount()==0 then gg.toast("开启失败") return end local a=gg.getResults(1)[1].address local xgb={} if gn["普攻"]~=nil then xgb[#xgb+1]={address=a+0xBC+0x14*0,flags=4,value=gn["普攻"]} end if gn["1技能"]~=nil then xgb[#xgb+1]={address=a+0xBC+0x14*1,flags=4,value=gn["1技能"]} end if gn["2技能"]~=nil then xgb[#xgb+1]={address=a+0xBC+0x14*2,flags=4,value=gn["2技能"]} end if gn["3技能"]~=nil then xgb[#xgb+1]={address=a+0xBC+0x14*3,flags=4,value=gn["3技能"]} end if gn["4技能"]~=nil then xgb[#xgb+1]={address=a+0xBC+0x14*4,flags=4,value=gn["4技能"]} end gg.setValues(xgb) gg.toast("开启成功,共修改"..#xgb.."个值") end function Char(zf,lx)--[十二]GG(W.B)转字符函数 if type(zf)~='table' then return false else local lxpd,k,b,Char=string.lower(lx),'' if lxpd=='b' then b,Char=128,string.char elseif lxpd=='w' then b,Char=32768,utf8.char else return false end for a=1,#zf do if zf[a].value<0 then zf[a].value=b+(b+zf[a].value) end k=k..Char(zf[a].value) end return k end end 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]==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 changan = {} local changan = changan local android = import('android.*') function write(fileName, content) if file.write(fileName, content) == false then balert("请给框架和修改器 文件储存权限\n否则无法正常运行") os.exit() end end if not resname then resname = "晓燕宇宙服助手(2)" end if not 悬浮窗图标 then 悬浮窗图标=((悬浮窗图标)) 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/"..resname.."/配置文件/"..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/"..resname.."/配置文件/vpn.txt") == false then balert("抓包?") 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/"..resname.."/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/sdcard/"..resname.."/配置文件/"..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/"..resname.."/音频/"..ress) == true then pmusic("/sdcard/"..resname.."/音频/"..ress) tmp1 = 1 else download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..ress ,"/sdcard/"..resname.."/音频/"..ress) pmusic("/sdcard/"..resname.."/音频/"..ress) tmp1 = 1 end end end 开 = "开" 关 = "关" function checkimg(tmp) if panduan("/sdcard/"..resname.."/图片/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."请耐心等待") luajava.download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/"..resname.."/图片/"..tmp) gg.downloadFile("https://pan.axxpan.top/api/v3/file/get/53315/Image_1702683537111.png?sign=PtvHj3n7ARIVV3nbpdf4vqDvSCd2-uJVrd7yMMWJMx8%3D%3A0","/sdcard/晓燕宇宙服助手(2)/图片/yzfbt1") gg.downloadFile("https://pan.axxpan.top/api/v3/file/get/53313/Image_1702683535793.png?sign=CX5ym8PVrOI9UqrSqhEO_w2c8mxu48Sao4dhmw5NLL8%3D%3A0","/sdcard/晓燕宇宙服助手(2)/图片/yzfbt2") gg.downloadFile("https://vip.kyun.top/down.php/e118825722aa2a1ee46f619b6aba9766.png","/sdcard/晓燕宇宙服助手(2)/图片/wsbg") end end ckimg = { "check1", "check2", "wsbg", "back", "exit", "yzf1", "yzf2", "yzflogo", "yzfbt1", "yzfbt2", "yzfalt", "qq2" } for i = 1,#ckimg do jindu = i checkimg(ckimg[i]) end local context = app.context local 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 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 function getseekgra() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({ 0xffC8E3FF,0x33a87DFF,0xffC7CBFC }) jianbians:setStroke(5,"0xdda87DFF")--边框宽度和颜色 return jianbians end function getseekgra2() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({ 0xffD4F0FE,0xffC7CBFC }) jianbians:setStroke(2,"0xff000000")--边框宽度和颜色 return jianbians end slctb = luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfbt1") slct2a = luajava.loadlayout { GradientDrawable, color = "#88000000", cornerRadius = 30 } slcta=luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfbt2") 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 = "#aa000000", cornerRadius = 12 } function getSelector3() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfbt2")) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfbt1")) -- 没点击的背景 return selector end function getSelector9() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfbt1")) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfbt2")) -- 没点击的背景 return selector end function getseekgras() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, getseekgra()) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed },getseekgra2()) -- 没点击的背景 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 jianbian1 = luajava.new(GradientDrawable) jianbian1:setCornerRadius(30) jianbian1:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian2 = luajava.new(GradientDrawable) jianbian2:setCornerRadius(30) jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian3 = luajava.new(GradientDrawable) jianbian3:setCornerRadius(30) jianbian3:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian4 = luajava.new(GradientDrawable) jianbian4:setCornerRadius(30) jianbian4:setGradientType(GradientDrawable.LINEAR_GRADIENT) local isswitch YoYoImpl = luajava.getYoYoImpl() changan.menu = function(stext,sview) if isswitch then return false end isswitch = true cebian = { LinearLayout, id = "侧边", visibility = "gone", layout_height = "match_parent", layout_width = "92dp", orientation = "vertical", background = { GradientDrawable, color = "#11ffffff", cornerRadius = 30 }, } for i = 1,5 do _ENV["jm"..i] = luajava.loadlayout { LinearLayout, id = "jm"..i, gravity = "center", layout_height = "33dp", layout_width = "88dp", layout_marginTop = "10dp", layout_marginBottom= "10dp", onTouch = hanshu, background=getSelector(), onClick = function() 切换(i) end, { TextView, id = "jm"..i.."tu", text = stab[i], textColor="#6A47FF", layout_height = "23dp", layout_width = "88dp", gravity = "center", onTouch = hanshu, onClick = function() 切换(i) end, }} cebian[#cebian+1] = _ENV["jm"..i] _ENV["layout"..i] = luajava.loadlayout({ LinearLayout, id = luajava.newId("lay"..i), visibility = "gone", gravity="center", layout_width = "wrap_content", layout_height = "fill_parent", { ScrollView, fillViewport = "true", padding = "10dp", --id = "layout"..i, --visibility = "visible", gravity="center", layout_width = "320dp", layout_height = "fill_parent", orientation = "horizontal", { LinearLayout, id = "layoutm"..i, gravity = "top", layout_width = "300dp", orientation = "vertical", gravity = "center_horizontal", } }}) end cebian[#cebian+1] = { ImageView, id = "exit", src = "/sdcard/"..resname.."/图片/exit", layout_width = "88dp", layout_height = "20dp", layout_marginTop = "10dp", layout_marginLeft = "0dp", onTouch = hanshu, } cebian = luajava.loadlayout(cebian) ckou = luajava.loadlayout({ LinearLayout, id = "chuangk", visibility = "gone", layout_height = "match_parent", layout_width = "wrap_content", orientation = "horizontal", cebian, layout1,layout2,layout3,layout4,layout5, {LinearLayout, layout_height="fill_parent", layout_width="120dp", background=beij2 } }) title = luajava.loadlayout({ TextView, id = "title", visibility = "gone", text = stext, gravity = "center", textSize = "18sp", layout_marginLeft = "50dp", layout_width = "300dp", }) floatWindow = { LinearLayout, id = "motion", --padding="50dp", layout_width = "wrap_content", orientation = "vertical", gravity = "center_vertical", layout_height = "wrap_content", { ImageView, id="ctrl", visibility="gone", background = 悬浮窗图标, layout_width = "38dp", layout_height = "38dp", onTouch=hanshu, onClick=隐藏, }, { LinearLayout, id="mainbg", orientation = "vertical", layout_marginLeft = "60dp", layout_marginRight = "20dp", layout_marginBottom = "60dp", { LinearLayout, layout_width = "match_parent", layout_height = "48dp", orientation = "horizontal", gravity = "center_vertical", { LinearLayout, layout_width = "88dp", layout_height = "38dp", id = "control", background = { GradientDrawable, color = "#00000000", cornerRadius = 20 }, gravity = "center", { ImageView, background = 悬浮窗图标, layout_width = "38dp", layout_height = "38dp", }}, title, }, ckou }, } local function invoke() local ok local RawX, RawY, x, y mainLayoutParams = getLayoutParams() floatWindow = luajava.loadlayout(floatWindow) local function invoke2() block('start') for i = 1,#sview[1] do layoutm1:addView(sview[1][i]) end for i = 1,#sview[2] do layoutm2:addView(sview[2][i]) end if #sview >= 3 then for i = 1,#sview[3] do layoutm3:addView(sview[3][i]) end end if #sview >= 4 then for i = 1,#sview[4] do layoutm4:addView(sview[4][i]) end end if #sview >= 5 then for i = 1,#sview[5] do layoutm5:addView(sview[5][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 jm1.onClick = function() 切换(1) end jm2.onClick = function() 切换(2) end jm3.onClick = function() 切换(3) end jm4.onClick = function() 切换(4) end exit.onClick = function() gg.toast("悬浮窗已退出") window:removeView(floatWindow) luajava.setFloatingWindowHide(false) bloc("end") end local isMove motion.onTouch = hanshu control.onTouch = hanshu exit.onTouch = hanshu jm1.onTouch = hanshu jm2.onTouch = hanshu jm3.onTouch = hanshu jm4.onTouch = hanshu --layout1.onTouch=hanshu --layout2.onTouch=hanshu end invoke() jm1:setBackground(slcta) function grad(rgb1,rgb2,rgb3,rgb4,step) for j = 1,step do rgb = {} for i = 1,3 do rgb[i] = rgb1[i] + (rgb2[i]-rgb1[i]) * j / step end endco = getcolor({ 100,rgb[1],rgb[2],rgb[3]}) --gg.sleep(50) rgb = {} for i = 1,3 do rgb[i] = rgb3[i] + (rgb4[i]-rgb3[i]) * j / step end endco2 = getcolor({ 100,rgb[1],rgb[2],rgb[3]}) jianbian:setColors({ endco,endco2 }) layout1:setBackground(jianbian) gg.sleep(80) end end gg.setVisible(false) luajava.setFloatingWindowHide(true) end changan.controlFlip = function(control,time) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", { 0, 360 }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.REVERSE) xuanzhuandonghua:setDuration(time) xuanzhuandonghua:start() end) end corbk = true 当前ui = 1 function 切换(x) 当前ui = x luajava.runUiThread(function() for i = 1,5 do _ENV["jm"..i]:setBackground(getSelector()) _ENV["layout"..i]:setVisibility(View.GONE) end _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) _ENV["jm"..当前ui]:setBackground(slcta) changan.controlFlip(_ENV["jm"..当前ui],600) --YoYoImpl:with("FadeIn"):duration(400):playOn(_ENV["layout"..当前ui]) end) end 显示 = 0 beij = luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/wsbg") beij2 = luajava.loadlayout({ GradientDrawable, color = "#00000000", cornerRadius = 30 }) 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/"..resname.."/图片/ditf3")) if tonumber(tostring(cebian:getVisibility())) == 8.0 then chuangk:setVisibility(View.VISIBLE) cebian:setVisibility(View.VISIBLE) ctrl:setVisibility(View.GONE) mainbg:setVisibility(View.VISIBLE) title:setVisibility(View.VISIBLE) luajava.runUiThread(function() mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window:updateViewLayout(floatWindow, mainLayoutParams) end) YoYoImpl:with("SlideInDown"):duration(200):playOn(cebian) luajava.runUiThread(function() YoYoImpl:with("SlideInLeft"):duration(800):playOn(title) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) floatWindow:setBackground(beij) end) else luajava.runUiThread(function()mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE window:updateViewLayout(floatWindow, mainLayoutParams) end) title:setVisibility(View.GONE) mainbg:setVisibility(View.GONE) ctrl:setVisibility(View.VISIBLE) floatWindow:setBackground(beij2) chuangk:setVisibility(View.GONE) cebian:setVisibility(View.GONE) _ENV["layout"..当前ui]:setVisibility(View.GONE) end end) end function balert(bltxt,bltxt1,bltxt2) result=0 local block = luajava.getBlock() if not bltxt then bltxt='这里写正文\n测试\n测试' end if not bltxt1 then bltxt1='取消' end if not bltxt2 then bltxt2='确定' end bltxt=tostring(bltxt) bltxt1=tostring(bltxt1) bltxt2=tostring(bltxt2) local dialog = luajava.new(AlertDialog.Builder, app.context) local block = luajava.getBlock() local result local function exit() block('end') end layoutabc=luajava.loadlayout({ScrollView, {LinearLayout, background="#00000000", orientation="vertical", layout_width="match_parent", layout_height="match_parent", gravity = 'center', {ScrollView, gravity="center", layout_height="230dp", layout_width="fill_parent", padding="25dp", {LinearLayout, layout_marginTop="20dp", gravity="center", layout_height="220dp", layout_width="fill_parent", padding="25dp", {TextView, id = luajava.newId('弹窗文字'), textSize="18sp", text = bltxt, layout_height="wrap_content", layout_width="fill_parent", layout_gravity="center", gravity="center", },}}, {LinearLayout, gravity="center", layout_height="50dp", layout_width="fill_parent", orientation="horizontal", {LinearLayout, id="balt1", background=getSelector9(), layout_width="wrap_content", layout_marginRight="50dp", {TextView, gravity="center", text=bltxt1, layout_height="36dp", textSize="13sp", textColor="#7026FF", layout_width="wrap_content", layout_marginLeft="60dp", layout_marginRight="60dp", }}, {LinearLayout, id="balt2", background=getSelector3(), layout_width="wrap_content", layout_marginLeft="50dp", {TextView, gravity="center", text=bltxt2, layout_height="36dp", textSize="13sp", textColor="#7026FF", layout_width="wrap_content", layout_marginLeft="60dp", layout_marginRight="60dp", }} }}}) balt1.onClick = function() result = 1 dialog:dismiss() exit() end balt2.onClick = function() result = 2 dialog:dismiss() exit() end dialog:setView(layoutabc) dialog:setOnDismissListener(luajava.createProxy('android.content.DialogInterface$OnDismissListener', { onDismiss = function(view) block("end") end})) local function invoke() dialog = dialog:create() local window = dialog:getWindow() window:setType(Build.VERSION.SDK_INT >= 26 and 2038 or 2002) window:setBackgroundDrawable(luajava.getBitmapDrawable("/sdcard/晓燕宇宙服助手(2)/图片/yzfalt")) window:getDecorView():setPadding(0,0,0,0) dialog:show() window:setLayout(1500,900) YoYoImpl:with("FadeIn"):duration(300):playOn(layoutabc) end luajava.handlerPost(invoke) block('join') return result 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 function changan.switch(name,func1,func2,color) if not color then color="#7026FF" end local func = 开关(name,func1,func2) if not name then name = "未设置" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "wrap_content", gravity="center", { LinearLayout, layout_width = '260dp', layout_hight = "wrap_content", layout_marginTop = "5dp", layout_marginBottom = "5dp", gravity = "center_vertical", background = getseekgra(), { TextView, gravity = "center", textColor = color, text = name, layout_width = '160dp', layout_marginLeft = "20dp", layout_marginTop = "10dp", layout_marginBottom = "10dp", }, { Switch, gravity = "top", layout_width = '50dp', layout_hight = "10dp", layout_marginRight = "30dp", --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.button(txt,func,color) if not color then color="#7026FF" end if not txt then txt = "未设置" end return luajava.loadlayout( { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", layout_height = "wrap_content", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "25dp", layout_marginRight = "25dp", background = getSelector3(), onClick = function() luajava.newThread(function() func() end):start() end, { TextView, layout_marginTop = "10dp", layout_marginBottom = "10dp", --id = luajava.newId(tid), text = txt, gravity="center", textColor = color, textSize = "15sp", layout_width = "180dp", }, }}) end function changan.button2(txt,func,color) if not color then color="#7026FF" end if not txt then txt = "未设置" end return luajava.loadlayout( { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", layout_height = "wrap_content", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "25dp", layout_marginRight = "25dp", background = getseekgras(), onClick = function() luajava.newThread(function() func() end):start() end, { TextView, layout_marginTop = "10dp", layout_marginBottom = "10dp", layout_marginLeft = "20dp", layout_marginRight = "20dp", --id = luajava.newId(tid), text = txt, gravity="center", textColor = color, textSize = "12sp", layout_width = "180dp", }, }}) end chazhi = {} chajv = {} function changan.seek(name,bian,smin,smax,nows,color) if not color then color="#7026FF" end _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 = '260dp', layout_hight = "wrap_content", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", gravity = "center_vertical", background = getseekgra(), { TextView, gravity = "top", textColor = color, text = name..":"..nows, id = luajava.newId(names), layout_width = '100dp', layout_marginLeft = "2dp", layout_marginRight = "0dp", layout_marginTop = "15dp", layout_marginBottom = "15dp", }, { SeekBar, layout_width = '160dp', 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.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 = "20dp", layout_marginRight = "20dp", gravity = "center_vertical", background = getseekgra(), { EditText, gravity = "center", hint = name, textColor = "#7026FF", id = luajava.newId(_ENV[name]), layout_width = 'fill', layout_marginLeft = "10dp", layout_marginRight = "10dp", }} }) return rest end function changan.getedit(name) edit = tostring(luajava.getIdValue(_ENV[name]):getText()) return edit end function changan.setedit(name,txt) txt = tostring(txt) luajava.runUiThread(function() luajava.getIdValue(_ENV[name]):setText(txt) end) end function changan.radio(radio) firadio = { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", orientation = "vertical" } if type(radio[1]) == "string" or type(radio[1]) == "number" then firadio[#firadio+1] = { TextView,text = radio[1],textColor = "#000000", } end radios = { RadioGroup,background = luajava.loadlayout({ GradientDrawable, color = "#11000000", cornerRadius = 30 }),layout_width = 'fill_parent',layout_height = "wrap_content", } for i = 2,#radio do radios[#radios+1] = { RadioButton, layout_width = 'fill_parent', text = radio[i][1], onClick = function() luajava.newThread(function() radio[i][2]() end):start() end, } end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function changan.check(cklist) rest = { LinearLayout, layout_width = 'match_parent', layout_height = "30dp", layout_marginTop = "10dp", gravity = "left" } for i = 1,#cklist do local name = cklist[i][1] local func1 = cklist[i][2] local func2 = cklist[i][3] local nid = cklist[i][4] if not name then name = "未设置" end nid = name..guid() local func = 开关2(nid,func1,func2,nid) rstt = luajava.loadlayout({ LinearLayout, layout_width = 'wrap_content', layout_height = "30dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "0dp", layout_marginRight = "10dp", gravity = "center_vertical", { ImageView, id = luajava.newId(nid), layout_width = '20dp', layout_height = "20dp", background = "/sdcard/"..resname.."/图片/check1", onClick = function() luajava.newThread(function() func() end):start() end, }, { TextView, gravity = "top", text = name, textColor = "#000000", layout_width = 'wrap_content', layout_height = 'wrap_content', layout_marginLeft = "4dp", layout_marginRight = "5dp", }}) rest[#rest+1] = rstt end return luajava.loadlayout(rest) end function changan.text(txt,color) if not txt then txt = "未设置文字" end if not color then color = "#ffffff" end return luajava.loadlayout( { TextView, text = txt, textSize = "18sp", textColor = color, layout_width = "wrap_content", }) end corb = true 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("/sdcard/"..resname.."/图片/check2")) end) _ENV[name] = "开" func1() else luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/"..resname.."/图片/check1")) end) _ENV[name] = "关" func2() end end end 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] = "开" func1() else _ENV[name] = "关" func2() end end end end function 功能图标1(txt) ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() jm1tu:setImageDrawable(luajava.getBitmapDrawable(txt)) end)---例子 end function 功能图标2(txt) ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() jm2tu:setImageDrawable(luajava.getBitmapDrawable(txt)) end)---例子 end function 功能图标3(txt) ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() jm3tu:setImageDrawable(luajava.getBitmapDrawable(txt)) end)---例子 end function 功能图标4(txt) ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() jm4tu:setImageDrawable(luajava.getBitmapDrawable(txt)) end)---例子 end function 功能图标5(txt) ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() jm5tu:setImageDrawable(luajava.getBitmapDrawable(txt)) end)---例子 end function 悬浮窗图标(txt) ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() control:setBackgroundDrawable(luajava.getBitmapDrawable(txt)) end)---例子 end function 功能背景1(txt) if type(txt) == "string" then ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() layout1:setBackgroundDrawable(luajava.getBitmapDrawable(txt)) end)---例子 else luajava.runUiThread(function() layout1:setBackgroundDrawable(txt) end)---例子 end end function 功能背景2(txt) if type(txt) == "string" then ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() layout2:setBackgroundDrawable(luajava.getBitmapDrawable(txt)) end)---例子 else luajava.runUiThread(function() layout2:setBackgroundDrawable(txt) end)---例子 end end function 功能背景3(txt) if type(txt) == "string" then ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() layout3:setBackgroundDrawable(luajava.getBitmapDrawable(txt)) end)---例子 else luajava.runUiThread(function() layout3:setBackgroundDrawable(txt) end)---例子 end end function 功能背景4(txt) if type(txt) == "string" then ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() layout4:setBackgroundDrawable(luajava.getBitmapDrawable(txt)) end)---例子 else luajava.runUiThread(function() layout4:setBackgroundDrawable(txt) end)---例子 end end function 功能背景5(txt) if type(txt) == "string" then ntxt = string.sub(string.gsub(txt,"/","."),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/"..resname.."/图片/"..ntxt) == false then download(txt,"/sdcard/"..resname.."/图片/"..ntxt) end txt = "/sdcard/"..resname.."/图片/"..ntxt end luajava.runUiThread(function() layout5:setBackgroundDrawable(luajava.getBitmapDrawable(txt)) end)---例子 else luajava.runUiThread(function() layout5:setBackgroundDrawable(txt) end)---例子 end end tzid={} tzltt={} function 生成拓展(name,views) _ENV[name.."拓展"]=0 tzid[name] = "layout"..guid() tzltt[name] = luajava.loadlayout({ ScrollView, fillViewport = "true", --padding = "10dp", --id = "layout"..i, --visibility = "visible", gravity="center", layout_width = "320dp", layout_height = "fill_parent", orientation = "horizontal", { LinearLayout, id = luajava.newId(tzid[name]), background = getseekgra(), layout_width = "230dp", layout_marginRight="60dp", orientation = "vertical", gravity = "center_horizontal", } }) local tz = luajava.getIdValue(tzid[name]) local function invoke2() for i = 1,#views do tz:addView(views[i]) end end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end function 拓展(lt,name) if _ENV[name.."拓展"]==nil or _ENV[name.."拓展"]==1 then return 0 end _ENV["layout"..lt] = luajava.getIdValue("lay"..lt) local function invoke2() _ENV["layout"..lt]:addView(tzltt[name]) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) _ENV[name.."拓展"]=1 end function 取消拓展(i,j) if _ENV[j.."拓展"]==nil or _ENV[name.."拓展"]==0 then return 0 end _ENV["lay"..i] = luajava.getIdValue("lay"..i) local function invoke2() _ENV["lay"..i]:removeView(tzltt[j]) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) _ENV[j.."拓展"]=0 end tupian = luajava.loadlayout( { LinearLayout, layout_height = "100dp", layout_width = "100dp", background="/sdcard/晓燕宇宙服助手(2)/图片/qq2" }) ---像tupian一样loadlayout生成的自定义布局,可以用变量直接传到下面使用 ---我封装的生成布局函数有 ---changan.text 文本 ---changan.button 按钮 ---changan.switch 开关 ---changan.radio 单选 ---changan.check 多选 ---changan.seek 拉条 ---changan.edit("输入框ID") 输入框 ---changan.getedit("输入框ID") 获取输入框返回字符串 ---changan.setedit("输入框ID","内容")设置输入框内容 ---示例都在下面 ---其他布局等待后续更新或者你们自己写 悬浮窗图标="https://cccimg.com/down.php/631bec13f1efeb37c78656b67da33e86.png" stab={ "主 页", "局外功能", "局内功能", "娱乐功能", "使用说明" } changan.menu("王 者 宇 宙 服 助 手",---大标题 { { ---这里是第一个菜单 直接传入布局即可 以下是我封装的布局,也可以自己写 --changan.text("这是一行字"), --changan.text("这是第二行字","#0079FF"), changan.text("主 页","#7026FF"), changan.text("欢迎使用晓燕宇宙服助手","#7026FF"), tupian,--自定义布局示例 看上面定义的tupian changan.button2("加入qq交流群", function() gg.QQgroup("367481875") 隐藏() end), changan.button("公告", function() local zxcvbnm=[[ 2024.7.16 修复自定义技能全图打塔 修复技能快捷编辑的后摇 修复澜,马超无限强化普攻 2024.7.6 更新修改隐藏英雄 2024.7.5 修复修改技能时长 增加技能转伤害 修复全英雄部分皮肤 修复装备全价格自定义 2024.7.4 修复自定义技能随机释放 修复自定义一技能一排 水晶血量修改 添加召唤师技能 修复上帝视角(思路换了[更不方便了,没办法值变了,找不到了]) 修复局内属性编辑 修复自定义英雄全技能可暴击 自定义技能可暴击 训练营指令 修复自定义复活时间 2024.6.30 修复装备编辑器 修复技能快捷编辑 修复英雄编辑器 修复资源检测 修复中文皮肤编辑器 修复皮肤编辑器 修复晓燕宇宙服名字 修复巅峰召唤师名字 修复坐标传送 修复自定义全装备价格 自定义经济 自定义等级 ~~~~~~~~~~~以下为s35赛季 2024.6.23 刘备连喷 无限出兵 全局无兵 优化中文皮肤编辑器 修复百里二技能范围 2024.6.22更新 隐藏暂停 中文皮肤编辑器 2024.6.10 删除所有一排 更新自定义技能一排 2024.6.9更新 改善防掉进程 增加蔡文姬1,3技能有毒2024.6.7 更新防掉进程 2024.5.25更新 更新防御塔觉醒[测试中可能无效] 修复HDR亮度 更新河道剧毒 暴力修改英雄技能数量 2024.5.18更新 更新飞仙功能 修复一键名字功能 2024.5.12更新 增加快捷技能编辑 2024.5.3更新 增加一排功能 2024.5.2更新 修复自定义技能随机释放的技能检测 增加自己9免伤免控 随机傀儡 增加一个随机名字基址2024.4.27更新 修复所有名刀释放 2024.4.19修复 1修复训练营指令 修复自定义技能无CD无后摇 修复夏洛特,司马懿,蓝等苍穹全图功能 马超无限戳 澜无限刮 无限名刀 橘右京名刀风火轮 修复自定义技能基础伤害 2020.4.14更新 1增加自定义技能锁定范围全图 2024.4.13更新 1优化技能编辑器 2新增高级技能编辑 3新增一键巅峰召唤师 4新增一键晓燕宇宙服 2024.4.6更新 1修复技能编辑器 2更新野怪编辑 3增加自定义英雄全技能可暴击 2024.4.5 1增加墙体高度 2增加哪吒大招吸人 3修复坐标传送,删除原本的坐标传送 4增加万象天引 5UI背景替换 2024.4.4更新 1修复自定义技能时长 2增加自定义英雄全技能无CD后摇 3增加自定义技能层数上限 4删除典韦 司空震,被动时长及层数 2024.4.3更新 1增加局内属性编辑八个属性 2024.3.31更新 1修复上帝视角 2修复打塔上限 3更新局内自定义属性 2024.3.30更新 4暂时先用这个UI,后面会改 1修复皮肤编辑器 2修复全英雄部分皮 3修复训练营指令 4修复技能编辑器 5修复自定义等级 6修复自定义经济 8修复无限或力 9修复自定义全装备价格 10修复装备编辑器 11修复无限名刀 12修复英雄编辑器 13修复自定义元歌傀儡 14修复自定义技能可暴击 15修复去打塔上限 ↓↓以下为S34赛更新季内容↓↓ 2024.3.23更新 1增加司空震大招时长自定义 2增加自定义技能时长 3增加典韦被动修改 2024.3.17更新 1增加全英雄部分皮 2024.3.15更新 1,加快皮肤编辑器速度 2增加自定义技能暴击 3增加自定义技能献祭流 4修复自定义技能随机释放 2024.2.20更新 1增加hdr亮度 2增加自定义技能随机释放 2024.2.15更新 1更新皮肤编辑器低配版 2024.2.14更新 1优化皮肤编辑器(搜索过程由仿xs写法改为高速偏移写法) 2024.2.13更新 1删除元歌3技能360 2删除妲己12技能偏移 3更新峡谷颜色 4功能按钮增大 5修复马克1技能360 6修复伽罗普攻强普偏移 6增加海月1技能偏移 7马克1技能扇形 8百里2技能扇形 8来西澳强普偏移 9删除峡谷颜色 2024.2.9更新 1增加鲁班2技能名刀释放 2增加自定义技能名刀释放(不带去限制) 2024.2.7更新 1增加英雄代码查询 2自定义增加技能全单位 3增加自定义技能伤害全图 4删除一键改名字功能 5增加坐标传送 2024.2.6更新 1增加橘右京风火轮 2删除诸葛连续大 3删除百里移动狙击 3更新英雄红buff 2024.2.5更新 1优化名刀释放功能(先获取技能效果代码) 2删除名刀免费 3删除红莲全图功能(无效功能) 4修复元歌2技能360 5修复小乔1技能360矩形 6删除小乔2技能矩形 7修复诸葛万剑归宗 8增加后羿名刀大招 9增加女娲名刀大招 增加10单机高光2 11增加名刀技能恢复 ]] gg.alert(zxcvbnm) end ), }, { changan.radio({"局外编辑", { "局外编辑", function() 拓展(2,"局外编辑") end }, { "野怪编辑", function() 拓展(2,"野怪编辑") end }, }), ---这里是第二个菜单 changan.button("代码查询", function() local knm={ "108墨子","109妲己","110嬴政","111孙尚香","112鲁班七号","113庄周","114刘禅","105廉颇","106小乔","107赵云","115高渐离","116阿轲","117钟无艳","118孙膑","119扁鹊","120白起","121芈月","122诸葛亮(旧版)","123吕布","124周瑜","125元歌","126夏侯惇","127甄姬","128曹操","129典韦","130宫本武藏","131李白","132马克波罗(旧)","133狄仁杰","134达摩","135项羽","136武则天","137司马懿","139孔夫子","140关羽","141貂蝉","142安琪拉","143安绿山","144程咬金","146露娜","148姜子牙","149刘邦","150韩信","152王昭君","153兰陵王","154花木兰","155艾琳","156张良(旧)","157不知火舞","158八神庵","162娜可露露","168牛魔","169后羿","170刘备","171张飞","173李元芳","174虞姬","175钟馗","176杨玉环","177成吉思汗","178杨戬","179女娲","180哪吒","182干将莫邪(旧)","183雅典娜","163橘右京","166亚瑟王","167孙悟空","184蔡文姬","186太乙真人","187东皇太一","189鬼谷子","190诸葛亮","222徐福","225元歌(傀儡)","240觉醒关羽","241金龙","242黑龙","243红龙","244绿龙","254花木兰(重剑)","237司马懿","305廉颇(改版)","310嬴政","312沈梦溪","330宫本武藏(强化)","332马可波罗","333马可波罗(测试)","346露娜(改版)","355艾琳(改版)","356张良","366亚瑟(改版)","378杨戬(改版)","191大乔","192黄忠","193铠","194苏烈","195百里玄策","196百里守约","197奕星","198梦奇","199公孙离","207封王","382干将","501明世隐","502裴擒虎","503狂铁","504米莱迪","505瑶","506云中君","507李信","508伽罗","509盾山","510孙策","511猪八戒","512囚徒","513上官婉儿","515嫦娥","516舜","531镜","532镜分身","533阿骨朵","536夏洛特","537司空震","538云樱","619Zombie","620韩信","621庄周","630宫本武藏(改版强化)","654母僵尸","518马超","520少司命","522耀","523西施","524蒙犽","525鲁班大师","526王翦","527蒙恬","528澜","529盘古","530宫本武藏(改版)","668Zombie","675Zombie","687Zombie","700坦克轮子","701坦克炮管","716Zombie","732马可波罗(旧)","733刘备(旧)","770暴君","771主宰(英雄)","772暴君3v3(英雄)","773年兽(英雄)","2025暴君3v3","2068暴君","2145主宰","4010变身大乱斗","41150抢鲲大乱斗","20001经典1v1","20002经典3v3","20009火焰山","20011经典5V5","20013无限火力","20099无塔1v1","20999无塔5v5","20012克隆大乱斗","20015迷雾模式","20016荣耀峡谷","20017无限乱斗","20018实战训练","20028五军对决","20040实战模拟","20041实战模拟","20071抢鲲模式","20072强化模式","20080快跑模式","20090模拟战单人","20091模拟战单人排位","20092模拟战双人","20093模拟战双人排位","20094模拟战单人-大乱斗","20095模拟战单人-大乱斗2","20096模拟战单人匹配","20097模拟战双人匹配","20098新手关","20099模拟战单人-快速赛","20100模拟战-单人-天元赛","20111征召模式(竞技地图)","20151CS模式(竞技地图)","20999死斗模式","21000蓝图教学-刷怪(地图)","21001蓝图教学-运算(地图)","20900激光炮","80101监视","80102治疗","80103晕眩","80104惩戒","80105干扰80111振奋","80112月之守护","80114吹飞","80115闪现","80116寒冰惩戒","80117传送","80121弱化","80122PVE闪现","80106隐遁","80107净化","80108斩杀","80109疾跑","80110狂暴80201火球","81102坚定意志","81107不灭信仰","81109奔狼号令","81110幽梦之息","81112时光凝滞","攻速上限代码","163840000;32768000","3D视角","1097285734上帝视角"," 1081006571;-1082125398;-1082130432;1088838298::37","改善","-1082130432","改","-1071644672911000~911500(装备被动)","4010000~4010030黑暗暴君技能","4010100~4010140暗影主宰技能","4010200~4010230暴君3v3技能","4010300~4010330年兽技能5000;1000;160;500盾山全图","2070;4000;2000;500;0真正影刃","15000复活时间","12000防御塔范围","9000;1400;16000钟馗范围","4000;1000小乔击飞","5000;10000;5000;8000宫本武藏大招","3500;1000;5000马超","4500;20000公孙离位移","10000;4000;7000橘右京大招范围新技能代码:","兵线近战小兵普攻第一击:10000","兵线近战小兵普攻第二击:10001","兵线法师小兵普攻:10002","兵线法师小兵普攻²:10003","新风格兵线近战小兵普攻第一击:10010","新风格兵线近战小兵普攻第二击:10011","新风格兵线法师普攻:10012","新风格兵线法师普攻²:10013","新风格兵线炮车普攻第一击:10014","新风格兵线炮车普攻第二击:10015","新风格超级兵第一击:10016","新风格超级兵第二击:10017","新风格兵线近战枪兵普攻第一击:10018","新风格兵线近战枪兵普攻第二击:10019【旧版诸葛亮技能】","运筹帷幄:12200","卧龙东风:12210","谋略法球:12220","八卦阵列:12230【英雄:安禄山】","一技能:14310","二技能:14320","三技能:14330","【旧版张良】","言灵·咒印:15600","言灵·壁垒:15610","言灵·侵蚀:15620","言灵·操纵:15630【英雄:八神庵】","被动:15800~15804","一技能:15810","二技能:15820","三技能:15830","【未知】","W:15110","E:15120","R:15130近战斧头普攻:20000","满屏寻敌近战斧头:20001","野怪法师小兵普攻:20002","满屏寻敌法师小怪普攻:20003","小刀普攻第一击:20020","小刀普攻第二击:20021","满屏寻敌小刀第一击:20022","满屏寻敌小刀第二击:20023","泰迪熊-普攻:20030","满屏寻敌泰迪熊普攻:20031","狼普攻第一击:20040","狼普攻第二击:20041","满屏寻敌狼普攻第一击:20042","满屏寻敌狼普攻第二击:20043","枪兵普攻第一击:20050","枪兵普攻第二击:20051","枪兵普攻第三击:20052","满屏寻敌枪兵普攻第一击:20053","满屏寻敌枪兵普攻第二击:20054","满屏寻敌枪兵普攻第三击:20055","莽哥普攻第一击:20060","莽哥普攻第二击:20061","满屏寻敌莽哥普攻第一击:20062","满屏寻敌莽哥普攻第二击:20063","弓贼普攻:20070","满屏寻敌弓贼普攻:20071","弓贼普攻第二击:20072","新手僵尸普攻第一击:20080","新手僵尸普攻第二击:20081","红色机器人第一击:20090","红色机器人第二击:20091","蓝色机器人第一击:20092","蓝色机器人第二击:20093","熊猫第一击:20100","熊猫第二击:20101","木猫工匠第一击:20110","木猫工匠第二击:20111","算命人普攻:20120","金鱼普攻:20130","白鹿第一击:20140","白鹿第二击:20141","卖萌傀儡机器人第一击:20150","卖萌傀儡机器人第二击:20151","助手机器人第一击:20152","助手机器人第二击:20153","炮车普攻:20160","炮车普攻²:20161","迅捷机器人第一击:20170","迅捷机器人第二击:20171","自爆机关第一击:20172","自爆机关第二击:20173","主宰先锋大龙兵攻击:20174","主宰先锋大龙兵对箭塔霜冻吐息:20175","测试用机器人第一击_物理:20176","测试用机器人第二击_法术:20177","三国军官第一击:20180","三国军官第二击:20181","宝箱怪第一击:20190","宝箱怪第二击:20191","三国枪兵第一击:20200","三国枪兵第二击:20201","三国力士第一击:20210","三国力士第二击:20211","三国刀兵第一击:20220","三国刀兵第二击:20221","暗影大将第一击:20230","暗影大将第二击:20231","暗影先锋普攻第一击:20240","暗影先锋普攻第二击:20241","怒Boss普攻第一击:20250","怒Boss普攻第二击:20251","怒Boss_冲击波_流星雨:20252","怒Boss_震天一怒_震地:20253","奸商普攻第一击:20260","奸商普攻第二击:20261","小学徒普攻第一击:20270","小学徒普攻第二击:20271","小学徒恢复技能:20272","间谍第一击:20280","间谍第二击:20281","逃杀暗影法师普攻第一击:20292","杀手第一击:20300","杀手第二击:20301","机关师普攻第一击:20310","机关师普攻第二击:20311","三国弓箭手普攻第一击:20320","三国弓箭手普攻第二击:20321","高级间谍第一击:20330","暗影法师普攻第一击:20290","暗影法师普攻第二击:20291高级间谍第二击:20331","沙狼第一击:20340","沙狼第二击:20341","魂之怪第一击:20342","马蜂第一击:20350","马蜂第二击:20351","蝎子第一击:20360","蝎子第二击:20361","蝴蝶普攻第一击:20370","蝴蝶普攻第二击:20371","机关女仆普攻第一击:20380","机关女仆普攻第二击:20381","僵尸长矛手普攻第一击:20390","僵尸长矛手普攻第二击:20391","船夫普攻第一击:20400","船夫普攻第二击:20401","舞娘普攻第一击:20410","舞娘普攻第二击:20411","舞娘恢复技能:20412","钟渐高舞娘恢复技能:20413","女将军普攻第一击:20420","女将军普攻第二击:20421","石巨人普攻第一击:20430","石巨人普攻第二击:20431","石巨人普攻第二击²:20432","炎巨人普攻第一击:20440","炎巨人普攻第二击:20441","秦王女仆普攻第一击:20450","秦王女仆普攻第二击:20451关羽_冲锋状态_被动:24000","关羽_冲锋状态_一技能:24010","关羽_冲锋状态_二技能:24020","关羽_冲锋状态_三技能:24030都府区_高级怪_南瓜锤胖子:25200~25202湮灭之眼Boss普攻第一击:25300","湮灭之眼Boss普攻第二击:25301","湮灭之眼Boss_冲击波_砂爆:25302","湮灭之眼Boss_震天一怒_砂爆送葬:25303","花木兰_重剑_被动:25400~25402","花木兰_重剑_一技能:25410~25416","花木兰_重剑_二技能:25420","花木兰_重剑_三技能:25430未知:30010","未知²:30020","旋风斩:30030","冲锋:30040","未知³:30050","未知⁴:30060","未知⁵:30070","未知*:30080","未知⁷:30090","强力治疗术:30100","群体治疗术:30110","机关师-秘法球:30180","WootCat-撞击:30190","WootCat-伤害护盾:30200","Mst_49_Knight-撞击:30210","Mst_49_Knight-顺劈:30220","Mst_54_Strongman-无畏冲锋:30240","Mst_02_Wizard-炎爆术:30260","Mst_12_Fatrobot-断筋:30280","Mst_12_Fatrobot-旋风斩:30290机关师-禁锢:30120","Mst_34_Business-禁锢:30300","Mst_34_Business-生命榨取:30310","Mst_39_Hechengguai-熔岩进发:30330","Mst_39_Hechengguai-击退:30340","Mst_43_Shadow-陨石术:30360","Mst_25_Panda-冲锋:30380","Mst_25_Panda-撞击:30390未知:61900","未知²:61910","未知³:61920未知:70000","未知²:70001","未知³:70002","未知⁴:70003","S1:70010","S2:70020","H7U:70030恢复药剂:74000","小药瓶:74001","大药箱:74002","暴击流:74100","暴击流²:74001","暴击流³:74002","攻速流:74003","攻速流²:74004","攻速流³:74005","风筝流:74006","风筝流²:74007","风筝流³:74008","狂战士流:74009","狂战士流²:74010","狂战士流³:74011","技能流:74012","技能流²:74013","技能流³:74014","控制流:74015","控制流:²74016","控制流³:74017","护甲反伤流:74018","护甲反伤流²:74019","护甲反伤流³:74020","生命守护流:74021","生命守护流²:74022","生命守护流³:74023战斗咆哮:75000","越战越勇:75010","狂暴怒火:75020","灵魂之握:75100","寒霜尖刺:75110","逆转传送:75120","逆转传送-归:75121","星灵:75200","武器附魔:75210","火力支援:75220","潜能爆发:75300","剔骨:75310","烟雾弹:75320","反击风暴:75400","终极嘲讽:75410","盾墙:75420","治愈之链:75500","爱的勾引:75510","守护结界:75520","宝宝技能:75530","野熊普攻1:75531","野熊普攻1²:75532","野熊普攻1³:75533","击退:76000【王者快跑】","昭君2技能:77010","言灵·壁垒:77020","湮灭之锁:77030","吕布3技能:77040","万物有灵:77050","山崩地裂:77060","混沌火种:77070","甜蜜恋风:77080","山崩地裂²:77090","免疫护盾:77100","眩晕陷阱:77110","减速立场:77120","超级闪现:77130","水波弹:77140","威能击退:77150","一号飞弹:77170","超级加速:77180PVE-叹息套_大招:78300","PVE-机械师_大招:78400","PVE-造个栏杆1:78700","PVE-造个栏杆2:78710","PVE-造个栏杆3:78720监视:80101","治疗术:80102","眩晕:80103","惩戒:80104","干扰:80105","影遁:80106","净化:80107","终结:80108","疾跑:80109","狂暴:80110","振奋:80111","辉月-月之守护:80112","闪现-60CD:80113","闪现-120CD:80115","寒冰惩戒:80116","传送:80117","传送²:80118","传送³:80119","传送⁴:80120","弱化:80121","闪现-PVE:80122吹飞:80114火球:80201","PVE-爆发:80202","PVE-格挡:80203","PVE-翻滚:80204","PVE-泉水:80205不灭信仰:81107","奔腾号令:81109","幽梦之息:81110","时光凝滞:81112恢复:90000","多火球:90001","大火球:90002","恢复²:90003","快速雪球:90004","回城:90005","恢复³:90006","回城-3秒:90007","河豚手雷:90008","灼日之矢:90009","隐匿逃脱:90010","恢复⁴:90011","恢复药剂:90012","小药瓶:90013","大药箱:90014","守约2技能:90015","探漠之钩:90017","狩猎陷阱:90019","视野药剂:90020","爱的环绕:90021","定向射击:90022驱散:91000","驱散²:91001","辉月-月之守护:91010","奔腾号令:91020","救援:91030","奔腾:91031","战歌:91032","回复:91033","逐日之弓-逐日:91040","鼓舞:91041","鼓舞²:91042","救援²:91043","救援³:91044","奔腾号令²:91045","奔腾号令³:91046","奔腾号令⁴:91047","逃脱:91050","OB:91051","王之拉扯:91052让我先死:92001","最初的梦想:92002","来打我呀:92003","烧烧烧烧:92004","臂章开:92005","臂章关:92006","绿杖:92008","血魔之怒:92009","星芒:92010","冲击铠甲:92011","承伤冲击波:92012","星之佩饰:92013雷神之印:93001","能量护盾:93002","末日审判:93003","暗影帷幕:93004","无畏之躯:93005","坚定意志:93006","潜能激发:93007","炼狱复生:93008","心灵视界:93009","速度爆发:93010","迅捷治疗:93011","刺耳咆哮:93012监视:95000","契约召唤:95001","砂之监视:95002","扫描:95003","扫描²:95004","初级照明:95005","中级照明:95006","高级照明:95007血战守护:96001","血战闪现:96002","大火球:96003狙击:97001自定义技能-生杀予夺普通:97100","自定义技能-生杀予夺海洋之心:97101","自定义技能-生杀予夺粉色海洋之心:97102","自定义技能-鬼谷子_先知·雾隐:97103小Boss弹幕1_技能1:810301","小Boss弹幕1_技能2:810302","小Boss弹幕1_技能3:810302","小Boss弹幕1_技能4:810302小Boss_双子_剑皇:811000","小Boss_双子_剑皇²:811001","小Boss_双子_剑皇³:811002","小Boss_双子_剑皇⁴:811003","小Boss_双子_剑皇⁵:811004","小Boss_双子_剑皇*:811005","小Boss_双子_剑皇⁷:811006小Boss_双子_魔皇:811100","小Boss_双子_魔皇²:811101","小Boss_双子_魔皇³:811102","小Boss_双子_魔皇⁴:811103","小Boss_双子_魔皇⁵:811104","小Boss_双子_魔皇*:811105最终Boss:819000","最终Boss²:819001","最终Boss³:819002","最终Boss⁴:819003","最终Boss⁵:819004","最终Boss*:819010","最终Boss⁷:819020","最终Boss⁸:819030","最终Boss⁹:819031","最终Boss¹⁰:819032","最终Boss¹¹:819040","最终Boss¹²:819041","最终Boss¹³:819050小Boss_Aoe:819112","小Boss_Aoe²:819113","小Boss_Aoe³:819114小Boss_3_祭坛_boom_冲锋:819400","小Boss_3_祭坛_普攻:819431","小Boss_射线:819500","小Boss_射线²:819510","小Boss_射线³:819520","小Boss_射线⁴:819530","小Boss_射线_召唤物:819531","小Boss_射线_召唤物²:819532","小Boss_射线_召唤物³:819533","小Boss_冲撞:819610","小Boss_冲撞:819611","小Boss_冲撞:819612","小Boss_冲撞:819613词缀技能_流星:820000","词缀技能_诅咒:820001魔种首领兼剧情Boss:866600","魔种首领兼剧情Boss:866601","魔种首领兼剧情Boss:866602","魔种首领兼剧情Boss:866603","魔种首领兼剧情Boss:866604","魔种首领兼剧情Boss:866605","魔种首领兼剧情Boss:866606","魔种首领兼剧情Boss:866607","魔种首领兼剧情Boss:866608","魔种首领兼剧情Boss:866609","魔种首领兼剧情Boss:866610","魔种首领兼剧情Boss:866611","魔种首领兼剧情Boss:866612加速:870010","光幕盾牌:870020","冲锋:870030","机关重炮:870110","机关扫射:870120","跟踪弹幕:870130复活濒死队友:900010","打包濒死队友:900011","放下濒死队友:900012","被打包时挣脱:900013造个栏杆:900211","造个栏杆²:900212霸者觉醒:910000","神射觉醒:910001","贤者觉醒:910002","魔道觉醒:910003","战神觉醒:910004","影刃觉醒:910005" } u=gg.changeChoice(knm,"请搜索你需要的物品") --gg.changeChoice()返回的结果为knm表中是否被选中的boolean表 for n=1,#knm do --这里用#knm或者#u都可以 if u[n] then gg.copyText(knm[n]) gg.toast("已复制") end end end ), changan.button("选择进程(必选)", function() gg.setProcessX() end), changan.button("执行脚本(必须是源码)", function() function diaoyong() local file_path = gg.prompt({"选择脚本"},{[1]="/storage/emulated/0/我的文件/王者/重要脚本"},{[1]="file"}) if file_path then local f, err = loadfile(file_path[1]) if f then local success, result = pcall(f) if not success then print("调用脚本出错:" .. result) end else print("加载脚本出错:" .. err) end end end diaoyong() end), changan.button("过资源检测",--功能名字 不可重复 function() time=os.clock() xyss({{-1878780608,4,16384},{-268167424,4,24},},{{-763363296,4,-88,false},{-698416192,4,-84,false},},"修改") ces=balert("开启成功\n开启总耗时为:"..os.clock()-time.."秒") end ), changan.button("防掉进程[账号登录界面]", function() xyss({{-301047508,4,16},{16384,4,1244},},{{4096,4,1244,false},},"修改") end ), changan.button("QQ登录改单机", function() local YH={{3401,4,32,"QQ登录改单机"},{65792,24,4},{1109393408,68,4},} local XZ={{3448,0,4,false},} local num=LSQ_pointer(YH,XZ,'修改') ces=balert("开启成功点击qq登录") end ), changan.button("中文皮肤编辑(部分皮肤名字检测不出)", function() YXDMS=[[105廉颇-106小乔-107赵云-108墨子-109妲己-110嬴政-111孙尚香-112鲁班七号-113庄周-114刘禅-115高渐离-116阿珂-117钟无艳-118孙膑-119扁鹊-120白起-121芈月-123吕布-124周瑜-125元歌-126夏侯惇-127甄姬-128曹操-129典韦-130宫本武藏-131李白-132马可波罗-133狄仁杰-134达摩-135项羽-136武则天-137司马懿-139老夫子-140关羽-141貂蝉-142安琪拉-144程咬金-146露娜-148姜子牙-149刘邦-150韩信-152王昭君-153兰陵王-154花木兰-155艾琳-156张良-157不知火舞-159朵莉亚-162娜可露露-163橘右京-166亚瑟-167孙悟空-168牛魔-169后羿-170刘备-171张飞-173李元芳-174虞姬-175钟馗-176杨玉环-177成吉思汗-178杨戬-179女娲-180哪吒-182干将莫邪-183雅典娜-184蔡文姬-186太乙真人-187东皇太一-189鬼谷子-190诸葛亮-191大乔-192黄忠-193铠-194苏烈-195百里玄策-196百里守约-197弈星-198梦奇-199公孙离-312沈梦溪-501明世隐-502裴擒虎-503狂铁-504米莱迪-505瑶-506云中君-507李信-508伽罗-509盾山-510孙策-511猪八戒-513上官婉儿-514亚连-515嫦娥-517大司命-518马超-519敖隐-521海月-522曜-523西施-524蒙犽-525鲁班大师-527蒙恬-528澜-529盘古-531镜-533阿古朵-534桑启-536夏洛特-537司空震-538云缨-540金蝉-542暃-544赵怀真-545莱西奥-548戈娅-563海诺-564姬小满-581元流之子-]] local k=0 yx={} for a in YXDMS:gmatch('(%d+)')do k=k+1 yx[a+0]=k end mc={} for a in YXDMS:gmatch('%d+(.-)%-')do mc[#mc+1]=a end ddm={} for a in YXDMS:gmatch('(%d+)')do ddm[#ddm+1]=a end mmc={} local k=0 for a in YXDMS:gmatch('%d+(.-)%-')do k=k+1 mmc[a]=k end if yxmcdz==nil then db=gg.getRangesList("dataCache.db")[1] start=db["start"] over=db["end"] gg.clearResults() gg.setRanges(-2080896) gg.searchNumber(':使用英雄',1,false,gg.SIGN_EQUAL,start,over) gg.refineNumber(-124,1) yxmcdz=gg.getResults(gg.getResultCount()) gg.clearResults() end ::fh:: local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x4A8820,0x5F0,0x250,0x520,0x20} local ttt = S_Pointer(t, tt, true) local YX=gg.getValues({{address=ttt,flags=4,value=nil},}) if YX[1].value==0 then TS="未检测到当前英雄!可手动输入" else TS="当前英雄名称:" end if YX[1].value==0 then DM=nil else DM=YX[1].value end local mds=mc[yx[DM]] local YXDM=gg.prompt({"输入英雄名称-"..TS},{mds},{"text"}) if YXDM==nil then ZY()else if YXDM[1]:match('[^%s]')==nil then gg.alert("您没有输入英雄名称") goto fh else if ddm[mmc[YXDM[1]]]==nil then local yxd={} for a=1,#mc do for b in mc[a]:gmatch(YXDM[1])do yxd[#yxd+1]=a end end local yxjm={} local yxjms={} for a=1,#yxd do yxjms[a]=ddm[yxd[a]] yxjm[a]='['..yxjms[a]..']'..mc[yxd[a]] end if #yxjm==0 then gg.alert('没有这个英雄')goto fh else local xx=gg.choice(yxjm,nil,[[[十二]英雄名字搜索识别]]) if xx==nil then goto fh else YXDM[1]=yxjms[xx] end end else local mm=mmc[YXDM[1]] YXDM[1]=ddm[mm] end local t = {"libGameCore.so:bss", "Cb"} local tt = {0x144538,0x0} local ttt = S_Pointer(t, tt, true) local getPointer = function(addr) return gg.getValues({{address = addr, flags = gg.TYPE_QWORD}})[1].value end gg.clearResults() gg.setRanges(4) gg.searchNumber(YXDM[1].."00~"..YXDM[1].."20",4, false, gg.SIGN_EQUAL, ttt, ttt+0x4000) nnn=gg.getResults(gg.getResultsCount()) gg.clearResults() local time = os.clock() if #nnn == 1 then gg.alert("英雄代码:"..YXDM[1].."\n该英雄可能未拥有皮肤或无法检测") else local hqdb={} for i=1,#nnn do hqdb[#hqdb+1]={address=nnn[i].address+8,flags=32} end hqdz=gg.getValues(hqdb) gggg=hqdz[1].value table.remove(hqdz,1) local k={} for a=1,#hqdz do k[a]={address=hqdz[a].value+0x238,flags=4} end local XY,bb=gg.getValues(k),{} local cvb={} for i=1,#hqdz do cvb[#cvb+1]={address=hqdz[i].value,flags=4} end py=gg.getValues(cvb) local bb={} -----皮肤,星源检测 for a=1,#hqdz do sl=#hqdz if XY[a].value~=0 then bb[a]="皮肤"..a.."(有星元皮肤)" else bb[a]="皮肤"..a end end --bb(选择界的文字) gg.toast("检测到该英雄有"..sl.."个皮肤,选择修改") local dm=YXDM[1]+0 local pf=#bb local sy=yx[dm] local dz1=yxmcdz[sy].address k={} for a=138,pf*222 do k[#k+1]={address=dz1+a,flags=1} end k=gg.getValues(k) z=Char(k,'b')--参数1-数值表,参数2-类型(W和B) local b,dm,s={},dm*100,1 for a in z:gmatch('费使用.-皮肤(.-)<')do b[#b+1]='['..dm+s..']'..a s=s+1 end if #bb==#b then ghj=#bb elseif #bb>#b then ghj=#b else ghj=#bb end for a=1,ghj do bb[a]=string.gsub(bb[a],'皮肤'..a,b[a]) end PF = gg.multiChoice(bb, nil,"检测到该英雄共有"..sl.."个皮肤,请选择修改,识别已耗时:"..os.clock() - time) if PF==nil then goto fh else for a=1,12 do if PF[a]==true then if bb[a]:match('星元')~=nil then LB=a XYXG(py[a].address) else LB=a end end end local time = os.clock() PY=gggg if LB==nil then else gg.copyMemory(py[LB].address,gggg,0x308) gg.setValues({{address=PY+4,flags=4,value=LB+1},{address=PY,flags=4,value=YXDM[1].."00"}}) gg.alert("编辑完成\n英雄代码:"..YXDM[1].."\n第"..LB.."款皮肤\n修改耗时:"..os.clock() - time.."") gg.clearResults() end end end end end end), changan.button("上帝视角", function() b = gg.prompt({"输入视角高度[1;10]"},{'1'},{'number'})[1] xyss({{-1049089802,4,32},{1064238880,4,124},{1125515264,4,480},},{{b*14,16,100,true},{-16*b-6,16,104,true},},"修改") end ), changan.button("去打塔上限", function() time=os.clock() PYSS({['gnm']='去打塔上限',['md5']='c2e576e33f17f9e522c4fa861ecfdb16',['ncfw']=-2080896,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='360000',},['ftz']={{['py']=-232,['lx']=4,['sz']='6000',},{['py']=-224,['lx']=4,['sz']='1000',},{['py']=-216,['lx']=4,['sz']='1000',},{['py']=-208,['lx']=4,['sz']='6000',},{['py']=-200,['lx']=4,['sz']='6000',},{['py']=-32,['lx']=4,['sz']='1000',},{['py']=8,['lx']=4,['sz']='2000',},},['xgz']={{['py']=-232,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=-224,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=-246,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=-208,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=-200,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=-32,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=8,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=0,['lx']=4,['sz']='-99999999',['zd']=false,['bz']='',['dj']=false,['sf']=false,},},}) ces=balert("去打塔上限成功,耗时:"..os.clock()-time.."秒") end ), changan.button("无限火力", function() local t={"libGameCore.so:bss","Cb"} local tt={0x1522A0,0xB8,0x7E0} local start=S_Pointer(t,tt,true) over=start+0x150000 time=os.clock() local Search_array={ {-241108919,4,-2080896,"",start,over}, {-241108919,0x60,4}, {-241108919,0xB8,4}, } local Modifythe_array={ {0,0xAC,4}, {-1,0xB0,4}, {-1,0xB4,4}, {-1,0x140,4}, } local num=LSQ_pointer(Search_array,Modifythe_array,"修改") balert('无限火力已注入\n耗时'..os.clock()-time..'秒') end ), changan.button("技能全图打塔", function() a = gg.prompt({"开完后购买苍穹\n输入技能代码:全图七星斩53603\n司马懿全图斩13708\n蓝全图强普52805\n"},{'53603'},{'number'}) if a==nil then balert("取消") return end if a[1]=="" then balert("未输入") return end JNXG({["技能代码"]=a[1],["冷却"]=0,["后摇"]=-1,["全图锁定"]=true,["死亡释放"]=-1}) local db=gg.getRangesList("dataCache.db")[1] xyss({{11311,4,-2080896,db["start"],db["end"]},{704482159,4,8},},{{0,4,36,false},{50000,4,96,false},{50000,4,112,false},{a[1],4,352,false},{9,4,356,false},},"修改") local a=gg.getRangesList("dataCache.db")[1] xyss({{360000,4,-2080896,a["start"],a["end"]},{6000,4,-232},},{{-99999999,4,-232,false},{-99999999,4,-224,false},{-99999999,4,-216,false},{-99999999,4,-200,false},{-99999999,4,-32,false},{-99999999,4,0,false},{-99999999,4,8,false},},"修改") gg.alert("最后一步失败,说明已经开过") end ), changan.button("苍穹编辑", function() local t = {"libGameCore.so:bss", "Cb", } local tt = {0x1555C0, 0x108, 0x458} local ttt = S_Pointer(t, tt, true) local y=gg.getValues({ [1]={address=ttt+56,flags=4,value=nil}, [2]={address=ttt+64,flags=4,value=nil}, [3]={address=ttt+96,flags=4,value=nil}, [4]={address=ttt+100,flags=4,value=nil}, [5]={address=ttt+104,flags=4,value=nil}, [6]={address=ttt+108,flags=4,value=nil}, [7]={address=ttt+112,flags=4,value=nil}, [8]={address=ttt+116,flags=4,value=nil}, [9]={address=ttt+120,flags=4,value=nil}, [10]={address=ttt+124,flags=4,value=nil}, [11]={address=ttt+128,flags=4,value=nil}, [12]={address=ttt+132,flags=4,value=nil}, [13]={address=ttt+136,flags=4,value=nil}, [14]={address=ttt+140,flags=4,value=nil}, [15]={address=ttt+144,flags=4,value=nil}, [16]={address=ttt+148,flags=4,value=nil}, [17]={address=ttt+384,flags=4,value=nil}, [18]={address=ttt+388,flags=4,value=nil}, }) B=gg.prompt({"买价","卖价","物理攻击","攻速*100","暴击率*100","吸血*100","法术攻击","冷缩*100","最大蓝量","每五秒回蓝","物抗","法抗","最大生命值","每五秒回血","移速*100","普攻强度","主动技能代码","按键位置"},{[1]=y[1].value,[2]=y[2].value,[3]=y[3].value,[4]=y[4].value,[5]=y[5].value,[6]=y[6].value,[7]=y[7].value,[8]=y[8].value,[9]=y[9].value,[10]=y[10].value,[11]=y[11].value,[12]=y[12].value,[13]=y[13].value,[14]=y[14].value,[15]=y[15].value,[16]=y[16].value,[17]=y[17].value,[18]=y[18].value},{[1]="number",[2]="number",[3]="number",[4]="number",[5]="number",[6]="number",[7]="number",[8]="number",[9]="number",[10]="number",[11]="number",[12]="number",[13]="number",[14]="number",[15]="number",[16]="number",[17]="number",[18]="number"}) gg.setValues({ [1]={address=ttt+56,flags=4,value=B[1]}, [2]={address=ttt+64,flags=4,value=B[2]}, [3]={address=ttt+96,flags=4,value=B[3]}, [4]={address=ttt+100,flags=4,value=B[4]}, [5]={address=ttt+104,flags=4,value=B[5]}, [6]={address=ttt+108,flags=4,value=B[6]}, [7]={address=ttt+112,flags=4,value=B[7]}, [8]={address=ttt+116,flags=4,value=B[8]}, [9]={address=ttt+120,flags=4,value=B[9]}, [10]={address=ttt+124,flags=4,value=B[10]}, [11]={address=ttt+128,flags=4,value=B[11]}, [12]={address=ttt+132,flags=4,value=B[12]}, [13]={address=ttt+136,flags=4,value=B[13]}, [14]={address=ttt+140,flags=4,value=B[14]}, [15]={address=ttt+144,flags=4,value=B[15]}, [16]={address=ttt+148,flags=4,value=B[16]}, [17]={address=ttt+384,flags=4,value=B[17]}, [18]={address=ttt+388,flags=4,value=B[18]}, }) ces=balert("编辑成功") end ), changan.button("苍穹属性恢复", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb", } local tt = {0x1555C0, 0x108, 0x458} local ttt = S_Pointer(t, tt, true) gg.setValues({ [1]={address=ttt+56,flags=4,value=2120}, [2]={address=ttt+64,flags=4,value=1272}, [3]={address=ttt+96,flags=4,value=100}, [4]={address=ttt+100,flags=4,value=0}, [5]={address=ttt+104,flags=4,value=0}, [6]={address=ttt+108,flags=4,value=0}, [7]={address=ttt+112,flags=4,value=0}, [8]={address=ttt+116,flags=4,value=1000}, [9]={address=ttt+120,flags=4,value=0}, [10]={address=ttt+124,flags=4,value=0}, [11]={address=ttt+128,flags=4,value=0}, [12]={address=ttt+132,flags=4,value=0}, [13]={address=ttt+136,flags=4,value=500}, [14]={address=ttt+140,flags=4,value=0}, [15]={address=ttt+144,flags=4,value=0}, [16]={address=ttt+148,flags=4,value=0}, [17]={address=ttt+384,flags=4,value=91000}, [18]={address=ttt+388,flags=4,value=9}, }) ces=balert("数值恢复成功,耗时:"..os.clock()-time.."秒") end ), changan.button("无限名刀", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--远 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--近 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("修改名刀开启成功") balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("自定义技能无CD后摇", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--价格 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1000000 a = gg.prompt({"输入技能代码"},{'53603'},{'number'}) if a==nil then balert("取消") return end if a[1]=="" then balert("未输入") return end local YH={{a[1],4,-2080896,"技能修改",ttt,aaa},{-241108919,0x8,4},} local XZ={{0,180,4,false},{-50,328,4,false},{-1,184,4,false},{-1,188,4,false},} local num=LSQ_pointer(YH,XZ,'修改') balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("典韦大招制裁队友", function() gg.clearList() time=os.clock() local t = {"libGameCore.so:bss", "Cb", } local tt = {0x1555C0, 0x108, 0x458} local ttt = S_Pointer(t, tt, true) gg.setValues({ {address=ttt+56,flags=4,value=0}, {address=ttt+96,flags=4,value=20000}, {address=ttt+384,flags=4,value=12930}, }) ces=balert("苍穹修改成功,耗时:"..os.clock()-time.."秒") local qmnb= { {['memory']=-2080896}, {['name']='技能'}, {['value']=12930, ['type']=4}, {['lv']=210,['offset']=-820, ['type']=4}, {['lv']=210,['offset']=-816, ['type']=4}, } local qmxg= { {['value']=12930,['offset']=0,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.setValues({ [1]={address=gg.getListItems(1)[1].address+172,flags=4,value=0},---冷却 [2]={address=gg.getListItems(1)[1].address+176,flags=4,value=-1},---后摇 [3]={address=gg.getListItems(1)[1].address+180,flags=4,value=-1}, [8]={address=gg.getListItems(1)[1].address+228,flags=4,value=99999999},--指示器范围 [9]={address=gg.getListItems(1)[1].address+232,flags=4,value=99999999},--指示器范围 [10]={address=gg.getListItems(1)[1].address+236,flags=4,value=99999999},--指示器范围 [11]={address=gg.getListItems(1)[1].address+240,flags=4,value=99999999},--指示器范围 [12]={address=gg.getListItems(1)[1].address+244,flags=4,value=99999999}, }) [13]={address=gg.getListltems(1)[1].address+276,flags=4,value=2052}, gg.clearList() end ), changan.button("马超无限戳", function() JNXG({["技能代码"]=51806,["冷却"]=0,["后摇"]=-1}) YXXG({["英雄代码"]=518,["普攻"]=51806}) end ), changan.button("澜无限刮", function() JNXG({["技能代码"]=52805,["冷却"]=0,["后摇"]=-1}) YXXG({["英雄代码"]=528,["普攻"]=52805}) end ), changan.button("添加召唤师技能", function() a = gg.prompt({"请输入技能代码"},{''},{'number'}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1456C0, 0x5F34} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = a[1]}}) gg.alert("技能"..a[1].."添加成功\n请在召唤师技能里更换") end ), changan.button("训练营指令", function() time=os.clock() a = gg.prompt({"指令开","关指令"},{false,false},{'checkbox','checkbox'}) if a[1]==false and a[2]==false or a==nil then balert("未选择") return end if a[1] ==true then b=16777216 end if a[2]==true then b=0 end local t = {"libGameCore.so:bss", "Cb"} local tt = {0x13C190, 0x108, 0x704} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = b}}) balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("全装备价格自定", function() b = gg.prompt({"作者:2671314285\n输入价格"},{'0'},{'number'}) local db=gg.getRangesList("dataCache.db")[1] xyss({{1111,4,-2080896,db["start"],db["end"]},{1112,4,496},},{{1111,4,0,false},},"载入") local ttt=gg.getResults(1)[1].address+0x24 local addd={} for i=0x1F0,0x16500,0x1F0 do table.insert(addd,{address=ttt+i,flags=4,value=0}) end gg.setValues(addd) ces=balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("关羽全技能强化", function() time=os.clock() local t = {"libGameCore.so", "Cd"} local tt = {0x4383D0, 0x78, 0x208, 0x45C} local ttt = S_Pointer(t, tt, true) gg.setValues({ [1]={address=ttt,flags=4,value=24010}, [2]={address=ttt+20,flags=4,value=24020}, [3]={address=ttt+40,flags=4,value=24030}, [4]={address=ttt+60,flags=4,value=24000}, }) ces=balert("关羽全技能强化,耗时:"..os.clock()-time.."秒") end ), changan.button("狄仁杰2技能无限放", function() local qmnb= { {['memory']=-2080896}, {['name']='狄仁杰2技能无限放'}, {['value']=133260, ['type']=4}, {['lv']=-1,['offset']=20, ['type']=4}, } local qmxg= { {['value']=1401422283,['offset']=152,['type']=4}, {['value']=-2001836130,['offset']=156,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("百里2减CD", function() local qmnb= { {['memory']=-2080896}, {['name']='百里2技能冷却减半'}, {['value']=-1964341926, ['type']=4}, {['lv']=7,['offset']=-40, ['type']=4}, } local qmxg= { {['value']=8000,['offset']=-20,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("自定义英雄放大", function() B=gg.prompt({"请输入英雄代码","输入放大倍数[1;15]"},{[1]="196",[2]="1"},{[1]="number",[2]="number"}) local qmnb= { {['memory']=-2080896}, {['name']='模型放大'}, {['value']=90000, ['type']=4}, {['lv']=B[1],['offset']=-292, ['type']=4}, } local qmxg= { {['value']=B[2]*100,['offset']=-216,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.switch("单机高光", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("20044", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("20044", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(99999) gg.editAll("20011", gg.TYPE_DWORD) ces=balert("高光时刻开启") end, function() gg.clearResults() gg.setRanges(32) gg.searchNumber("20011", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("20011", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(99999) gg.editAll("20044", gg.TYPE_DWORD) ces=balert("高光时刻关闭") end), changan.button("单机高光2(无需恢复)", function() PYSS({['gnm']='单机高光',['md5']='f5150693b47935b20a0a03fe6158205e',['ncfw']=32,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='80102',},['ftz']={{['py']=4,['lx']=4,['sz']='0',},{['py']=-4,['lx']=4,['sz']='0',},},['xgz']={{['py']=36,['lx']=4,['sz']='20011',['zd']=false,['bz']='',['dj']=false,['sf']=false,},},}) end ), changan.button("自定义英雄技能免学习", function() gg.clearList() a = gg.prompt({"输入英雄代码"},{'0'},{'number'}) PYSS({['gnm']='英雄编辑',['md5']='99a1191c8b18e429b1088c68bf5ce516',['ncfw']=-2080896,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='90000',},['ftz']={{['py']=-292,['lx']=4,['sz']=a[1],},{['py']=-212,['lx']=4,['sz']='7000',},},['xgz']={{['py']=0,['lx']=4,['sz']='90000',['zd']=false,['bz']='',['dj']=true,['sf']=false,},},}) gg.setValues({ [1]={address=gg.getListItems(1)[1].address-72,flags=4,value=-1},---1技能 [2]={address=gg.getListItems(1)[1].address-52,flags=4,value=-1},---2技能 [3]={address=gg.getListItems(1)[1].address-32,flags=4,value=-1},---3技能 [4]={address=gg.getListItems(1)[1].address-12,flags=4,value=-1},---4技能 }) gg.clearList() end ), changan.button("自定义技能基础伤害", function() gg.clearList() local t = {"libGameCore.so:bss", "Cb", } local tt = {0x152690,0x388,0x2408,0x1D50} local start = S_Pointer(t, tt, true) over=start+0x605430 a = gg.prompt({"输入技能代码"},{'19620'},{'number'}) if a==nil then gg.alert("取消") return end if a[1]=="" then gg.alert("未输入") return end local YH={{a[1]..0,4,-2080896,"技能暴击",start,over},{10000,-0x68,4},} local XZ={{a[1]..0,0x0,4,true},} local num=LSQ_pointer(YH,XZ,'冻结') local y=gg.getValues({ [1]={address=gg.getListItems(1)[1].address+0xE8,flags=4,value=nil} }) b = gg.prompt({"基础伤害"},{y[1].value},{'number'}) gg.setValues({ {address=gg.getListItems(1)[1].address+0xE8,flags=4,value=b[1]} }) gg.clearList() end ), changan.button("立即复活次数(改0无弹窗)", function() PYSS({['gnm']='单机立即复活次数(外)',['md5']='89c2af03ba3975adc7018846ebba104e',['ncfw']=-2080896,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='1457',},['ftz']={{['py']=-8,['lx']=4,['sz']='1456',},{['py']=-44,['lx']=4,['sz']='5',},},['xgz']={{['py']=-12,['lx']=4,['sz']='6',['zd']=true,['bz']='改0将不再有立即复活弹窗',['dj']=false,['sf']=false,},},}) ces=balert("修改成功") end ), changan.button("名刀技能属性恢复", function() --远 local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1515D8,0x3288,0x1098} local ttt = S_Pointer(t, tt, true) gg.setValues({ {address=ttt-12,flags=4,value=120000}, {address=ttt+16,flags=4,value=-297008191}, {address=ttt+20,flags=4,value=14537216}, {address=ttt+24,flags=4,value=6}, {address=ttt+60,flags=4,value=13}, }) --近 local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1515D8,0x1C88,0xB90} local ttt = S_Pointer(t, tt, true) gg.setValues({ {address=ttt-12,flags=4,value=120000}, {address=ttt+16,flags=4,value=-297008191}, {address=ttt+20,flags=4,value=12966144}, {address=ttt+24,flags=4,value=6}, {address=ttt+60,flags=4,value=13}, }) local qmnb= { {['memory']=-2080896}, {['name']='名刀价格'}, {['value']=16007936, ['type']=4}, {['lv']=16016128,['offset']=88, ['type']=4}, } local qmxg= { {['value']=1900,['offset']=108,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("开启成功") end ), changan.button("自定义技能可暴击", function() b = gg.prompt({"输入技能代码"},{'19620'},{'number'})[1] db=gg.getRangesList("dataCache.db")[1] xyss({{b.."0~"..b.."9",4,-2080896,db["start"],db["end"]},{-1,4,16}},{{65536,4,972,false},},"修改") end ), changan.button("自定义改伤害类型", function() local b = gg.prompt({"输入技能代码","物伤","法伤","真伤"},{'19620'},{'number','checkbox','checkbox','checkbox'}) local db=gg.getRangesList("dataCache.db")[1] if b==nil then return end if b[2]==true then lx=608246784 sj=0 end if b[3]==true then lx=597522432 sj=1 end if b[4]==true then lx=610587392 sj=2 end xyss({{b[1].."0~"..b[1].."9",4,-2080896,db["start"],db["end"]},{-1,4,16},},{{lx,4,172,false},{sj,4,200,false},},"修改") end ), changan.button("全英雄部分皮[开启后皮肤编辑器无效]", function() local time = os.clock() db=gg.getRangesList("dataCache.db")[1] xyss({{4912,4,-2080896,db["start"],db["end"]},{105,4,8},},{{105,4,8,false},},"载入") local ttt=gg.getResults(1)[1].address hq={} xg={} for i=0,0x1270,0x28 do table.insert(hq,{address=ttt+i+0xC,flags=4}) end v=gg.getValues(hq) for i=0,118,1 do table.insert(xg,{address=ttt+0x28*i+0x1C,flags=4,value=v[i+1].value}) end gg.setValues(xg) gg.alert("开启成功,耗时:"..os.clock()-time.."秒") end ), changan.button("自定义技能时长", function() local b = gg.prompt({"输入英雄代码","输入原本时长(非精准修改不输入)","精准修改"},{'196','10000',false},{'number','number','checkbox'}) if b==nil then gg.alert("你输入的值有错") return end local db=gg.getRangesList("dataCache.db")[1] xyss({{b[1].."000~"..b[1].."999",4,-2080896,db["start"],db["end"]},{-1,4,16},},{{3000,4,0xB0,false},},"载入") if b[3]==true then gg.searchNumber(b[2],4, false, gg.SIGN_EQUAL, 0, -1) else gg.refineNumber("0", gg.TYPE_DWORD, false, gg.SIGN_NOT_EQUAL, 0, -1) end local v=gg.getResults(9999) local zs,xg={},{} for i=1,#v do zs[i]=v[i].value end local SC=gg.multiChoice(zs,nil,"请选择要修改的时长") local h = gg.prompt({"输入改成的时长(单位;0.001s)"},{'10000'},{'number'}) if h==nil then gg.alert("你输入的值有错") return end for i=1,#zs do if SC[i]==true then xg[#xg+1]={address=v[i].address,flags=4,value=h[1]} end end gg.setValues(xg) gg.toast("共修改"..#xg.."个值") end ), changan.button("自定义技能被动层数上限", function() a = gg.prompt({"输入英雄代码","输入原本层数上限","输入要改成的层数上限"},{'190','5','5'},{'number'}) if a==nil then balert("取消") return end if a[1]=="" then balert("未输入") return end local t = {"libGameCore.so:bss", "Cb", } local tt = {0x152690,0x388,0x2408,0x1D50} local start = S_Pointer(t, tt, true) over=start+0xCA7080 --快搜指针配置-- local time=os.clock() local YH={{a[1].."000~"..a[1].."999",4,-2089896,"层数上限",start,over},{a[2], 0x8C, 4},{10000,-0x68,4}} local XZ={{a[3], 0x8C, 4,false},} local num=LSQ_pointer(YH,XZ,'修改') balert("耗时"..os.clock()-time.."") end ), changan.button("自定义英雄全技能可暴击", function() b = gg.prompt({"输入英雄代码"},{'312'},{'number'})[1] db=gg.getRangesList("dataCache.db")[1] xyss({{b.."000~"..b.."999",4,-2080896,db["start"],db["end"]},{-1,4,16}},{{65536,4,972,false},},"修改") end ), }, { ---这里是第三个菜单 changan.radio({"局内编辑", { "一排释放", function() 拓展(3,"随机释放") end }, { "自定义技能随机释放", function() 拓展(3,"自定义技能随机释放") end }, { "局内编辑", function() 拓展(3,"局内编辑") end }, { "名刀移动释放", function() 拓展(3,"名刀移动释放") end }, }), changan.button("去攻速上限", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E6D8,0x0,0x640,0x640,0x34} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 99999}}) ces=balert("去攻速上限,耗时:"..os.clock()-time.."秒") end ), changan.button("去等级上限", function() local qmnb= { {['memory']=4}, {['name']='去等级上限'}, {['value']=2457600, ['type']=4}, {['lv']=81920000,['offset']=4, ['type']=4}, {['lv']=5,['offset']=116, ['type']=4}, } local qmxg= { {['value']=1000,['offset']=-24,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("ca内透[开]", function() local qmnb= { {['memory']=4}, {['name']='ca内透'}, {['value']=51076, ['type']=4}, {['lv']=51076,['offset']=4, ['type']=4}, {['lv']=113,['offset']=8, ['type']=4}, {['lv']=113,['offset']=12, ['type']=4}, } local qmxg= { {['value']=99999999,['offset']=16,['type']=4}, {['value']=99999999,['offset']=20,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("ca内透[关]", function() local qmnb= { {['memory']=4}, {['name']='ca内透'}, {['value']=51076, ['type']=4}, {['lv']=51076,['offset']=4, ['type']=4}, {['lv']=113,['offset']=8, ['type']=4}, {['lv']=113,['offset']=12, ['type']=4}, } local qmxg= { {['value']=1000,['offset']=16,['type']=4}, {['value']=1000,['offset']=20,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("隐藏暂停[基址]", function() mm=gg.alert("是否已经在局内且已按下暂停,处于暂停状态","是(开启)","否(准备好再开)") if mm==1 then local time = os.clock() local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x1507460,0x38,0x100,0x10,0x308,0x84} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=16,value=0}}) gg.alert('开启成功\n用时'..os.clock()-time..'秒,请点两下暂停刷新') end end ), changan.button("隐藏暂停[指针](基址没用用这个)", function() b=gg.alert("隐藏暂停,建议开启后刷新暂停隐藏后关闭","开启","关闭") if b==1 then a=0 elseif b==2 then a=1 elseif b==0 then return end xyss({{1056997505,4,32},{1061734601,4,-8},{1036831949,4,8},},{{a,16,4,false},},"修改") end ), changan.button("一键巅峰召唤师", function() local readPointer = function(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 Ran(p) local new = {} while #p > 0 do local t = math.random(1, #p) table.insert(new, p[t]) table.remove(p, t) end return new end local getPointer = function(addr) return gg.getValues({{address = addr, flags = gg.TYPE_QWORD}})[1].value end local time = os.clock() local name = Ran({'1', '2', '3', '4', '5', }) local Name = Ran({'6', '7', '8', '9', }) local hero = readPointer('libil2cpp.so:bss', {0x75E8,0xB8,0x70,0x38,0x10,0x10,0x20}, 1) local edit = {} for i = 0, 8 do local p = getPointer(getPointer(hero + i * 8) + 0xA0) + 0x14 table.insert(edit, {address = p - 4, flags = 4, value = 6}) table.insert(edit, {address = p, flags = 4, value = ";巅峰"}) table.insert(edit, {address = p + 4, flags = 4, value = ";召唤"}) if i > 4 then table.insert(edit, {address = p + 8, flags = 4, value = ";师" .. Name[i - 4]}) else table.insert(edit, {address = p + 8, flags = 4, value = ";师" .. name[i + 1]}) end end local p = getPointer(getPointer(hero + 72) + 0xA0) + 0x14 table.insert(edit, {address = p - 4, flags = 4, value = 7}) table.insert(edit, {address = p, flags = 4, value = ";巅峰"}) table.insert(edit, {address = p + 4, flags = 4, value = ";召唤"}) table.insert(edit, {address = p + 8, flags = 4, value = ";师1"}) table.insert(edit, {address = p + 12, flags = 4, value = ";0"}) gg.setValues(edit) gg.alert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("一键晓燕宇宙服", function() local readPointer = function(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 Ran(p) local new = {} while #p > 0 do local t = math.random(1, #p) table.insert(new, p[t]) table.remove(p, t) end return new end local getPointer = function(addr) return gg.getValues({{address = addr, flags = gg.TYPE_QWORD}})[1].value end local time = os.clock() local name = Ran({'1', '2', '3', '4', '5', }) local Name = Ran({'6', '7', '8', '9', }) local hero = readPointer('libil2cpp.so:bss', {0x75E8,0xB8,0x70,0x38,0x10,0x10,0x20}, 1) local edit = {} for i = 0, 8 do local p = getPointer(getPointer(hero + i * 8) + 0xA0) + 0x14 table.insert(edit, {address = p - 4, flags = 4, value = 6}) table.insert(edit, {address = p, flags = 4, value = ";晓燕"}) table.insert(edit, {address = p + 4, flags = 4, value = ";宇宙"}) -- table.insert(edit, {address = p + 8, flags = 4, value = ";师" .. name[i + 1]}) if i > 4 then table.insert(edit, {address = p + 8, flags = 4, value = ";服" .. Name[i - 4]}) else table.insert(edit, {address = p + 8, flags = 4, value = ";服" .. name[i + 1]}) end end local p = getPointer(getPointer(hero + 72) + 0xA0) + 0x14 table.insert(edit, {address = p - 4, flags = 4, value = 7}) table.insert(edit, {address = p, flags = 4, value = ";晓燕"}) table.insert(edit, {address = p + 4, flags = 4, value = ";宇宙"}) table.insert(edit, {address = p + 8, flags = 4, value = ";服1"}) table.insert(edit, {address = p + 12, flags = 4, value = ";0"}) gg.setValues(edit) gg.alert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("红方水晶血量", function() b = gg.prompt({"水晶数量,改0水晶爆炸"},{'9000'},{'number'})[1] b=b*8192 xyss({{4915200,4,4},{2,4,-68},{2,4,-64},{1610612736,4,-16},},{{b,4,-4,false},},"修改") end ), changan.button("蓝方水晶血量", function() b = gg.prompt({"水晶数量,改0水晶爆炸"},{'9000'},{'number'})[1] b=b*8192 xyss({{4915200,4,4},{2,4,-68},{308,4,-64},{1610612736,4,-16},},{{b,4,-4,false},},"修改") end ), changan.button("外塔全破", function() local qmnb= { {['memory']=4}, {['name']='外塔全破'}, {['value']=5734400, ['type']=4}, {['lv']=2,['offset']=-12, ['type']=4}, } local qmxg= { {['value']=0,['offset']=-4,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("当前英雄叛变", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x35660,0xA8,0xD8,0x3C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=2}}) balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("叛变恢复", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x35660,0xA8,0xD8,0x3C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=1}}) balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("自定义墙体高度", function() a=gg.prompt({"请输入你要改的高度[1;10]"},{1},{"number"}) if a==nil then balert("取消") return end if a[1]=="" then balert("未输入") return end local YH={{859553070,4,4,"墙体特征"},{192938034,-260,4},{222298162,1036,4},{66,904,4},}--(偏移-272即数量特征) --local XZ={{修改值,偏移,类型,冻结:true/不冻结:false},} local num=LSQ_pointer(YH,XZ,'载入') C=gg.getValues({{address=gg.getResults(1)[1].address-272,flags=4}})[1].value local YX = {{C,4,4, "编辑成功"},{1065353216,0xE0,4},{1065353216,0xB8,4},} local XG = {{a[1],0xCC,16,false},} local num = LSQ_pointer(YX, XG,"修改") balert("墙体高度注入成功") end ), changan.button("万象天引", function() local YH={{-2147483616,4,4,"万象天引"},{256,0x3C,4},} --local XZ={{0,48,4,false},{0,56,4,false},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getResultCount() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E6D8,0x0,0x750,0x8F0,0xC} local ttt = S_Pointer(t, tt, true) b=gg.getValues({{address=ttt,flags=4},{address=ttt+8,flags=4}}) c=0 as=true gg.setVisible(false) while(as)do c=c+1 if c==a then as=false balert("开启成功") return end gg.setValues({{address=gg.getResults(a)[c].address+48,flags=4,value=b[1].value},{address=gg.getResults(a)[c].address+56,flags=4,value=b[2].value}}) end end ), changan.button("坐标传送", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E2F0,0x0,0x728,0x30,0xC} local ttt = S_Pointer(t, tt, true) a = gg.prompt({"己方泉水","敌方泉水","中路","对抗路(上路)","发育路(下路)","蓝buff坑位","红buff坑位","敌方蓝buff坑位","敌方红buff坑位","上路龙坑位","下路龙坑位"},{},{'checkbox','checkbox','checkbox','checkbox','checkbox','checkbox','checkbox','checkbox','checkbox','checkbox','checkbox'}) if a==nil then balert("取消") return end if a[1]==true then b=-53974 c=-53362 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[2]==true then b=53122 c=53374 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[3]==true then b=0 c=0 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[4]==true then b=-42282 c=42164 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[5]==true then b=42808 c=-43006 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[6]==true then b=-27963 c=1876 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[7]==true then b=2311 c=-32734 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[8]==true then b=25982 c=-2631 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[9]==true then b=-3654 c=32534 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[10]==true then b=-18593 c=24465 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end if a[11]==true then b=18301 c=-22073 gg.setValues({{address=ttt,flags=4,value=b},{address=ttt+8,flags=4,value=c}}) end end ), changan.button("哪吒大招吸人", function() PYSS({['gnm']='大招吸人',['md5']='a65e840a3c6f012622cc0ea74e08e7f2',['ncfw']=4,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='6000',},['ftz']={{['py']=-4,['lx']=4,['sz']='3000',},{['py']=4,['lx']=4,['sz']='20000',},{['py']=8,['lx']=4,['sz']='4500',},},['xgz']={{['py']=-12,['lx']=4,['sz']='1',['zd']=false,['bz']='',['dj']=false,['sf']=false,},{['py']=-8,['lx']=4,['sz']='0',['zd']=false,['bz']='',['dj']=false,['sf']=false,},},}) balert("开启成功") end ), changan.button("hdr亮度", function() balert("温馨提示:使用此脚本前必须先开启极致画质\n并且把画质亮度调到最高") b = gg.prompt({"输入HDR亮度\n0.64999997616为默认"},{[1]=0.64999997616},{[1]="number"})[1] local a=ReadPointer('libGameCore.so:bss',{0x1E6D8,0x0,0x628,0x2F8,0x7D8},1) gg.edits(a,{{b,4,0,false}}) end ), changan.button("百里范围", function() xyss({{1500,4,4},{-500,4,-56},{10000,4,-48},},{{8500,4,-52,false},{4200,4,-44,false},},"修改") end ), changan.button("鬼谷子拉全图", function() local qmnb= { {['memory']=4}, {['name']='鬼谷子拉全图'}, {['value']=189200, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=99999999,['offset']=-1088,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("李信全技能真伤", function() local qmnb= { {['memory']=4}, {['name']='李信一技能真伤'}, {['value']=507120, ['type']=4}, {['lv']=100,['offset']=-12, ['type']=4}, {['lv']=100,['offset']=-8, ['type']=4}, {['lv']=100,['offset']=-4, ['type']=4}, {['lv']=507121,['offset']=4, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, {['lv']=100,['offset']=20, ['type']=4}, } local qmxg= { {['value']=123120,['offset']=0,['type']=4}, {['value']=123120,['offset']=4,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='李信3技能真伤'}, {['value']=507320, ['type']=4}, {['lv']=100,['offset']=-12, ['type']=4}, {['lv']=100,['offset']=-8, ['type']=4}, {['lv']=100,['offset']=-4, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, {['lv']=100,['offset']=20, ['type']=4}, } local qmxg= { {['value']=123120,['offset']=0,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='李信2技能真伤'}, {['value']=507220, ['type']=4}, {['lv']=100,['offset']=-12, ['type']=4}, {['lv']=100,['offset']=-8, ['type']=4}, {['lv']=100,['offset']=-4, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, {['lv']=100,['offset']=20, ['type']=4}, } local qmxg= { {['value']=123120,['offset']=0,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("元歌傀儡(加改收回)", function() a = gg.prompt({"输入英雄代码"},{'0'},{'number'}) if a==nil then balert("取消") return end if a[1]=="" then balert("未输入") return end local YH={{125180,4,4,"自定义傀儡"},{600,-80,4},} local XZ={{a[1],-0x590,4,false},} local num=LSQ_pointer(YH,XZ,'修改') local t = {"libGameCore.so:bss", "Cb", } local tt = {0x151618,0xA8,0x658} local ttt = S_Pointer(t, tt, true) over=ttt+0x388000 local YH={{90000,4,-2080896,"英雄修改",ttt,over},{7000,-212,4},{a[1],-292,4},} local XZ={{22510,-20,4,false},} local num=LSQ_pointer(YH,XZ,'修改') end ), changan.button("随机傀儡(点一下换一次)", function() local time = os.clock() function Ran(p) local new = {} while #p > 0 do local t = math.random(1, #p) table.insert(new, p[t]) table.remove(p, t) end return new end local AB = Ran ({ "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "123", "124", "225", "126", "127", "128", "129", "130", "131", "133", "134", "135", "136", "137", "139", "140", "141", "142", "144", "146", "148", "149", "150", "152", "153", "154", "157", "162", "163", "166", "167", "168", "169", "170", "171", "173", "174", "175", "176", "177", "178", "179", "180", "182", "183", "184", "186", "187", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "312", "132", "156", "501", "502", "503", "504", "505", "507", "506", "508", "509", "510", "511", "513", "515", "518", "522", "523", "525", "527", "529", "528", "531", "524", "533", "536", "537", "155", "538", "540", "542", "534", "548", "521", "544", "545", "564", "514", "159", "563", "519", "517", }) local YH={{125180,4,4,"自定义傀儡"},{600,-80,4},} local XZ={{AB[1],-0x590,4,false},} local num=LSQ_pointer(YH,XZ,'修改') local t = {"libGameCore.so:bss", "Cb", } local tt = {0x151618,0xA8,0x658} local ttt = S_Pointer(t, tt, true) over=ttt+0x388000 local YH={{90000,4,-2080896,"英雄修改",ttt,over},{7000,-212,4},{AB[1],-292,4},} local XZ={{22510,-20,4,false},} local num=LSQ_pointer(YH,XZ,'修改') gg.alert('开启成功\n用时'..os.clock()-time..'秒\n傀儡已随机改成'..AB[1]) end ), changan.button("猴子无限敲", function() time=os.clock() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("16700", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(100000, nil, nil, nil, nil, nil, nil, nil, nil) gg.editAll("16705", gg.TYPE_DWORD) ces=balert("开启成功,耗时:"..os.clock()-time.."秒") end ), changan.button("吕布2技能冻人", function() local qmnb= { {['memory']=4}, {['name']='吕布二技能冻人'}, {['value']=123200, ['type']=4}, {['lv']=100,['offset']=-16, ['type']=4}, {['lv']=100,['offset']=-12, ['type']=4}, {['lv']=100,['offset']=-8, ['type']=4}, {['lv']=100,['offset']=8, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, } local qmxg= { {['value']=152290,['offset']=4,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("守约1技能全图视野", function() local qmnb= { {['memory']=4}, {['name']='守约一技能全图视野'}, {['value']=196110, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=99999999,['offset']=-888,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("百里守约1技能效果修改", function() time=os.clock() gg.clearList() a = gg.prompt({"输入技能代码"},{'19620'},{'number'}) local qmnb= { {['memory']=-2080896}, {['name']='技能'}, {['value']=a[1], ['type']=4}, {['lv']=210,['offset']=-820, ['type']=4}, {['lv']=210,['offset']=-816, ['type']=4}, } local qmxg= { {['value']=a[1],['offset']=0,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) local y=gg.getValues({ [1]={address=gg.getListItems(1)[1].address+184,flags=4,value=nil},---效果代码一 [2]={address=gg.getListItems(1)[1].address+188,flags=4,value=nil},---效果代码二 }) gg.clearList() --近 local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14F470, 0x2658, 0x2508} local ttt = S_Pointer(t, tt, true) gg.setValues({ {address=ttt,flags=4,value=y[1].value}, {address=ttt+4,flags=4,value=y[2].value}, }) ces=balert("技能修改,耗时:"..os.clock()-time.."秒") end ), changan.button("无限出兵", function() xyss({{33000,4,4},{10000,4,-4},{1,4,16},},{{0,4,0,false},},"修改") end ), changan.button("全局无兵", function() xyss({{33000,4,4},{10000,4,-4},{1,4,16},},{{-1,4,0,false},},"修改") end ), changan.button("刘备连喷", function() xyss({{17000,4,4},{100,4,28},{-1,4,64},{1610612736,4,152},},{{17003,4,60,false},},"修改") gg.alert("请使用一技能释放强化普攻刷新一下") end ), }, { ---这里是第四个菜单 changan.button("剧毒河道局外部分", function() local time = os.clock() local t = {"libGameCore.so:bss", "Cb", } local tt = {0x151618,0xA8,0x658} local ttt = S_Pointer(t, tt, true) local xg={} for i=0,0x28080,0x388 do table.insert(xg,{address=ttt+i+172,flags=4,value=52800}) end gg.setValues(xg) gg.alert("剧毒河道局外被动已执行\n修改耗时:"..os.clock()-time.."秒\nPowered by晓燕") end ), changan.button("剧毒河道局内部分", function() local qmnb= { {['memory']=4}, {['name']='剧毒河道局内'}, {['value']=528380, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, {['lv']=100,['offset']=20, ['type']=4}, } local qmxg= { {['value']=119300,['offset']=8,['type']=4,['freeze']=false}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='河道颜色'}, {['value']=-1073741823, ['type']=4}, {['lv']=6,['offset']=0x4, ['type']=4}, {['lv']=0,['offset']=-0x4, ['type']=4}, {['lv']=4,['offset']=-0x8, ['type']=4}, } local qmxg= { {['value']=1000,['offset']=0xA0,['type']=16}, } xqmnb(qmnb,qmxg) end ), changan.button("防御塔觉醒", function() gg.setVisible(false) v=gg.prompt({"数量","释放范围"},{"",""},{"number","number"}) if v==nil then else if v[1]==""then gg.alert("未输入数量")else if v[2]==""then gg.alert("未输入范围")else A=568349120 B=-190790573 C=1243075177 D=-950609978 E=-184250110 name="数量1" fastsearch({{A,4,4},{1610612736,-0xC,4}},{{v[1],0x58,4,false},}) name="数量2" fastsearch({{B,4,4},{1610612736,-0xC,4}},{{v[1],0x58,4,false},}) name="数量3" fastsearch({{C,4,4},{1610612736,-0xC,4}},{{v[1],0x58,4,false},}) name="数量4" fastsearch({{D,4,4},{1610612736,-0xC,4}},{{v[1],0x58,4,false},}) name="数量5" fastsearch({{E,4,4},{1610612736,-0xC,4}},{{v[1],0x58,4,false},}) local YH={ {50000,4,4,"分层"}, {100,-0x4,4}, } local TG={ } local num=LSQ_pointer(YH,TG,"载入") a=gg.getResultCount() if a>4 or a<4 then gg.alert("获取失败")else b=gg.getResults(a) local xg={} table.insert(xg,{address=b[1].address+0x170C,flags=4,value=v[2]}) table.insert(xg,{address=b[1].address+0x170C+4,flags=4,value=2}) table.insert(xg,{address=b[1].address+0x170C+0x38,flags=4,value=-1}) --------- table.insert(xg,{address=b[2].address+0x7DC,flags=4,value=v[2]}) table.insert(xg,{address=b[2].address+0x7DC+0x4,flags=4,value=2}) table.insert(xg,{address=b[2].address+0x7DC+0x38,flags=4,value=-1}) --------- table.insert(xg,{address=b[3].address+0x3A4,flags=4,value=v[2]}) table.insert(xg,{address=b[3].address+0x3A4+4,flags=4,value=2}) table.insert(xg,{address=b[3].address+0x3A4+0x38,flags=4,value=-1}) --------- table.insert(xg,{address=b[4].address+0x3BC,flags=4,value=v[2]}) table.insert(xg,{address=b[4].address+0x3BC+4,flags=4,value=2}) table.insert(xg,{address=b[4].address+0x3BC+0x38,flags=4,value=-1}) gg.setValues(xg) gg.toast("分层成功") gg.clearResults() end end end end end ), changan.button("蔡文姬一技能毒队友[局内]", function() xyss({{184111,4,4},{100,4,12},},{{119300,4,0,false},{16444472,4,136,false},},"修改") end ), changan.button("蔡文姬大招毒队友和自己[局内]", function() xyss({{184300,4,4},{100,4,12},},{{119300,4,0,false},{16777472,4,136,false},},"修改") end ), }, }) ---以下是界面生成之后执行的设置悬浮窗图片 生成拓展("随机释放", { changan.button("收起拓展", function() 取消拓展(3,"随机释放") end ), changan.button("玩一排必开(局外)", function() local time = os.clock() local db=gg.getRangesList("dataCache.db")[1] xyss({{1112,4,-2080896,db["start"],db["end"]},{1111,4,-496},},{{19620,4,-144,false},{99,4,-140,false},{811105,4,352,false},{99,4,356,false},},"修改") gg.alert("开启成功,耗时:"..os.clock()-time.."秒") end ), changan.button("自定义技能一排", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x34428,0x240,0x38,0x120,0x6C,0x320} local ttt = S_Pointer(t, tt, true) local C=gg.getValues({{address=ttt,flags=4}})[1].value a = gg.prompt({"技能代码","输入数量","一排范围","搜索范围","前四位技能代码"},{C,"50","20000","0x2000"},{'number','number','number','number','checkbox'}) xyss({{-1420754562,4,4},{1500,4,-8},},{{-104804608,4,-16,false},},"载入") if gg.getResultsCount()==0 then gg.alert("你是不是没开局外功能,赶紧退出去,开了再进来") return end b=gg.getResults(1)[1].value local l=a[1].."0~"..a[1].."9" if a[5]==true then l=a[1].."00~"..a[1].."99" end xyss({{l,4,4},{100,4,16},},{{a[1]..0,4,0,false},},"载入") local dm={} for i=1,gg.getResultsCount() do table.insert(dm,gg.getResults(99999)[i].value) end SN1=gg.choice(dm,2018,"请选择代码") c=gg.getResults(9999)[SN1].address if c==nil then alert("开启失败") return end xyss({{-408116813,4,4},{2000,4,60},},{{-408116813,4,-0xB0,false},},"载入") d=gg.getResults(1)[1].address xyss({{b,4,4,c-a[4],c+a[4]},{b,4,0},},{{666666,4,16,false},},"载入") e=gg.getResults(gg.getResultsCount()) if #e==0 then gg.alert("开启失败") return end local tz={} for i=1,#e do tz[i]={} kk=gg.getValues({{address=e[i].address,flags=4},{address=e[i].address+4,flags=4}}) table.insert(tz[i],kk[1].value) table.insert(tz[i],kk[2].value) end for w=1,#e do gg.toast(w.."/"..#e) xyss({{e[w].value,4,4},{1610612736,4,-12},},{{-1107348179,4,0,false},},"载入") f=gg.getResults(gg.getResultsCount()) for v=1,#f do g=gg.getValues({{address=f[v].address+0xA0,flags=4},{address=f[v].address+0x88,flags=4}}) if g[1].value==16 then h=f[v].address+0xA0-0x150 end if g[2].value==16 then h=f[v].address+0x88-0x150 end if g[1].value~=16 and g[2].value~=16 then gg.toast("执行一遍他妈的终于成功了") gg.setValues({{address=f[v].address+0x3C,flags=4,value=a[3]},{address=f[v].address+0x40,flags=4,value=a[2]},{address=f[v].address+0x58,flags=4,value=65536}}) end if h==nil then else gg.toast("执行一遍他妈的终于成功了") gg.copyMemory(d,h,0x11C) gg.setValues({ {address=h+0xB0,flags=4,value=tz[w][1]}, {address=h+0xB4,flags=4,value=tz[w][2]}, {address=h+0xEC,flags=4,value=a[3]}, {address=h+0xF0,flags=4,value=a[2]}, {address=h+0x108,flags=4,value=65536}, }) end end end xyss({{5000,4,4,c-a[4],c+a[4]},{-1,4,12},},{{16777216,4,44,false},},"修改") end ), changan.button("一排随机(上一个改到数量无随机情况时用)", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x34428,0x240,0x38,0x120,0x6C,0x320} local ttt = S_Pointer(t, tt, true) local C=gg.getValues({{address=ttt,flags=4}})[1].value a = gg.prompt({"输入技能代码","搜索范围","前四位技能代码"},{C,"0x10000"},{'number','number','checkbox'}) local l=a[1].."0~"..a[1].."9" if a[3]==true then l=a[1].."00~"..a[1].."99" end xyss({{l,4,4},{100,4,16},},{{a[1]..0,4,0,false},},"载入") b=gg.getResults(1)[1].address xyss({{5000,4,4,b-a[2],b+a[2]},{-1,4,12},},{{16777216,4,44,false},},"修改") end ), changan.button("全技能一排随机(数量成功,没有随机时用)", function() mmm=gg.alert("选择开关","开","关") if mmm==1 then jj=16777216 else jj=0 end xyss({{5000,4,4,},{-1,4,12},},{{jj,4,44,false},},"修改") end ), }) 生成拓展("自定义技能随机释放", { changan.button("收起拓展", function() 取消拓展(3,"自定义技能随机释放") end ), changan.button("局外开启(必开)", function() local time = os.clock() local db=gg.getRangesList("dataCache.db")[1] xyss({{1112,4,-2080896,db["start"],db["end"]},{1111,4,-496},},{{19620,4,-144,false},{99,4,-140,false}},"修改") gg.alert("开启成功,耗时:"..os.clock()-time.."秒") end ), changan.button("数量", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x34428,0x240,0x38,0x120,0x6C,0x320} local ttt = S_Pointer(t, tt, true) local C=gg.getValues({{address=ttt,flags=4}})[1].value a = gg.prompt({"输入技能代码","输入数量","16偏移进制(0x不要动)","代码四位模式(如果检测不到代码用)"},{C,'0','0x2000'},{'number','number','number','checkbox'}) if a==nil then gg.alert("未输入") return end xyss({{-1420754562,4,4},{1500,4,-8},},{{-104804608,4,-16,false},},"载入") if gg.getResultsCount()==0 then gg.alert("你是不是没开局外功能,赶紧退出去,开了再进来") return end b=gg.getResults(1)[1].value local l=a[1].."0~"..a[1].."9" if a[4]==true then l=a[1].."00~"..a[1].."99" end xyss({{l,4,4},{100,4,16},},{{a[1]..0,4,0,false},},"载入") local dm={} for i=1,gg.getResultsCount() do table.insert(dm,gg.getResults(99999)[i].value) end SN1=gg.choice(dm,2018,"请选择代码") c=gg.getResults(9999)[SN1].address if c==nil then alert("开启失败") return end xyss({{b,4,4,c-a[3],c+a[3]},{b,4,0},},{{666666,4,16,false},},"载入") d=gg.getResults(gg.getResultsCount()) local xg={} local vvv=gg.alert("共检测"..#d.."类似数值\n需循环"..#d.."次","确定","中断此次修改") if vvv==2 then return end for i=1,#d do xyss({{d[i].value,4,4},{1610612736,4,-12},},{{-1739063788,4,0,false},},"载入") local hj=gg.getResultsCount() if hj~=0 then for dj=1,hj do local e=gg.getResults(hj)[dj].address gg.toast("成功一次") local vc=gg.getValues({{address=e+0xA0,flags=4},{address=e+0x88,flags=4}}) if vc[1].value==16 then xg[#xg+1]={address=e+0x40,flags=4,value=a[2]} end if vc[2].value==16 then xg[#xg+1]={address=e+0x58,flags=4,value=a[2]} end if vc[1].value~=16 and vc[2].value~=16 then xg[#xg+1]={address=e+0x40,flags=4,value=a[2]} end end end end gg.setValues(xg) gg.toast("共修改"..#xg.."个值") end ), changan.button("360", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x34428,0x240,0x38,0x120,0x6C,0x320} local ttt = S_Pointer(t, tt, true) local C=gg.getValues({{address=ttt,flags=4}})[1].value a = gg.prompt({"输入技能代码","16偏移进制(0x不要动)","360(开)","360(关)","代码前四位"},{C,'0x2000',nil,nil},{'number','number','checkbox','checkbox','checkbox'}) if a==nil then gg.alert("未输入") return end local l=a[1].."0~"..a[1].."9" if a[5]==true then l=a[1].."00~"..a[1].."99" end xyss({{l,4,4},{100,4,16},},{{a[1]..0,4,0,false},},"载入") local dm={} for i=1,gg.getResultsCount() do table.insert(dm,gg.getResults(99999)[i].value) end SN1=gg.choice(dm,2018,"请选择代码") c=gg.getResults(9999)[SN1].address if a[3]==true then xyss({{360,4,4,c-a[2],c+a[2]},{15000,4,16},},{{3,4,12,false},},"修改") end if a[4]==true then xyss({{360,4,4,c-a[2],c+a[2]},{15000,4,16},},{{2,4,12,false},},"修改") end end), changan.button("随机", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x34428,0x240,0x38,0x120,0x6C,0x320} local ttt = S_Pointer(t, tt, true) local C=gg.getValues({{address=ttt,flags=4}})[1].value a = gg.prompt({"输入技能代码","16偏移进制(0x不要动)","随机释放范围","类型1=四点释放,2=正方形规则释放,3=不规则正方形释放,10=完全不规则释放","代码前四位"},{C,'0x2000','6000','10'},{'number','number','number','number','checkbox'}) if a==nil then gg.alert("未输入") return end local l=a[1].."0~"..a[1].."9" if a[5]==true then l=a[1].."00~"..a[1].."99" end xyss({{l,4,4},{100,4,16},},{{a[1]..0,4,0,false},},"载入") local dm={} for i=1,gg.getResultsCount() do table.insert(dm,gg.getResults(99999)[i].value) end SN1=gg.choice(dm,2018,"请选择代码") c=gg.getResults(9999)[SN1].address xyss({{5000,4,4,c-a[2],c+a[2]},{-1,4,24},},{{a[3],4,28,false},{a[4],4,32,false},{16843009,4,88,false},},"修改") end), changan.button("自定义英雄全数量[无需局外]", function() a = gg.prompt({"输入英雄代码","搜索范围","要改成的数量"},{'0','0x3000','20'},{'number'}) local YH={{a[1].."000~"..a[1].."999",4,4,"功能名称"},{100,0xC,4},} local XZ={} local num=LSQ_pointer(YH,XZ,'载入') l=gg.getResultsCount() b=gg.getResults(l) for i=1,l do gg.toast(i.."/"..l) c=b[i].address d=c-a[2] e=c+a[2] local YH={{1610612736,4,4,"功能名称",d,e},{16,0x94,4},} local XZ={{a[3],0x64,4,false},} local num=LSQ_pointer(YH,XZ,'修改') end end ), }) 生成拓展("局内编辑", { changan.button("收起拓展", function() 取消拓展(3,"局内编辑") end ), changan.button("自定义技能全单位", function() a = gg.prompt({"输入技能代码"},{'0'},{'number'}) time=os.clock() local qmnb= { {['memory']=4}, {['name']='自定义技能全单位'}, {['value']=a[1]..0, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=0,['offset']=116,['type']=4}, {['value']=0,['offset']=120,['type']=4}, {['value']=0,['offset']=128,['type']=4}, {['value']=0,['offset']=132,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("开启成功,耗时"..os.clock()-time.."秒") end ), changan.button("自定义技能全图伤害", function() time=os.clock() a = gg.prompt({"输入技能代码"},{'0'},{'number'}) local qmnb= { {['memory']=4}, {['name']='自定义技能全图伤害'}, {['value']=a[1]..0, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=0,['offset']=160,['type']=4}, {['value']=0,['offset']=164,['type']=4}, {['value']=0,['offset']=168,['type']=4}, {['value']=0,['offset']=172,['type']=4}, {['value']=0,['offset']=176,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("开启成功,耗时"..os.clock()-time.."秒") end ), changan.button("自定义复活时间[没开单机高光]", function() a = gg.prompt({"输入时间"},{'0'},{'number'}) local qmnb= { {['memory']=4}, {['name']='自定义复活时间'}, {['value']=3772416, ['type']=4}, {['lv']=20044,['offset']=-68, ['type']=4}, } local qmxg= { {['value']=a[1],['offset']=-16,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("自定义复活时间[开了单机高光]", function() a = gg.prompt({"输入时间"},{'0'},{'number'}) local qmnb= { {['memory']=4}, {['name']='自定义复活时间'}, {['value']=3772416, ['type']=4}, {['lv']=20011,['offset']=-68, ['type']=4}, } local qmxg= { {['value']=a[1],['offset']=-16,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("自定义等级", function() b = gg.prompt({"输入等级"},{'0'},{'number'}) if b==nil then balert("取消") return end if b[1]=="" then balert("未输入") return end time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E2F0, 0x0, 0x660, 0x8C0, 0xB20} local ttt = S_Pointer(t, tt, true) gg.setValues({ {address = ttt, flags = 4, value = (b[1]-1)*8192}, {address = ttt+4, flags = 4, value = 1000}, {address = ttt+8, flags = 4, value = 1000}, {address = ttt+0xC, flags = 4, value = 1000}}) balert("已修改为"..b[1].."级\n耗时:"..os.clock()-time.."秒") end ), changan.button("自定义所有人等级", function() a = gg.prompt({"输入等级"},{'0'},{'number'}) local qmnb= { {['memory']=4}, {['name']='自定义等级'}, {['value']=2457600, ['type']=4}, {['lv']=81920000,['offset']=4, ['type']=4}, } local qmxg= { {['value']=(a[1]-1)*8192,['offset']=-28,['type']=4}, {['value']=1000,['offset']=-24,['type']=4}, {['value']=1000,['offset']=-20,['type']=4}, {['value']=1000,['offset']=-16,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("自定义所有人经济", function() a = gg.prompt({"输入经济"},{'10000'},{'number'}) local qmnb= { {['memory']=4}, {['name']='自定义经济'}, {['value']=2457600, ['type']=4}, {['lv']=81920000,['offset']=4, ['type']=4}, } local qmxg= { {['value']=a[1]*8192,['offset']=-12,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.button("自定义经济", function() b = gg.prompt({"输入经济"},{'0'},{'number'}) time=os.clock() if b==nil then balert("取消") return end if b[1]=="" then balert("未输入") return end local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E2F0, 0x0, 0x660, 0x8C0, 0xB30} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = b[1]*8192}}) ces=balert("经济已修改为"..b[1].."耗时:"..os.clock()-time.."秒") end ), changan.button("修改全场亮度", function() B=gg.prompt({"全局亮度","全局亮度","全局亮度","全局亮度"},{[1]="0.6499999761581421",[2]="0.6499999761581421",[3]="0.6499999761581421",[4]="0.6499999761581421"},{[1]="number",[2]="number",[3]="number",[4]="number"}) local qmnb= { {['memory']=4}, {['name']='全局亮度'}, {['value']=0.31727299094200134, ['type']=16}, {['lv']=1.0,['offset']=-32, ['type']=16}, {['lv']=1.0,['offset']=-28, ['type']=16}, {['lv']=1.0,['offset']=-8, ['type']=16}, {['lv']=0.6705735325813293,['offset']=-4, ['type']=16}, {['lv']=0.6705735325813293,['offset']=4, ['type']=16}, } local qmxg= { {['value']=B[1],['offset']=-24,['type']=16}, {['value']=B[2],['offset']=-20,['type']=16}, {['value']=B[3],['offset']=-16,['type']=16}, {['value']=B[4],['offset']=-12,['type']=16}, } xqmnb(qmnb,qmxg) end ), changan.button("自定义当前属性", function() gg.alert("该功能必须局内才有效,百分比属性机上限修改要乘以100") gg.setVisible(false) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E2F0, 0x0, 0x660, 0x620, 0x6C} local ttt = S_Pointer(t, tt, true) y=gg.getValues({ [1]={address=ttt-0xc-0x18,flags=4},--攻速 [2]={address=ttt-0x18,flags=4},--额外攻速 [3]={address=ttt+0xFC0-0xc,flags=4},--物理攻击 [4]={address=ttt+0xFC0,flags=4},--额外物理攻击 [5]={address=ttt+0x10F8-0xc,flags=4},--基础生命 [6]={address=ttt+0x10F8,flags=4},--额外加成生命 [7]={address=ttt+0xE88-0xc,flags=4},--基础法术攻击 [8]={address=ttt+0xE88,flags=4},--额外法术攻击 [9]={address=ttt+0xD50-0xc,flags=4},--基础物抗 [10]={address=ttt+0xD50,flags=4},--额外物抗 [11]={address=ttt+0xC18-0xc,flags=4},--基础法抗 [12]={address=ttt+0xC18,flags=4},--额外法抗 [13]={address=ttt+0x9A8-0xc,flags=4},--基础法力 [14]={address=ttt+0x9A8,flags=4},--额外法力 [15]={address=ttt-0x1128,flags=4},--基础冷缩 [16]={address=ttt-0x1128+0x18,flags=4},--冷缩上限 [17]={address=ttt-0x9D4,flags=4},--额外物理穿透 [18]={address=ttt-0xB0C,flags=4},--额外法术穿透 [19]={address=ttt-0xC48,flags=4},--额外物理吸血 [20]={address=ttt-0xC48+0x18,flags=4},--物理吸血上限 [21]={address=ttt-0xD7C,flags=4},--额外法术吸血 [22]={address=ttt-0xD7C+0x14,flags=4},--法术吸血上限 [23]={address=ttt-0x150,flags=4},--额外暴击率 [24]={address=ttt+0x870,flags=4},--每五秒回蓝 [25]={address=ttt+0x120,flags=4},--每五秒回血 [26]={address=ttt-0xFEC,flags=4},--任性 [27]={address=ttt-0xFEC+0x14,flags=4},--任性上限 [28]={address=ttt+0x25C,flags=4},--移速 [29]={address=ttt+0x25C+0x14,flags=4},--移速上限 }) a=({ [1]=y[1].value/8192, [2]=y[2].value/8192, [3]=y[3].value/8192, [4]=y[4].value/8192, [5]=y[5].value/8192, [6]=y[6].value/8192, [7]=y[7].value/8192, [8]=y[8].value/8192, [9]=y[9].value/8192, [10]=y[10].value/8192, [11]=y[11].value/8192, [12]=y[12].value/8192, [13]=y[13].value/8192, [14]=y[11].value/8192, [15]=y[15].value/8192, [16]=y[16].value/8192, [17]=y[17].value/8192, [18]=y[18].value/8192, [19]=y[19].value/8192, [20]=y[20].value/8192, [21]=y[21].value/8192, [22]=y[22].value/8192, [23]=y[23].value/8192, [24]=y[24].value/8192, [25]=y[25].value/8192, [26]=y[26].value/8192, [27]=y[27].value/8192, [28]=y[28].value/8192, [29]=y[29].value/8192, }) b = gg.prompt({"基础攻速","额外攻速","基础物理攻击","额外物理攻击","基础生命","额外生命","基础法攻","额外法攻","基础物抗","额外物抗","基础法抗","额外法抗","基础法力","额外法力","额外冷缩","冷缩上限","额外物理穿透","额外法术穿透","额外物理吸血","物理吸血上限","额外法术吸血","法术吸血上限","额外暴击率","每五秒回蓝", "每五秒回血","韧性","韧性上限","移速","移速上限"},{a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29]},{'number'}) if b==nil then gg.alert("取消") return end gg.setValues({{address = ttt, flags = 4, value = 99999}}) gg.setValues({ [1]={address=ttt-0xc-0x18,flags=4,value=b[1]*8192},--攻速 [2]={address=ttt-0x18,flags=4,value=b[2]*8192},--额外攻速 [3]={address=ttt+0xFC0-0xc,flags=4,value=b[3]*8192},--物理攻击 [4]={address=ttt+0xFC0,flags=4,value=b[4]*8192},--额外物理攻击 [5]={address=ttt+0x10F8-0xc,flags=4,value=b[5]*8192},--基础生命 [6]={address=ttt+0x10F8,flags=4,value=b[6]*8192},--额外加成生命 [7]={address=ttt+0xE88-0xc,flags=4,value=b[7]*8192},--基础法术攻击 [8]={address=ttt+0xE88,flags=4,value=b[8]*8192},--额外法术攻击 [9]={address=ttt+0xD50-0xc,flags=4,value=b[9]*8192},--基础物抗 [10]={address=ttt+0xD50,flags=4,value=b[10]*8192},--额外物抗 [11]={address=ttt+0xC18-0xc,flags=4,value=b[11]*8192},--基础法抗 [12]={address=ttt+0xC18,flags=4,value=b[12]*8192},--额外法抗 [13]={address=ttt+0x9A8-0xc,flags=4,value=b[13]*8192},--基础法力 [14]={address=ttt+0x9A8,flags=4,value=b[14]*8192},--额外法力 [15]={address=ttt-0x1128,flags=4,value=b[15]*8192},--基础冷缩 [16]={address=ttt-0x1128+0x18,flags=4,value=b[16]*8192},--冷缩上限 [17]={address=ttt-0x9D4,flags=4,value=b[17]*8192},--额外物理穿透 [18]={address=ttt-0xB0C,flags=4,value=b[18]*8192},--额外法术穿透 [19]={address=ttt-0xC48,flags=4,value=b[19]*8192},--额外物理吸血 [20]={address=ttt-0xC48+0x18,flags=4,value=b[20]*8192},--物理吸血上限 [21]={address=ttt-0xD7C,flags=4,value=b[21]*8192},--额外法术吸血 [22]={address=ttt-0xD7C+0x14,flags=4,value=b[22]*8192},--法术吸血上限 [23]={address=ttt-0x150,flags=4,value=b[23]*8192},--额外暴击率 [24]={address=ttt+0x870,flags=4,value=b[24]*8192},--每五秒回蓝 [25]={address=ttt+0x120,flags=4,value=b[25]*8192},--每五秒回血 [26]={address=ttt-0xFEC,flags=4,value=b[26]*8192},--任性 [27]={address=ttt-0xFEC+0x14,flags=4,value=b[27]*8192},--任性上限 [28]={address=ttt+0x25C,flags=4,value=b[28]*8192},--移速 [29]={address=ttt+0x25C+0x14,flags=4,value=b[29]*8192},--移速上限 }) gg.alert("编辑成功") end ), changan.button("自己90免伤加免控", function() local time = os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1E6D8,0x0,0x640,0x640,0x34} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt-0x1AFC,flags=4,value=81920000},{address=ttt-0x10BC,flags=4,value=10000*8192},{address=ttt-0x10A8,flags=4,value=10000*8192}}) gg.alert('开启成功\n用时'..os.clock()-time..'秒') end ), }) 生成拓展("名刀移动释放", { changan.button("收起拓展", function() 取消拓展(3,"名刀移动释放") end ), changan.button("名刀橘子风火轮", function() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{16310,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") --[[local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) ]] local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) gg.toast("修改名刀开启成功") local qmnb= { {['memory']=4}, {['name']='移动释放'}, {['value']=-1331480591, ['type']=4}, {['lv']=0,['offset']=-4, ['type']=4}, {['lv']=0,['offset']=8, ['type']=4}, {['lv']=0,['offset']=12, ['type']=4}, } local qmxg= { {['value']=1,['offset']=-8,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='去位移'}, {['value']=-15200, ['type']=4}, {['lv']=-4000,['offset']=-20, ['type']=4}, } local qmxg= { {['value']=0,['offset']=0,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='全单位'}, {['value']=163100, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, } local qmxg= { {['value']=0,['offset']=116,['type']=4}, {['value']=0,['offset']=132,['type']=4}, } xqmnb(qmnb,qmxg) balert('开启成功\n用时'..os.clock()-time..'秒') end ), changan.button("后羿名刀大招", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{16930,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) --[[local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) ]] gg.setValues({{address = ttt, flags = 4, value = 0,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) local qmnb= { {['memory']=4}, {['name']='位移释放'}, {['value']=1222745835, ['type']=4}, {['lv']=0,['offset']=-4, ['type']=4}, {['lv']=0,['offset']=8, ['type']=4}, {['lv']=0,['offset']=12, ['type']=4}, } local qmxg= { {['value']=1,['offset']=-8,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='解除限制'}, {['value']=-1107348179, ['type']=4}, {['lv']=-1,['offset']=120, ['type']=4}, {['lv']=1,['offset']=132, ['type']=4}, {['lv']=16,['offset']=136, ['type']=4}, } local qmxg= { {['value']=0,['offset']=-192,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("开启成功\n耗时"..os.clock()-time.."请购买名刀") end ), changan.button("女娲名刀大招", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{17930,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) --[[local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) ]] gg.setValues({{address = ttt, flags = 4, value = 0,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) local qmnb= { {['memory']=4}, {['name']='移动释放'}, {['value']=1025501069, ['type']=4}, {['lv']=0,['offset']=-4, ['type']=4}, {['lv']=0,['offset']=8, ['type']=4}, {['lv']=0,['offset']=12, ['type']=4}, } local qmxg= { {['value']=1,['offset']=-8,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='解除限制'}, {['value']=-1097701626, ['type']=4}, {['lv']=-1,['offset']=120, ['type']=4}, {['lv']=1,['offset']=132, ['type']=4}, {['lv']=16,['offset']=136, ['type']=4}, } local qmxg= { {['value']=0,['offset']=-192,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("开启成功\n耗时"..os.clock()-time.."请购买名刀") end ), changan.button("程咬金名刀陀螺", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{14420,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") --[[local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) ]] local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 100,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) ces=balert("修改完成\n总共用时:"..time.."秒") end ), changan.button("百里名刀机枪", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{19620,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) --local t = {"libGameCore.so:bss", "Cb"} --local tt = {0x1542D8, 0x1B48, 0x11FC}--近 --local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) local qmnb= { {['memory']=4}, {['name']='百里2移动释放'}, {['value']=-2051403109, ['type']=4}, {['lv']=0,['offset']=-4, ['type']=4}, {['lv']=1243391857,['offset']=4, ['type']=4}, {['lv']=0,['offset']=8, ['type']=4}, {['lv']=0,['offset']=12, ['type']=4}, } local qmxg= { {['value']=1,['offset']=-8,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=4}, {['name']='百里2全单位'}, {['value']=196200, ['type']=4}, {['lv']=100,['offset']=-12, ['type']=4}, {['lv']=100,['offset']=-8, ['type']=4}, {['lv']=100,['offset']=-4, ['type']=4}, {['lv']=196290,['offset']=4, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, {['lv']=100,['offset']=20, ['type']=4}, } local qmxg= { {['value']=0,['offset']=116,['type']=4}, {['value']=0,['offset']=132,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("修改完成\n总共用时:"..time.."秒") end ), changan.button("镜名刀陀螺", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{53120,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") --local t = {"libGameCore.so:bss", "Cb"} --local tt = {0x1542D8, 0x3488, 0x108C}--远 --local ttt = S_Pointer(t, tt, true) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) local qmnb= { {['memory']=4}, {['name']='镜2全单位'}, {['value']=531010, ['type']=4}, {['lv']=100,['offset']=-16, ['type']=4}, {['lv']=100,['offset']=-12, ['type']=4}, {['lv']=100,['offset']=-8, ['type']=4}, {['lv']=531200,['offset']=-4, ['type']=4}, {['lv']=100,['offset']=8, ['type']=4}, {['lv']=100,['offset']=12, ['type']=4}, {['lv']=100,['offset']=16, ['type']=4}, } local qmxg= { {['value']=0,['offset']=112,['type']=4}, {['value']=0,['offset']=128,['type']=4}, } xqmnb(qmnb,qmxg) ces=balert("修改完成\n总共用时:"..time.."秒") end ), changan.button("鲁班2技能名刀释放", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{11230,4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) --local t = {"libGameCore.so:bss", "Cb"} --local tt = {0x1542D8, 0x1B48, 0x11FC}--近 --local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) PYSS({['gnm']='去限制',['md5']='19a0e7d6bf223efedf2b276ca776c8e3',['ncfw']=4,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='200',},['ftz']={{['py']=44,['lx']=4,['sz']='1610612736',},{['py']=84,['lx']=4,['sz']='1610612736',},{['py']=116,['lx']=4,['sz']='1610612736',},},['xgz']={{['py']=0,['lx']=4,['sz']='0',['zd']=false,['bz']='',['dj']=false,['sf']=false,},},}) PYSS({['gnm']='可位移',['md5']='475565df54d9d02b2db4d0673b84bc3e',['ncfw']=4,['ncpx']=0,['ncks']=0,['ncjw']=100,['ztz']={['lx']=4,['sz']='-1076025662',},['ftz']={{['py']=4,['lx']=4,['sz']='391747435',},{['py']=-4,['lx']=4,['sz']='0',},},['xgz']={{['py']=-8,['lx']=4,['sz']='1',['zd']=false,['bz']='',['dj']=false,['sf']=false,},},}) ces=balert("修改完成\n总共用时:"..time.."秒") end ), changan.button("名刀技能属性恢复", function() time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1900,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 120000,},{address = ttt+0x1C, flags = 4, value = "-297,008,191",},{address = ttt+0x20, flags = 4, value = "15,204,352",},{address = ttt+0x24, flags = 4, value = 6,},{address = ttt+0x48, flags = 4, value = 13,},}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 120000,},{address = ttt+0x1C, flags = 4, value = "-297,008,191",},{address = ttt+0x20, flags = 4, value = "13,631,744",},{address = ttt+0x24, flags = 4, value = 6,},{address = ttt+0x48, flags = 4, value = 13,},}) ces=balert("开启成功") end ), changan.button("远程名刀自定义技能释放", function() A = gg.prompt({"输入技能代码","释放频率,单位0.001s/次"},{[1]='19620',[2]='0'},{'number'}) time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{A[1],4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({{address=gg.getResults(1)[1].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x3488, 0x108C}--远 local ttt = S_Pointer(t, tt, true) --local t = {"libGameCore.so:bss", "Cb"} --local tt = {0x1542D8, 0x1B48, 0x11FC}--近 --local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = A[2],},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) ces=balert("修改完成\n总共用时:"..time.."秒") end ), changan.button("近程名刀自定义技能释放", function() A = gg.prompt({"输入技能代码","释放频率,单位0.001s/次"},{[1]='0',[2]='0'},{'number'}) time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x151CA8,0x78,0x2C20}--技能获取范围 local ttt = S_Pointer(t, tt, true) aaa=ttt+0x1500000 local YH={{A[1],4,-2080896,"技能",ttt,aaa},{-241108919,0x8,4},} --local XZ={{a[1],0,4,true},} local num=LSQ_pointer(YH,XZ,'载入') a=gg.getValues({[5]={address=gg.getResults(k)[JN].address+196,flags=4,value=nil},---效果代码二 })[1].value time=os.clock() local t = {"libGameCore.so:bss", "Cb"} local tt = {0x158220, 0xE8, 0x268}--价格 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0,}}) gg.toast("名刀0元开启成功") --local t = {"libGameCore.so:bss", "Cb"} --local tt = {0x1542D8, 0x3488, 0x108C}--远 --local ttt = S_Pointer(t, tt, true) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x1542D8, 0x1B48, 0x11FC}--近 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = A[2],},{address = ttt+0x1C, flags = 4, value = -241108919,},{address = ttt+0x20, flags = 4, value = a,},{address = ttt+0x24, flags = 4, value = 3,},{address = ttt+0x48, flags = 4, value = 0,},}) ces=balert("修改完成\n总共用时:"..time.."秒") end ), }) 生成拓展("局外编辑", { changan.button("收起拓展", function() 取消拓展(2,"局外编辑") end ), changan.button("飞仙试炼(全场同一个技能)", function() local t = {"libGameCore.so:bss", "Cb", } local tt = {0x151618,0xA8,0x658} local ttt = S_Pointer(t, tt, true) a = gg.prompt({"输入技能代码"},{'80115'},{'number'}) local xg={} local t = {"libGameCore.so:bss", "Cb"} local tt = {0x13E2C8,0x188,0x8} local ttk = S_Pointer(t, tt, true) for i=0,0x190,0x28 do table.insert(xg,{address=ttk+i,flags=4,value=a[1]}) end gg.addListItems({{address=ttk,flags=4}}) for i=0,0x1C788,0x388 do table.insert(xg,{address=ttt+i+0xC0,flags=4,value=a[1]}) table.insert(xg,{address=ttt+i+0xD4,flags=4,value=a[1]}) table.insert(xg,{address=ttt+i+0xE8,flags=4,value=a[1]}) table.insert(xg,{address=ttt+i+0xFC,flags=4,value=a[1]}) table.insert(xg,{address=ttt+i+0x110,flags=4,value=a[1]}) end gg.setValues(xg) balert("修改成功") end ), changan.button("[皮肤编辑器]", function() if hq==nil then local t = {"libGameCore.so:bss", "Cb"} local tt = {0x144538,0x0} local ttt = S_Pointer(t, tt, true) hq={} for i=0x0,0x3130,0x10 do hq[#hq+1]={address=ttt+i,flags=4} end hq=gg.getValues(hq) end zs,dz,xyjc,zsb={},{},{},{} local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x533AA0,0xB8,0x8E0,0x670,0x20}--0x4A8820,0x5F0,0x250,0x520,0x20 local ttt = S_Pointer(t, tt, true) C=gg.getValues({{address=ttt,flags=4}})[1].value a = gg.prompt({"输入英雄代码"},{C},{'number'})[1] local time = os.clock() for i=1,#hq do if hq[i].value>a*100-1 and hq[i].value