do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '逸泽内置', appid = '14946', appkey = 'y0GobGYb63c6Xhh6', rc4key = '8LUCP5I0iloDaqSC', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= 'b2c205ab324a7e3d99e733f6ec1f687b' then os.exit() return end end -- 把以上代码复制到你脚本最前面即可 gg.alert('逸泽内置') gg.alert("欢迎使用逸泽内置,规则自己配") toMusic("欢迎使用逸泽内置") draw.text(" 逸泽", 200,145)--字体 draw.text(' 顶尖', 200,220) draw.circle(300, 160, 120)--圆1 draw.circle(300, 160, 150)--圆2 draw.setColor('#FF4672FF') do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end function balert(bltxt,bltxt1,bltxt2) result=0 if not bltxt then bltxt='这里写正文\n测试\n测试' end if not bltxt1 then bltxt1='取消' end if not bltxt2 then bltxt2='确定' end bltxt=tostring(bltxt) bltxt1=tostring(bltxt1) bltxt2=tostring(bltxt2) local dialog = luajava.new(AlertDialog.Builder, app.context) local block = luajava.getBlock() local result local function exit() block('end') end layoutabc=luajava.loadlayout({ScrollView, {LinearLayout, background="#00000000", orientation="vertical", layout_width="match_parent", layout_height="match_parent", gravity = 'center', {ScrollView, gravity="center", layout_height="230dp", layout_width="fill_parent", padding="25dp", {LinearLayout, layout_marginTop="20dp", gravity="center", layout_height="220dp", layout_width="fill_parent", padding="25dp", {TextView, id = luajava.newId('弹窗文字'), textSize="18sp", text = bltxt, layout_height="wrap_content", layout_width="fill_parent", layout_gravity="center", gravity="center", },}}, {LinearLayout, gravity="center", layout_height="90dp", layout_width="fill_parent", orientation="horizontal", {Button, id="balt1", gravity="center", background=jianbian7, text=bltxt1, layout_height="40dp", layout_width="wrap_content", layout_marginRight="70dp", }, {Button, id="balt2", gravity="center", background=jianbian8, text=bltxt2, layout_height="40dp", layout_width="wrap_content", layout_marginLeft="70dp", } }}}) balt1.onClick = function() result = 1 dialog:dismiss() exit() end balt2.onClick = function() result = 2 dialog:dismiss() exit() end dialog:setView(layoutabc) dialog:setOnDismissListener(luajava.createProxy('android.content.DialogInterface$OnDismissListener', { onDismiss = function(view) exit() end})) local function invoke() dialog = dialog:create() local window = dialog:getWindow() window:setType(Build.VERSION.SDK_INT >= 26 and 2038 or 2002) window:setBackgroundDrawable(jianbian6) window:getDecorView():setPadding(0,0,0,0) dialog:show() --window:setLayout(1400,1000) YoYoImpl:with("FadeIn"):duration(300):playOn(layoutabc) end luajava.handlerPost(invoke) block('join') return result end function 花神提示(text) text = tostring(text) local block = luajava.getBlock() local layout = luajava.loadlayout({ LinearLayout, background=jianbian7, gravity='center', layout_height='match_parent', layout_width='match_parent', layout_wight='1', { TextView, id = luajava.newId('TextView'), text = text, textSize = '18sp', textColor = "#ffffffff", margins = {'20dp', '10dp', '20dp', '10dp'} } }) local function invoke() if toaa==nil then toaa = Toast:makeText(app.context, '', 1) end toaa:setView(layout) toaa:show() end luajava.handlerPost(invoke) end ----------------------------------------------------------------------------------------- function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function pdcf(lujing) rec = "/storage/emulated/0/sgly/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end sleep = gg.sleep --if gg.isHTTPdump()==true and panduan("/storage/emulated/0/sgly/配置文件/vpn.txt") == false then gg.alert("\n抓包?") os.exit() end function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end function wtcf(lujing,neirong) write("/storage/emulated/0/sgly/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/storage/emulated/0/sgly/配置文件/"..lujing) end function checkimg(tmp) if panduan("/sdcard/sgly/图片/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."\n请耐心等待") download("https://wf980627-512739054-1317447113.cos.ap-nanjing.myqcloud.com/"..tmp,"/sdcard/sgly/图片/"..tmp) end end -----------功能放上面或者放哪都行只要不在menu后面 layoutcolor = "#aa000000" sgly = {} local sgly = sgly local android = import('android.*') function write(fileName, content) --f = assert( io.open( fileName, 'w')) f:write( content ) f:close() if file.write(fileName, content) == false then gg.alert("请给框架和修改器 文件储存权限\n否则无法正常运行") os.exit() end end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function pdcf(lujing) rec = "/sdcard/sgly/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end sleep = gg.sleep --if gg.isHTTPdump()==true and panduan("/sdcard/sgly/配置文件/vpn.txt") == false then gg.alert("\n抓包?") os.exit() end function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end function wtcf(lujing,neirong) write("/sdcard/sgly/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/sdcard/sgly/配置文件/"..lujing) end function pmusic(x) if audiokg == "开" then tmp1 = 0 gg.playMusic(x) tmp1 = 1 end end if pdcf("audio") ~= true then wtcf("audio","开") end audiokg = rdcf("audio") function camusic(ress) tmp1 = 0 if audiokg == "开" then if panduan("/sdcard/sgly/音频/"..ress) == true then pmusic("/sdcard/sgly/音频/"..ress) tmp1 = 1 else download("https://wf980627-512739054-1317447113.cos.ap-nanjing.myqcloud.com/"..ress ,"/sdcard/sgly/音频/"..ress) pmusic("/sdcard/sgly/音频/"..ress) tmp1 = 1 end end end 开 = "开" 关 = "关" function checkimg(tmp) if panduan("/sdcard/sgly/图片/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."\n请耐心等待") download("https://wf980627-512739054-1317447113.cos.ap-nanjing.myqcloud.com/"..tmp,"/sdcard/sgly/图片/"..tmp) end end file.getdirs("/sdcard/sgly/状态读取/") ckimg = { "imgui", "pink", "blue", "check2", "check1", "exit", "qq2", "ditf3", "checkon2", "checkof", "qiufeng", } for i = 1,#ckimg do jindu = i checkimg(ckimg[i]) end gg.toast("资源下载完毕,祝你稳定奔放") local context = app.context local window = context:getSystemService("window") -- 获取窗口管理器 function getLayoutParams() LayoutParams = WindowManager.LayoutParams layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.RIGHT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end slctb = luajava.loadlayout { GradientDrawable, color = "#bb000000", cornerRadius = 12 } slcta = luajava.loadlayout { GradientDrawable, color = "#ff333e", cornerRadius = 12 } slctc = luajava.loadlayout { GradientDrawable, color = "#11ffffff", cornerRadius = 8 } slctd = luajava.loadlayout { GradientDrawable, color = "#55ffffff", cornerRadius = 8 } slcte = luajava.loadlayout { GradientDrawable, color = "#11ffffff", cornerRadius = 12 } slctf = luajava.loadlayout { GradientDrawable, color = "#aa272327", cornerRadius = 12 } function getSelector3() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#bbffffff", cornerRadius = 12 }) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#feff333e", cornerRadius = 12 }) -- 没点击的背景 return selector end function getSelector() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slcta) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctb) -- 没点击的背景 return selector end function getSelector6() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#bbffffff", cornerRadius = 12 }) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#ff333e", cornerRadius = 12 }) -- 没点击的背景 return selector end function getSelector7() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#000000", cornerRadius = 12 }) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#ff333e", cornerRadius = 12 }) -- 没点击的背景 return selector end function getSelector2() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slctd) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctc) -- 没点击的背景 return selector end jianbian = luajava.new(GradientDrawable) jianbian:setCornerRadius(30) jianbian:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian2 = luajava.new(GradientDrawable) jianbian2:setCornerRadius(30) jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT) local isswitch YoYoImpl = luajava.getYoYoImpl() menu = function(stext,sview) if isswitch then return false end isswitch = true cebian = luajava.loadlayout({ LinearLayout, id = "侧边", visibility = "gone", layout_height = "200dp", layout_width = "88dp", orientation = "vertical", background = { GradientDrawable, color = "#00ffffff", cornerRadius = 10 }, { LinearLayout, id = "jm1", layout_height = "28dp", layout_width = "88dp", gravity = "center", layout_marginTop = "2dp", layout_marginBottom = "2dp", { TextView, text = stab[1], gravity = "center", layout_height = "28dp", layout_width = "88dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", }}, { LinearLayout, id = "jm2", gravity = "center", layout_height = "28dp", layout_width = "88dp", layout_marginTop = "2dp", layout_marginBottom = "2dp", background = getSelector(), { TextView, text = stab[2], layout_height = "28dp", layout_width = "88dp", gravity = "center", layout_marginLeft = "10dp", layout_marginRight = "10dp", }}, { LinearLayout, id = "jm3", gravity = "center", layout_height = "28dp", layout_width = "88dp", layout_marginTop = "2dp", layout_marginBottom = "2dp", background = getSelector(), onClick = function() end, { TextView, text = stab[3], layout_height = "28dp", layout_width = "68dp", gravity = "center", layout_marginLeft = "10dp", layout_marginRight = "10dp", }}, { LinearLayout, id = "jm4", gravity = "center", layout_height = "28dp", layout_width = "88dp", layout_marginTop = "2dp", layout_marginBottom = "2dp", onClick = function() end, background = getSelector(), { TextView, text = stab[4], layout_height = "28dp", layout_width = "68dp", gravity = "center", layout_marginLeft = "10dp", layout_marginRight = "10dp", }},{ LinearLayout, id = "jm5", gravity = "center", layout_height = "28dp", layout_width = "88dp", layout_marginTop = "4dp", layout_marginBottom = "4dp", onClick = function() end, background = getSelector(), { TextView, text = stab[5], layout_height = "28dp", layout_width = "68dp", gravity = "center", layout_marginLeft = "10dp", layout_marginRight = "10dp", }}, { LinearLayout, id = "exit", gravity = "center", layout_height = "28dp", layout_width = "88dp", layout_marginTop = "2dp", layout_marginBottom = "0dp", onClick = function() end, background = getSelector(), { TextView, text = "退出逸泽", layout_height = "28dp", layout_width = "68dp", gravity = "center", layout_marginLeft = "10dp", layout_marginRight = "10dp", }}, }) layout1 = luajava.loadlayout({ ScrollView, fillViewport = "true", padding = "7dp", id = "layout1", visibility = "gone", layout_width = "230dp", layout_height = "250dp", orientation = "horizontal", { LinearLayout, id = "layouta", background = luajava.loadlayout({ GradientDrawable, color = layoutcolor, cornerRadius = 20 }), gravity = "top", layout_width = "210dp", orientation = "vertical", gravity = "center_horizontal", } }) layout2 = luajava.loadlayout({ ScrollView, fillViewport = "true", padding = "7dp", id = "layout2", visibility = "gone", layout_width = "230dp", layout_height = "250dp", orientation = "horizontal", { LinearLayout, id = "layoutb", background = luajava.loadlayout({ GradientDrawable, color = layoutcolor, cornerRadius = 20 }), layout_width = "210dp", orientation = "vertical", gravity = "center_horizontal", } }) layout3 = luajava.loadlayout({ ScrollView, fillViewport = "true", padding = "7dp", id = "layout3", visibility = "gone", layout_width = "230dp", layout_height = "250dp", orientation = "horizontal", { LinearLayout, id = "layoutc", background = luajava.loadlayout({ GradientDrawable, color = layoutcolor, cornerRadius = 20 }), layout_width = "210dp", orientation = "vertical", gravity = "center_horizontal", } }) layout4 = luajava.loadlayout({ ScrollView, fillViewport = "true", padding = "7dp", id = "layout4", visibility = "gone", layout_width = "230dp", layout_height = "250dp", orientation = "horizontal", { LinearLayout, id = "layoutd", background = luajava.loadlayout({ GradientDrawable, color = layoutcolor, cornerRadius = 20 }), layout_width = "210dp", orientation = "vertical", gravity = "center_horizontal", } }) layout5 = luajava.loadlayout({ ScrollView, fillViewport = "true", padding = "7dp", id = "layout5", visibility = "gone", layout_width = "230dp", layout_height = "250dp", orientation = "horizontal", { LinearLayout, id = "layoute", background = luajava.loadlayout({ GradientDrawable, color = layoutcolor, cornerRadius = 20 }), layout_width = "210dp", orientation = "vertical", gravity = "center_horizontal", } }) title = luajava.loadlayout({ LinearLayout, layout_width = "wrap_content", layout_height = "48dp", id = "title", gravity = "center", { TextView, id = "titlet", layout_width = "90dp", layout_height = "wrap_content", text = stitle, textColor = "#ff333e", gravity = "center", textSize = "13sp", }}) ckou = luajava.loadlayout({ LinearLayout, id = "chuangk", visibility = "visible", layout_width = "wrap_content", layout_height = "match_parent", orientation = "horizontal", background = { GradientDrawable, color = "#00272327", cornerRadius = 10 }, layout1,layout2,layout3,layout4,layout5, { LinearLayout, layout_width = "wrap_content", layout_height = "wrap_content", orientation = "vertical", { LinearLayout, layout_width = "wrap_content", layout_height = "wrap_content", orientation = "horizontal", background = { GradientDrawable, color = "#aa000000", cornerRadius = 16 }, gravity = "center_vertical", { LinearLayout, id = "control", layout_width = "wrap_content", layout_height = "wrap_content", layout_marginLeft = "0dp", layout_marginTop = "2dp", layout_marginBottom = "2dp", gravity = "center", title, }, }, cebian, } }) floatWindow = { LinearLayout, id = "motion", layout_width = "230dp", orientation = "vertical", gravity = "center_vertical", layout_height = "wrap_content", ckou } local function invoke() local ok local RawX, RawY, x, y mainLayoutParams = getLayoutParams() floatWindow = luajava.loadlayout(floatWindow) local function invoke2() block('start') for i = 1,#sview[1] do layouta:addView(sview[1][i]) end for i = 1,#sview[2] do layoutb:addView(sview[2][i]) end for i = 1,#sview[3] do layoutc:addView(sview[3][i]) end for i = 1,#sview[4] do layoutd:addView(sview[4][i]) end window:addView(floatWindow, mainLayoutParams) block('end') end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) block('join') control.onClick = function() 隐藏() end jm1.onClick = function() luajava.newThread(function() end):start() 切换(1) end jm2.onClick = function() 切换(2) end jm3.onClick = function() 切换(3) end jm4.onClick = function() 切换(4) end jm5.onClick = function() 切换(5) end exit.onClick = function() for k,v in pairs(floattable) do if v~=0 then rmvfloat(k) floattable[k]=0 end end gg.toast("已退出逸泽") for k,v in pairs(titletable) do if v~=0 then rmvtitle(k) titletable[k]=0 end end window:removeView(floatWindow) luajava.setFloatingWindowHide(false) luajava.newThread(function() os.exit() end):start() bloc("end") end local isMove hanshu = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() x = mainLayoutParams.x y = mainLayoutParams.y elseif Action == MotionEvent.ACTION_MOVE then isMove = true mainLayoutParams.x = tonumber(x) - (event:getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(floatWindow, mainLayoutParams) end end motion.onTouch = hanshu control.onTouch = hanshu exit.onTouch = hanshu jm1.onTouch = hanshu jm2.onTouch = hanshu jm3.onTouch = hanshu jm4.onTouch = hanshu jm5.onTouch = hanshu end invoke(swib1,swib2) jm1:setBackground(slcta) gg.setVisible(false) luajava.setFloatingWindowHide(true) runnable = luajava.getRunnable(function() layoute:addView(wyylog,getLayoutParams2()) end) handler = luajava.getHandler() handler:post(runnable) end corbk = true 当前ui = 1 function 切换(x) 当前ui = x luajava.runUiThread(function() if 当前ui == 1 then jm1:setBackground(slcta) jm2:setBackground(getSelector()) jm3:setBackground(getSelector()) jm4:setBackground(getSelector()) jm5:setBackground(getSelector()) layout1:setVisibility(View.VISIBLE) layout2:setVisibility(View.GONE) layout3:setVisibility(View.GONE) layout4:setVisibility(View.GONE) layout5:setVisibility(View.GONE) elseif 当前ui == 2 then jm1:setBackground(getSelector()) jm2:setBackground(slcta) jm3:setBackground(getSelector()) jm4:setBackground(getSelector()) jm5:setBackground(getSelector()) layout1:setVisibility(View.GONE) layout2:setVisibility(View.VISIBLE) layout3:setVisibility(View.GONE) layout4:setVisibility(View.GONE) layout5:setVisibility(View.GONE) elseif 当前ui == 3 then jm1:setBackground(getSelector()) jm2:setBackground(getSelector()) jm3:setBackground(slcta) jm4:setBackground(getSelector()) jm5:setBackground(getSelector()) layout1:setVisibility(View.GONE) layout2:setVisibility(View.GONE) layout3:setVisibility(View.VISIBLE) layout4:setVisibility(View.GONE) layout5:setVisibility(View.GONE) elseif 当前ui == 4 then jm1:setBackground(getSelector()) jm2:setBackground(getSelector()) jm3:setBackground(getSelector()) jm4:setBackground(slcta) jm5:setBackground(getSelector()) layout1:setVisibility(View.GONE) layout2:setVisibility(View.GONE) layout3:setVisibility(View.GONE) layout4:setVisibility(View.VISIBLE) layout5:setVisibility(View.GONE) elseif 当前ui == 5 then jm1:setBackground(getSelector()) jm2:setBackground(getSelector()) jm3:setBackground(getSelector()) jm4:setBackground(getSelector()) jm5:setBackground(slcta) layout1:setVisibility(View.GONE) layout2:setVisibility(View.GONE) layout3:setVisibility(View.GONE) layout4:setVisibility(View.GONE) layout5:setVisibility(View.VISIBLE) end end) luajava.runUiThread(function() if 当前ui == 1 then layout1:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(layout1) elseif 当前ui == 2 then layout2:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(layout2) elseif 当前ui == 3 then layout3:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(layout3) elseif 当前ui == 4 then layout4:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(layout4) elseif 当前ui == 5 then layout5:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(layout5) end --floatWindow:setBackground(beij) end) end 显示 = 0 beij = luajava.loadlayout({ GradientDrawable, color = "#99000000", cornerRadius = 10 }) beij2 = luajava.loadlayout({ GradientDrawable, color = "#00272327", cornerRadius = 10 }) function getcolor(cl) cl[1] = tonumber(math.ceil(cl[1]*2.6,0,5)) if cl[1] > 255 then cl[1] = "0xff" else cl[1] = "0x"..string.format("%x",cl[1]) end for i = 1,3 do cl[i+1] = string.format("%x",cl[i+1]) if string.len(cl[i+1]) == 1 then cl[i+1] = "0"..cl[i+1] end end cl = cl[1]..cl[2]..cl[3]..cl[4] return cl end function getrgb(cl) if string.sub(cl,1,1) == "#" then cl = "0x"..string.sub(cl,2,-1) end cl = { tonumber(string.sub(cl,0,4)),tonumber("0x"..string.sub(cl,5,6)),tonumber("0x"..string.sub(cl,7,8))} return cl end function 隐藏() luajava.runUiThread(function() --control:setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/imgui")) if tonumber(tostring(cebian:getVisibility())) == 8.0 then --chuangk:setVisibility(View.VISIBLE) cebian:setVisibility(View.VISIBLE) --title:setVisibility(View.VISIBLE) luajava.runUiThread(function() mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window:updateViewLayout(floatWindow, mainLayoutParams) end) YoYoImpl:with("FadeIn"):duration(200):playOn(cebian) luajava.runUiThread(function() YoYoImpl:with("FadeIn"):duration(800):playOn(title) if 当前ui == 1 then layout1:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(layout1) elseif 当前ui == 2 then layout2:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(layout2) elseif 当前ui == 3 then layout3:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(layout3) elseif 当前ui == 4 then layout4:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(layout4) elseif 当前ui == 5 then layout5:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(layout5) end floatWindow:setBackground(beij) end) else luajava.runUiThread(function()mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE window:updateViewLayout(floatWindow, mainLayoutParams) end) --control:setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/imgui")) --title:setVisibility(View.GONE) floatWindow:setBackground(beij2) --chuangk:setVisibility(View.GONE) cebian:setVisibility(View.GONE) layout1:setVisibility(View.GONE) layout2:setVisibility(View.GONE) layout3:setVisibility(View.GONE) layout4:setVisibility(View.GONE) layout5:setVisibility(View.GONE) end end) end function guid() seed = { 'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' } tb = {} for i = 1,32 do table.insert(tb,seed[math.random(1,16)]) end sid = table.concat(tb) return string.format('%s%s%s%s%s', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) ..string.format('%s%s%s%s%s', string.sub(sid,1,6), string.sub(sid,21,25) ) end function getLayoutParams2() local prm = luajava.new(WindowManager.LayoutParams) layoutParams1 = prm if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY else layoutParams1.type = prm.TYPE_PHONE end layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams1.gravity = Gravity.CENTER -- 重力设置 layoutParams1.width = prm.WRAP_CONTENT -- 布局宽度 layoutParams1.height = prm.WRAP_CONTENT -- 布局高度 return layoutParams1 end chazhi = {} chajv = {} function seek(name,bian,smin,smax,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 = 'wrap_content', layout_height = "wrap_content", { LinearLayout, layout_width = 'fill_parent', layout_height = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = luajava.loadlayout { GradientDrawable, color = "#33ffffff", cornerRadius = 12 }, { TextView, gravity = "top", text = name..":"..nows, id = luajava.newId(names), layout_width = '70dp', layout_marginLeft = "5dp", layout_marginRight = "0dp", }, { SeekBar, layout_width = '120dp', min = truesmin, max = truesmax, progress = tnows, onSeekBarChange = { onProgressChanged = function(SeekBar, var2, var3) if not var3 then return end local resultvar = tonumber(string.sub(var2,0,-3))-chazhi[bian] luajava.runUiThread(function() luajava.getIdValue(names):setText(name..":".. resultvar) end) _ENV[bian] = resultvar end }} }}) return rest end paramt = {} titletable={} function newtitle(name) titletable[name]=1 local function invoke(name) if not name then name = "未设置" end nameid = name..guid() local ok local RawX, RawY, x, y paramt[name] = getLayoutParams2() _ENV[name] = luajava.loadlayout( { LinearLayout, layout_width = "wrap_content", layout_height = "50dp", background = luajava.loadlayout { GradientDrawable, color = "#00000000", cornerRadius = 30 }, onClick = function() end, onTouch = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() x = paramt[name].x y = paramt[name].y elseif Action == MotionEvent.ACTION_MOVE then isMove = true paramt[name].x = tonumber(x) + (event:getRawX() - RawX) paramt[name].y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(_ENV[name], paramt[name]) end end, { TextView, text = name, id=luajava.newId(name.."xfc"), gravity = "center", layout_width = "wrap_content", layout_height = "30dp", textSize = "17sp", } }) local function invoke2() window:addView(_ENV[name], paramt[name]) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end invoke(name) end function rmvtitle(name) titletable[name]=0 local function invoke2() window:removeView(_ENV[name], paramt[name]) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end function box(views) local tid = "box"..guid() local ttid = tid.."6" 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 firadio[#firadio+1] = { LinearLayout, layout_height = "20dp", layout_width = "fill_parent", onClick = function() visi(tid,ttid) end, background = getSelector3(), { ImageView, layout_marginLeft = "10dp", id = luajava.newId(ttid), background = "/sdcard/穆麟/图片/hsanjiao", layout_width = "10dp", layout_height = "10dp", layout_marginTop = "5dp", }, { TextView, text = views[1], textSize = "11sp", id = luajava.newId("box"..views[1]), layout_marginLeft = "2dp", textColor = "#00000", gravity = "center_horizontal", }} else gg.alert("box第一个参数必须是string") os.exit() end radios = { LinearLayout, layout_marginLeft = "0dp", layout_marginRight = "0dp", orientation = "vertical", visibility = "gone", id = luajava.newId(tid), padding = "0dp", layout_width = 'fill_parent', } for i = 2,#views do radios[#radios+1] = views[i] end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function anniu(radio) local tid = "radio"..guid() local ttid = tid.."6" firadio = { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", orientation = "vertical", background = luajava.loadlayout({ GradientDrawable, color = "#00615E66", cornerRadius = 30 }), } radios = { LinearLayout, layout_marginLeft = "0dp", layout_marginRight = "0dp", orientation = "horizontal", visibility = "visible", padding = "0dp", layout_width = 'fill_parent', } for i = 2,#radio do radios[#radios+1] = { LinearLayout, layout_marginTop = "3dp", layout_marginBottom = "3dp", layout_marginLeft = "0dp", layout_marginRight = "8dp", background = getSelector2(), layout_width = 'wrap_content', layout_height = "25dp", gravity = "center", { TextView, layout_width = 'wrap_content', layout_height = "30dp", text = radio[i][1], layout_marginLeft = "8dp", layout_marginRight = "8dp", gravity = "center", textColor = "#00000", textSize = "10sp", }, onClick = function() luajava.newThread(function() radio[i][2]() end):start() end, } end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function getseekgra3() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({ 0x6600FF76,0x9900A5FF }) jianbians:setStroke(0,"0xff456ff00")--边框宽度和颜色 return jianbians end function getseekgra() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(8) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0x6600FF76,0x9900A5FF}) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(4,"0x663fff000")--边框宽度和颜色 return jianbians end function getseekgra2() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(0) jianbians:setShape(GradientDrawable.RECTANGLE) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({ 0x6600FF76,0x9900A5FF }) jianbians:setStroke(0,"0x778fff66")--边框宽度和颜色 return jianbians end function switch(name,func1,func2) if type(func1) == "table" then gg.alert("出现错误")os.exit() end local func = 开关(name,func1,func2) if not name then name = "未设置" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", { LinearLayout, layout_width = 'fill_parent', layout_height = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = luajava.loadlayout { GradientDrawable, color = "#88615E66", cornerRadius = 12 }, { TextView, gravity = "top", text = name, layout_width = '100dp', layout_marginLeft = "10dp", layout_marginRight = "10dp", }, { Switch, gravity = "top", layout_width = 'match_parent', layout_height = "10dp", showText = "true", textOn = "开", textOff = "关", --id=luajava.newId(tid), switchMinWidth = "20dp", onCheckedChange = function(Switch,var2,var3) if var2 == true then var2 = "开" else var2 = "关" end luajava.newThread(function() func() end):start() end, }} }) return rest end function edit(name) _ENV[name] = name..guid() if not name then name = "点击输入文字" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'wrap_content', layout_height = "wrap_content", { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = luajava.loadlayout { GradientDrawable, color = "#88615E66", cornerRadius = 12 }, { EditText, gravity = "center", hintText = name, textSize = "13sp", id = luajava.newId(_ENV[name]), layout_width = 'fill', layout_marginLeft = "10dp", layout_marginRight = "10dp", }} }) return rest end function radio(radio) firadio = { LinearLayout, layout_width = 'fill_parent', layout_height = "fill_parent", orientation = "vertical", layout_marginLeft = "10dp", layout_marginRight = "10dp", } if type(radio[1]) == "string" or type(radio[1]) == "number" then firadio[#firadio+1] = { TextView,text = radio[1],layout_marginLeft = "10dp", layout_marginRight = "10dp", } end radios = { RadioGroup, layout_marginLeft = "10dp", layout_marginRight = "10dp", background = luajava.loadlayout({ GradientDrawable, color = "#88615E66", cornerRadius = 30 }),layout_width = 'fill_parent', } for i = 2,#radio do radios[#radios+1] = { RadioButton, layout_width = 'fill_parent', text = radio[i][1], onClick = function() luajava.newThread(function() pcall(radio[i][2]) end):start() end, } end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function radio2(radio) firadio = { LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", orientation = "vertical", layout_marginLeft = "10dp", layout_marginRight = "10dp", } radios = { LinearLayout, orientation = "vertical", layout_marginLeft = "10dp", layout_marginRight = "10dp", layout_width = 'fill_parent', } for i = 1,#radio do radios[#radios+1] = { LinearLayout, gravity = "center", layout_height = "30dp", layout_width = 'fill_parent', orientation = "horizontal", layout_marginBottom = "5dp", layout_marginTop = "5dp", background = luajava.loadlayout({ GradientDrawable, color = "#dd000000", cornerRadius = 13 }), { ImageView, layout_width = "20dp", layout_height = "20dp", background = "/sdcard/sgly/图片/"..radio[i][2] }, { TextView, text = radio[i][1], }, onClick = function() luajava.newThread(function() pcall(radio[i][3]) end):start() end, } end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function check(cklist) rest = { LinearLayout, layout_width = 'wrap_content', layout_height = "30dp", layout_marginTop = "10dp", gravity = "left" } for i = 1,#cklist do local name = cklist[i][1] local func1 = cklist[i][2] local func2 = cklist[i][3] local nid = cklist[i][4] if type(func1) == "table" then gg.alert("出现错误") os.exit() end if not name then name = "未设置" end nid = name..guid() local func = 开关2(nid,func1,func2,nid) rstt = luajava.loadlayout({ LinearLayout, layout_width = 'wrap_content', layout_height = "30dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "5dp", layout_marginRight = "5dp", gravity = "center_vertical", onClick = function() luajava.newThread(function() func() end):start() end, { ImageView, id = luajava.newId(nid), layout_width = '20dp', layout_height = "20dp", layout_marginLeft = "8dp", layout_marginRight = "0dp", background = "/sdcard/sgly/图片/check1", }, { TextView, gravity = "top", text = name, textColor = "#ffffff", layout_width = 'wrap_content', layout_height = 'wrap_content', layout_marginLeft = "4dp", layout_marginRight = "5dp", }}) rest[#rest+1] = rstt end return luajava.loadlayout(rest) end function button(txt,func) if not txt then txt = "未设置" end return luajava.loadlayout( { LinearLayout, layout_width = '210dp', layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", background = getSelector3(), onClick = function() luajava.newThread(function() pcall(func) end):start() end, { TextView, --id = luajava.newId(tid), text = txt, textColor = "#000000", textSize = "14sp", layout_width = "wrap_content", }, }}) end function text(txt,color,size) if not txt then txt = "未设置文字" end if not color then color = "#ffffff" end if not size then size = "18sp" end return luajava.loadlayout( { TextView, text = txt, textSize = size, gravity = "center", textColor = color, layout_width = "wrap_content", }) end corb = true function getLayoutParams2() local prm = luajava.new(WindowManager.LayoutParams) layoutParams1 = prm if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY else layoutParams1.type = prm.TYPE_PHONE end layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams1.gravity = Gravity.CENTER -- 重力设置 layoutParams1.width = prm.WRAP_CONTENT -- 布局宽度 layoutParams1.height = prm.WRAP_CONTENT -- 布局高度 return layoutParams1 end function 开关6(name,func1,func2,nid) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/checkon2")) _ENV[name] = "开" pcall(func1) else luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/checkof")) _ENV[name] = "关" pcall(func2) end end end end function check2(cklist) rest = { LinearLayout, layout_width = 'match_parent', layout_hight = "match_parent", layout_marginTop = "10dp", gravity = "center_horizontal" } for i = 1,#cklist do local name = cklist[i][1] local func1 = cklist[i][2] local func2 = cklist[i][3] local nid = cklist[i][4] if type(func1) == "table" then gg.alert("出现错误\n如果你是用的是旧版\n请将开头第一个switch改成menu") gg.copyText("") os.exit() end if not name then name = "未设置" end nid = name..guid() local func = 开关6(nid,func1,func2,nid) rstt = luajava.loadlayout({ LinearLayout, id = luajava.newId(nid), layout_width = '63dp', layout_height = "30dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = "/sdcard/sgly/图片/checkof", onClick = function() luajava.newThread(function() func() end):start() end, { TextView, gravity = "top", text = name, layout_width = '80dp', layout_hight = '80dp', layout_marginLeft = "20dp", layout_marginRight = "10dp", }}) rest[#rest+1] = rstt end return luajava.loadlayout(rest) end namelist={} param1 = {} floattable={} function newfloat(name,func1,func2) floattable[name]=1 local func = 开关(name.."k",func1,func2) local function invoke(name,func1,func2) if not name then name = "未设置" end nameid = name..guid() local ok local RawX, RawY, x, y nameid1 = name..guid() if not namelist[name] then namelist[name]=false end if namelist[name]~=false then clclcl="#75ff0000" else clclcl="#88000000" end param1[name] = getLayoutParams2() _ENV[name] = luajava.loadlayout( { LinearLayout, layout_width = "40dp", id = luajava.newId(nameid1), layout_height = "40dp", background = luajava.loadlayout { GradientDrawable, color = clclcl, cornerRadius = 30 }, onClick = function() if namelist[name]==false then _ENV[name]:setBackground(luajava.loadlayout { GradientDrawable, color = "#75ff0000", cornerRadius = 30 }) namelist[name]=true elseif namelist[name]==true then _ENV[name]:setBackground(luajava.loadlayout { GradientDrawable, color = "#88000000", cornerRadius = 30 }) namelist[name]=false end luajava.newThread(function() pcall(func) end):start() end, onTouch = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() x = param1[name].x y = param1[name].y elseif Action == MotionEvent.ACTION_MOVE then isMove = true param1[name].x = tonumber(x) + (event:getRawX() - RawX) param1[name].y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(_ENV[name], param1[name]) end end, { TextView, text = name, gravity = "center", layout_width = "50dp", layout_height = "50dp", } }) local function invoke2() window:addView(_ENV[name], param1[name]) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end invoke(name,func1,func2) end function rmvfloat(name) floattable[name]=0 local function invoke2() window:removeView(_ENV[name], param1[name]) end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) end function getedit(name) --gg.alert(edit) edit = tostring(luajava.getIdValue(_ENV[name]):getText()) return edit end function setedit(name,txt) txt = tostring(txt) luajava.runUiThread(function() luajava.getIdValue(_ENV[name]):setText(txt) end) end function 开关(name,func1,func2) name=name.."开关1" if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then _ENV[name] = "开" pcall(func1) else _ENV[name] = "关" pcall(func2) end end end end function 开关2(name,func1,func2,nid) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/check2")) end) _ENV[name] = "开" func1() else luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/check1")) end) _ENV[name] = "关" func2() end end end end function visi(tid,ttid) local tview = luajava.getIdValue(tid) local ttview = luajava.getIdValue(ttid) if not tview then return 0 end if tonumber(tostring(tview:getVisibility())) == 8.0 then tview:setVisibility(View.VISIBLE) ttview:setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/hsj")) else tview:setVisibility(View.GONE) ttview:setBackground(luajava.getBitmapDrawable("/sdcard/sgly/图片/sj")) end end wyyget="http://120.24.160.246:3000/" function huoqu(txt) return table.json(gg.makeRequest(wyyget.."song/url/v1?id="..txt.."").content) end function souyy(txt) tbttt=gg.makeRequest(wyyget.."search?keywords="..txt.."&limit=10") if tbttt==nil or type(tbttt)=="string" then gg.alert("网络异常") luajava.runUiThread(function() luajava.getIdView("jzz"):setVisibility(View.GONE) luajava.getIdView("stxt"):setVisibility(View.VISIBLE) end) end return table.json(tbttt.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 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 musnames={} musids={} musarts={} musictable={} for k,v in pairs(mustable) do if tonumber(v.fee)==0 or tonumber(v.fee)==8 then musictable[#musictable+1]=v end 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_marginBottom="5dp", orientation="vertical", } for i=1,#musictable do musid=musictable[i].id 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="2dp", layout_marginBottom="2dp", background=getSelector7(), id=luajava.newId("音"..musid), onClick=function() thread = luajava.getPThread(function() bofang(musname,musid) end) thread:start() end, { TextView, layout_marginTop="5dp", textSize="16sp", textColor="#000000", layout_marginBottom="0dp", text = musname, layout_hight="10dp", layout_width = "210dp", gravity="center", },{ TextView, layout_marginTop="0dp", textColor="#ffffff", textSize="12sp", layout_marginBottom="5dp", text = musart, layout_hight="10dp", layout_width = "210dp", gravity="center", } } --gg.sleep(50) wryt[#wryt].onClick=function() luajava.getPThread(function() bofang(musnames[i]..musarts[i],musids[i]) end):start() 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) if panduan("/sdcard/sgly/音频/"..gqmz..".mp3")==true then gg.playMusic("/sdcard/sgly/音频/"..gqmz..".mp3") else gg.toast("下载中..."..gqmz) musurl=huoqu(gdmn).data[0].url if musurl=="" or musurl=="null" then gg.alert("由于版权问题\n这首歌不能播放","你干嘛哈哈哎呦","呀啊哈哈嘛干") else download(musurl,"/sdcard/sgly/音频/"..gqmz..".mp3") gg.playMusic("/sdcard/sgly/音频/"..gqmz..".mp3") gg.sleep(1000) end end luajava.runUiThread(function() luajava.getIdView("加载"):setVisibility(View.GONE) luajava.getIdView("搜索结果"):setVisibility(View.VISIBLE) end) end stxt={LinearLayout, visibility="visible", id=luajava.newId("stxt"), gravity="center", layout_hight="70dp", layout_width="70dp", gravity="center", orientation="vertical", {TextView, text="搜索", background=luajava.loadlayout({ GradientDrawable, color = "#ddFF4A6F", cornerRadius = 12 }), gravity="center", layout_hight="30dp", layout_width="70dp", textSize="15sp", onClick=function() thread = luajava.getPThread(function() searchmusic() end) thread:start() end, }, {TextView, text="停止", background=luajava.loadlayout({ GradientDrawable, color = "#dd3FD198", cornerRadius = 12 }), gravity="center", layout_hight="30dp", layout_width="70dp", textSize="15sp", onClick=function() thread = luajava.getPThread(function() gg.playMusic("stop") end) thread:start() end, } } jzz={TextView, text="加载中", visibility="gone", id=luajava.newId("jzz"), layout_marginLeft="10dp", textSize="15sp", } jiaz={TextView,text="正在加载歌曲资源", visibility="gone", id=luajava.newId("加载"), textSize="17sp", gravity="center" } wyylog=luajava.loadlayout({LinearLayout, layout_hight="180dp", {ScrollView, layout_hight="180dp", {LinearLayout, id=luajava.newId("搜索列表"), layout_hight="180dp", orientation="vertical", layout_width = "wrap_content", {LinearLayout,orientation="horizontal", layout_width = "wrap_content", { EditText, hint = "请输入歌名", id=luajava.newId("搜索"), background=luajava.loadlayout({ GradientDrawable, color = "#dd000000", cornerRadius = 12 }), focusableInTouch="false", focusable="false", selectAllOnFocus="true", singleLine="true", layout_width = "140dp", layout_hight = "60dp", }, stxt, jzz },jiaz}} }) ----------------------------------------配置 function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true] = 32, [false] = 4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address = addr, flags = va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end function fastsearch(search, write,we) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then if we~=nil then gg.toast(we.." -> 主特征码不存在") end 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]) if we~=nil then gg.toast(we.." -> 共修改" .. (#tb[1] + #tb[2]) .. "条数值") end else if we~=nil then gg.toast(we.." -> 开启失败,没有符合条件的值") end end end end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function setvalue(addr, flag, value) gg.setValues({{address = addr, flags = flag, value = value}}) end function SearchWrite(Search,Modification) gg.clearResults() gg.searchNumber(Search[1][1],Search[1][2],false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum=0 for i=2,#Search do for index=1,#Result do if gg.getValues({{address=Result[index].address+Search[i][3],flags=Search[i][2]}})[1].value~=Search[i][1]then Result[index].Usable=true sum=sum+1 end end end if sum==#Result then gg.toast(Name..'开启失败') return end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in pairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value[3],flags=value[2],value=value[1],freeze=true} sum=sum+1 if value[4]then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) if Freeze==0 then gg.toast(Name..'开启成功,共修改'..sum..'条数据.') else gg.toast(Name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据.') end end local function Mswrite(search) 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("搜索失败") 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 for i = 1, #result do result[i] = result[i].address end return result end end function xtnb(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.loadResults(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 local gg = gg --优化gg.getValues搜索列表值过多时,导致gg卡死 function Get_value() local result = {} local Table = {} while true do local get = gg.getResults(100000) result[#result + 1] = get gg.removeResults(get)--然后移除列表,避免gg卡死 if not get or #get == 0 then break end end for k = 1, #result do for k, v in pairs(result[k]) do Table[#Table + 1] = v end end return Table end function LSQ_pointer(search, write) if search[5] or search[6] then local region_start = search[5] local region_end = search[6] else local region_start = 0 local region_end = -1 end gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end) gg.refineNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end)--优化搜索的数据 if gg.getResultsCount() == 0 then gg.toast("没有搜索到指针数据") return false else local result = Get_value()--获取搜索到的所有数据 gg.clearResults() for i = 2, #search do--遍历副特征码数据 local offset_array = {}--存放偏移数组的表 for k, v in ipairs(result) do offset_array[#offset_array + 1] = { ["address"] = v["address"] + search[i][2],--把所有搜索出来的结果, 加上偏移量 ["flags"] = search[i][3] } end offset_array = gg.getValues(offset_array)--获取所有副特征数据 local verify_array = {}--验证数组表 for k, v in ipairs(offset_array) do--遍历偏移后的数据 if v["value"] == search[i][1] then--如果值等于主特征 verify_array[#verify_array + 1] = result[k] end end result = verify_array end if #result > 0 then local Table = { {}, {} } for k, v in ipairs(result) do for kk, vv in ipairs(write) do local Modifythe_array = { ["address"] = v["address"] + vv[2], ["flags"] = vv[3], ["value"] = vv[1], ["freeze"] = vv[4] } if vv[4] then Table[2][#Table[2] + 1] = Modifythe_array else Table[1][#Table[1] + 1] = Modifythe_array end end end gg.addListItems(Table[2]) gg.setValues(Table[1]) gg.toast("宝: [" .. search[1][4] .. "]开启成功共修改" .. (#Table[1] + #Table[2]) .. "条数据") else gg.toast("未找到偏移数据") end end end stitle = "逸泽🔥" 图片1 = "/sdcard/sgly/图片/sgly" 公告 = "自己配规则" stab = { "主页","角色","好玩","音乐","没用" } menu("自用", { { text("防闪防封登录开","#FF2A3F","15sp"), text("逸泽顶尖","#FFFFFFFF","10sp"), text("#FF2A3F","10sp"), button('防闪', function() function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true] = 32, [false] = 4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address = addr, flags = va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end local addr = readPointer("libtersafe2.so", {261692}, 5) gg.edits(addr, {{0, 4, 0, true}}) local addr = readPointer("libtersafe2.so", {168}, 5) gg.edits(addr, {{-1, 4, 0, true}},'防闪') end), button('选择进程', function() gg.setProcessX() end), button('顶尖防封', function() local qmnb= { {['memory']=8}, {['name']='逃跑过检测'}, {['value']=234881024, ['type']=4}, {['lv']=1478430208,['offset']=24, ['type']=4}, {['lv']=1565934162,['offset']=32, ['type']=4}, } local qmxg= { {['value']=8320,['offset']=44,['type']=4}, {['value']=8320,['offset']=216,['type']=4}, {['value']=8320,['offset']=4356,['type']=4}, } xqmnb(qmnb,qmxg) local qmnb= { {['memory']=8}, {['name']='逃跑过检测'}, {['value']=-1918738857, ['type']=4}, {['lv']=1498003603,['offset']=24, ['type']=4}, {['lv']=1057784729,['offset']=264, ['type']=4}, } local qmxg= { {['value']=1883,['offset']=-5300,['type']=4}, {['value']=1883,['offset']=-5296,['type']=4}, {['value']=1883,['offset']=-5264,['type']=4}, {['value']=1883,['offset']=-5256,['type']=4}, {['value']=1883,['offset']=-5164,['type']=4}, {['value']=1883,['offset']=-4808,['type']=4}, {['value']=1883,['offset']=-4804,['type']=4}, {['value']=1883,['offset']=-4800,['type']=4}, {['value']=1883,['offset']=-4796,['type']=4}, {['value']=1883,['offset']=-4276,['type']=4}, {['value']=1883,['offset']=-2052,['type']=4}, {['value']=1883,['offset']=-2048,['type']=4}, {['value']=1883,['offset']=-1160,['type']=4}, {['value']=1883,['offset']=-988,['type']=4}, {['value']=1883,['offset']=0,['type']=4}, {['value']=1883,['offset']=24,['type']=4}, {['value']=1883,['offset']=44,['type']=4}, {['value']=1883,['offset']=68,['type']=4}, {['value']=1883,['offset']=80,['type']=4}, {['value']=1883,['offset']=92,['type']=4}, {['value']=1883,['offset']=104,['type']=4}, {['value']=1883,['offset']=116,['type']=4}, {['value']=1883,['offset']=128,['type']=4}, {['value']=1883,['offset']=140,['type']=4}, {['value']=1883,['offset']=152,['type']=4}, {['value']=1883,['offset']=164,['type']=4}, {['value']=1883,['offset']=176,['type']=4}, {['value']=1883,['offset']=188,['type']=4}, {['value']=1883,['offset']=212,['type']=4}, {['value']=1883,['offset']=260,['type']=4}, {['value']=1883,['offset']=264,['type']=4}, {['value']=1883,['offset']=284,['type']=4}, {['value']=1883,['offset']=288,['type']=4}, {['value']=1883,['offset']=296,['type']=4}, {['value']=1883,['offset']=308,['type']=4}, {['value']=1883,['offset']=320,['type']=4}, {['value']=1883,['offset']=332,['type']=4}, {['value']=1883,['offset']=344,['type']=4}, {['value']=1883,['offset']=356,['type']=4}, {['value']=1883,['offset']=368,['type']=4}, {['value']=1883,['offset']=380,['type']=4}, {['value']=1883,['offset']=392,['type']=4}, {['value']=1883,['offset']=404,['type']=4}, {['value']=1883,['offset']=428,['type']=4}, {['value']=1883,['offset']=452,['type']=4}, {['value']=1883,['offset']=476,['type']=4}, {['value']=1883,['offset']=500,['type']=4}, {['value']=1883,['offset']=524,['type']=4}, {['value']=1883,['offset']=548,['type']=4}, {['value']=1883,['offset']=620,['type']=4}, {['value']=1883,['offset']=644,['type']=4}, {['value']=1883,['offset']=668,['type']=4}, {['value']=1883,['offset']=680,['type']=4}, {['value']=1883,['offset']=1040,['type']=4}, {['value']=1883,['offset']=1056,['type']=4}, {['value']=1883,['offset']=1148,['type']=4}, {['value']=1883,['offset']=1172,['type']=4}, {['value']=1883,['offset']=1328,['type']=4}, {['value']=1883,['offset']=1352,['type']=4}, {['value']=1883,['offset']=1376,['type']=4}, {['value']=1883,['offset']=1400,['type']=4}, {['value']=1883,['offset']=1416,['type']=4}, {['value']=1883,['offset']=1580,['type']=4}, {['value']=1883,['offset']=1604,['type']=4}, {['value']=1883,['offset']=1700,['type']=4}, {['value']=1883,['offset']=1768,['type']=4}, {['value']=1883,['offset']=1792,['type']=4}, {['value']=1883,['offset']=1800,['type']=4}, {['value']=1883,['offset']=1816,['type']=4}, {['value']=1883,['offset']=1840,['type']=4}, {['value']=1883,['offset']=1848,['type']=4}, {['value']=1883,['offset']=1864,['type']=4}, {['value']=1883,['offset']=1968,['type']=4}, {['value']=1883,['offset']=2096,['type']=4}, {['value']=1883,['offset']=2116,['type']=4}, {['value']=1883,['offset']=2128,['type']=4}, {['value']=1883,['offset']=2136,['type']=4}, {['value']=1883,['offset']=2152,['type']=4}, {['value']=1883,['offset']=2176,['type']=4}, {['value']=1883,['offset']=2200,['type']=4}, {['value']=1883,['offset']=2224,['type']=4}, {['value']=1883,['offset']=2232,['type']=4}, {['value']=1883,['offset']=2336,['type']=4}, {['value']=1883,['offset']=2360,['type']=4}, {['value']=1883,['offset']=2384,['type']=4}, {['value']=1883,['offset']=2660,['type']=4}, {['value']=1883,['offset']=2684,['type']=4}, {['value']=1883,['offset']=2708,['type']=4}, {['value']=1883,['offset']=2732,['type']=4}, {['value']=1883,['offset']=2756,['type']=4}, {['value']=1883,['offset']=2776,['type']=4}, {['value']=1883,['offset']=2800,['type']=4}, {['value']=1883,['offset']=2824,['type']=4}, {['value']=1883,['offset']=2848,['type']=4}, {['value']=1883,['offset']=3320,['type']=4}, {['value']=1883,['offset']=3344,['type']=4}, {['value']=1883,['offset']=3572,['type']=4}, {['value']=1883,['offset']=3596,['type']=4}, {['value']=1883,['offset']=3620,['type']=4}, {['value']=1883,['offset']=3644,['type']=4}, {['value']=1883,['offset']=3668,['type']=4}, {['value']=1883,['offset']=3692,['type']=4}, {['value']=1883,['offset']=3716,['type']=4}, {['value']=1883,['offset']=6506980,['type']=4}, } xqmnb(qmnb,qmxg) end), button('全防', function() gg.setRanges(4) gg.searchNumber("3042160", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) revert = gg.getResults(99999, nil, nil, nil, nil, nil, nil, nil, nil) local t = gg.getResults(99999, nil, nil, nil, nil, nil, nil, nil, nil) for i, v in ipairs(t) do if v.flags == gg.TYPE_DWORD then v.value = "-1400017232" v.freeze = true end end gg.addListItems(t) t = nil gg.clearResults() gg.setRanges(4) gg.searchNumber("1599227979", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) revert = gg.getResults(99999, nil, nil, nil, nil, nil, nil, nil, nil) local t = gg.getResults(99999, nil, nil, nil, nil, nil, nil, nil, nil) for i, v in ipairs(t) do if v.flags == gg.TYPE_DWORD then v.value = "-292136832" v.freeze = true end end gg.addListItems(t) t = nil gg.clearResults() gg.setRanges(4) gg.searchNumber("1,987,539,786", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度15%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("1,398,036,289", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度30%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("1,631,207,205", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度55%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("574,169,904", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度60%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("1,629,954,853", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度65%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("1,463,904,086", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度70%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("639,645,488", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度85%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("588,650,008", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度90%") gg.clearResults() gg.clearResults() gg.setRanges(4) gg.searchNumber("959,784,737", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) jg=gg.getResults(100) sl=gg.getResultCount() for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}}) end gg.toast("进度100%") gg.clearResults() gg.clearResults() gg.searchAddress("842,084,353", -1, gg.TYPE_DWORD, gg.SIGN_EQUAL, 0, -1) gg.getResults(1) gg.editAll("842,084,353", gg.TYPE_DWORD) gg.toast("一套全防开启成功") end), button('大厅注入防', function() local addr = readPointer("libunity.so", {3108}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3044}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3052}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3180}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3684}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3140}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3188}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3092}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3068}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3084}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3172}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3164}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3060}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3204}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3156}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3100}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3212}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3228}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3124}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3220}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3148}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3076}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3132}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3116}, 1) gg.edits(addr, {{-1, 4, 0, true}}) local addr = readPointer("libunity.so", {3196}, 1) gg.edits(addr, {{-1, 4, 0, true}}) gg.toast(" ") gg.clearResults() gg.setRanges(16384) gg.searchNumber("01035230h;00120021h;010351C0h", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(9999, nil, nil, nil, nil, nil, nil, nil, nil) local t = gg.getResults(9999, nil, nil, nil, nil, nil, nil, nil, nil) for i, v in ipairs(t) do if v.flags == gg.TYPE_DWORD then v.value = "0" -- v.value = "这里是修改值" v.freeze = true end end gg.addListItems(t) t = nil gg.toast(" ") gg.clearResults() gg.setRanges(16384) gg.searchNumber("6E6F6365h", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(9999, nil, nil, nil, nil, nil, nil, nil, nil) local t = gg.getResults(9999, nil, nil, nil, nil, nil, nil, nil, nil) for i, v in ipairs(t) do if v.flags == gg.TYPE_DWORD then v.value = "0" -- v.value = "这里是修改值" v.freeze = true end end gg.addListItems(t) t = nil gg.toast("") gg.clearResults() gg.setRanges(16384) gg.searchNumber("6E6F6365h;54007364h;76206568h", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(9999, nil, nil, nil, nil, nil, nil, nil, nil) local t = gg.getResults(9999, nil, nil, nil, nil, nil, nil, nil, nil) for i, v in ipairs(t) do if v.flags == gg.TYPE_DWORD then v.value = "0" -- v.value = "这里是修改值" v.freeze = true end end end), button('屏蔽检测{大厅局内}', function() gg.toast("开始杀检测") gg.searchNumber("131,072;65536;65536;917504;131,072", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.setRanges(32) gg.sleep(1500) gg.toast("系统检测数据105") os.remove("/storage/emulated/0/Android/data/com.bfire.da.xinh/gameplugins/"..ac.."/files/VirtualUniqueDeviceID.txt") gg.sleep(800) gg.toast(" ") gg.sleep(500) gg.toast(" ") gg.searchNumber("131,072;65536;65536;917504;131,072", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.setRanges(32) os.remove("/storage/emulated/0/Android/data/com.bfire.da.xinh/gameplugins/"..ac.."") gg.toast("成功通杀检测") gg.alert('开启成功') end), }, --到此为止 ------------------------------------ --UI2 { text("角色区域","#FF2A3F","20sp"), switch("魔术进化", function() local tb1= { {17.0,16,0}, {50,4,-116}, {2.2420775429197073E-44,16,-52}, {20.0,16,-4}, } local tb2= { {0,4,-176}, {0,4,-172}, {0,4,-132}, {3000,4,-116}, {1500,4,-104}, } SearchWrite(tb1,tb2,dataType) fastsearch({{55.0, 16, 32}, {65.0, 4, 16}, {75.0, 8, 16}, {100.0, 12, 16}}, {{9999, 0, 16, false}, {9999, 4, 16, false}, {9999, 8, 16, false}, {9999, 12, 16, false}}) gg.toast("木偶持续时间") end), switch('梦魇进化', function() fastsearch({{150.0, 16, 32}, {135.0, 4, 16}, {120.0, 8, 16}, {100.0, 12, 16}}, {{1, 0, 16, false}, {1, 4, 16, false}, {1, 8, 16, false}, {1, 12, 16, false}})--泡泡技能钱数 fastsearch({{3.0, 16, 32}, {4.0, 4, 16}, {5.0, 8, 16}, {7.0, 12, 16}}, {{999, 0, 16, false}, {999, 4, 16, false}, {999, 8, 16, false}, {999, 12, 16, false}})--梦魇吴迪持续时间 fastsearch({{5.0, 16, 32}, {10.0, 4, 16}, {15.0, 8, 16}, {20.0, 12, 16}}, {{999, 0, 16, false}, {999, 4, 16, false}, {999, 8, 16, false}, {999, 12, 16, false}})--梦魇泡泡伤害 end), switch("茶郎范围", function() qmnb = { {["memory"] = 32}, {["name"] = "茶气郎范围"}, {["value"] = 1082130431, ["type"] = 4}, {["lv"] = 2147483052, ["offset"] = -12, ["type"] = 4}, {["lv"] = 1090519039, ["offset"] = 16, ["type"] = 4}, } qmxg = { {["value"] = 0.00001, ["offset"] = 84, ["type"] = 16}, } xqmnb(qmnb) end), switch('茶郎进化', function() fastsearch({{-934560717,4,32},{1581114487,0x4,4},{-1,0x28,4},},{{9999,436,16}}) end), switch("疾跑美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='4级\n600051\n7级\n600056\n10级\n600061\n13级\n600066\n秋枫\n600661\n蝙蝠\n600761\n心之痕\n600981\n蜜蜂\n601126\n彩带\n601181\n青龙\n601211\n蝶舞\n601681'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("医疗箱美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500005", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500005", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='网红同款:600086\nDMM彩豆蛋糕:600091\n自制爱心便当:600096\n圣光之箱:600271\n外卖盒:600366\n月饼盒:600411\n新春礼盒600486\n春日野菜篮600516\nDMM掌机:600966\nD胜客披萨:600996\n3周年蛋糕:601271\n千星攻略:600576'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("手榴弹美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500004", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='新款:600071\n大棵菠萝:600041\n小猪储钱罐:600046\n氪金石脉冲弹:600226\n粽子:600336\n2019新春爆竹:600221\n圣诞雪球:600196\n单但瓦斯600521\n幸福捧花600576\n量子星星600756\n棉花枕头600781\n星能源石600906\n娃娃闹钟600931\n萌萌河豚601201\n金币爆弹601276'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("跳高美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500006", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500006", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='活泼:600101\n花式跑酷:600106\n恶搞之舞:600111\n完美空翻:600116'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("皮卡美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500002", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500002", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='热销款:600121\n购物车:600001\n摇滚小黄鸭:600006\nDMM-R超跑:600231\n星猪骑士:600266\n幻影流星跑车600416\n皇家马车600466\n3周年皮肤601286\n浪漫花车:600561\n浪漫花车[梦幻]:650071\n小花喵:600776\n小花喵[噶呜]650251\n驯鹿礼物车:600851\n方程式赛车:600971\n夏洛克车:601486\n德拉木巡逻车:650581\n摇滚小黄鸭[甜心]:650061'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("酒桶美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500400", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500400", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='白橡木:600126\n陈年老坛酒:600131\n女巫的魔药:600136\n幻想伏特加:600311\n超能水600371\n烟花桶600391\n冰镇鸡尾酒600451\n爆米花:600791\n爆米花[草莓]:650281\n乌贼:601071\n像素炼药锅:601236\n腰鼓:601356\n压力罐:601411\n压力罐[危险品]\n考拉滚滚:601436\n晶源之星:601691'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("自走球美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500700", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500700", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='环保款:600301\n光能双环:600306\n魔力紫球:600316\n闪闪飞轮:600321\n风火轮600476\n蝴蝶泡泡:600566\n蝴蝶泡泡[甜心]:650081\n星能时计:600811\n水流术:601066\n庆典彩球:601226\n小鸡扭蛋:601311\n小鸡扭蛋[成年]:650491'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end ), switch("阻挡箱美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500008", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500008", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='DMM快递箱:600141\n老式游戏机:600026\n熊猫表情包:600021\n真龙之印:600281\n2019元旦快乐:600201\n周年蛋糕:600386\n快乐豆娃:600401\n未来音箱:600406\n大冰块:600456\n聚能魔方601366'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), switch("飞爪美化", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("500500", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("500500", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) fw= gg.prompt({i='科技款:600151\n马桶抽:600156\n超凡蜘蛛网:600161\n神龙金爪:600276\n食人花:600341\n猫抓冰棒:600446\n量子飞爪600531\n量子飞爪风格650021\n布谷鸟:600716\n布谷鸟[桃粉]:650221\n星握:601386\n深海船锚:601186\n深海船锚[镀金]:650421\n捷德之爪:601466\n鲨鱼咬咬:601551'}, {i='0'}) gg.editAll(fw["i"], gg.TYPE_DWORD) gg.toast("修改成功") gg.clearResults() end), }, -------------------------------------- --UI3 { text("娱乐区域","#FF55AAFF","20sp"), switch("人物悬浮", function() gg.clearResults() gg.setRanges(16384) gg.searchNumber("6.16297729e-33;0.07999999821:13", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("10", gg.TYPE_FLOAT) gg.clearResults() end, function() end), switch('渲染透视', function() fastsearch({{500.0,16,32},{180.0,4,16},{1800.0,8,16},{648.0,12,16}},{{1,48,4}}) end), button('明亮透视『修复中』', function() BaseAddressD(0x1048478,'-516948194') BaseAddressD(0x1048474,'-476053504') end), switch("强制开锁",--没用用这个BaseAddressD(0x1cfd32c,'-476053503') function() so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressD(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '~A BX LR' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressQ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030820' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressB(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030842' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030840' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressC(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030824' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressAA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030832' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressF(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 16 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressZZZ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 32 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressY(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end end), --}),--1 switch('刷新武器【优化】', function() NH=gg.prompt({"武器代码\n 火箭筒100 迫击炮110 冲锋枪130 能量剑140 蹦蹦枪150 能量炮180 霰弹枪190 换风镖200 聚合弓210 霸天斧220 能量球10160 滋水枪11130 像素剑10140 霰弹枪10130 回旋镖10150 加血枪10100 热破枪90100 威震天90200 红蜘蛛90300 自动手枪12130 毁灭手炮50008"},{[1]=""}) gg.setRanges(32) Name='改武器' local tb1= { {1929379841,4,32}, {100,4,100}, } local tb2= { {NH[1],4,100}, } SearchWrite(tb1,tb2,dataType) local t = {"libil2cpp.so", "Cd"} local tt = {0xE71AC, 0x5C, 0x68, 0x5C, 0x90} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = 1}}) end), button('仿xs间隔', function() q=gg.prompt({"输入你的想改的间隔"},{},{"number"}) qmnb = { {["memory"] = 32}, {["name"] = "武器间隔"}, {["value"] = 0.20000000298023224, ["type"] = 16}, {["lv"] = 1.2999999523162842, ["offset"] = 8, ["type"] = 16}, } qmxg = { {["value"] = q[1], ["offset"] = -372, ["type"] = 16}, } xqmnb(qmnb) end), button('仿xs间隔2', function() qmnb={ {['memory']=32}, {['name']='A内存无间隔'}, {['value']=1061158912, ['type']=4}, {['lv']=1045220557,['offset']=4, ['type']=4}, {['lv']=1067869798,['offset']=8, ['type']=4}, {['lv']=1067869798,['offset']=12, ['type']=4}, } qmxg={ {['value']=0.0,['offset']=-352,['type']=16,['freeze']=true}, } xqmnb(qmnb) end), button('锁定子弹', function() local so = gg.getRangesList("libil2cpp.so")[1].start gg.setValues({[1]={address=so + 0x1112b6c, flags=4, value=-516948194}}) end), switch('吼吼号全图', function() so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressD(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '~A BX LR' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressQ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030820' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressB(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030842' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030840' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressC(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030824' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressAA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030832' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressF(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 16 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressZZZ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 32 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressY(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end BaseAddressD(0x1FBD864,'-516948194') --关闭BaseAddressD(0x1FBD864,'-382906384') end, function() BaseAddressY(0x32e8d00,'-382908368') end), button('屏蔽转盘', function() --private Void Update --上面第三个方法private Void SV BaseAddressY(0x21da744,'-352321597') end, function() BaseAddressY(0x21da744,'-382906384') end), switch("腕炮自调", function() a=gg.prompt({"这里修改范围"}) fastsearch({ {5,16,32}, {1,4,16}, {0,8,16}}, {{a[1],4,16, false}}) end, function() end), button('新武器无间【打一发再开】', function() fastsearch({{1065017672,4,32},{0,-8,4},{1075838976,-4,4}},{{0,-8,4,true}}) end), button('新实体子弹', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x21E1AC, 0x5C, 0x68, 0x5C, 0x80} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = 500, freeze = true}}) end), button('普通实体子弹', function() fastsearch({{1065017672,4,32},{1075838976,-4,4},{1,28,4}},{{-1,20,4,true},{0,24,4,true},{550,28,4,true}}) end), switch('移动开物『魔术师稳』', function() so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressD(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '~A BX LR' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressQ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030820' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressB(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030842' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030840' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressC(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030824' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressAA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030832' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressF(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 16 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressZZZ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 32 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressY(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end BaseAddressD(0x1AD94A8,'-476053504') --关闭BaseAddressD(0x1AD94A8,'-382907408') --方法YmAeNImnUOxVm end), switch("全局移速【稳】", function() fastsearch({{7.0,16,32},{-0.75,8,16}},{{0.3,8,16,false}}) gg.FUNC("\n\n三倍速") end), switch('超级吸人『可关』', function() BaseAddressD(0x31D8858,'-516948194') --public Vector3 get_position第1个 end, function() BaseAddressD(0x31D8858,'-382908368') end), switch('解锁模式', function() BaseAddressD(0x16CB4B8,'-476053503') --public static Boolean GetGameModeIsGradeLimit end), }, -------------------------------------- --UI4 { text("音乐区域","#FF55AAFF","20sp"), text("音乐","#FF2A3F","15sp"), switch("必备(认真操作)",--小功能名 function() gg.playMusic('http://music.163.com/song/media/outer/url?id=1377530437.mp3') end), switch("最好的安排(伤感中)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1905004937.mp3") end), switch("予你(开心听)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1895330088.mp3") end), switch("唯一(伤感)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1960170435.mp3") end), switch("悬溺(伤感中)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1397345903.mp3") end), switch("心墙(伤感中)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1834268297.mp3") end), switch("最后一页(0.8)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2051630296.mp3") end), switch("凄美地(推荐)", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=436346833.mp3') end), switch("Letting GO(伤感0.8)", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=1983501304.mp3') end), switch("尊嘟假嘟(伤感中)", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=2073511910.mp3') end), switch("听悲伤的情歌(必听)", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=2051929548.mp3') end), switch("心做(伤感了)", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=2008921547.mp3') end), switch("天若有情(DJ)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2072378677.mp3") end), switch("白山茶(群里某人推荐)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1454415688.mp3") end), switch("我太笨 0.9x(已伤感)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2070704040.mp3") end), switch("多远都要在一起(伤感)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=432698302.mp3") end), switch("我走后(伤感后)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1370047789.mp3") end), switch("侧脸(开心)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=534542079.mp3") end), switch("向云端(自由)", function() gg.playMusic('http://music.163.com/song/media/outer/url?id=2049512697.mp3') end), switch("哪里都是你(伤感)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=488249475.mp3") end), switch("还是分开(伤感后)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=465921195.mp3") end), switch("遗失的心跳 0.8x ", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1954223039.mp3") end), switch("若把你(开心)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=865632948.mp3") end), switch("空城(片段)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1423712898.mp3") end), switch("雾里", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1855953289.mp3") end), switch("把回忆拼好给你(0.8速)", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1931410909.mp3") end), switch("停止音乐", function() gg.toast("已停止音乐") end), }, -------------------------------------- --UI5 }) -------------------------------------- bloc = luajava.getBlock() bloc('join') end