draw.text("作者:蛋黄作者2:大魔王", 0, 250) draw.setColor("#FFE57F") draw.text(" q群:1054258024", 0, 300) draw.setColor("#FFE57F") if (rlgg.VERSION < 2.09) then gg.alert('请使用大于等于2.09版本的RLGG') os.exit() end local baseWindow = require 'floatingWindowManager2' if not baseWindow.getContext then gg.alert('请重启一下RLGG') app.exit() end local info = { example_version = '1.0.3', name = '蛋黄枪战辅助', appid = '95672', appkey = 'v81UKK1OvVpzso8O', rc4key = '33eMajh3C3h3BveV', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= '684e579df23d72301ed0fd37d9a9d1e1' then os.exit() return end -- 把以上代码复制到你脚本最前面即可 gg.alert('RLGG') --So写法配置 lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}}lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b)if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1)if not j then table.insert(tab,a:sub(i+1,#a))break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function So(a,b,c)lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}}lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults local csn=gg.getRanges()gg.setVisible(false)lde.srg(a[3])lde.crs()lde.sbr(a[2],a[4])local js=gg.getResultCount()local count=lde.gre(js)lde.crs()if #count~=0 then local lode,lope,lobe={},{},{}for p=1,#b do lode[p]={}for i=1,#count do lode[p][i]={}lode[p][i].address=count[i].address+b[p][2]if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p])db=bv(b[p][1],"~")if not db[2]then db[2]=db[1]end for i=1,#lode[p]do if tonumber(lode[p][i].value)>=tonumber(db[1])and tonumber(lode[p][i].value)<=tonumber(db[2])then lope[#lope+1]={}lope[#lope]=count[i]end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return"开启失败"end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={}lope[#lope].address=count[n].address+c[i][2]if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3]if c[i][1]then lope[#lope].value=c[i][1]else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4]then lobe[#lobe+1]={}lobe[#lobe]=lope[#lope]table.remove(lope,#lope)end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5]then lobe[#lobe].name=c[i][5]end end end gg.setValues(lope)gg.addListItems(lobe)lde.srg(csn)return a[1].."开启成功!!!"else lde.srg(csn)return a[1].."开启失败!!!"end end lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end --基址写法配置 function S_Pointer(t_So, t_Offset, _bit)local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end --Xe写法配置 function xe(name,offset,i) local re=gg.getRangesList(name) 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=32}}) addr=addr[1].value+offset[i] end return addr end end function gg.edits(addr,Table,name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value={address=addr+v[3],value=v[1],flags=v[2],freeze=v[4]}if v[4] then Table1[2][#Table1[2]+1]=value else Table1[1][#Table1[1]+1]=value end end gg.addListItems(Table1[2])gg.setValues(Table1[1]) if name then gg.toast((name or "") .. "开启成功") end end --xs写法配置 function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end --其他写法配置 function readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.xynb(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false 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 gg.FMatrix(value) local GT=gg.getListItems() local t={} for i,v in pairs(GT) do if v.value==value then table.insert(t,v) end end gg.removeListItems(t)end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt)end function AppSearch(SSNR,XGNR,BCNR,notWrite)gg.clearResults()gg.setRanges(SSNR["M"])gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil))jg=gg.getResults(100000)local base=(SSNR[1]["offs"] or 0)local data={}if #jg==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={}if totonumber(to) then jg[num[i]].Useful=false end end end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end if notWrite==true then gg.loadResults(recover)return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={}write[#write].address=data[i]+(XGNR[j][2]-base)write[#write].flags=XGNR[j][3]write[#write].value=XGNR[j][1]write[#write].freeze=XGNR[j][4]write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]})else gg.setValues({[1]=write[#write]})end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]})end end end end if BCNR then local bc={}for j=1,#data do for i=1,#BCNR do bc[#bc+1]={} bc[#bc].address=data[j]+(BCNR[i][1]-base) bc[#bc].flags=BCNR[i][2]bc[#bc].name=BCNR[i][3]end end gg.addListItems(bc)end gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改成功") gg.loadResults(recover)end function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end end function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true] = 32, [false] = 4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address = addr, flags = va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function createTable(address, flags, value) return {{address = address, flags = flags, value = value}} end function setvalue(address, flags, value) gg.setValues(createTable(address, flags, value)) end if (rlgg.VERSION < 2.09) then gg.alert('请使用大于等于2.09版本的RLGG') os.exit() end local baseWindow = require 'floatingWindowManager2' if not baseWindow.getContext then gg.alert('请重启一下RLGG') app.exit() end local context = baseWindow:getContext() import"android.os.Vibrator" import "android.view.View" import "android.widget.ImageView" import "androidx.core.view.ViewCompat" import "com.google.android.material.snackbar.Snackbar" import "android.view.animation.TranslateAnimation" import "android.view.animation.Animation" import "android.animation.ArgbEvaluator" import "android.animation.LayoutTransition" import "android.graphics.drawable.GradientDrawable" import "android.graphics.drawable.ClipDrawable" import "android.media.MediaPlayer" MediaPlayer=MediaPlayer() import "java.io.File" import "android.graphics.Typeface" import "android.animation.LayoutTransition" layoutTransition=LayoutTransition() layoutTransition:setDuration(500) import 'com.google.android.material.imageview.ShapeableImageView' import 'com.google.android.material.shape.CornerFamily' import 'com.google.android.material.materialswitch.MaterialSwitch' import 'com.google.android.material.button.MaterialButton' import 'com.google.android.material.dialog.MaterialAlertDialogBuilder' import 'com.google.android.material.slider.Slider' import 'com.google.android.material.snackbar.Snackbar' import 'com.google.android.material.sidesheet.SideSheetDialog' import 'com.google.android.material.bottomsheet.BottomSheetDialog' import 'com.google.android.material.bottomsheet.BottomSheetBehavior' import 'com.google.android.material.progressindicator.LinearProgressIndicator' import 'com.google.android.material.progressindicator.CircularProgressIndicator' import 'com.google.android.material.chip.ChipGroup' import 'com.google.android.material.chip.Chip' import 'com.google.android.material.radiobutton.MaterialRadioButton' import 'com.google.android.material.checkbox.MaterialCheckBox' import "android.graphics.Color" import "android.content.res.ColorStateList" import 'androidx.coordinatorlayout.widget.CoordinatorLayout' import 'androidx.core.widget.NestedScrollView' import 'android.graphics.drawable.Icon' import 'android.widget.LinearLayout' import 'android.widget.Button' import 'android.widget.TextView' import 'android.widget.ScrollView' import 'android.widget.RadioGroup' import "android.widget.Toast" import 'java.lang.CharSequence' import 'java.lang.Boolean' import 'java.lang.reflect.Array' import("android.renderscript.RenderScript") import("android.renderscript.ScriptIntrinsicBlur") import("android.renderscript.Allocation") import("android.renderscript.Element") import("android.graphics.Bitmap") import("android.graphics.Canvas") import("android.graphics.Paint") import("android.graphics.drawable.BitmapDrawable") local material3 = require 'material3' import "android.media.MediaPlayer" --导入所需库 require "import" import "android.app.*" import "android.os.*" import "android.widget.*" import "android.view.*" imp = {"android.widget.EditText", "android.net.Uri", "android.graphics.drawable.GradientDrawable", "androidx.viewpager.widget.ViewPager", "com.androlua.Http", "com.bumptech.glide.Glide", "androidx.appcompat.app.AlertDialog", "android.app.AlertDialog", "android.animation.ObjectAnimator", "com.androlua.LuaBroadcastReceiver", "android.widget.RelativeLayout", "org.w3c.dom.Text", "android.widget.FrameLayout", "android.content.IntentFilter", "android.view.KeyEvent", "android.widget.Toast", "android.content.Intent", "android.view.View", "android.graphics.Color", "android.content.Context", "android.widget.TextView", "android.graphics.Typeface", "android.view.Gravity", "androidx.cardview.widget.CardView", "android.graphics.ColorFilter", "android.widget.ProgressBar", "android.view.WindowManager", "com.androlua.LuaAdapter", "android.widget.LinearLayout", "android.widget.ImageView", "android.media.MediaPlayer", "android.widget.ListView", "android.app.DownloadManager", "androidx.recyclerview.widget.RecyclerView$Orientation", "androidx.viewpager2.widget.ViewPager2$Orientation", "android.graphics.drawable.GradientDrawable$Orientation", } for i=1,#imp do import(i) end mediaPlayer = MediaPlayer() function Blur(view, radius)--radius大于0小于25 view:measure(View.MeasureSpec:makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec:makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)) view:layout(0, 0, view:getMeasuredWidth(), view:getMeasuredHeight()) local width, height = view:getMeasuredWidth(), view:getMeasuredHeight() local bitmap = Bitmap:createBitmap(width, height, Bitmap.Config.ARGB_8888) local canvas = Canvas(bitmap) view:draw(canvas) local renderScript = RenderScript:create(context) local input = Allocation:createFromBitmap(renderScript, bitmap) local output = Allocation:createTyped(renderScript, input:getType()) local blurScript = ScriptIntrinsicBlur:create(renderScript, Element:U8_4(renderScript)) blurScript:setRadius(radius) blurScript:setInput(input) blurScript:forEach(output) output:copyTo(bitmap) view:setBackgroundDrawable(BitmapDrawable(context:getResources(), bitmap)) renderScript:destroy() input:destroy() output:destroy() blurScript:destroy() end function SliderColor(id,color1,color2,color3) id:setTrackActiveTintList(ColorStateList({{}},{"0xffffffff"..color1})) id:setTrackInactiveTintList(ColorStateList({{}},{"0x50"..color2})) id:setThumbTintList(ColorStateList({{}},{"0xffffffff"..color3})) end function SwitchColor(id,color1,color2) id:setTrackTintList(ColorStateList({{android.R.attr.state_checked},{}},{color1,color2})) end -- 浅色模式 baseWindow:lightMode() function 设置控件宽(控件,宽度) local linearParams = 控件.getLayoutParams() linearParams.width=宽度 控件.setLayoutParams(linearParams) end function 设置控件高(控件,高度) local linearParams = 控件.getLayoutParams() linearParams.height=高度 控件.setLayoutParams(linearParams) end --local typeface = import("android.graphics.Typeface") --local FontPath = "/storage/emulated/0/云烛/配置文件/GoogleSans-Bold.otf"--字体路径 --local font = typeface:createFromFile(FontPath) --local context = baseWindow:getContext() -->local path = '/storage/emulated/0/云烛/配置文件/tagcloud' --local dexloader = dex.loadfile(path) ---@type com.moxun.tagcloudlib.view.TagCloudView --local TagCloudView = dexloader:loadClass('com.moxun.tagcloudlib.view.TagCloudView') --local MyTagsAdapter = dexloader:loadClass('cn.rlyun.a3dtagcloudandroid.MyTagsAdapter') 摇一摇=false 音量键=false if tonumber(device.width)==nil then dwidth=1340 dheight=2300 else dwidth=device.width dheight=device.height end changan = {} huiz = function() end window = context:getSystemService("window") -- 获取窗口管理器 function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function checkimg(tmp,ii) if panduan("/sdcard/云烛/图片/"..tmp) ~= true then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") luajava.download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/云烛/图片/"..tmp) else if file.length("/sdcard/云烛/图片/"..tmp) <= 1 then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") luajava.download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/云烛/图片/"..tmp) end end if panduan("/sdcard/云烛/图片/"..tmp) ~= true then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") luajava.download("https://rl-1303126286.cos.ap-beijing-fsi.myqcloud.com/"..tmp,"/sdcard/云烛/图片/"..tmp) else if file.length("/sdcard/云烛/图片/"..tmp) <= 1 then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") luajava.download("https://rl-1303126286.cos.ap-beijing-fsi.myqcloud.com/"..tmp,"/sdcard/云烛/图片/"..tmp) end end if panduan("/sdcard/云烛/图片/"..tmp) ~= true then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") luajava.download("http://pan.rlyun.asia/api/v3/file/get/79178/quarkconf?sign=r6mgkVej0pkVkN-Vv75-HOpfhI_wzrLjoswLo_F96xc%3D%3A0"..tmp,"/sdcard/云烛/图片/"..tmp) else if file.length("/sdcard/云烛/图片/"..tmp) <= 1 then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") luajava.download("http://pan.rlyun.asia/api/v3/file/get/79179/xz_gg?sign=B0Q8xeg27Qu0k7ynARcbgdDengKcaU1stXtNbhFEksw%3D%3A0"..tmp,"/sdcard/云烛/图片/"..tmp) end end end ckimg = { --"WB/yzf_coR", "heix", "heis", "heisuo", "heic", "heir", "quarkcheckon", "quarkcheckoff", "hei_right", "heiraon", "heiraoff", "quarkconf", "xz_gg", "sscoR", } for i = 1,#ckimg do jindu = i checkimg(ckimg[i],i) gg.toast("正在加载资源") end YoYoImpl = luajava.getYoYoImpl() vibra = context:getSystemService(Context.VIBRATOR_SERVICE) import'android.hardware.*'; function getTimeStamp(t) local str = os.date("%Y年%m月%d日%H:%M:%S",t) return str end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function 获取图片(txt) txt = string.url(txt,"de") ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/云烛/图片/"..ntxt) == false then file.download(txt,"/sdcard/云烛/图片/"..ntxt) else if file.length("/sdcard/云烛/图片/"..ntxt) <= 1 then file.download(txt,"/sdcard/云烛/图片/"..ntxt) end end txt = "/sdcard/云烛/图片/"..ntxt end return luajava.getBitmapDrawable(txt) end function getRes(x) return 获取图片("/sdcard/云烛/图片/"..x) 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) if mainLayoutParams.x<=0 then mainLayoutParams.x=0 end mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(floatWindow, mainLayoutParams) elseif Action == MotionEvent.ACTION_UP then mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(floatWindow, mainLayoutParams) end end 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_TOUCH_MODAL -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end function topSelect() local selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, getVerticalBG({0x22161616,0x22161616},30)) selector:addState({ -android.R.attr.state_pressed }, empty) return selector end function getCorner(gtvb1,gtvb3,gtvb4,gtvb5,g1,g2,g3,g4) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xffffffff end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 jianbians:setCornerRadii({g1,g1,g2,g2,g3,g3,g4,g4}) return jianbians end function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xffffffff end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 return jianbians end function newbg(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xffffffff end local jianbians = luajava.loadlayout({ GradientDrawable, color = {背景颜色}, cornerRadius=15, gradientType = GradientDrawable.LINEAR_GRADIENT, orientation = GradientDrawable.Orientation.TOP_BOTTOM , strokeWidth = 10, strokeColor = gtvb5 }) return jianbians end function getHorizontalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xffffffff end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 return jianbians end changan.controlBig = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 0, 0.4, 0.7, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 0, 0.4, 0.7, 1 }):setDuration(time):start() end) 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 changan.controlWater = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.8, 0.9, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1,0.8,0.9,1 }):setDuration(time):start() end) end changan.controlSmall = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.7, 0.4, 0 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1, 0.7, 0.4, 0 }):setDuration(time):start() end) end mainLayoutParams = getLayoutParams() gg.setVisible(false) 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', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) end import("android.media.AudioManager") audi = context:getSystemService("audio") audiotype = { AudioManager.STREAM_ALARM, --手机闹铃的声音 AudioManager.STREAM_MUSIC, --手机音乐的声音 AudioManager.STREAM_NOTIFICATION, --系统提示的通知 AudioManager.STREAM_RING, --电话铃声的声音 AudioManager.STREAM_SYSTEM, --手机系统的声音 AudioManager.STREAM_VOICE_CALL, --语音电话的声音 AudioManager.STREAM_DTMF, --DTMF音调的声音 --AudioManager.STREAM_BLUETOOTH_SCO, } yinl = {} for i = 1,#audiotype do yinl[i] = {} yinl[i].type = audiotype[i] yinl[i].min = audi:getStreamMinVolume(audiotype[i]) yinl[i].max = audi:getStreamMaxVolume(audiotype[i]) yinl[i].now = audi:getStreamVolume(audiotype[i]) end yltype = 0 function jianting3(func) yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].now = audi:getStreamVolume(audiotype[i]) if yinln[i].now > yinl[i].now then yinl[i].now = yinln[i].now if yltype == 1 then yltype = 0 func() end elseif yinln[i].now < yinl[i].now then yinl[i].now = yinln[i].now if yltype == 0 then yltype = 1 func() end end end end context = app.context import'android.hardware.*'; local sensor = luajava.createProxy('android.hardware.SensorEventListener', { onSensorChanged = functions.debounce(function() if 摇一摇==false then return 0 end if qhkai~=0 then qhkai=0 luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow) end) else qhkai=1 luajava.newThread(function() luajava.runUiThread(function() YoYoImpl:with("FadeOut"):duration(300):playOn(floatWindow) end) gg.sleep(400) luajava.runUiThread(function() floatWindow:setVisibility(View.GONE) end) draw.remove() gg.toast("HIDE") end):start() end end,500) }) dexloader=dex.loadfile('/sdcard/长安/图片/classes3.dex') luajava.runOnUiThread(function() MySensorManager(context, sensor) end) setOnExitListener(function() luajava.post(function() return window:removeView(floatWindow) end) tuichu=1 luajava.setFloatingWindowHide(false) end) function changan.menu(sview) huiz() cebian={LinearLayout, layout_height="wrap_content", layout_width="wrap_content", gravity="center_vertical", orientation="horizontal", } jmbg={} local ui = require('ui') local layout = { 'ui.ViewPager', layout_height = 'match_parent', layout_width='match_parent', focusable="false", focusableInTouchMode="false", } for i=1,#stab do jmbg[i]=getJMBG() _ENV["jm"..i]=luajava.loadlayout({ LinearLayout, onClick=function() 切换(i) end, {TextView, id="jmt"..i, --background=jmbg[i], layout_marginLeft="5dp", layout_marginRight="5dp", textSize="14sp", layout_height = "20dp", layout_width = "60dp", text=stab[i], --padding={"10dp","5dp","10dp","5dp"}, }}) cebian[#cebian+1]=_ENV["jm"..i] _ENV["layout"..i]={ ScrollView, --visibility="gone", layout_width="match_parent", layout_height="wrap_content", { LinearLayout, id=luajava.newId("layoutm"..i), orientation="vertical", layout_width="match_parent", layout_height="wrap_content", }} layout[#layout+1]=_ENV["layout"..i] end bottombar={ LinearLayout, layout_width="fill_parent", layout_height="40dp", padding="6dp", {HorizontalScrollView, layout_width="fill_parent", layout_weight=1, HorizontalScrollBarEnabled=false, cebian}, } topbar={ LinearLayout, layout_width="fill_parent", layout_height="35dp", background=getCorner({0xffffffff,0xffffffff},15,0,0xff6750a4,15,15,0,0), elevation='2dp', {LinearLayout, layout_width="35dp", layout_height="match_parent", gravity="center", elevation='2dp', { LinearLayout, gravity="center", background=getVerticalBG({0xfff2f3f5,0xfff2f3f5},90), layout_width = "20dp", layout_height = "20dp", layout_marginLeft = "5dp", onClick = 隐藏, onTouch = hanshu, {LinearLayout, layout_height="2dp", layout_width="10dp", background=getVerticalBG({0xff2c2c2c,0xff2c2c2c},45), } } }, {LinearLayout, layout_width="fill_parent", layout_weight=1, layout_height="match_parent", gravity="center", {LinearLayout, layout_height="match_parent", layout_width="80dp", -- background=topSelect(), onClick=function() end, gravity="center", onTouch=hanshu, {LinearLayout, layout_height="5dp", layout_width="60dp", --background=getVerticalBG({0xff0047FF,0xff0047FF},20) } } }, {LinearLayout, layout_width="35dp", layout_height="match_parent", gravity="center", { ImageView, padding = "5dp", src = getRes("heix"), background=getVerticalBG({0xfff2f3f5,0xfff2f3f5},90), layout_width = "20dp", layout_height = "20dp", layout_marginRight = "5dp", onClick = 隐藏, onTouch = hanshu, } } } ViewPager = ui.ViewPager(layout) luajava.setInterface(ViewPager, 'addOnPageChangeListener', {onPageSelected=function(view) view=tonumber(string.sub(view,1,1)) for i=1,#stab do _ENV["jmt"..i]:setTextColor(0xFF000000) --_ENV["jmt"..i]:setBackground(jmbg[i]) end 当前ui=view+1 --滚(当前ui) _ENV["jmt"..view+1]:setTextColor(0xFF664F9F) --_ENV["jmt"..view+1]:setBackground(dhla) end}) menui=luajava.loadlayout({ LinearLayout,--菜单 orientation = "vertical", layout_height = "fill_parent", layout_width = "fill_parent", gravity = "center_horizontal", onClick = function() end, onTouch = hanshu, topbar, {LinearLayout, id="menubar", padding={"10dp","5dp","10dp","0dp"}, layout_height = "fill_parent", layout_width = "fill_parent", layout_weight=1, ViewPager }, bottombar }) ckou=luajava.loadlayout({ FrameLayout, id = "ckou", --background = getVerticalBG(背景颜色,背景圆角,背景边框粗细,背景边框颜色), layout_height = 'match_parent', layout_width = 'match_parent', gravity="top", menui, }) control2=luajava.loadlayout{ ImageView, visibility="gone", background = 获取图片(悬浮窗图标), layout_width = "40dp", layout_height = "40dp", onTouch = hanshu, onClick = 隐藏, layout_gravity="left|center", } -- beij=newbg(背景颜色,15) beij=getHorizontalBG({0xfff2f3f5,0xfff2f3f5},15,2,0xffffffff) floatWindow = { FrameLayout, visibility="gone", fillViewPort=true, elevation = "10dp", background=beij, onClick = function() end, onTouch = hanshu, ckou, control2, {LinearLayout, id="smallc", visibility="gone", onClick=显示2, onTouch=hanshu, layout_height="36dp", layout_width="22dp", gravity="center", background=getCorner({0x88161616,0x88161616},12,0,0xff232323,0,25,25,0), {TextView, text="»", textSize="18sp", } },{FrameLayout, id='reme', layout_height='match_parent', layout_width='match_parent', elevation='3dp', { ImageView, id="sf", padding = "2dp", --- src = getRes("sscoR"), layout_width = "23dp", layout_height = "23dp", layout_marginRight = "0dp", layout_marginBottom = "0dp", layout_gravity = "right|bottom", onClick = function() end, onTouch = suofang, Snackbar:make(ckou,"开启",Snackbar.LENGTH_SHORT):setBackgroundTint("0xFF161616"):show(), }} ,{ FrameLayout, id = "lingdongdaodb", layout_width = "match_parent", layout_height = "match_parent", orientation = "vertical", {LinearLayout, layout_width="match_parent", layout_height="match_parent", gravity="center", id="ldddb", {LinearLayout, layout_height="match_parent", layout_width="wrap_concert", gravity="top", padding = "7dp", onTouch=hanshu, {LinearLayout, changan.lddLsland2({"", --changan.text(" "..项目名称,"0xffffffff","13sp",true), {FrameLayout, layout_width = "match_parent", layout_height = "140dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", {LinearLayout, layout_gravity="top|center", layout_marginTop="20dp", orientation="vertical", { TextView , id="time_MUSIC", text ="上午好☁", textSize = "11sp" , layout_gravity = "top", textColor ="#ffffff", }, { TextView , id="MUSIC_WRITER", text ="空空如也", textSize = "9sp" , layout_gravity = "top", textColor ="0xff6750a4", },}, {ImageView, layout_hight="20dp", layout_width='20dp', layout_gravity="left|center", layout_Left="10dp", src=getRes("盗用资源死妈哦"), onClick=function() diycolor('控件颜色') end, }, {LinearLayout, layout_gravity="center", changan.music2("拉条演示","Baisu",1,100,1),},{ImageView, layout_hight="20dp", layout_width='20dp', layout_Right="10dp", layout_gravity="right|center", src=getRes("524085136"), onClick=function() vibra:vibrate(15) baseWindow=require 'floatingWindowManager2' context = baseWindow:getContext() view={ LinearLayout, } local dialogBuilder = MaterialAlertDialogBuilder(context) :time_MUSIC('MUSIC') :time_MUSIC("暂无歌曲") :setView(luajava.loadlayout(view)) :setPositiveButton('确定') luajava.showAlert(dialogBuilder) end, }, {FrameLayout, id="unlove", layout_height="20dp", layout_width='20dp', layout_gravity="left|bottom", background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), layout_marginLeft="20dp", onClick=function() vibra:vibrate(15) Snackbar:make(ckou,"收藏成功✅",Snackbar.LENGTH_SHORT):setBackgroundTint("0xFFA0C9FD"):show() mediaPlayer:setLooping(true) love:setVisibility(View.VISIBLE) unlove:setVisibility(View.VISIBLE) end, src=getRes("unlove"), },{FrameLayout, id="love", layout_hight="20dp", layout_width='20dp', background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), layout_gravity="left|bottom", layout_marginLeft="20dp", src=getRes("love"), onClick=function() vibra:vibrate(15) Snackbar:make(ckou,"取消成功✅",Snackbar.LENGTH_SHORT):setBackgroundTint("0xFFA0C9FD"):show() mediaPlayer:setLooping(false) unlove:setVisibility(View.VISIBLE) love:setVisibility(View.VISIBLE) end, }, {FrameLayout, id="sss", layout_height="20dp", layout_width='20dp', background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), layout_gravity="bottom", layout_marginLeft="60dp", src=getRes("1316430524"), },{FrameLayout, id="ssss", layout_hight="20dp", layout_width='20dp', background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), src = getRes("Y5oo"), onClick=function() mediaPlayer:start() vibra:vibrate(15) ssss1:setVisibility(View.VISIBLE) ssss:setVisibility(View.VISIBLE) end, layout_gravity="center|bottom", },{FrameLayout, id="ssss1", layout_height="20dp", background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), layout_width='20dp', src=getRes("Y5o"), onClick=function() mediaPlayer:pause() vibra:vibrate(15) ssss:setVisibility(View.VISIBLE) ssss1:setVisibility(View.VISIBLE) end, layout_gravity="center|bottom", }, {FrameLayout, id="sssss", layout_height="20dp", layout_width='20dp', background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), src = getRes("531183638"), gravity="right", layout_marginLeft="120dp", layout_gravity="bottom", }, {FrameLayout, id="QieHuan", layout_height="20dp", layout_width='20dp', background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), src = getRes("1884812492"), layout_marginRight="20dp", layout_gravity="right|bottom", onClick=function() mediaPlayer:start() vibra:vibrate(15) Snackbar:make(ckou,"循环播放成功✅",Snackbar.LENGTH_SHORT):setBackgroundTint("0xFFA0C9FD"):show() mediaPlayer:setLooping(true) sssss1:setVisibility(View.VISIBLE) QieHuan:setVisibility(View.VISIBLE) end, },{FrameLayout, id="sssss1", layout_height="20dp", layout_width='20dp', background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), src = getRes("1360640248"), layout_marginRight="20dp", layout_gravity="right|bottom", onClick=function() mediaPlayer:start() mediaPlayer:seekTo(Baisu) vibra:vibrate(15) sssss2:setVisibility(View.VISIBLE) sssss1:setVisibility(View.VISIBLE) end, }, {FrameLayout, id="sssss2", layout_height="20dp", layout_width='20dp', src = getRes("836253849"), layout_marginRight="20dp", background=getCorner({0xffffffff,0xffffffff},12,0,0xffffffff,0,25,25,0), layout_gravity="right|bottom", onClick=function() mediaPlayer:start() vibra:vibrate(15) Snackbar:make(ckou,"关闭循环播放成功✅",Snackbar.LENGTH_SHORT):setBackgroundTint("0xFFA0C9FD"):show() mediaPlayer:setLooping(false) QieHuan:setVisibility(View.VISIBLE) sssss2:setVisibility(View.VISIBLE) end, }, }, }), } } }, }, --[[{ FrameLayout, id = "lingdongdaodb2", layout_width = "match_parent", layout_height = "match_parent", orientation = "vertical", {LinearLayout, layout_width="match_parent", layout_height="match_parent", gravity="center", id="ldddb2", {LinearLayout, layout_height="match_parent", layout_width="wrap_concert", gravity="bottom", padding = "5dp", onTouch=hanshu, {LinearLayout, changan.lddLsland({ " ", changan.text(" "..项目名称,"0xffffff","13sp",true), --changan.text(" 静谧内部绕过","0xffffffff","10sp"), changan.seek("音量设置","lt",1,100,1),--名字,变量名字,最小,最大,初始 changan.box({ "切换页面", changan.button(stab[1],function() luajava.newThread(function() 切换(1) end):start() end ), changan.button(stab[2],function() luajava.newThread(function() 切换(2) end):start()end ), changan.button(stab[3],function() luajava.newThread(function() 切换(3) end):start()end ), changan.button(stab[4],function() luajava.newThread(function() 切换(4) end):start() end ), changan.button(stab[5],function() luajava.newThread(function() 切换(5) end):start() end ), changan.text(" ","0xffffffff","100sp"), }), --changan.text("\n\n","0xff6750A4","10sp"), }), } } }, },]] --[[{ FrameLayout, id = "lingdongdaodb", layout_width = "match_parent", layout_height = "match_parent", orientation = "vertical", {LinearLayout, layout_width="match_parent", layout_height="match_parent", gravity="center", id="ldddb", {LinearLayout, layout_height="match_parent", layout_width="wrap_concert", gravity="top", padding = "47dp", onTouch=hanshu, {LinearLayout, changan.box({ --" ", 项目名称, --changan.text(" "..项目名称,"0xffffffff","13sp",true), changan.text(" Powered By 云烛","0xff6750a4","10sp",true), changan.seek("调节音量","lt",1,10,1),--名字,变量名字,最小,最大,初始 changan.box({ "Music", getwyyv() }), --changan.text("\n\n","0xff6750A4","10sp"), }), } } }, },]] } --bnzz=particle() local function invoke() mainLayoutParams.x = dwidth/4-150 mainLayoutParams.y = dheight/8 floatWindow=luajava.loadlayout(floatWindow) mainLayoutParams.height = mubx mainLayoutParams.width = muby window:addView(floatWindow,mainLayoutParams) end luajava.post(invoke) loadingBox['关闭']() 切换(1) luajava.runUiThread(function() --floatWindow:setBackground(beij) YoYoImpl:with("FadeIn"):duration(800):playOn(floatWindow) floatWindow:setVisibility(View.VISIBLE) QieHuan:setColorFilter(0xffffffff) sss:setColorFilter(0xffffffff) ssss:setColorFilter(0xffffffff) ssss1:setVisibility(View.GONE) love:setVisibility(View.GONE) sssss:setColorFilter(0xffffffff) sssss1:setColorFilter(0xffffffff) sssss1:setVisibility(View.GONE) sssss2:setColorFilter(0xffffffff) sssss2:setVisibility(View.GONE) local str = 1+os.date("%H",t) if str>=12 and str<=15 then time_MUSIC:setText("中午好🌤️") end if str>=2 and str<=6 then time_MUSIC:setText("夜深了,早点休息💤") end if str>=7 and str<=11 then time_MUSIC:setText("上午好☁") end if str>=21 and str<=25 then time_MUSIC:setText("晚上好🌙") end if str>=16 and str<=20 then time_MUSIC:setText("下午好🍵") end end) setOnExitListener(function() tuichu = 1 mediaPlayer:stop() luajava.setFloatingWindowHide(false) end) luajava.post(function() for i=1,#stab do for k=1,#sview[i] do luajava.getIdValue("layoutm"..i):addView(sview[i][k]) end end end) qhkai = 0 显示 = 1 qiehuan = function() if qhkai == 0 then yinll = 0 qhkai = 1 draw.remove() gg.toast("HIDE") luajava.runUiThread(function() YoYoImpl:with("FadeOut"):duration(300):playOn(floatWindow) end) gg.sleep(400) luajava.runUiThread(function() floatWindow:setVisibility(View.GONE) end) else qhkai = 0 yinll = 1 huiz() luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow) end) end end if ylfunc~=nil then ylfunc() end while true do if tuichu == 1 then break end if 音量键==true then jianting3(qiehuan) end gg.sleep(120) end draw.text("",0,0) gg.setVisible(false) luajava.setFloatingWindowHide(false) end function daxiao() luajava.runUiThread(function() mainLayoutParams.height = mubx mainLayoutParams.width = muby window:updateViewLayout(floatWindow, mainLayoutParams) end) end function 切换(x) x=x-1 luajava.runUiThread(function() 当前ui=x ViewPager:setCurrentItem(x) end) end function 隐藏() if 显2==true then return 0 end vibra:vibrate(6) luajava.runUiThread (function () if tonumber (tostring (ckou: getVisibility ())) == 8.0 then 显示 = 1 sf:setVisibility(View.VISIBLE) control2:setVisibility(View.GONE) mainLayoutParams.height = mubx mainLayoutParams.width = muby mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window : updateViewLayout (floatWindow , mainLayoutParams) luajava.newThread(function() --gg.playMusic("/sdcard/云烛/图片/bbk") end):start() ckou:setVisibility(View.VISIBLE) lingdongdaodb:setVisibility(View.VISIBLE) -- lingdongdaodb2:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(400):playOn(ckou) floatWindow:setBackground(beij) else sf:setVisibility(View.GONE) 显示=0 luajava.newThread(function() --gg.playMusic("/sdcard/云烛/图片/bbg") luajava.runUiThread(function() YoYoImpl:with("FadeOut"):duration(200):playOn(floatWindow) --changan.controlSmall(floatWindow,300) end) gg.sleep(210) luajava.runUiThread(function() --changan.controlBig(floatWindow,200) YoYoImpl:with("FadeIn"):duration(200):playOn(floatWindow) control2:setVisibility(View.VISIBLE) mainLayoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 mainLayoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 ckou:setVisibility(View.GONE) lingdongdaodb:setVisibility(View.GONE) -- lingdongdaodb2:setVisibility(View.GONE) mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE mainLayoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 mainLayoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 window : updateViewLayout (floatWindow , mainLayoutParams) floatWindow:setBackground(empty) end) end):start() end end) end 显2=false function 隐藏2() 显2=true ckou:setVisibility(View.GONE) control2:setVisibility(View.GONE) smallc:setVisibility(View.VISIBLE) end function 显示2() 显2=false mainLayoutParams.x=20 window:updateViewLayout(floatWindow, mainLayoutParams) if 显示==1 then ckou:setVisibility(View.VISIBLE) smallc:setVisibility(View.GONE) else control2:setVisibility(View.VISIBLE) smallc:setVisibility(View.GONE) 隐藏() end end function launch(pkg) local loadBox = getLoadingBox('正在启动游戏') gg.setProcess(pkg) gg.sleep(500) if tostring(gg.getTargetPackage()) == pkg then gg.toast("进程已选择:"..pkg) return 0 end gg.toast("正在启动游戏...") loadBox['显示']() print(gg.isPackageInstalled(pkg)) app.start(pkg) jci=0 --gg.sleep(5000) while true do gg.setProcess(pkg) gg.sleep(400) if tostring(gg.getTargetPackage()) == pkg then gg.alert("启动成功") loadBox['关闭']() break else jci=jci+1 if jci==14 then loadBox['关闭']() gg.alert("自动获取进程失败\n请手动选择游戏进程") gg.setProcessX() break end end gg.sleep(100) end end function changan.setedit(name,txt) txt = tostring(txt) luajava.runUiThread(function() luajava.getIdValue(_ENV[name]):setText(txt) end) end function changan.getedit(name) --gg.alert(edit) edit = tostring(luajava.getIdValue(_ENV[name]):getText()) return edit end function changan.text(text,color,size,isjz) if not color then color="#161616" end if isjz then return luajava.loadlayout( { TextView, text=text, textColor=color, Typeface=font, textSize=size, gravity="center", layout_height="wrap_content", layout_width="match_parent", autoSizeTextType="uniform", }) else return luajava.loadlayout({ TextView, text=text, textColor=color, textSize=size, Typeface=font, layout_height="wrap_content", layout_width="match_parent", autoSizeTextType="uniform", }) end end checkbg1 = getRes("quarkcheckoff") checkbg2 = getRes("quarkcheckon") switchs={} function changan.check(cklist) if #cklist==0 then return nil end local rest = { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "center", orientation="vertical", } for i = 1, #cklist,2 do local tempTable = {LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "left", orientation="horizontal" } for j = 0, 1 do if cklist[i + j] ~= nil then local name = cklist[i + j][1] local func1 = cklist[i + j][2] local func2 = cklist[i + j][3] if not name then name = "未设置" end rstt = changan.intcheck(name,func1,func2) table.insert(tempTable, rstt) else table.insert(tempTable, {LinearLayout, layout_width = 'match_parent', layout_weight=1,}) end end table.insert(rest, tempTable) end return luajava.loadlayout(rest) end function changan.intcheck(name,func1,func2) local nid = name..guid() local func = 开关5(name,func1,func2,nid) if not name then name = "未设置" end switchs[nid] = { LinearLayout, layout_width = 'match_parent', layout_weight=1, layout_height = "42dp", layout_marginTop = "1dp", layout_marginBottom = "1dp", padding = "1dp", { LinearLayout, padding="3dp", onClick = function() luajava.newThread(function() func() end):start() end, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "center_vertical", --background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71), { CheckBox, id=luajava.newId(nid.."c"), layout_width = '32dp', layout_height = '32dp', padding = "0dp", onClick = function() luajava.newThread(function() func() end):start() end, },{ TextView, id=luajava.newId(nid.."t"), gravity = "left", text = name, textColor=0xff000000, textSize = "14sp", --layout_marginLeft="8dp", layout_width = 'match_parent', layout_weight=1,onClick = function() local v=luajava.getIdView(nid..'c') if v:isChecked() then v:setChecked(false) else v:setChecked(true) end luajava.newThread(function() func() end):start() end, }, } } return switchs[nid] end function 开关5(name,func1,func2,nid) local sname = nid local localname=name name = name..guid() _ENV[name] = "关" if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then vibra:vibrate(9) luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(checkbg2) luajava.getIdValue(nid.."t"):setTextColor(switch颜色) --changan.controlWater(switchs[nid],300) end) _ENV[name] = "开" pcall(func1) else vibra:vibrate(9) luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(checkbg1) luajava.getIdValue(nid.."t"):setTextColor(0xff232323) --changan.controlWater(switchs[nid],300) end) _ENV[name] = "关" pcall(func2) end end end end function changan.check(cklist) if #cklist==0 then return nil end local rest = { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "center", orientation="vertical", } for i = 1, #cklist,2 do local tempTable = {LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "left", orientation="horizontal" } for j = 0, 1 do if cklist[i + j] ~= nil then local name = cklist[i + j][1] local func1 = cklist[i + j][2] local func2 = cklist[i + j][3] if not name then name = "未设置" end rstt = changan.intcheck(name,func1,func2) table.insert(tempTable, rstt) else table.insert(tempTable, {LinearLayout, layout_width = 'match_parent', layout_weight=1,}) end end table.insert(rest, tempTable) end return luajava.loadlayout(rest) end changan.controlRotation9 = function(control, time,t) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", { time,t }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(400) xuanzhuandonghua:start() end) end isLocked=false inlock=getRes("heisuo") uiunlock=getRes("heis") function uiLock() vibra:vibrate(15) if isLocked==false then isLocked=true luajava.newThread(function() gg.toast("UI缩放已锁定") end):start() lockui:setImageDrawable(inlock) else isLocked=false luajava.newThread(function() gg.toast("UI缩放已解锁") end):start() lockui:setImageDrawable(uiunlock) end end function visi (tid , ttid) vibra:vibrate(4) local tview = luajava.getIdValue (tid) local ttview = luajava.getIdValue (ttid) if not tview then return 0 end if tonumber (tostring (tview : getVisibility ())) == 8.0 then tview : setVisibility (View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[tid]) changan.controlRotation9(boxpic[tid],0,90) else tview : setVisibility (View.GONE) changan.controlWater (_ENV [tid.."6"] , 200) changan.controlRotation9(boxpic[tid],90,0) end end boxes = {} boxpic = {} function changan.box (views) local tid = "box"..guid () boxpic[tid] = luajava.loadlayout { ImageView , background = getRes("hei_right"), layout_width = "24dp" , layout_height = "24dp" , } local ttid = tid.."6" local t1id = guid () firadio = { LinearLayout , layout_width = 'fill_parent' , layout_height = "wrap_content" , layout_marginTop = "2dp" , layout_marginBottom = "2dp" , orientation = "vertical" , LayoutTransition=layoutTransition, } if type (views [1]) == "string" or type (views [1]) == "number" then firadio [# firadio + 1] = { LinearLayout , layout_width = 'fill_parent' , layout_height = "40dp" , gravity = "center_vertical" , layout_marginTop = "2dp" , layout_marginLeft='2dp', layout_marginRight='2dp', elevation='2dp', layout_marginBottom = "4dp" , LayoutTransition=layoutTransition, onClick = function () visi (tid , ttid) end, background = getButtonBG(), { TextView , text = views [1] , textSize = "13sp" , layout_marginLeft = "10dp" , layout_width = "match_parent" , layout_weight=1, textColor = "#000000" , gravity = "left" , },{ LinearLayout , padding={"0dp","0dp","10dp","0dp"}, layout_width = "30dp" , layout_height = "30dp" , gravity = "center", boxpic[tid], } } else gg.alert ("changan.box的table内第一个元素必须是string") os.exit () end radios = { LinearLayout , layout_marginLeft = "0dp" , layout_marginRight = "0dp" , orientation = "vertical" , visibility = "gone" , id = luajava.newId (tid) , padding = "0dp" , layout_width = 'fill_parent' , LayoutTransition=layoutTransition, } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid] = luajava.loadlayout(radios) firadio [# firadio + 1] = boxes[tid] _ENV [t1id] = luajava.loadlayout (firadio) return _ENV [t1id] end changan.controlRotation9 = function(control, time,t) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", { time,t }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(400) xuanzhuandonghua:start() end) end function changan.quyu(views) local tid = "box"..guid() local ttid = tid.."678" firadio = { LinearLayout, gravity = "center", layout_width = 'fill_parent', layout_height = "wrap_content", orientation = "vertical", } if type(views[1]) == "string" or type(views[1]) == "number" then if views[1]~="" then tsiz="14sp" else tsiz="0sp"end firadio[#firadio+1] = { LinearLayout, layout_height = "wrap_content", layout_width = "fill_parent", } else end radios = { LinearLayout, layout_marginLeft = "3dp", layout_marginRight = "3dp", layout_marginTop = "3dp", layout_marginBottom = "3dp", orientation = "vertical", padding = "0dp", background = luajava.loadlayout { GradientDrawable , color = 按钮颜色 , cornerRadius = 15 } , elevation='2dp', layout_width = 'fill_parent', } for i = 2,#views do radios[#radios+1] = views[i] if i~=#views then --radios[#radios+1] = changan.line() end end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function changan.quyuM(views) local tid = "box"..guid() local ttid = tid.."678" firadio = { LinearLayout, gravity = "center", layout_width = 'fill_parent', layout_height = "wrap_content", orientation = "vertical", } if type(views[1]) == "string" or type(views[1]) == "number" then if views[1]~="" then tsiz="14sp" else tsiz="0sp"end firadio[#firadio+1] = { LinearLayout, layout_height = "wrap_content", layout_width = "fill_parent", } else end radios = { LinearLayout, layout_marginLeft = "3dp", layout_marginRight = "3dp", layout_marginTop = "3dp", layout_marginBottom = "3dp", orientation = "vertical", padding = "0dp", background = luajava.loadlayout { GradientDrawable , color = 0xfff7f2fa , cornerRadius = 25 } , elevation='2dp', layout_width = 'fill_parent', } for i = 2,#views do radios[#radios+1] = views[i] if i~=#views then --radios[#radios+1] = changan.line() end end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function changan.line() rest = luajava.loadlayout({LinearLayout, layout_width = 'fill_parent', { LinearLayout, layout_width = 'fill_parent', layout_height = "1dp", background = "#88C2CAD7", layout_marginLeft="20dp", layout_marginRight="20dp" }}) return rest end function changan.line2() rest = luajava.loadlayout({ LinearLayout, layout_width = '180dp', layout_height = "5dp", layout_marginLeft="35dp", background = "#0087FF", layout_marginTop="10dp", }) return rest end function getShape(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(tmp1) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(7,tmp3)--边框宽度和颜色 return jianbians end function getShape2(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(tmp1) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(24,tmp3)--边框宽度和颜色 return jianbians end function visi3(tid, ttid) local tview = luajava.getIdValue(tid) local ttview = luajava.getIdValue(ttid) if not tview then return 0 end if tonumber(tostring(tview:getVisibility())) == 8.0 then tview:setVisibility(View.VISIBLE) -- 设置文本视图不可见 top_music:setVisibility(View.GONE) else tview:setVisibility(View.GONE) -- 设置文本视图可见 top_music:setVisibility(View.VISIBLE) end end function visi2(tid, ttid) local tview = luajava.getIdValue(tid) local ttview = luajava.getIdValue(ttid) if not tview then return 0 end if tonumber(tostring(tview:getVisibility())) == 8.0 then tview:setVisibility(View.VISIBLE) else tview:setVisibility(View.GONE) end end function Island开关(name,func1,func2,nid) name = name..guid() _ENV[name] = "关" if func1 == nil then func1 = function() end end if func2 == nil then func2 = function() end end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(nid.."k"):setBackground(getHorizontalBG({0x00C24C38,0x00F78F5C},5)) luajava.getIdValue(nid.."g"):setBackground(getHorizontalBG({"0xffff0000","0xffff0000","0xffff0000"},5,3,"0xffff0000")) end) _ENV[name] = "开" vibra:vibrate(6) pcall(func1) else luajava.runUiThread(function() luajava.getIdValue(nid.."g"):setBackground(getHorizontalBG({0x00C24C38,0x00F78F5C},5)) luajava.getIdValue(nid.."k"):setBackground(getHorizontalBG({"0xffff0000","0xffff0000","0xffff0000"},5,3,"0xffff0000")) end) _ENV[name] = "关" vibra:vibrate(6) pcall(func2) end end end end boxes = {} boxpic = {} function changan.lddLsland(views) local tid = "LDD"..guid () local ttid = tid.."6" local t1id = guid () kgid = views[1].."关" id = views[1].."id" local func = Island开关(views[1],func1,func2) ID = views[1].."id"..guid() boxpic[tid] = luajava.loadlayout { ImageView , src = getRes("hei_right"), layout_width = "0dp" , layout_height = "0dp" , } --SwitchColor(_ENV[nid],灵动岛,"0xff252525") --MSwitch[#MSwitch+1] = ID firadio = { LinearLayout, layout_width="match_parent", layout_height = "wrap_content" , gravity = "center", orientation = "vertical", --background = luajava.loadlayout{GradientDrawable,color=0xffffffff,cornerRadius=20}, LayoutTransition=layoutTransition, onTouch = function() visi2 (tid , ttid) end } if type (views [1]) == "string" or type (views [1]) == "number" then firadio [# firadio + 1] = { LinearLayout, --- layout_width = 'match_parent', -- layout_height = "40dp", ------ --new灵动岛只加这个 如果要小的就 layout_width = 'wrap_concert', layout_width = 'match_parent', layout_height = "5dp", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", gravity = "center_vertical", LayoutTransition=layoutTransition, { LinearLayout , layout_width = '45dp' , layout_height = "60dp", gravity = "center_vertical" , --onClick = function () visi2 (tid , ttid) end, background = 灵动岛, { TextView , text = views [1] , textSize = "13sp" , Typeface=font, -- layout_marginLeft = "15dp" , layout_width = "match_parent" , layout_weight=1, textColor = "0xffffff" , Typeface=font, gravity = "center" , },{ LinearLayout , padding={"0dp","0dp","0dp","0dp"}, layout_width = "0dp" , layout_height = "0dp" , gravity = "center", -- background = getHorizontalBG({0xffe9e9e9,0xffe9e9e9},25), boxpic[tid], } } }else gg.alert ("changan.box的table内第一个元素必须是string") os.exit () end radios = { LinearLayout , orientation = "vertical" , visibility = "gone" , id = luajava.newId (tid) , layout_width = 'fill_parent' , elevation = "3dp", } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid] = luajava.loadlayout(radios) firadio [# firadio + 1] = boxes[tid] _ENV [t1id] = luajava.loadlayout ({ LinearLayout, layout_width="match_parent", layout_height = "wrap_content", gravity = "center", { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", background = luajava.loadlayout{GradientDrawable,color=灵动岛,cornerRadius=30}, firadio } }) return _ENV [t1id] end boxes = {} boxpic = {} function changan.ldd(views) local tid = "box"..guid () local ttid = tid.."6" local t1id = guid () kgid = views[1].."关" id = views[1].."id" local func = Island开关(views[1],func1,func2) ID = views[1].."id"..guid() boxpic[tid] = luajava.loadlayout { ImageView , src = getRes("hei_right"), layout_width = "0dp" , layout_height = "0dp" , } --SwitchColor(_ENV[nid],灵动岛,"0xff252525") --MSwitch[#MSwitch+1] = ID firadio = { LinearLayout, layout_width="match_parent", layout_height = "wrap_content" , gravity = "center", orientation = "vertical", LayoutTransition=layoutTransition, onTouch = function() visi2 (tid , ttid) end } if type (views [1]) == "string" or type (views [1]) == "number" then firadio [# firadio + 1] = { LinearLayout, layout_width = 'match_parent', layout_height = "5dp", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", gravity = "center_vertical", LayoutTransition=layoutTransition, { LinearLayout , layout_width = '50dp' , layout_height = "60dp", gravity = "center_vertical" , --onClick = function () visi2 (tid , ttid) end, background = 灵动岛, { TextView , text = views [1] , textSize = "13sp" , Typeface=font, -- layout_marginLeft = "15dp" , layout_width = "match_parent" , layout_weight=1, textColor =0xffffff, Typeface=font, gravity = "center" , },{ LinearLayout , padding={"0dp","0dp","0dp","0dp"}, layout_width = "0dp" , layout_height = "0dp" , gravity = "center", -- background = getHorizontalBG({0xffe9e9e9,0xffe9e9e9},25), boxpic[tid], } } }else gg.alert ("changan.box的table内第一个元素必须是string") os.exit () end radios = { LinearLayout , orientation = "vertical" , visibility = "gone" , id = luajava.newId (tid) , layout_width = 'fill_parent' , elevation = "3dp", } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid] = luajava.loadlayout(radios) firadio [# firadio + 1] = boxes[tid] _ENV [t1id] = luajava.loadlayout ({ LinearLayout, layout_width="match_parent", layout_height = "wrap_content", gravity = "center", { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", background = luajava.loadlayout{GradientDrawable,color=灵动岛,cornerRadius=30}, firadio } }) return _ENV [t1id] end boxes = {} boxpic = {} function changan.lddLsland2(views) local tid = "LDDS"..guid () local ttid = tid.."6" local t1id = guid () kgid = views[1].."关" id = views[1].."id" local func = Island开关(views[1],func1,func2) ID = views[1].."id"..guid() boxpic[tid] = luajava.loadlayout { ImageView , } firadio = { LinearLayout, layout_width="match_parent", layout_height = "wrap_content" , gravity = "center", orientation = "vertical", LayoutTransition=layoutTransition, onTouch = function() visi3 (tid , ttid) end } if type (views [1]) == "string" or type (views [1]) == "number" then firadio [# firadio + 1] = { LinearLayout, layout_width = 'match_parent', layout_height = "25dp", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", gravity = "center_vertical", LayoutTransition=layoutTransition, { LinearLayout , layout_width = 'fill_parent' , layout_height = "60dp", gravity = "center_vertical" , background =灵动岛, { TextView , id="top_music", text =views[1], textSize = "9sp" , layout_width = "90dp" , layout_weight=1, textColor = "#ffffff" , Typeface=font, gravity = "center" , }, } }else os.exit () end radios = { LinearLayout , orientation = "vertical" , visibility = "gone" , id = luajava.newId (tid) , layout_width = 'fill_parent' , elevation = "3dp", } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid] = luajava.loadlayout(radios) firadio [# firadio + 1] = boxes[tid] _ENV [t1id] = luajava.loadlayout ({ LinearLayout, layout_width="match_parent", layout_height = "wrap_content", gravity = "center", { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", background = luajava.loadlayout{GradientDrawable,color=灵动岛,cornerRadius=40}, firadio } }) return _ENV [t1id] end local swfuncs={} swcDraw=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, }, { 0xFF664F9F, 0x33d7d7d7, }) swcThumb=ColorStateList({ {android.R.attr.state_checked}, {android.R.attr.state_pressed}, {-android.R.attr.state_pressed}, }, { 0xffffffff, 0xFF664F9F, 0xff4B484F }) swfuncs={} function changan.switch(name,func1,func2,miaoshu) local nid = name..guid() swfuncs[nid]={func1,func2} if not name then name = "未设置" end local size if not miaoshu then size='0sp' else size='11sp' end local rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "center_vertical", { LinearLayout, layout_width = 'fill_parent', layout_height = "40dp", gravity = "center_vertical", layout_marginLeft='4dp', layout_marginRight='4dp', layout_marginTop='4dp', layout_marginBottom='4dp', elevation='2dp', background = luajava.loadlayout { GradientDrawable , color = 0xffffffff , cornerRadius = 15 } ,padding = { "0dp","0dp","6dp","0dp" }, { TextView, gravity = "left", text = name, textColor = "#000000", textSize = "13sp", layout_weight = 1, layout_width = 'match_parent', layout_marginLeft = "10dp", layout_marginRight = "20dp", }, { TextView, gravity = "left", text = miaoshu or '', textSize = size, layout_width = "match_parent", layout_weight = 1, textColor = "#A5A5A5", layout_marginLeft = "10dp", layout_marginRight = "20dp", }, { MaterialSwitch, id=luajava.newId(nid), __onFinish=function(v) table.insert(switchs,v) v:setTrackTintList(swcDraw) v:setThumbTintList(swcThumb) luajava.setInterface(v, 'setOnCheckedChangeListener', {onCheckedChanged=function(view,isc) if isc then local func=swfuncs[nid][1] or function() end if func~=nil then luajava.startThread(func) end else local func=swfuncs[nid][2] or function() end if func~=nil then luajava.startThread(func) end end end}) end, layout_width = 'wrap_content', layout_height = 'wrap_content', }} }) return rest end switchs={} switches = {} function 开关3(name,func1,func2,nid) local sname = nid local localname=name name = nid _ENV[name] = "关" if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then local outfunc=function() namers = _ENV[name] if namers ~= "开" then vibra:vibrate(9) luajava.runUiThread(function() luajava.getIdValue(nid.."k"):setVisibility(View.GONE) YoYoImpl:with("ZoomInLeft"):duration(600):playOn(switches["2s"..sname]) luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE) luajava.getIdValue(nid):setBackground(checkbg) end) _ENV[name] = "开" pcall(func1) else vibra:vibrate(9) luajava.runUiThread(function() luajava.getIdValue(nid.."g"):setVisibility(View.GONE) YoYoImpl:with("ZoomInRight"):duration(600):playOn(switches["1s"..sname]) luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE) luajava.getIdValue(nid):setBackground(checkbga) end) _ENV[name] = "关" pcall(func2) end end if localname=="摇一摇隐藏UI" then yyfunc=outfunc end if localname=="音量键隐藏UI" then ylfunc=outfunc end return outfunc end end function getButtonBG() local selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, getVerticalBG({0x55d7d7d7,0x55d7d7d7},15)) selector:addState({ -android.R.attr.state_pressed }, getVerticalBG({按钮颜色,按钮颜色},15)) return selector end -- buts={} --heir=getRes("heir") function changan.button(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#333333" end local tid="Cbutton"..guid() buts[tid]=luajava.loadlayout( { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_vertical", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft='3dp', layout_marginRight='3dp', elevation='2dp', background = getButtonBG(), padding="10dp", onClick = function() changan.controlWater(buts[tid],300) luajava.newThread(func):start() end, { TextView, --id = luajava.newId(tid), textColor = txtc, Typeface=font, text = txt, textSize = "13sp", layout_height = "wrap_content", layout_width = "fill_parent", layout_weight=1, },{ImageView, -- src=heir, -- layout_height="14dp", -- layout_width="14dp", } }}) return buts[tid] end buts={} heir=getRes("heir") function changan.button2(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#6750a4" end local tid="Cbutton"..guid() buts[tid]=luajava.loadlayout( { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_vertical", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft='3dp', layout_marginRight='3dp', elevation='2dp', background = getHorizontalBG({0x00000000,0x00111111},15,2,0xff6750a4), padding="10dp", onClick = function() changan.controlWater(buts[tid],300) luajava.newThread(func):start() end, { TextView, --id = luajava.newId(tid), textColor = txtc, Typeface=font, text = txt, textSize = "13sp", layout_height = "wrap_content", layout_width = "fill_parent", gravity="center", layout_weight=1, } }}) return buts[tid] end buts={} heir=getRes("heir") function changan.buttonM(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#ffffff" end local tid="Cbutton"..guid() buts[tid]=luajava.loadlayout( { LinearLayout, layout_width = 'wrap_content', layout_height = "wrap_content", { MaterialButton, --LinearLayout, layout_width = 'wrap_content'; layout_height = '40dp'; text = txt; Typeface=font, layout_marginLeft = "5dp", textSize = "13sp"; onClick = function() changan.controlWater(buts[tid],300) luajava.newThread(func):start() end, }}) return buts[tid] end buts={} heir=getRes("heir") function changan.buttonred(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#ff0000" end local tid="Cbutton"..guid() buts[tid]=luajava.loadlayout( { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_vertical", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft='3dp', layout_marginRight='3dp', elevation='2dp', background = getHorizontalBG({0x00000000,0x00111111},15,2,0xffff0000), padding="10dp", onClick = function() changan.controlWater(buts[tid],300) luajava.newThread(func):start() end, { TextView, --id = luajava.newId(tid), textColor = txtc, Typeface=font, text = txt, textSize = "13sp", layout_height = "wrap_content", layout_width = "fill_parent", gravity="center", layout_weight=1, } }}) return buts[tid] end buts={} heir=getRes("heir") function changan.buttonlink(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#ffffff" end local tid="Cbutton"..guid() buts[tid]=luajava.loadlayout( { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_vertical", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft='3dp', layout_marginRight='3dp', elevation='2dp', background = getHorizontalBG({0xffff00cf,0xff5500ff},15,1,0xffffffff), padding="10dp", onClick = function() changan.controlWater(buts[tid],300) luajava.newThread(func):start() end, { TextView, --id = luajava.newId(tid), textColor = txtc, Typeface=font, text = txt, textSize = "13sp", layout_height = "wrap_content", layout_width = "fill_parent", gravity="center", layout_weight=1, } }}) return buts[tid] end function changan.image(img,height,width,pad,func) if not func then func=function() end end if not pad then pad="0dp" end if not height then height="80dp" end if not width then width="80dp" end return luajava.loadlayout({ LinearLayout, layout_height="wrap_content", layout_width="fill_parent", gravity="center", { ImageView, layout_height=height, layout_width=width, padding=pad, src=获取图片(img), onClick=function() luajava.newThread(func):start() end, }}) end function changan.edit (name , hint) _ENV [name] = name..guid () if not hint then hint = "点击输入文字" end rest = luajava.loadlayout ( { LinearLayout, layout_height="wrap_content", layout_width="match_parent", gravity="center", { LinearLayout , layout_width = 'match_parent' , layout_height = "40dp" , layout_marginTop = "5dp" , layout_marginBottom = "5dp" , layout_marginLeft = "0dp" , layout_marginRight = "0dp" , gravity = "center_vertical" , { EditText , background = getButtonBG(), gravity = "center" , hint = hint , textColor=check字体颜色, Typeface=font, textSize = "13sp", layout_height = "40dp" , layout_marginBottom = "-2dp", id=luajava.newId(_ENV [name]), layout_width = 'match_parent' , } } }) luajava.getIdValue(_ENV [name]):setHintTextColor(0xff545454) 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 chazhi={} chajv={} function changan.music2(name,bian,smin,smax,nows) _ENV[bian] =nows smin=tonumber(smin) smax=tonumber(smax) if _ENV[bian] == nil then _ENV[bian] = 1.0 end if not name then name = "未设置" end local names = name..guid() kid=guid().."sk" rest = luajava.loadlayout({ LinearLayout, layout_width = '200dp', layout_hight = "30dp", {LinearLayout, id=luajava.newId(kid), {TextView, id = luajava.newId(names), },{ Slider, thumbHeight='23dp', trackHeight='15dp', trackStopIndicatorSize='7dp', tickVisible=true,--true __onFinish=function(v) v:setTrackActiveTintList(ColorStateList({{},},{'0xff'.._ENV['控件颜色']})) v:setTrackInactiveTintList(ColorStateList({{},},{'0x55'.._ENV['控件颜色']})) v:setThumbTintList(ColorStateList({{},},{'0xff'.._ENV['控件颜色']})) luajava.setInterface(v, 'addOnChangeListener', function(SeekBar, var2, var3) _ENV[bian] = var2 end) end, layout_width = 'match_parent', id=luajava.newId(name.."seekbar"), valueFrom=smin, valueTo=smax, value=nows, stepSize=1.0, } }}) --0xFFE6DEF5 淡粉色 --0xFF664F9F 紫色 -- luajava.getIdView(name..'seekbar'):setHaloRadius(20)--拖动时背景阴影大小 return rest end chazhi={} chajv={} function changan.seek(name,bian,smin,smax,nows) local thum= getVerticalBG({0xffffffff,0xffffffff},4,10,switch颜色) thum:setSize(30, 40) _ENV[bian] =nows smin=tonumber(smin) smax=tonumber(smax) chajv[bian]=smax-smin chazhi[bian]=1-smin if smin==nil then smin=1 smax=10 end truesmin=1 truesmax=truesmin+chajv[bian] if not nows then nows = smin tnows=(smin-nows) else tnows=(nows-smin)+1 end if _ENV[bian] == nil then _ENV[bian] = 1.0 end if not name then name = "未设置" end local names = name..guid() rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", gravity = "center_vertical", background = getVerticalBG({按钮颜色,按钮颜色},15), elevation='2dp', { TextView, padding={"5dp","10dp","0dp","10dp",}, textSize="12sp", gravity = "top", textColor="#333333", Typeface=font, text = name..":"..nows, id = luajava.newId(names), layout_width = '100dp', layout_marginLeft = "5dp", layout_marginRight = "0dp", }, { Slider, id=nid, thumbHeight='23dp', trackHeight='15dp', trackStopIndicatorSize='0dp', layout_width = 'match_parent', layout_height = 'wrap_content', padding = { "0dp","0dp","0dp","0dp" }, value = nows, valueTo = smax, valueFrom = smin, stepSize = 1, thumbSize="2dp", tickVisible=false, onClick = function() luajava.newThread(function() func() end):start() end, addOnChangeListener = function(slider, value, fromUser) -- 如果执行的功能不是修改器的函数,或者不带阻塞的,可以不用 window:threadWraper 包裹,性能更好(属于UI线程) -- 如果不是用户触发的,不处理 if not fromUser then return end Snackbar:make(slider, '已选择数值 > '..value, Snackbar.LENGTH_SHORT):show() end }, }}) return rest end levels={} function changan.seek2(name , bian , smin , smax , nows,level) local smin=math.ceil(smin* 10)/10 local smax=math.ceil(smax* 10)/10 local nows=math.ceil(nows* 10)/10 local level=math.ceil(level* 10)/10 if bian~='mubx' and bian~='muby' then if _ENV [bian] == nil then _ENV [bian] = nows else gg.alert("seek控件的变量名称:"..bian.."重复!\n请换一个名称") os.exit() end end if not name then name = "未设置" end local names = name..guid () if not level then level=1 end levels[bian]=math.ceil(level* 10)/10 local shuzhi=luajava.loadlayout({ TextView , gravity = "center" , text = tostring(nows) , textColor=switch颜色, Typeface=font, id = luajava.newId (names) , layout_width = '50dp' , layout_marginLeft = "5dp" , layout_marginRight = "0dp" , }) local tmp1={TextView, background=getVerticalBG({0xeeffffff,0xeeffffff},15,2.5,0xff161616), layout_height="24dp", layout_width="24dp", gravity="center", elevation="2dp", layout_marginTop = "5dp" , layout_marginBottom = "5dp" , layout_marginLeft = "5dp" , layout_marginRight = "5dp" , text="-", textColor="#000000", Typeface=font, onClick=function() vibra:vibrate(4) if _ENV[bian]>smin then _ENV[bian]=_ENV[bian]-levels[bian] _ENV[bian]=tonumber(string.format("%.1f", _ENV[bian])) if _ENV[bian]smax then _ENV[bian]=smax end _ENV[bian]=math.ceil(_ENV[bian]* 10)/10 luajava.getIdValue(names):setText(tostring(_ENV[bian])) if bian=='mubx' or bian=='muby' then daxiao() end end end, } rest = luajava.loadlayout ( { LinearLayout , layout_width = 'fill_parent' , gravity = "center" , layout_height = "wrap_content" , { LinearLayout, layout_width = 'fill_parent', layout_height = "40dp", gravity = "center_vertical", layout_marginLeft='2dp', layout_marginRight='2dp', layout_marginTop='2dp', layout_marginBottom='2dp', elevation='2dp', background = luajava.loadlayout { GradientDrawable , color = 按钮颜色 , cornerRadius = 15 } ,padding = { "0dp","0dp","6dp","0dp" }, { TextView , gravity = "top" , text = name , textColor="#333333", Typeface=font, layout_weight=1, textSize='12sp', layout_width = 'match_parent' , layout_marginLeft = "10dp" , layout_marginRight = "0dp" , }, tmp1,shuzhi,tmp2 } }) return rest end radon=getRes("heiraon") radoff=getRes("heiraoff") radiog={} function changan.radio (cklist) local rid=guid() radiog[rid]={} rest = { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_marginTop = "30dp" , gravity = "top" , orientation = "vertical" , } if type (cklist [1]) == "string" then rds=2 rest [# rest + 1] = { TextView , gravity = "left" , padding="5dp", text = cklist [1] , textSize = "13sp" , textColor = 0xff000000 , layout_width = 'fill_parent' , layout_height = 'wrap_content' , layout_marginLeft = "10dp" , layout_marginRight = "5dp" , layout_marginTop = "0dp" , layout_marginBottom = "0dp" , } else rds=1 end local restt={ RadioGroup, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", layout_marginRight = "10dp", layout_marginLeft = "10dp", layout_marginTop='4dp', layout_marginBottom='4dp', elevation='2dp', orientation = "vertical" , background = luajava.loadlayout{GradientDrawable,color = 0xFFFFFFFF,cornerRadius = 15}, padding = {"0dp","0dp","6dp","0dp"}, } for i = rds , # cklist do local name = cklist [i] [1] local func = cklist [i] [2] if not name then name = "未设置" end local nid = name..guid () radiog[rid][nid]=false local tid = nid..guid () restt [# restt + 1] = { RadioButton , layout_width = '250dp' , layout_height = "wrap_content" , layout_marginLeft = "4dp" , layout_marginRight = "10dp" , text = name , textSize="13sp", textColor = 0xff000000 , gravity = "center_vertical" , onClick = function (v) --changan.controlWater (v, 200) luajava.startThread(func) end } end rest [# rest + 1] = restt return luajava.loadlayout (rest) end function radin(rid,nid,func) return function() for k,v in pairs(radiog[rid]) do luajava.getIdValue(k):setBackground(radoff) if k==nid and v~=true then luajava.getIdValue(k):setBackground(radon) v=true, luajava.newThread(func):start() end end end end function addadView(tmp) local function invoke() floatWindow:addView(tmp) end luajava.post(invoke) end function rmdadView(tmp) local function invoke() floatWindow:removeView(tmp) end luajava.post(invoke) end function getJMBG() local selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, dhla) selector:addState({ -android.R.attr.state_pressed }, dhlb) return selector end function huoqu(txt) return table.json(gg.makeRequest(wyyget.."song/url/v1?id="..txt.."&level=standard").content) end function souyy(txt) return table.json(gg.makeRequest("http://music.163.com/api/search/get?s="..txt.."&type=1&offset=0&total=true&limit=10").content) end function develo(tabb) gg.alert(tostring(tabb)) end function develo2(tabb) gg.copyText(tostring(tabb)) end function tablekIn(tbl, key) if tbl == nil then return false end for k, v in pairs(tbl) do if k == key then return true end end return false end function getbg() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(5) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0xFFFFFFFF,0xFFFFFFFF}) jianbians:setStroke(2,"0x11000000")--边框宽度和颜色 --elevation='3dp', selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#0x11000000", cornerRadius = 10 }) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, jianbians) -- 没点击的背景 return selector end function searchmusic() if not lasttm then lasttm = os.time() else if os.time() - lasttm <= 5 then gg.alert("请在" .. (5 - (os.time() - lasttm)) .. "秒冷却后搜索") return 0 end end if not wryt then else runnable = luajava.getRunnable(function() luajava.getIdView("搜索列表"):removeView(wyr) end) handler = luajava.getHandler() handler:post(runnable) end mustxt = luajava.getIdView("搜索"):getText() if string.len(tostring(mustxt)) <= 2 or tostring(mustxt) == nil then gg.alert("至少输入2个字符") return 0 end mustxt = tostring(mustxt) luajava.runUiThread(function() luajava.getIdView("jzz"):setVisibility(View.VISIBLE) luajava.getIdView("stxt"):setVisibility(View.GONE) end) lasttm = os.time() mustable = souyy(mustxt) mustable = mustable.result.songs -- print(mustable) musnames = {} musids = {} musarts = {} musictable = {} for k, v in pairs(mustable) do musictable[#musictable + 1] = v end -- gg.alert(tostring(mustable)) -- gg.alert(tostring(musictable)) -- gg.copyText(tostring(mustable)) -- gg.alert(#musictable) wrfun = {} wryt = { LinearLayout, id = luajava.newId("搜索结果"), layout_marginTop = "5dp", layout_width = "match_parent", layout_marginBottom = "5dp", elevation='3dp', orientation = "vertical" } for i = 1, #musictable do musid = musictable[i].id -- print('musid',musid) -- musid = musictable[i].album.id -- print('musid',musid) musids[#musids + 1] = musid musname = musictable[i].name if tablekIn(musictable[i], "transNames") ~= false then musname = musname .. "\n(" .. musictable[i].transNames[0] .. ")" end musnames[#musnames + 1] = musname musart = musictable[i].artists[0].name musarts[#musarts + 1] = musart wryt[#wryt + 1] = { LinearLayout, orientation = "vertical", layout_marginTop = "0dp", layout_marginBottom = "0dp", layout_width = "match_parent", background = getbg(), id = luajava.newId("音" .. musid), onClick = function() thread = luajava.getThread(function() bofang(musname, musid) end) thread:start() end, { TextView, layout_marginTop = "5dp", textSize = "13sp", textColor = "#5C6BC0", layout_marginBottom = "0dp", text = musname, layout_hight = "10dp", layout_width = "match_parent", elevation='3dp', gravity = "center" }, { TextView, layout_marginTop = "0dp", textColor = "#FF7F7F7F", textSize = "11sp", layout_marginBottom = "5dp", text = musart, layout_hight = "10dp", layout_width = "match_parent", gravity = "center" } } -- gg.sleep(50) wryt[#wryt].onClick = function() -- (function() -- bofang(musnames[i] .. musarts[i], musids[i]) -- end):start() luajava.startThread(function() bofang(musnames[i] .. musarts[i], musids[i]) time_MUSIC:setText(musnames[i]) top_music:setText(musnames[i]) MUSIC_WRITER:setText(musarts[i]) end) end end wyr = luajava.loadlayout(wryt) runnable = luajava.getRunnable(function() luajava.getIdView("搜索列表"):addView(wyr) end) handler = luajava.getHandler() handler:post(runnable) luajava.runUiThread(function() luajava.getIdView("jzz"):setVisibility(View.GONE) luajava.getIdView("stxt"):setVisibility(View.VISIBLE) end) -- gg.alert(tostring(wrfun)) end function bofang(gqmz, gdmn) luajava.runUiThread(function() luajava.getIdView("搜索结果"):setVisibility(View.GONE) luajava.getIdView("加载"):setVisibility(View.VISIBLE) end) mediaPlayer:reset() mediaPlayer:setDataSource("http://music.163.com/song/media/outer/url?id="..gdmn..".mp3") mediaPlayer:prepare() gg.playMusic("http://music.163.com/song/media/outer/url?id="..gdmn..".mp3" or huoqu(gdmn).data[0].url) gg.sleep(2000) luajava.runUiThread(function() luajava.getIdView("加载"):setVisibility(View.GONE) luajava.getIdView("搜索结果"):setVisibility(View.VISIBLE) end) end stxt = { TextView, text = "搜索", textColor="#FF000000", background=getbg(), layout_height="match_parent", visibility = "visible", gravity="center", layout_marginRight="10dp", id = luajava.newId("stxt"), layout_marginLeft = "1dp", textSize = "15sp", padding={"14.5dp","0dp","14.5dp","0dp"}, onClick = function() thread = luajava.getThread(function() searchmusic() end) thread:start() end } jzz = { TextView, text = "加载中", visibility = "gone", id = luajava.newId("jzz"), layout_marginLeft = "10dp", textSize = "15sp", textColor="#FF000000", } jiaz = { TextView, text = "正在加载歌曲资源", visibility = "gone", id = luajava.newId("加载"), textSize = "15sp", gravity = "center", textColor="#FF000000", } wyylog = luajava.loadlayout({ LinearLayout, orientation="vertical", layout_width = "match_parent", { ScrollView, layout_hight = "220dp", gravity="center_horizontal", layout_width = "match_parent", { LinearLayout, layout_width = "match_parent", {LinearLayout, padding="4dp", gravity="center", orientation="vertical", id=luajava.newId("固定音乐"), }, id = luajava.newId("搜索列表"), layout_hight = "300dp", orientation = "vertical", layout_width = "match_parent", gravity="center_horizontal", { LinearLayout, orientation = "horizontal", layout_width = "match_parent", padding={"10dp","0dp","10dp","0dp"}, { EditText, hint = "请输入关键词", textColor="#FF000000", textSize = "15sp", id = luajava.newId("搜索"), background = getbg(), focusableInTouch = "true", focusable = "true", selectAllOnFocus = "true", singleLine = "true", layout_weight=1, gravity="center", layout_width = "match_parent" }, stxt, jzz }, jiaz } } }) tcbTouch = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawY = event:getRawY() elseif Action == MotionEvent.ACTION_UP then if tox<0 then if tox<-120 then tox=-120 end canMove=false changebg() luajava.newThread(function() --vibra:vibrate(16) for i=1,-(tox/6) do luajava.runUiThread(function() tcbar:scrollBy(0,6) end) gg.sleep(10) end end):start() canMove=true end elseif Action == MotionEvent.ACTION_MOVE then isMove = true tox=-(event:getRawY() - RawY) if canMove then if tox>-120 and tox<0 then tcbar:scrollTo(0,tox) end end end end -- 定义初始尺寸和限制 local DEFAULT_WIDTH = 800 -- 初始宽度,竖屏建议850,横屏建议1310 local DEFAULT_HEIGHT = 600 -- 初始高度,竖屏建议1310,横屏建议850 local MIN_SIZE = 260 -- 最小尺寸限制 local MAX_WIDTH = 11100 -- 最大宽度限制 local MAX_HEIGHT = 24500 -- 最大高度限制 -- 定义suofang函数 function suofang(v, event) if isLocked then hanshu(v, event) return 0 end local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() hx = mainLayoutParams.height or DEFAULT_HEIGHT hy = mainLayoutParams.width or DEFAULT_WIDTH elseif Action == MotionEvent.ACTION_MOVE then isMove = true local mubx = tonumber(hx) + (event:getRawY() - RawY) local muby = tonumber(hy) + (event:getRawX() - RawX) -- 更新宽度和高度,同时确保它们在限制范围内 if mubx >= MIN_SIZE and mubx <= MAX_WIDTH then mainLayoutParams.height = mubx end if muby >= MIN_SIZE and muby <= MAX_HEIGHT then mainLayoutParams.width = muby end -- 如果尺寸太小,则重置为默认尺寸 if muby <= MIN_SIZE and mubx <= MIN_SIZE then muby = DEFAULT_HEIGHT mubx = DEFAULT_WIDTH -- 隐藏() return 0 end window:updateViewLayout(floatWindow, mainLayoutParams) end end -- 设置初始宽度和高度 muby = DEFAULT_HEIGHT mubx = DEFAULT_WIDTH --底部导航栏(未选中)背景 dhlb=getVerticalBG({0x99ffffff,0x99ffffff},15,0,0xaa232323) dhla=getVerticalBG({0xff6750A4,0xff6750A4},15,0,0xaa242937) --底部导航栏(选中)背景 muby=870 --初始宽度 竖屏建议850 横屏建议1310 (适用于主流分辨率下,低分辨率需要调低) mubx=1080 --初始高度 竖屏建议1310 横屏建议850 (适用于主流分辨率下,低分辨率需要调低) 背景颜色=0xfff2f3f5 check字体颜色=0xff000000 按钮颜色=0xffffffff 灵动岛=0xff000000 switch颜色=0xff6750A4 悬浮窗图标="https://cccimg.com/view.php/8d8735832b10bd36e82f230ea46f1117.jpg" function huiz() --绘制内容必须写在这里否则会消失 end context:setTheme(0x7f090065) loadYunLua('https://image.rlyun.fun/down.php/5d933c474ccb63d4314672f7a2716d3a.lua') _ENV['控件颜色']='6A51FF' --#0062ff 主题蓝色 --0xFF664F9F 主题紫色 --#FF635B72 checkbox颜色 stab={ "功能", "美化", "传送", "音乐", --'音乐', "设置", } 项目="蛋黄" luajava.setFloatingWindowHide(true) loadingBox = getLoadingBox('⚡️蛋黄正在加载⚡️') loadingBox['显示']() changan.menu({ { changan.quyu({ "守护进程标题", changan.text("蛋黄辅助",switch颜色,"19sp",true), changan.text("powered by 蛋黄",0xff333333,"12sp",true), changan.button( "选择进程", function() gg.setProcessX() end), changan.button( "4条值防", function() io.open("/sdcard/.局外","w+"):write([[8463 Var #766277F238|766277f238|4|d503201f|0|0|0|0|r-xp|/data/user/0/com.excean.masaid/gameplugins/1/com.miniworldroyale.sparkgame.meta/files/htp_update/5.6.7/libNetHTProtect.so|2d7238 Var #766277F23C|766277f23c|4|d503201f|0|0|0|0|r-xp|/data/user/0/com.excean.masaid/gameplugins/1/com.miniworldroyale.sparkgame.meta/files/htp_update/5.6.7/libNetHTProtect.so|2d723c Var #766277F240|766277f240|4|d503201f|0|0|0|0|r-xp|/data/user/0/com.excean.masaid/gameplugins/1/com.miniworldroyale.sparkgame.meta/files/htp_update/5.6.7/libNetHTProtect.so|2d7240 Var #766277F244|766277f244|4|14000000|0|0|0|0|r-xp|/data/user/0/com.excean.masaid/gameplugins/1/com.miniworldroyale.sparkgame.meta/files/htp_update/5.6.7/libNetHTProtect.so|2d7244 ]])gg.loadList("/sdcard/.局外", gg.LOAD_VALUES)os.remove("/sdcard/.局外") gg.toast("检测杀死") end), changan.button( "一条值防", function() io.open("/sdcard/.局外","w+"):write([[28013 29438 Var #771477F244|771477f244|4|14000000|0|0|0|0|r-xp|/data/user/0/com.excean.masaid/gameplugins/1/com.miniworldroyale.sparkgame.meta/files/htp_update/5.6.7/libNetHTProtect.so|2d7244 ]])gg.loadList("/sdcard/.局外", gg.LOAD_VALUES)os.remove("/sdcard/.局外") gg.toast("检测杀死") end), changan.button( "全局加速", function() local a=gg.prompt({"输入想修改的全局加速(改1恢复)"},{3},{"number"}) --libunity.so + 0x6EFA8 -> 0x378 -> 0x1D8 -> 0x400 -> 0x338 -> 0xFC local addr = readPointer("libunity.so", {454568, 888, 472, 1024, 824, 252}, 5) gg.edits(addr, {{a[1], 16, 0, true}}) gg.toast("开启成功") gg.toast("开启成功,共修改了12个值") end), changan.check({ { "贴墙透视", function() gg.toast(so({" 贴墙透视",-3146121216,32,32},{{0.10000000149011612,-4,16},{5,-8,16}},{{1,-4,16,1}})) end, function() gg.toast("无法关闭") end }, { "人物飞天", function() local t = gg.prompt({"请输入修改数值"},{[1]=""},{[1]="number"})[1] if tonumber(t)==1 then t=0.00999999978 end So({"人物飞天",1060439283,32,32},{{1065353216,8,4}},{{t,20,16}}) gg.alert("飞起来:"..t) end, function() local t = gg.prompt({"请输入修改数值"},{[1]=""},{[1]="number"})[1] if tonumber(t)==1 then t=0.00999999978 end So({"人物飞天",1060439283,32,32},{{1065353216,8,4}},{{t,20,16}}) gg.alert("飞起来:"..t) end }, { "人物爬墙", function() lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end gg.toast(so({"人物爬墙",1059360186,32,4},{{16777472,24,4}},{{99,8,16,1}})) gg.loopKillGG()-----杀GG end, function() lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end gg.toast(so({"人物爬墙",1059360186,32,4},{{16777472,24,4}},{{0,8,16,1}})) end }, { "燃烧增强", function() so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1FFC860, flags = 4, value = '~A LDRBLE R0, [PC], -R0, ASR #7' },--燃烧时间 --{address = so + 0x1CFD450, flags = 4, value = '~A8 FMOV S0, #0x41F00000' },--燃烧伤害 --{address = so + 0x1CFD498, flags = 4, value = '~A8 FMOV S0, #0x41F00000' }--燃烧范围 } gg.setValues(addresses) --gg.toast("id-Cs燃烧升级已注入") gg.toast("开启成功") end, function() gg.toast("无法关闭") end }, { "攻击范围", function() if gg.getRangesList("libunity.so")[1] then local t = {} t[1] = gg.getRangesList("libunity.so")[1]["start"] + 0x1385710; -- 数值地址:0x7BD0C14710 t[2] = gg.getRangesList("libunity.so")[1]["start"] + 0x1385714; -- 数值地址:0x7BD0C14714 k=gg.prompt({'推荐30-150,最高999,记得开一局使用关闭一次,不然下一局会卡虚空。'},{5},{'number'}) gg.setValues({ [1] = { address = t[1], flags = 16, value = k[1], }, [2] = { address = t[2], flags = 16, value = k[1], }, }) gg.toast("攻击范围开启成功") end end, function() if gg.getRangesList("libunity.so")[1] then local t = {} t[1] = gg.getRangesList("libunity.so")[1]["start"] + 0x1385710; -- 数值地址:0x7BD0C14710 t[2] = gg.getRangesList("libunity.so")[1]["start"] + 0x1385714; -- 数值地址:0x7BD0C14714 k=gg.prompt({'推荐30-150,最高999,记得开一局使用关闭一次,不然下一局会卡虚空。'},{5},{'number'}) gg.setValues({ [1] = { address = t[1], flags = 16, value = k[1], }, [2] = { address = t[2], flags = 16, value = k[1], }, }) gg.toast("攻击范围开启成功") end end }, { "锁定自瞄", function() so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x24A6468, flags = 4, value = '~A CDPNE 0, 2, CR13, CR7, CR4, {0}' }, {address = so + 0x24A65A0, flags = 4, value = '~A CDPNE 0, 2, CR13, CR7, CR4, {0}' } } gg.setValues(addresses) --gg.toast("id-Cs全屏瞄准已注入") string.toMusic("开启成功") end, function() end }, { "XA刀距", function() --A=gg.alert("🎉请选择模式","野蛮","️人类") --if A==1 then GJ="5.2" else GJ="2.6" end --So({"人类-近战升级","10301001~10301028",32,4}, --{{"10301001~10301028",28,32}}, --{{GJ,80,16},{GJ,84,16},{GJ,88,16},{GJ,92,16}}) --So({"攻击数量",4510805388492275712,32,32}, --{{1050253722,4,4},{1,16,4}}, --{{3.5,12,16},{2147483647,16,4}}) so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1D50A0C, flags = 4, value = '~A ANDSCC R3, R12, #232, 30' },--攻击数量 {address = so + 0x55677C8, flags = 16, value = 999999.0 }--攻击范围 } gg.setValues(addresses) --gg.toast("id-Cs近战升级已注入") end, function() end }, { "人物旋转", function() local v0_1, v1_1, v2_1 v0_1 = "setValues" function v1_1(a0_2, a1_2, a2_2) gg.setValues({ [1] = { address = a0_2, flags = a1_2, value = a2_2 } }) return end _ENV[v0_1] = v1_1 v0_1 = "setvalue" function v1_1(a0_2, a1_2, a2_2) tt = { [1] = {} } tt[1].address = a0_2 tt[1].flags = a1_2 tt[1].value = a2_2 gg.setValues(tt) return end _ENV[v0_1] = v1_1 v1_1 = 50 v2_1 = 1 v0_1 = 1 - v2_1 while true do v0_1 = v0_1 + v2_1 if not (v0_1 <= v1_1) then break end gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 360 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 340 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 320 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 300 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 280 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 260 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 240 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 220 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 200 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 180 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 160 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 140 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 120 } }) gg.sleep(50) gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 100 } }) end gg.setValues({ { address = gg.getRangesList("libunity.so")[1].start + 19819564, flags = 16, value = 280 } }) gg.toast("人物旋转开启成功") gg.toast("开启成功,共修改了8个值") end, function() end }, { "一秒万刀", function() local xg = gg.prompt({"输入修改每秒攻击的刀数。"},{[1]=""},{[1]="number"}) lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."一秒万刀开启失败!!!" end end gg.toast(so({"一秒万刀",4510805388492275712,32,32},{{1050253722,4,4},{1,16,4}},{{xg[1],16,4}})) end, function() local xg = gg.prompt({"输入修改每秒攻击的刀数。"},{[1]=""},{[1]="number"}) lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."一秒万刀开启失败!!!" end end gg.toast(so({"一秒万刀",4510805388492275712,32,32},{{1050253722,4,4},{1,16,4}},{{xg[1],16,4}})) end }, { "人物加速", function() so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1A514D8, flags = 4, value = '~A LDRBLE R0, [PC], -R0, ASR #7' },--持物加速 } gg.setValues(addresses) --gg.toast("id-Cs加速调试已注入") end, function() so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1A514D8, flags = 4, value = '~A LDRBLE R0, [PC], -R0, ASR #7' },--持物加速 } gg.setValues(addresses) --gg.toast("id-Cs加速调试已注入") end }, { "人物重力", function() lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end local xg = gg.prompt({"输入重力大小,原值1。"},{[1]=""},{[1]="number"}) so({"人物重力",4575657222509428736,32,32},{{1065353216,4,4},{"110~220",-0xC,4}},{{xg[1],12,16}}) end, function() lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end local xg = gg.prompt({"输入重力大小,原值1。"},{[1]=""},{[1]="number"}) so({"人物重力",4575657222509428736,32,32},{{1065353216,4,4},{"110~220",-0xC,4}},{{xg[1],12,16}}) end }, { "子弹数量", function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end wp = gg.prompt({"当前子弹","[当前子弹+1]子弹","子弹弹夹","修改子弹"},{[1]="",[2]="",[3]="",[3]=""}) local qmnb= { {['memory']=32}, {['name']='修改子弹'}, {['value']=wp[1], ['type']=4}, {['lv']=wp[2],['offset']=-96, ['type']=4}, {['lv']=wp[3],['offset']=4, ['type']=4}, } local qmxg= { {['value']=wp[4],['offset']=0,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.toast("无限子弹已注入") end, function() function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end wp = gg.prompt({"当前子弹","[当前子弹+1]子弹","子弹弹夹","修改子弹"},{[1]="",[2]="",[3]="",[3]=""}) local qmnb= { {['memory']=32}, {['name']='修改子弹'}, {['value']=wp[1], ['type']=4}, {['lv']=wp[2],['offset']=-96, ['type']=4}, {['lv']=wp[3],['offset']=4, ['type']=4}, } local qmxg= { {['value']=wp[4],['offset']=0,['type']=4,['freeze']=true}, } xqmnb(qmnb,qmxg) gg.toast("无限子弹已注入") end }, { "发射数量", function() So({"打击数量",100,32,32}, {{12,48,4},{1,28,4}}, {{2147483647,12,4}}) end, function() So({"打击数量",100,32,32}, {{12,48,4},{1,28,4}}, {{2147483647,12,4}}) end }, { "秒换弹夹", function() gg.toast(so({"秒换子弹",1050253722,32,4},{{1,0x10,4},{1,-4,4},{1,0x18,4},{0,4,4}},{{0,8,16,1},{0,0x14,16,1}})) gg.toast("秒换子弹已开启") string.toMusic("开启成功") end, function() end }, { "全图上色", function() so = gg.getRangesList('libunity.so')[3].start local addresses = { {address = so + 0xD21188, flags = 16, value = 3.5 }, {address = so + 0xD2118C, flags = 16, value = 0.6 }, } gg.setValues(addresses) gg.toast("全图上色已关闭") end, function() end }, { "魔刀增伤", function() so({"魔刀增伤",13020185,32,4},{{1063339950,60,4},},{{5600,80,4},}) gg.toast("魔刀增伤开启成功") string.toMusic("开启成功") end, function() end }, }), changan.switch( "武器无后", function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x1B7D778, 4, '~A LDRBLE R0, [PC], -R0, ASR #7' ) --gg.toast("id-Cs无后防抖已注入") end, function() end ), changan.switch( "人物高跳", function() local h = gg.prompt({"请输入修改数值"},{[1]=""},{[1]="number"})[1] So({"高跳调试",1117782016,32,32},{{1,-16,4},{0,-8,4},{1065353216,-4,4}},{{h,-12,16,1},}) gg.alert("id-Cs跳跃高度已修改为:"..h) end, function() local h = gg.prompt({"请输入修改数值"},{[1]=""},{[1]="number"})[1] So({"高跳调试",1117782016,32,32},{{1,-16,4},{0,-8,4},{1065353216,-4,4}},{{h,-12,16,1},}) gg.alert("id-Cs跳跃高度已修改为:"..h) end ), changan.switch( "武器射速", function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x2129A8C, 4, '~A EORCC R0, R6, #232, 14' )--函数调用子弹数量 so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x5455530, 16, 3.4e+38 )--函数调用枪械射速 --gg.toast("id-Cs武器升级已注入") end, function() gg.toast("无法关闭") end ), changan.switch( "锁定子弹", function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x28F31F8, 4, '~A LDRBLE R0, [PC], -R0, ASR #7' ) --gg.toast("id-Cs子弹无耗已注入") end, function() end ), changan.switch( "自动开火", function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x1A04DBC, 4, '~A STRNE R0, [R0], #-2821' ) gg.toast("自动开火已开启") end, function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x1A04DBC, 4, -132247565 ) gg.toast("自动开火已关闭") end ), changan.switch( "人物天线", function() so=gg.getRangesList('libunity.so')[3].start--这里是模块 py={[1]=0xD18DC4}--偏移量 setvalue(so+py[1],16,9.0) gg.toast("开启失败") end, function() so=gg.getRangesList('libunity.so')[3].start--这里是模块 py={[1]=0xD18DC4}--偏移量 setvalue(so+py[1],16,-2) gg.toast("关闭成功") end ), changan.switch( "人物广角", function() so = gg.getRangesList('libunity.so')[3].start setvalue(so + 0xD1AC28, 16, 160.0 ) --gg.toast("id-Cs广角视野已注入") end, function() so = gg.getRangesList('libunity.so')[3].start setvalue(so + 0xD1AC28, 16, 360 ) --gg.toast("id-Cs广角视野已注入") end ), changan.switch( "子弹穿墙", function() if gg.getRangesList("libunity.so")[1] then local t = {} t[1] = gg.getRangesList("libunity.so")[1]["start"] + 0x1058A90; -- 数值地址:0x7BBB696A90 gg.setValues({ [1] = { address = t[1], flags = 16, value = -9010873892864.0, }, }) gg.toast("子弹穿墙开启成功") end end, function() if gg.getRangesList("libunity.so")[1] then local t = {} t[1] = gg.getRangesList("libunity.so")[1]["start"] + 0x1058A90; -- 数值地址:0x7BBB696A90 gg.setValues({ [1] = { address = t[1], flags = 16, value = 9.214794447221429E-21, }, }) gg.toast("子弹穿墙关闭成功") end end ), changan.switch( "文字遮挡", function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x38B0928, 4, '~A LDRBLE R0, [PC], -R0, ASR #7' ) gg.toast("文字遮挡已开启") end, function() so = gg.getRangesList('libil2cpp.so')[1].start setvalue(so + 0x38B0928, 4, -788478977 ) gg.toast("文字遮挡已关闭") end ), changan.switch( "全图吸人", function() local qmnb= { {['memory']=16384}, {['name']='全图吸人 开'}, {['value']=-1744833803, ['type']=4}, {['lv']=-1744831923,['offset']=632, ['type']=4}, {['lv']=-1744832469,['offset']=716, ['type']=4}, } local qmxg= { {['value']=-721215457,['offset']=464,['type']=4}, } xqmnb(qmnb,qmxg) end, function() local qmnb= { {['memory']=16384}, {['name']='全图吸人 关'}, {['value']=-1744833803, ['type']=4}, {['lv']=-1744831923,['offset']=632, ['type']=4}, {['lv']=-1744832469,['offset']=716, ['type']=4}, } local qmxg= { {['value']=1017735424,['offset']=464,['type']=4}, } xqmnb(qmnb,qmxg) end ), changan.switch( "刺刀增强", function() so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1FC3A48, flags = 4, value = '~A STCLLT 5, CR0, [R0,#-0]' },--刺刀间隔 } gg.setValues(addresses) --gg.toast("id-Cs刺刀升级已注入") end, function() end ), changan.switch( "无视闪光", function() local qmnb= { {['memory']=16384}, {['name']='无视闪光'}, {['value']=-1746210842, ['type']=4}, {['lv']=-805140504,['offset']=4, ['type']=4}, {['lv']=-805141591,['offset']=8, ['type']=4}, } local qmxg= { {['value']=-698416192,['offset']=500,['type']=4}, } xqmnb(qmnb,qmxg) end, function() end ), ---以上是magisk风格面板实例 下面是Shizuku风格面板实例 }), },----以上是第一页 面板 {--第二页 changan.button( "查询代码", function() gg.alert([[ 武器名称=SCAR ………………………………… 10101001 SCAR 10101002 SCAR-调查局 10101003 SCAR-机械降神 10101004 SCAR-疾电 10101005 SCAR-玄武 10101006 SCAR-奇幻冒险 10101007 SCAR-涂鸦乐园 10101008 SCAR-小憩时光 10101009 SCAR-荣耀 1010100001 SCAR-黑天鹅 1010100002 SCAR-未来蛇影 1010100003 SCAR-浮世枫庭 ………………………………… 武器名称=AK47 ………………………………… 10101011 AK47 10101012 AK-调查局 10101013 AK47-绿野仙踪 10101014 AK47-法老 10101015 AK47-积木狂鲨 10101016 AK47-核弹危机 10101017 AK47-捣蛋鬼 10101018 AK47-原恒星 10101019 AK47-荣耀 1010101001 AK47-原子风暴 1010101002 AK47-萝卜枪 1010101003 AK47-白虎 1010101004 AK47-绝命天启 1010101005 AK47-萌龙特攻队 1010101006 AK47-白羊座 1010101007 AK47-关羽·青龙偃月 1010101008 AK47-蓐收 1010101009 AK47-荣誉英雄 1010101010 AK47-火尖枪 1010101011 AK47-代码:MINI 1010101012 AK47-陆地领主 1010101013 AK47-千机鸿影 ………………………………… 武器名称=M4 ………………………………… 10101021 M4 10101022 M4-调查局 10101023 M4-危险分子 10101024 M4-捣蛋鬼 10101025 M4-积木巨鳄 10101026 M4-龙舟 10101027 M4-机械降神 10101028 M4-原子风暴 10101029 M4-荣耀 1010102001 M4-原恒星 1010102002 M4-疾电 1010102003 M4-青龙 1010102004 M4-奇幻冒险 1010102005 M4-赵云·龙胆亮银 1010102006 M4-萌动出击 1010102007 M4-代码MINI 1010102008 M4-齐天大圣 1010102009 M4-祝融 1010102010 M4-命运之轮 1010102011 M4-青瓷浮梦 1010102012 M4-绮梦幻旅 ………………………………… 武器名称=AUG ………………………………… 10101031 AUG 10101032 AUG-调查局 10101033 AUG-来打我鸭 10101034 AUG-急速音符 10101035 AUG-荣耀 10101036 AUG-龙舟 10101037 AUG-原子风暴 10101038 AUG-龙行天下 10101039 AUG-双子座 1010103001 AUG-枪神 1010103002 AUG-电玩国度 ………………………………… 武器名称=Groza ………………………………… 10101041 Groza 10101042 Groza-舞狮-龙腾虎跃 10101043 Groza-舞狮-腾飞云霄 10101044 Groza-舞狮-繁花夜舞 10101045 Groza-舞狮-浮光跃金 10101046 Groza-萌动出击 10101047 Groza-荣耀 10101048 Groza-幻彩灵驹 ………………………………… 武器名称=M762 ………………………………… 10101051 M762 10101052 M762-旗开得胜 10101053 M762-荣耀 10101054 M762-疾电 10101055 M762-枪神 10101056 M762-奇幻冒险 10101057 M762-牧野寻芳 10101058 M762-雪地迷彩 10101059 M762-玉面玄狐 1010105001 M762-浮世枫庭 ………………………………… 武器名称=QBZ95 ………………………………… 10101060 QBZ-旅行者 10101061 QBZ 10101062 QBZ-爆裂 10101063 QBZ-荣耀 10101064 QBZ-疾电 10101065 QBZ-张飞·丈八蛇矛 10101066 QBZ-冰原射手 10101067 QBZ-朱雀 10101068 QBZ-雪地迷彩 10101069 QBZ-代码:MINI 1010106001 QBZ-饕餮盛宴 1010106002 QBZ-水瓶座 ………………………………… 武器名称=M16 ………………………………… 10101070 M16 10101071 M16-和平使者 10101072 M16-钢铁之心 10101073 M16-荣耀 10101074 M16-枪神 10101075 M16-嘷月之王 10101076 M16-喵星狂想 ………………………………… 武器名称=AK15 ………………………………… 10101080 AK15 10101081 AK15-荣耀 10101082 AK15-原子风暴 10101083 AK15-糖果屋 10101084 AK15-句芒 10101085 AK15-雪地迷彩 10101086 AK15-蓐收 10101087 AK15-茉莉 ………………………………… 武器名称=SG516 ………………………………… 10101090 SG516 10101091 SG516-荣耀 10101092 SG516-疾电 10101093 SG516-绝命天启 10101094 SG516-祝融 10101095 SG516-兔兔茶话会 ………………………………… 武器名称=ASVal ………………………………… 10101100 巨浪 10101101 巨浪-光棱-冰晶风暴 10101102 巨浪-光棱-红莲狂舞 10101103 巨浪-光棱-暮色猎影 10101104 巨浪-光棱-破晓晨星 10101105 巨浪-句芒 10101106 巨浪-大灰狼 10101107 巨浪-诸王圣启 ………………………………… 武器名称=FAMAS ………………………………… 10101200 Famas 10101201 Famas-夏日作战 10101202 Famas-雪地迷彩 10101203 Famas-纸质雕刻 ………………………………… 武器名称=G36 ………………………………… 10101300 G36 10101301 G36-天蓬元帅 10101302 G36-旅行者 ………………………………… 武器名称=AN94 ………………………………… 10101400 AN94 10101401 AN94-假面舞会 10101402 AN94-玄冥 10101403 AN94-百变脸谱 ………………………………… 武器名称=FNFAL ………………………………… 10101501 FNFAL-玄冥 ………………………………… 武器名称=ASh12 ………………………………… 10101601 ASh12-青瓷浮梦 10101602 ASh12-守护者 ………………………………… 武器名称=QBZ191 ………………………………… 10101701 QBZ191-马超·虎头湛金 ………………………………… 武器名称=SKS ………………………………… 10102001 SKS 10102002 SKS-调查局 10102003 SKS-紫目 10102004 SKS-红皇后 10102005 SKS-猎手 10102006 SKS-代码MINI 10102009 SKS-荣耀 ………………………………… 武器名称=MK12 ………………………………… 10102011 MK12 10102012 MK12-调查局 10102013 MK12-年年有鱼 10102014 MK12-裁决之眼 10102015 MK12-冰原射手 10102016 MK12-巨蟹座 10102019 MK12-荣耀 ………………………………… 武器名称=MINI14 ………………………………… 10102021 MINI14 10102022 MINl14-青瓷浮梦 武器名称=MK14 ………………………………… 10102031 MK14 10102032 MK14-熔岩怒吼 10102033 MK14-暴走甜心 ………………………………… 武器名称=QBU ………………………………… 10102040 QBU 10102041 QBU-二郎神 ………………………………… 武器名称=M24 ………………………………… 10103000 M24-守护者 10103001 M24 10103002 M24-调查局 10103003 M24-食人鱼 10103004 M24-信条 10103005 M24-星之翼 10103006 M24-爆裂 10103007 M24-奇幻冒险 10103008 M24-祝融 10103009 M24-荣耀 ………………………………… 武器名称=巴雷特 ………………………………… 10103011 巴雷特 10103012 巴雷特-调查局 10103013 巴雷特-炽热节拍 10103014 巴雷特-奇幻冒险 10103015 巴雷特-深海主宰 10103016 巴雷特-句芒 10103017 巴雷特-金蝉子 10103018 巴雷特-假面舞会 10103019 巴雷特-荣耀 1010301001 巴雷特-喵星狂想 ………………………………… 武器名称=Kar98k ………………………………… 10103021 Kar98k 10103022 Kar98k-积木萌龙 10103023 Kar98k-荣耀 10103024 Kar98k-原子风暴 10103025 Kar98k-奇幻冒险 10103026 Kar98k-暴风骤雨 10103027 Kar98k-荣誉英雄 10103028 Kar98k-雪地迷彩 ………………………………… 武器名称=AMR ………………………………… 10103031 AMR 10103032 AMR-星舰-曙光 10103033 AMR-星舰-云环 10103034 AMR-星舰-白宇 10103035 AMR-星舰-极光 10103036 AMR-萌龙特攻队 10103037 AMR-雪地迷彩 10103038 AMR-浮世枫庭 ………………………………… 武器名称=AWM ………………………………… 10103040 AWM 10103041 AWM-急速音符 10103042 AWM-机甲 10103043 AWM-夜鹰 10103044 AWM-荣耀 10103045 AWM-绝命天启 10103046 AWM-天秤座 10103047 AWM-代码:MINI 10103048 AWM-玄冥 ………………………………… 武器名称=SVD ………………………………… 10103050 SVD 10103051 SVD-小憩时光 10103052 SVD-铁血蔷薇 10103053 SVD-代码:MlNl ………………………………… 武器名称=M200 ………………………………… 10103060 M200 10103061 M200-夏日作战 10103062 M200-旅行者 10103063 M200-苍穹使者 ………………………………… 武器名称=M249 ………………………………… 10104001 M249 10104002 M249-调查局 10104003 M249-爆震 10104004 M249-信条 10104005 M249-急速音符 10104006 M249-野人猎手 10104007 M249-机械降神 10104008 M249-大力神 10104009 M249-荣耀 1010400001 M249-猎手 ………………………………… 武器名称=DP28 ………………………………… 10104010 DP28 10104011 DP28-二哈 10104012 DP28-沧龙 10104013 DP28-锯刃出鞘 10104014 DP28-荣耀 10104015 DP28-萝卜枪 10104016 DP28-猎手 10104017 DP28-蓐收 10104018 DP28-代码:MINI ………………………………… 武器名称=MG34 ………………………………… 10104020 MG34 10104021 MG34-奥丁神枪 10104022 MG34-涂鸦乐园 10104023 MG34-句芒 10104024 MG34-夏日作战 10104025 MG34-暴走甜心 ………………………………… 武器名称=RPK ………………………………… 10104030 RPK 10104031 RPK-萌龙特攻队 10104032 RPK-小憩时光 10104033 RPK-怒海狂徒 ………………………………… 武器名称=M60 ………………………………… 10104040 M60 10104041 M60-卷帘大将 10104042 M60-旅行者 10104043 M60-电幻之音 ………………………………… 武器名称=MP5 ………………………………… 10105001 MP5 10105002 MP5-调查局 10105003 MP5-机甲 10105004 MP5-多彩小熊 10105005 MP5-泡泡鲤 10105006 MP5-爆裂 10105007 MP5-疾电 10105008 MP5-奇幻冒险 10105009 MP5-荣耀 1010501001 MP5-太白金星 ………………………………… 武器名称=UZl ………………………………… 10105011 UZI 10105012 UZI-牛轧糖 10105013 UZI-荣耀 10105014 UZI-双持 10105015 UZI-双持-冰焰双生 10105016 UZI-疾电 10105017 UZI-萝卜枪 10105018 UZI-双持-牧野寻芳 10105019 UZI-枪神 10105020 UZl-双持-日月同辉 1010501101 UZI-浮世枫庭 ………………………………… 武器名称=Vector ………………………………… 10105021 Vector 10105022 Vector-迷雾 10105023 Vector-荣耀 10105024 Vector-原子风暴 10105025 Vector-机甲 10105026 Vector-处女座 10105027 Vector-小憩时光 10105028 Vector-小红帽 10105029 Vector-承影 1010502001 Vector-青瓷浮梦 ………………………………… 武器名称=野牛 ………………………………… 10105030 野牛-玄冥 10105031 野牛 10105032 野牛-调查局 10105033 野牛-破坏兔 10105034 野牛-毒液 10105035 野牛-狮心荣耀 10105036 野牛-牛轧糖 10105037 野牛-枪神 10105038 野牛-金牛座 10105039 野牛-荣耀 ………………………………… 武器名称=P90 ………………………………… 10105041 P90 10105042 P90-精准一击 10105043 P90-原恒星 10105044 P90-荣耀 10105045 P90-枪神 10105046 P90-机甲 10105047 P90-奇幻冒险 10105048 P90-娃娃机 10105049 P90-祝融 ………………………………… 武器名称=UMP45 ………………………………… 10105050 UMP45 10105051 UMP45-涂鸦乐园 10105052 UMP45-捣蛋鬼 10105053 UMP45-荣耀 10105054 UMP45-龙行天下 10105055 UMP45-白天鹅 10105056 UMP45-代码:MINI 10105057 UMP45-战车 ………………………………… 武器名称=MP7 ………………………………… 10105060 MP7 10105061 MP7-调查局 10105062 MP7-毒液 10105063 MP7-爆弹 10105064 MP7-维京战魂 10105065 MP7-荣耀 10105066 MP7-深海主宰 10105067 MP7-奇幻冒险 10105068 MP7-代码:MINI 10105069 MP7-守护者 ………………………………… 武器名称=汤姆逊 ………………………………… 10105070 汤姆逊 10105071 汤姆逊-雪地迷彩 10105072 汤姆逊-蓐收 10105073 汤姆逊-荣誉英雄 10105074 汤姆逊-宙斯 ………………………………… 武器名称=AKs74U ………………………………… 10105081 AKs74U-暗焰骑士 ………………………………… 武器名称=气锤 ………………………………… 10106001 气锤 10106002 气锤-调查局 10106003 气锤-水蜜桃 10106004 气锤-迷斯拉 10106005 气锤-彩虹蜥蜴 10106006 气锤-猎手 10106007 气锤-驱逐舰 10106009 气锤-荣耀 10106010 气锤-代码:MlNl ………………………………… 武器名称=S686 ………………………………… 10106011 S686 10106012 S686-调查局 10106013 S686-粉碎者 10106014 S686-爆裂 10106015 S686-射手座 10106016 S686-毒刺 10106019 S686-荣耀 ………………………………… 武器名称=双持S686 ………………………………… 10106050 双持S686-独行侠 10106051 双持S686 ………………………………… 武器名称=S1897 ………………………………… 10106020 S1897-机械降神 10106021 S1897 10106022 S1897-猎手 10106023 S1897-代码:MINI ………………………………… 武器名称=DBS ………………………………… 10106031 DBS 10106032 DBS-旗开得胜 10106033 DBS-荣耀 10106034 DBS-冰原射手 10106035 DBS-雪地迷彩 10106036 DBS-暖冬恋曲 ………………………………… 武器名称=S12K ………………………………… 10106040 S12K 10106041 S12K-史前霸主 10106042 S12K-糖果屋 ………………………………… 武器名称=USP ………………………………… 10201001 USP 10201002 USP-调查局 10201003 USP-橙子 10201004 USP-兔美美 10201005 USP-糖果屋 10201009 USP-荣耀 10201010 USP-桃花 ………………………………… 武器名称=沙漠之鹰 ………………………………… 10201011 沙漠之鹰 10201012 沙漠之鹰-趣味时光 10201013 沙漠之鹰-凤凰 10201014 沙漠之鹰-荣耀 10201015 沙漠之鹰-深海主宰 ………………………………… 武器名称=短管散弹枪 ………………………………… 10201021 短管霰弹枪 10201022 短管霰弹枪-小海豚 10201023 短管霰弹枪-荣耀 10201024 短管霰弹枪-原子风暴 ………………………………… 武器名称=弹弓 ………………………………… 10201030 弹弓 10201031 弹弓-积木 ………………………………… 武器名称=Glock19 ………………………………… 10201040 Glock19 10201041 Glock19-壳中幽灵 10201042 Glock19-怪兽派对 10201043 Glock19-荣耀 10201044 Glock19-捣蛋鬼 10201045 Glock19-炽热节拍 10201046 Glock19-萌动出击 ………………………………… 武器名称=左轮 ………………………………… 10201050 左轮 10201051 左轮-太阳神 10201052 左轮-原恒星 10201053 左轮-荣耀 10201054 左轮-萝卜枪 10201055 左轮-夏日作战 ………………………………… 武器名称=双持柯尔特 ………………………………… 10201060 双持柯尔特 10201061 双持柯尔特-冰原射手 10201062 双持柯尔特-绝命天启 10201064 双持柯尔特-绮梦幻旅 ………………………………… 武器名称=双持霰弹枪 ………………………………… 10201070 双持霰弹枪 10201071 双持霰弹-萌龙特攻队 10201072 双持霰弹-纸质雕刻 ………………………………… 武器名称=毛瑟 ………………………………… 10201080 毛瑟 10201081 毛瑟-荣誉英雄 10201082 毛瑟-兔兔茶话会 ………………………………… 武器名称=双持沙鹰 ………………………………… 10201090 双持沙鹰 10201091 双持沙鹰-小白龙 10201092 双持沙鹰-暖东恋曲 ………………………………… 武器名称=双持USP ………………………………… 10201100 双持USP 10201101 双持USP-莲花童子 10201102 双持USP-双鱼座 10201103 双持USP-喵星狂想 ………………………………… 武器名称=双持左轮 ………………………………… 10201200 双持左轮 10201201 双持左轮-怒海狂徒 10201202 双持左轮-摩羯座 ………………………………… 武器名称=双持Glock19 ………………………………… 10201300 双持Glock19 10201301 双持Glock19-未来蛇影 ………………………………… 武器名称=CZ75 ………………………………… 10201401 CZ75-百变脸谱 ………………………………… 武器名称=加特林 ………………………………… 10107001 加特林 10107002 加特林-雷霆之怒 10107003 加特林-野人猎手 10107004 加特林-荣耀 10107005 加特林-糖果屋 10107006 加特林-雪地迷彩 10107007 加特林-狮子座 10107008 加特林-毒刺 ………………………………… 武器名称=双持加特林 ………………………………… 10107030 双持加特林 10107031 双持加特林-失控时序 ………………………………… 武器名称=KAC锯式机枪 ………………………………… 10107021 KAC锯式机枪-哈迪斯 10107022 KAC锯式机枪-浮世枫庭 ………………………………… 武器名称=爆炸弓 ………………………………… 10108001 爆炸弓 10108002 爆炸弓-日暮月影 101080 ]]) end), changan.button( "美化自改", function() local xg = gg.prompt({"请输入修改武器代码"},{[1]="1010102008"},{[1]="number"}) so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1A3C92C, flags = 4, value = '~A STMDANE R10, {R0,R2,R4,R6,R7,R11,R12,SP,LR,PC}' }, {address = so + 0x1A52844, flags = 4, value = xg[1] }, {address = so + 0x1E57FC0, flags = 4, value = '~A STMDANE R0, {R0,R2,R4-R8,SP,LR,PC}' }, {address = so + 0x1E59BFC, flags = 4, value = xg[1] }, {address = so + 0x1E58048, flags = 4, value = '~A ADDPL R0, R0, #104' }, } gg.setValues(addresses) --gg.toast("id-Cs\n武器名称: " .. selectedWeaponName.."\n武器代码: " .. selectedWeaponCode.."") end), changan.box({ "步枪专区", changan.button( "关羽", function() so = gg.getRangesList('libil2cpp.so')[1].start local addresses = { {address = so + 0x1A3C92C, flags = 4, value = '~A STMDANE R10, {R0,R2,R4,R6,R7,R11,R12,SP,LR,PC}' }, {address = so + 0x1A52844, flags = 4, value = xg[1] }, {address = so + 0x1E57FC0, flags = 4, value = '~A STMDANE R0, {R0,R2,R4-R8,SP,LR,PC}' }, {address = so + 0x1E59BFC, flags = 4, value = xg[1] }, {address = so + 0x1E58048, flags = 4, value = '~A ADDPL R0, R0, #104' }, } gg.setValues(addresses) --gg.toast("id-Cs\n武器名称: " .. selectedWeaponName.."\n武器代码: " .. selectedWeaponCode.."") end), changan.button( "火尖枪", function() end), changan.button( "陆地领主", function() end), changan.button( "ak-绝命天启", function() end), changan.button( "ak-捣蛋鬼", function() end), changan.button( "ak-萌龙特工队", function() end), changan.button( "赵云", function() end), changan.button( "齐天大圣", function() end), changan.button( "m4-捣蛋鬼", function() end), changan.button( "命运之轮", function() end), changan.button( "m4-青龙", function() end), changan.button( "朱雀", function() end), changan.button( "张飞", function() end), changan.button( "皓月", function() end), changan.button( "龙腾", function() end), changan.button( "跃金", function() end), changan.button( "夜舞", function() end), changan.button( "云霄", function() end), changan.button( "红莲", function() end), changan.button( "冰晶", function() end), changan.button( "晨星", function() end), changan.button( "猎影", function() end), changan.button( "scar-黑天鹅", function() end), changan.button( "m762-玉面玄狐", function() end), }),--box结尾 changan.box({ "近战", changan.button( "金箍棒", function() end), changan.button( "诺娜娜", function() end), changan.button( "镰刀-绝命天启", function() end), changan.button( "拳套-萌龙", function() end), changan.button( "冰激凌", function() end), changan.button( "三叉戟", function() end), changan.button( "机甲重锤", function() end), changan.button( "英雄宝剑", function() end), changan.button( "能量双剑", function() end), changan.button( "光剑", function() end), changan.button( "武士刀", function() end), changan.button( "气球", function() end), changan.button( "暗黑狼牙棒", function() end), changan.button( "麦克风", function() end), changan.button( "炫彩萝卜刀", function() end), changan.button( "魔刀", function() end), }),--box结尾 }, {---第三页 changan.box({ "积木城堡🏰", changan.button( "锁位1", function() local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 5) gg.edits(addr, {{3.3011598587, 16, 0, false}, {2.83288931847, 16, 8, false}, {-1.57588434219, 16, 16, false}}) gg.toast("传送成功") end), changan.button( "锁位2", function() local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 5) gg.edits(addr, {{3.43775200844, 16, 0, false}, {3.00085926056, 16, 8, false}, {3.3043513298, 16, 16, false}}) gg.toast("传送成功") end), changan.button( "锁位3", function() local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 5) gg.edits(addr, {{2.61826634407, 16, 0, false}, {2.98312354088, 16, 8, false}, {3.73197817802, 16, 16, false}}) gg.toast("√") end), changan.button( "锁位4", function() local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 5) gg.edits(addr, {{3.62462353706, 16, 0, false}, {3.32209920883, 16, 8, false}, {3.82421445847, 16, 16, false}}) gg.toast("传送成功") end), changan.button( "锁位5", function() local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 5) gg.edits(addr, {{3.62659740448, 16, 0, false}, {3.46982979774, 16, 8, false}, {3.91453289986, 16, 16, false}}) gg.toast("传送成功") end), }),--box结尾 changan.box({ "迷你特训专区🌶", changan.button( "红酒庄园", function() --红酒庄园 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"553.93969726562","-52","16",true},{"30.56897926331","-48","16",true},{"39.00396728516","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "特训营地", function() --特训营地 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"682.439453125","-52","16",true},{"10.11852645874","-48","16",true},{"118.90930938721","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "迷萌城", function() --迷萌城 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"586.91583251953","-52","16",true},{"22.31999206543","-48","16",true},{"201.96411132812","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "迷斯拉家", function() --迷斯拉家 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"143.06602478027","-52","16",true},{"27.07734107971","-48","16",true},{"509.43130493164","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "彩虹村", function() --彩虹村 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"571.47497558594","-52","16",true},{"6.16745185852","-48","16",true},{"-212.34643554688","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "临海度假村", function() --临海度假村 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"297.43048095703","-52","16",true},{"4.0851726532","-48","16",true},{"-557.66760253906","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "农庄", function() --农庄 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"333.877929296875","-52","16",true},{"29.3369102478","-48","16",true},{"-437.80825805664","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "奇迹农场", function() --奇迹农场 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"72.54173278809","-52","16",true},{"85.63531494141","-48","16",true},{"-207.86128234863","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "豪宅", function() --豪宅 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-268.08624267578","-52","16",true},{"70.92770385742","-48","16",true},{"0.00424734876","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "游乐场", function() --游乐场 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-550.76458740234","-52","16",true},{"9.96378326416","-48","16",true},{"91.62003326416","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "侧宅", function() --侧宅 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-409.32632446289","-52","16",true},{"39.15836334229","-48","16",true},{"-18.26758766174","-44","16",true}}) gg.sleep(1000) gg.clearList() end), changan.button( "荒郊野岭", function() --荒郊野岭 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-381.02502441406","-52","16",true},{"23.66709327698","-48","16",true},{"336.93969726562","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "渔村", function() --渔村 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"78.35810852051","-52","16",true},{"0.93331086636","-48","16",true},{"102.69964599609","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "图书馆", function() --图书馆 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-231.34950256348","-52","16",true},{"33.63820266724","-48","16",true},{"505.78353881836","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "沿海大街", function() --沿海大街 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-685.77874755859","-52","16",true},{"5.68000888824","-48","16",true},{"-193.04058837891","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "天堂度假村", function() --天堂度假村 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-518.03118896484","-52","16",true},{"2.74814414978","-48","16",true},{"-589.37548828125","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "港口", function() --港口 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-25.8015460968","-52","16",true},{"2.40109705925","-48","16",true},{"-559.55596923828","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "遗迹", function() --遗迹 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-669.90258789062","-52","16",true},{"33.44501495361","-48","16",true},{"481.70944213867","-44","16",true}}) gg.sleep(500) gg.clearList() end), changan.button( "温泉酒店", function() --温泉酒店 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("传送成功") else gg.toast("Not Found") end end end fastsearch({{"1067702026","4","32"},{"1.0","-12","16"},{"1.0","-16","16"},{"1.0","-20","16"}},{{"-327.36645507812","-52","16",true},{"13.47700119019","-48","16",true},{"-230.36360168457","-44","16",true}}) gg.sleep(500) gg.clearList() end), }),--box结尾 },{---第四页 wyylog },{---第五页 changan.seek2('窗口宽度','mubx',250,dwidth,mubx,10), changan.seek2('窗口高度','muby',250,dheight,muby,10), changan.switch( "音量键隐藏UI",--改名会导致不能自动开启 function() 音量键=true end, function() 音量键=false end ), changan.switch( '摇一摇隐藏UI', function() 摇一摇=true end, function() 摇一摇=false end), changan.switch("跑马灯", function() color = { 0xff33AF61, 0xffFFB94D, 0xffFF0023, 0xff008CFF, 0xffA6FF00, 0xffFF95F2, 0xff946AFF, 0xff000000, 0xff545454, } -- 获取颜色数组的长度 local colorCount = #color -- 初始化当前颜色索引 local currentColorIndex = 1 -- 定义一个无限循环来不断切换颜色 while true do -- 设置当前颜色 time_MUSIC:setTextColor(color[currentColorIndex]) top_music:setTextColor(color[currentColorIndex]) -- 等待1秒 gg.sleep(500) -- 1000毫秒等于1秒 -- 切换到下一个颜色 currentColorIndex = currentColorIndex + 1 -- 如果当前颜色索引超过了颜色数组的长度,重置为1 if currentColorIndex > colorCount then currentColorIndex = 1 end end end, function() end), changan.button( "退出", function() tuichu=1 end), },{---第六页 },{---第七页 }, })