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('逸泽内置') draw.text('逸泽', 328,195) draw.text('顶尖', 328,265) draw.setColor('#FFFF0000') draw.circle(385, 200, 110)--圆1 draw.circle(385, 200, 130)--圆2 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() fastsearch({{778923875,4,8},{1919508834,4,4}},{{999999,0,4,false}},'登录防闪开启成功') end), button('选择进程', function() gg.setProcessX() end), button('删除追封『新版本』', function() os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/tombstone_02") --删除4399版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/tombstone_02") --删除OPPO版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/tombstone_02") --删除好游快爆版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/tombstone_02") --删除华为版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/tombstone_02") --删除小米版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/tombstone_02") --删除vivo版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/tombstone_02") --删除九游版本日志 os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/tombstone_02") --删除应用宝版本日志 os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/game_log.txt") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/tombstone_00") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/tombstone_01") os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/tombstone_02") --删除233版本日志 os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/game_log.txt") os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/tombstone_00") os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/tombstone_01") os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/tombstone_02") --删除360版本日志 os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/game_log.txt") os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/tombstone_00") os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/tombstone_01") os.remove("/storage/emulated/0/Android/data/com.bfire.da.nui/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/game_log.txt") gg.alert("侵入成功,祝你稳定奔放") end), button('过检测环境', function() local addr = readPointer("libtersafe2.so:bss", {14280}, 1) gg.edits(addr, {{-1, 4, 0, true}}) end), button('获取配置', 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 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 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 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 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 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 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 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 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), }, --到此为止 ------------------------------------ --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), }, -------------------------------------- --UI3 { text("好玩区域","#FF55AAFF","20sp"), switch("防烧", function() local addr=gg.getRangesList("libil2cpp.so")[1].start+0x1FBBF04 setvalue(addr,-476053504,4) local addr=gg.getRangesList("libil2cpp.so")[1].start+0x1FBBF04+4 setvalue(addr,-516948194,4) gg.toast("开启成功") 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), switch('通用吸人[可关]', function() BaseAddressY(0x32e8d00,'-516948194') --public Vector3 get_position第1个 end, function() BaseAddressY(0x32e8d00,'-382908368') end), switch("倒地使用道具", function() function BaseAddressD(address, value) so = gg.getRangesList('libil2cpp.so')[1].start 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 function BaseAddressF(address, value) so = gg.getRangesList('libil2cpp.so')[1].start local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 16 tt[1].value = value gg.setValues(tt) end function BaseAddressY(address, value) so = gg.getRangesList('libil2cpp.so')[1].start local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end BaseAddressD("0x18B7B1C,'-476053504") end, function() end), button('屏蔽转盘', function() function BaseAddressY(address, value) so = gg.getRangesList('libil2cpp.so')[1].start local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end --At BaseAddressY(0x21da744,'-352321597') end), switch('移动开物', function() local addr=gg.getRangesList("libil2cpp.so")[1].start+0x1AD9150 setvalue(addr,-476053504,4) local addr=gg.getRangesList("libil2cpp.so")[1].start+0x1AD9150+4 setvalue(addr,-516948194,4) gg.toast("移动开物开启成功") end), switch("全局移速【稳】", function() fastsearch({{7.0,16,32},{-0.75,8,16}},{{0.3,8,16,false}}) gg.FUNC("\n\n三倍速") end), switch('buff加速', function() BaseAddressD(0x18c4978,'-476053504') end), switch('刷钱', function() BaseAddressD(0x1fbdadc,'-368920612') gg.sleep(10) BaseAddressD(0x1fbdadc,'-382907280') end), }, -------------------------------------- --UI4 { text("武器区域","#FF55AAFF","20sp"), text("提示:1.2~1.5稳定","#FF2A3F","15sp"), switch("腕炮自调", function() a=gg.prompt({"这里修改范围"}) fastsearch({ {5,16,32}, {1,4,16}, {0,8,16}}, {{a[1],4,16, false}}) end, function() end), --}),--4, button('武器无间【打一发再开】', function() fastsearch({{0.05000000074505806,16,32},{1067869798,-52,4},{1067869798,-56,4},{2.5,320,16},},{{0,324,4},},"无间隔") end), button('实体锁子', function() nc_offset(getso("libil2cpp.so"),{{-382908368,0,0x144BC90},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0x144BC90},})--锁子 end), button('武器无后[放大]', function() gg.clearResults() gg.setRanges(16384) gg.searchNumber("4.03896783e-27;2.64697796e-23;0.00100000005:533", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.00100000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("1.0", gg.TYPE_FLOAT) gg.toast("开启成功") gg.clearResults() end), button('子弹数量', function() fastsearch({{0.05000000074505806,16,32},{1067869798,-52,4},{1067869798,-56,4},{2.5,320,16},},{{100,352,4},},"子弹数量") end), button('秒换弹夹', function() fastsearch({{0.05000000074505806,16,32},{1067869798,-52,4},{1067869798,-56,4},{2.5,320,16},},{{0,320,4},},"秒换弹夹") end), }, --UI5是音乐 }) -------------------------------------- bloc = luajava.getBlock() bloc('join') end