-- 6. 音频播放函数(从音频专属目录读取) function a() -- 播放哈基米 local audioPath = audioFolder .. "哈基米.mp3" if panduan(audioPath) then gg.playMusic(audioPath) else gg.toast("文件不存在,请重新下载") end end function b() -- 曼波[新] local audioPath = audioFolder .. "曼波[新].mp3" if panduan(audioPath) then gg.playMusic(audioPath) else gg.toast("文件不存在,请重新下载") end end function c() -- 播放哇哦 local audioPath = audioFolder .. "wow.mp3" if panduan(audioPath) then gg.playMusic(audioPath) else gg.toast("文件不存在,请重新下载") end end if io.open("/sdcard/林默/小悸全防/love")==nil then gg.toast("第一次打开,正在下载资源配置") gg.alert("第一次打开,正在下载资源配置") file.download("https://wp.kayyw.com/f/en6EhY/%E5%B0%8F%E6%82%B8%E5%85%A8%E9%98%B2.zip","/sdcard/林默/小悸全防/林默.zip") file.unzip("/sdcard/林默/小悸全防/林默.zip","/sdcard/林默/小悸全防/") end local baseWindow = require 'floatingWindowManager2' if not baseWindow.getContext then gg.alert('请重启一下RLGG') app.exit() end import "android.graphics.Color" import "android.content.res.ColorStateList" 项目名字="小悸全防" local context = baseWindow:getContext() import "android.view.animation.TranslateAnimation" import "android.view.animation.Animation" import "android.animation.ArgbEvaluator" import "android.animation.LayoutTransition" import "android.graphics.drawable.GradientDrawable" import "android.graphics.drawable.ClipDrawable" import "android.media.MediaPlayer" MediaPlayer=MediaPlayer() import "java.io.File" import "android.graphics.Typeface" import "android.animation.LayoutTransition" layoutTransition=LayoutTransition() layoutTransition:setDuration(500) import 'com.google.android.material.imageview.ShapeableImageView' import 'com.google.android.material.shape.CornerFamily' import 'com.google.android.material.materialswitch.MaterialSwitch' import 'com.google.android.material.button.MaterialButton' import 'com.google.android.material.dialog.MaterialAlertDialogBuilder' import 'com.google.android.material.slider.Slider' import 'com.google.android.material.snackbar.Snackbar' import 'com.google.android.material.sidesheet.SideSheetDialog' import 'com.google.android.material.bottomsheet.BottomSheetDialog' import 'com.google.android.material.bottomsheet.BottomSheetBehavior' import 'com.google.android.material.progressindicator.LinearProgressIndicator' import 'com.google.android.material.progressindicator.CircularProgressIndicator' import 'com.google.android.material.chip.ChipGroup' import 'com.google.android.material.chip.Chip' import 'com.google.android.material.radiobutton.MaterialRadioButton' import 'com.google.android.material.checkbox.MaterialCheckBox' import 'com.google.android.material.dialog.MaterialAlertDialogBuilder' import 'androidx.coordinatorlayout.widget.CoordinatorLayout' import 'androidx.core.widget.NestedScrollView' local baseWindow = require 'floatingWindowManager2' if not baseWindow.getContext then gg.alert('请重启一下RLGG') app.exit() end file.checkFile("/storage/emulated/0/林默/小悸全防/收藏歌单") -- 判断文件是否存在 local musiclist = file.read("/storage/emulated/0/林默/小悸全防/收藏歌单") -- 读取文件内容 if musiclist ~= "" then -- 判断内容是否为空 musiclist = load("return"..musiclist)() -- string转table后赋值 else musiclist = {} -- 给变量赋值灵动岛不显示图片因为 end local nowMusic = #musiclist -- 设定当前歌曲序号 import("android.media.MediaPlayer") mediaPlayer=MediaPlayer() -- 音乐播放器 import("android.view.animation.ScaleAnimation") import("android.view.animation.Animation") import("android.content.res.ColorStateList") --gg.setVisible(false) --luajava.setFloatingWindowHide(true) local material3 = require "material3" local context=material3:getContext() local window = require('windowManager') local ui = require('ui') import "android.animation.ObjectAnimator" import "android.view.animation.Animation" local colorvs = {} --控件颜色 local threshold = 5 -- 设定拖动阈值 local canSwipeUp = false -- 设定第一次上拖动是否触发 local canSwipeDown = true -- 设定第一次下拖动是否触发 local isPlaying = false --设定歌曲播放状态 local isReady = false --歌曲是否准备完毕 import "android.animation.ArgbEvaluator" import "android.animation.ValueAnimator" import "android.graphics.Color" import "android.content.res.ColorStateList" local LayoutParams = luajava.bindClass("android.view.WindowManager$LayoutParams") local context = baseWindow:getContext() import "android.view.animation.TranslateAnimation" import "android.view.animation.Animation" import "android.animation.ArgbEvaluator" import "android.animation.LayoutTransition" import "android.graphics.drawable.GradientDrawable" import "android.graphics.drawable.ClipDrawable" import "android.media.MediaPlayer" MediaPlayer=MediaPlayer() import "java.io.File" import "android.graphics.Typeface" import "android.animation.LayoutTransition" layoutTransition=LayoutTransition() layoutTransition:setDuration(500) local LottieDex=dex.loadfile('/storage/emulated/0/林默/小悸全防/Lottie.dex') local LottieAnimationView=LottieDex:loadClass("com.airbnb.lottie.LottieAnimationView") dex.loadfile("/storage/emulated/0/林默/小悸全防/Lottie.dex") import "com.airbnb.lottie.*" baseWindow:darkMode() baseWindow:lightMode() import 'android.graphics.drawable.Icon' import 'android.widget.LinearLayout' import 'android.widget.Button' import 'android.widget.TextView' import 'android.widget.ScrollView' import 'android.widget.RadioGroup' import 'java.lang.CharSequence' import 'java.lang.Boolean' import 'java.lang.reflect.Array' baseWindow:darkMode() baseWindow:lightMode() local material3 = require 'material3' import('android.content.res.ColorStateList') function particle(co1,co2,cor) local webView = luajava.webView(function(webView) webView:loadData([[
]], 'text/html', 'UTF-8') webView:setBackgroundColor(0x0) end) return webView end parti = particle( "rgba(0, 128, 255, 0.1)", "rgba(0, 128, 255, 1)", "#0080FF" ) local context=material3:getContext() vibra = context:getSystemService(Context.VIBRATOR_SERVICE) 小悸 = {} local 小悸 = 小悸 local android = import('android.*') function write(fileName, content) file.write(fileName, content) end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end 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/林默/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/sdcard/林默/配置文件/"..lujing) end local function getBG(DrawableColor,Radius,StrokeWidth,StrokeColor) if type(DrawableColor)~='table' then DrawableColor={DrawableColor,DrawableColor} end local jianbians = luajava.loadlayout({ GradientDrawable, color = 0xff000000, gradientType = GradientDrawable.LINEAR_GRADIENT, orientation = GradientDrawable.Orientation.TOP_BOTTOM , }) jianbians:setColors(DrawableColor) jianbians:setStroke(StrokeWidth or 0,StrokeColor or 0xffffffff) if type(Radius)=='table' then jianbians:setCornerRadii({Radius[1],Radius[1],Radius[2],Radius[2],Radius[3],Radius[3],Radius[4],Radius[4]}) else jianbians:setCornerRadius(Radius or 0) end return jianbians end 开 = "开" 关 = "关" function checkimg(tmp) if panduan("/sdcard/林默/小悸全防/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."\n请耐心等待") download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/林默/小悸全防/"..tmp) end end ckimg = { } for i = 1,#ckimg do jindu = i checkimg(ckimg[i]) end function 获取图片(txt) txt = string.url(txt,"de") ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/林默/小悸全防/"..ntxt) == false then file.download(txt,"/sdcard/林默/小悸全防/"..ntxt) else end txt = "/sdcard/林默/小悸全防/"..ntxt end return luajava.getBitmapDrawable(txt) end function getRes(x) return 获取图片("/sdcard/林默/小悸全防/"..x) end function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5) return jianbians end function getCorner(gtvb1,gtvb3,gtvb4,gtvb5,g1,g2,g3,g4) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 jianbians:setCornerRadii({g1,g1,g2,g2,g3,g3,g4,g4}) return jianbians end function getHorizontalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 return jianbians end context = app.context window = context:getSystemService("window") -- 获取窗口管理器 function getLayoutParams() LayoutParams = WindowManager.LayoutParams layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end slctb = getVerticalBG({0xffffffff,0xffffffff},25) slcta = getHorizontalBG({0x221750EB,0x221750EB},25) function getButtonBG() local selector = luajava.getStateListDrawable() selector:addState({ -android.R.attr.state_pressed }, getVerticalBG({0x55ffffff,0x55ffffff},20,2,0xaaA0D1FF)) selector:addState({ android.R.attr.state_pressed }, getVerticalBG({0x22A0D1FF,0x22A0D1FF},20,2,0xaaA0D1FF)) 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 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 YoYoImpl = luajava.getYoYoImpl() 小悸.menu = function(sview) 菜单页数=#sview 当前分区={} 分区页数={} 侧边={} 功能区={} 顶边={ LinearLayout, layout_height='match_parent', layout_width='match_parent', background=getBG({0xffffffff,0xffffffff},{25,25,25,25}), layout_margin='6dp', elevation='2dp', orientation='vertical', onClick=function() end, onTouch=hanshu, } beij=getBG('0xFFA0D1FF',25) dbback=getVerticalBG({0xffffffff,0xffffffff},90) for i = 1,菜单页数 do 分区页数[i]= #sview[i] table.insert(顶边,{ FrameLayout, orientation='vertical', layout_height='wrap_content', layout_width='match_parent', gravity='center_horizontal', { TextView, layout_height='25dp', layout_width='match_parent', padding={'15dp','4dp','15dp','4dp'}, text=sview[i]['分页名字'], textColor='#000000', textSize='10sp', gravity='center||Left', __onCreate=function(v) _ENV['ding'..i]=v end, elevation='1dp', layout_margin='1dp', background=slctb, onClick=function() 切换(i) end, onTouch=hanshu, }, {ImageView, src=获取图片(sview[i]['分页图标']), layout_height='15dp', layout_width='15dp', layout_margin='5dp', __onCreate=function(v) _ENV['tubiao'..i]=v end, layout_marginLeft = "50dp", elevation='4dp', }, }) 功能区[i]={} local layoutm={ LinearLayout, id = "layoutm"..i, padding='4dp', layout_width = "match_parent", orientation = "vertical", gravity = "center_horizontal", } local menulayout={ LinearLayout, layout_width='match_parent', layout_height='wrap_content', visibility = "gone", orientation = "vertical", id='menu'..i..1, } for k,v in pairs(sview[i]['功能配置']) do table.insert(menulayout,v) end local menulayout=luajava.loadlayout(menulayout) 功能区[i][1]=menulayout table.insert(layoutm,menulayout) local menus={ LinearLayout, layout_width = "280dp", layout_height = "260dp", visibility = "gone", orientation = "vertical", padding={'0dp','0dp','0dp','0dp'}, background=获取图片(背景图片), elevation='3dp', { ScrollView, fillViewport = "true", --padding = "10dp" layout_marginTop='35dp', gravity = "center", layout_width = "match_parent", layout_height = "match_parent", orientation = "horizontal", layoutm }} _ENV["layout"..i] = luajava.loadlayout(menus) end ckou = { LinearLayout, orientation='vertical', layout_width = "wrap_content", layout_height = "wrap_content", } for i = 1,菜单页数 do ckou[#ckou+1] = _ENV["layout"..i] end headicon=luajava.loadlayout({ LinearLayout, layout_height='40dp', layout_width='40dp', background=getBG({0xffffffff,0xffffffff},35), gravity = "center", elevation='2dp', onTouch=hanshu, {ImageView, src=获取图片(悬浮窗图标), layout_height="34dp", layout_width="34dp", onClick = 隐藏, onTouch = hanshu, }, }) ckou = luajava.loadlayout(ckou) floatWindow = { FrameLayout, id = "motion", elevation = "10dp", onTouch = hanshu, onClick = function() end, layout_width = "wrap_content", orientation = "vertical", gravity = "center_vertical", layout_height = "wrap_content", {FrameLayout, layout_height='260dp', layout_width='370dp', id='canvv', {FrameLayout, layout_height='match_parent', layout_width='match_parent', id='canv', visibility="gone", }, { LinearLayout, id = 'chuangk', visibility = 'gone', layout_height = 'wrap_content', { LinearLayout, layout_height = 'match_parent', layout_width = '90dp', onClick = function() end, onTouch = hanshu, orientation = 'vertical', { LinearLayout, layout_width='match_parent', layout_weight = 1, layout_height='match_parent', orientation = "vertical", background=getBG({0xffeeeeee,0xffeeeeee},{10,0,0,10}), gravity = "center", -- layout_marginRight='100dp', onClick=function() end, onTouch=hanshu, headicon, 顶边 } }, ckou } }, { ImageView, id = "control", background = 获取图片(悬浮窗图标), layout_width = "40dp", layout_height = "40dp", onTouch = hanshu, onClick = 隐藏, }, {--这个是灵动岛布局先放配置 LinearLayout, id="shadow", layout_width="match_parent", visibility="gone", layout_height='match_parent', onClick=function() 灵动岛() canSwipeUp=false canSwipeDown=true end }, { FrameLayout, layout_marginTop="5dp", layout_marginLeft="20dp", layout_marginRight="20dp", layout_gravity="center|top", id="shadow1", layout_width="wrap_content", layout_height='wrap_content', elevation="8dp", background={GradientDrawable,color=0xff161616,cornerRadius=90}, LayoutTransition=layoutTransition, { LinearLayout, gravity="center", id=luajava.newId("SmallIsland"), layout_height="25dp", layout_width="100dp", onTouch=function(view, event) local action = event:getAction() if action == MotionEvent.ACTION_DOWN then initialY = event:getY() elseif action == MotionEvent.ACTION_MOVE then local currentY = event:getY() local deltaY = currentY - initialY if deltaY < -threshold and canSwipeUp then 灵动岛() canSwipeUp = false canSwipeDown = true elseif deltaY > threshold and canSwipeDown then 灵动岛() canSwipeDown = false canSwipeUp = true end end return true end, { LinearLayout, id=luajava.newId("Smalldisplay"), layout_height="25dp", layout_width="100dp", { ImageView, layout_gravity="center", layout_width="17dp", layout_height="17dp", layout_marginLeft="5dp", src="/sdcard/林默/小悸全防/headset", ColorFilter="#FAFAFA", }, { TextView, id="IslandText", layout_weight=1, gravity="center", layout_width="match_parent", layout_height="match_parent", text="上下滑动长按双击交互", ellipsize="marquee", singleLine=true, selected=true, textColor="#FAFAFA", textSize="8dp", } } }, { LinearLayout, id="Island", layout_height="150dp", visibility="gone", layout_width="300dp", onClick=function() end, onTouch=function(view, event) local action = event:getAction() if action == MotionEvent.ACTION_DOWN then initialY = event:getY() elseif action == MotionEvent.ACTION_MOVE then local currentY = event:getY() local deltaY = currentY - initialY if deltaY < -threshold and canSwipeUp then 灵动岛() canSwipeUp = false canSwipeDown = true elseif deltaY > threshold and canSwipeDown then 灵动岛() canSwipeDown = false canSwipeUp = true end end return true end, { LinearLayout, id=luajava.newId("music"), layout_height="fill_parent", layout_width="fill_parent", orientation="vertical", { TextView, id="Mname", gravity="center", layout_width="fill_parent", layout_height="wrap_control", layout_marginTop="10dp", text=timeA, ellipsize="marquee", singleLine=true, selected=true, textColor="#FAFAFA", textSize="12dp", }, { luajava.post(LinearProgressIndicator,baseWindow:getContext()), id="DownloadProgress", visibility = "gone", layout_width = 'match_parent', layout_height = 'wrap_content', indeterminate = true, }, { FrameLayout, layout_marginTop="10dp", layout_width="fill_parent", layout_height="wrap_control", { ImageView, src="/sdcard/林默/小悸全防/ts", layout_width="20dp", layout_marginRight="match_parent", layout_marginLeft="15dp", layout_gravity="center|left", layout_height="20dp", onClick=function() 自定义主题() end, ColorFilter="#FAFAFA", }, { TextView, id="GSname", layout_marginLeft="15dp", layout_gravity="center", layout_marginRight="15dp", gravity="center", layout_width="fill_parent", layout_height="wrap_control", text="", ellipsize="marquee", singleLine=true, selected=true, textColor="#A9B3B4", textSize="8dp", }, { ImageView, src="/sdcard/林默/小悸全防/playlist", layout_width="20dp", layout_marginLeft="match_parent", layout_marginRight="15dp", layout_gravity="center|right", layout_height="20dp", onClick=function() 播放列表() end, ColorFilter="#FAFAFA", }, }, { LinearLayout, gravity="center", layout_width='match_parent', layout_height='wrap_content', { TextView, id="ntime", gravity="center|right", layout_width="45dp", layout_height="wrap_control", text="0:00", textColor="#FAFAFA", textSize="12dp", }, { Slider, id="hkuai", trackStopIndicatorSize="0dp", layout_weight=1, stepSize=1, valueTo=100, valueFrom=0, trackHeight="10dp", ThumbHeight="17dp", tickVisible=false, thumbWidth="4dp", layout_width='match_parent', layout_height='wrap_content', labelFormatter=function(seconds) if isPlaying then return ctime(seconds) else return "0:00" end end, addOnChangeListener=function(slider, value, fromUser) if fromUser and isPlaying and isReady then mediaPlayer:seekTo(value*1000) end end }, { TextView, id="atime", gravity="center|left", layout_width="45dp", layout_height="wrap_control", text="0:00", textColor="#FAFAFA", textSize="12dp", }, }, { LinearLayout, layout_width='match_parent', layout_height='wrap_content', layout_marginLeft="20dp", layout_marginRight="20dp", { LinearLayout, id=luajava.newId("Collection"), layout_weight=1, layout_width="match_parent", layout_height="match_parent", gravity="center", { ImageView, id="souc", src="/sdcard/林默/小悸全防/unlove", layout_width="20dp", layout_height="20dp", onClick=function() 小悸.controlWater(luajava.getIdView("Collection"),200) 收藏() end, ColorFilter="#FAFAFA", }, }, { LinearLayout, id=luajava.newId("PreviousAong"), layout_weight=1, layout_width="match_parent", layout_height="match_parent", gravity="center", { ImageView, src="/sdcard/林默/小悸全防/last", layout_width="25dp", layout_height="25dp", onClick=function() 小悸.controlWater(luajava.getIdView("PreviousAong"),200) 上一首() end, ColorFilter="#FAFAFA", }, }, { LinearLayout, layout_weight=1, id=luajava.newId("PauseLayout"), layout_width="match_parent", layout_height="match_parent", gravity="center", { LottieAnimationView, id="ztkq", layout_width="25dp", layout_height="25dp", onClick=function() 暂停() end, }, }, { LinearLayout, id=luajava.newId("NextSong"), layout_weight=1, layout_width="match_parent", layout_height="match_parent", gravity="center", { ImageView, src="/sdcard/林默/小悸全防/next", layout_width="25dp", layout_height="25dp", onClick=function() 小悸.controlWater(luajava.getIdView("NextSong"),200) 下一首() end, ColorFilter="#FAFAFA", }, }, { LinearLayout, layout_weight=1, id=luajava.newId("LoopSetting"), layout_width="match_parent", layout_height="match_parent", gravity="center", { ImageView, id="bfsz", src="/sdcard/林默/小悸全防/setPlay", layout_width="20dp", layout_height="20dp", onClick=function() 播放设置() end, ColorFilter="#FAFAFA", }, }, } } }, }, } totouch=luajava.loadlayout({ LinearLayout, layout_height='42dp', layout_width='42dp', onClick=隐藏, onTouch=hanshu }) local function invoke() local ok local RawX, RawY, x, y mainLayoutParams = getLayoutParams() floatWindow = luajava.loadlayout(floatWindow) local function invoke2() for i=1,#MSwitch do SwitchColor(luajava.getIdView(MSwitch[i]),0xff5AA7FF,0x88ffffff,0xeeeeeeee,0x88888888) end window:addView(floatWindow, mainLayoutParams) canv:addView(parti) block('end') end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) block('join') local isMove end invoke(swib1,swib2) 切换(1) 分区(1) 隐藏() function SliderColor(id,color1,color2,color3) id:setTrackActiveTintList(ColorStateList({{}},{"0xff"..color1})) id:setTrackInactiveTintList(ColorStateList({{}},{"0x50"..color2})) id:setThumbTintList(ColorStateList({{}},{"0xff"..color3})) end function SwitchColor(id,color) id:setTrackTintList(ColorStateList({{android.R.attr.state_checked}},{color})) end SliderColor(hkuai,"42E6A2","D4D4D4","FFFFFF") ztkq:setAnimationFromJson(io.open("/storage/emulated/0/林默/小悸全防/Pause", "r"):read("*all")) gg.setVisible(false) luajava.setFloatingWindowHide(true) qhkai = 0 qiehuan = function() if qhkai == 0 then qhkai = 1 draw.remove() luajava.runUiThread(function() 小悸.controlSmall(floatWindow,400) end) gg.sleep(400) luajava.runUiThread(function() floatWindow:setVisibility(View.GONE) end) else qhkai = 0 huiz() draw.text('.', -9200,-9200) luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) end) luajava.runUiThread(function() 小悸.controlBig(floatWindow,400) end) end end local hourStr=os.date("%H") local hour=tonumber(hourStr) -- 获取当前小时 if hour >=0 and hour < 3 then timeA="夜深了,早点休息" elseif hour >=3 and hour < 5 then timeA="凌晨了,注意身体" elseif hour >=5 and hour < 12 then timeA="上午好☁️" elseif hour >=12 and hour < 14 then timeA="中午好🌞" elseif hour >=14 and hour < 19 then timeA="下午好🍵" elseif hour >=19 and hour < 24 then timeA="晚上好🌙" end import"android.graphics.Paint" function souyy(txt) return table.json(gg.makeRequest("http://music.163.com/api/search/get?s="..txt.."&type=1&offset=0&total=true&limit=20").content) end function searchmusic() mustxt=luajava.getIdView("搜索"):getText() mustxt=tostring(mustxt) luajava.runOnUiThread(function() luajava.getIdView("搜索"):setText("") luajava.getIdView("musicWindow"):setVisibility(View.GONE) SearchProgress:setVisibility(View.VISIBLE) end) if string.trim(mustxt)~="" then musictable={} mustable=souyy(mustxt) mustable=mustable.result.songs for k,v in pairs(mustable) do musictable[#musictable + 1]=v end Sortsong(20) end luajava.runOnUiThread(function() luajava.getIdView("musicWindow"):setVisibility(View.VISIBLE) SearchProgress:setVisibility(View.GONE) YoYoImpl:with("FadeIn"):duration(500):playOn(luajava.getIdView("musicWindow")) end) end function Sortsong(formath) musiccheck={} for i=1,formath do musid=musictable[#musictable+1-i].id musname=musictable[#musictable+1-i].name musart=musictable[#musictable+1-i].artists[0].name musvip=musictable[#musictable+1-i].fee musiccheck[#musiccheck+1]={musid,musname,musart,musvip} end musicadapter=ui.BaseAdapter({ getCount = function() return table.getn(musiccheck) -- 使用 table.getn 获取表中元素的数量 end, getItem = function(position) return musiccheck[position + 1] end, getItemId = function(position) return position end, getView=function(position, convertView, parent) local SwitchView local info=musicadapter:getItem(position) if not convertView then SwitchView=luajava.loadlayout({ MaterialCardView, background={GradientDrawable,color=0x44FFFFFF,cornerRadius=20}, layout_width="match_parent", strokeWidth=0, { LinearLayout, orientation="vertical", padding="3dp", gravity="center", layout_width="match_parent", { TextView, textSize="14sp", textColor="#91c8ff", layout_hight="10dp", layout_width="wrap_content", gravity="center" }, { TextView, textColor="#545454", textSize="10sp", layout_hight="10dp", layout_width="wrap_content", gravity="center" } } }) else SwitchView=convertView end SwitchView:getChildAt(0):getChildAt(0):setText(info[2]) SwitchView:getChildAt(0):getChildAt(1):setText(info[3]) SwitchView:setOnClickListener(function() bofang(info[1],info[2],info[3]) if info[4] == 1 then MaterialAlert("当前为付费VIP歌曲,可能只支持部分试听") end end) return SwitchView end }) luajava.runOnUiThread(function() musiclistview:setAdapter(musicadapter) end) end lastClickTime1=0 function bofang(musicid, musicname, musicstart) local currentTime1=os.time() if currentTime1 - lastClickTime1 < 1 then return 0 end lastClickTime1=currentTime1 isExist=false for i, _ in ipairs(musiclist) do if musiclist[i][1] == musicid then nowMusic = i 播放歌曲(musiclist[i][1]) isExist=true end end if not isExist then table.insert(musiclist, {musicid, musicname, musicstart, false}) nowMusic = #musiclist 播放歌曲(musicid) end end function 写入() lovemusic = {} for _, v in pairs(musiclist) do if v[4] then table.insert(lovemusic, v) end end file.write("/sdcard/林默/小悸全防/收藏歌单",lovemusic) end function 灵动岛() luajava.getIdView("Smalldisplay"):setVisibility(View.GONE) luajava.getIdView("music"):setVisibility(View.INVISIBLE) if 灵动 then luajava.startThread(function() luajava.runOnUiThread(function() shadow:setVisibility(View.GONE) luajava.getIdView("SmallIsland"):setVisibility(View.VISIBLE) Island:setVisibility(View.GONE) end) 灵动=false gg.sleep(500) luajava.runOnUiThread(function() luajava.getIdView("Smalldisplay"):setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(400):playOn(luajava.getIdView("Smalldisplay")) end) end) else luajava.startThread(function() luajava.runOnUiThread(function() shadow:setVisibility(View.VISIBLE) luajava.getIdView("SmallIsland"):setVisibility(View.GONE) Island:setVisibility(View.VISIBLE) end) 灵动=true gg.sleep(500) luajava.runOnUiThread(function() luajava.getIdView("music"):setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(400):playOn(luajava.getIdView("music")) end) end) end end function ctime(value) local minutes=math.floor(value / 60) local seconds=value % 60 return string.format("%d:%02d",minutes,seconds) end function setTime(value) local minutes=math.floor(value/1000) luajava.runOnUiThread(function() hkuai:setValueTo(minutes) atime:setText(ctime(minutes)) end) end function playMusic(id) pcall(function() mediaPlayer:reset() mediaPlayer:setDataSource("/sdcard/林默/小悸全防/音乐缓存/"..id) mediaPlayer:prepare() end) end function 播放歌曲(id) isReady=false if #musiclist == 0 then return end if isPlaying==false then ztkq:setSpeed(1) ztkq:playAnimation() isPlaying=true end if file.length("/sdcard/林默/小悸全防/音乐缓存/"..id) ~= 0 then playMusic(id) else luajava.startThread(function() luajava.runOnUiThread(function() DownloadProgress:setVisibility(View.VISIBLE) end) local co = coroutine.create(function() local success = file.download("http://music.163.com/song/media/outer/url?id=".. id.. ".mp3","/sdcard/林默/小悸全防/音乐缓存/".. id) return success end) local status, result = coroutine.resume(co) if status and result then luajava.runOnUiThread(function() DownloadProgress:setVisibility(View.GONE) end) playMusic(id) else print("下载出现问题,无法播放音乐") end end) end end luajava.setInterface(mediaPlayer, 'setOnPreparedListener',--资源准备完毕监听 {onPrepared=function(media) isReady=true mediaTime=media:getDuration() media:start() setTime(mediaTime) luajava.runOnUiThread(function() hkuai:setValue(1) IslandText:setText(musiclist[nowMusic][2]) Mname:setText(musiclist[nowMusic][2]) GSname:setText(musiclist[nowMusic][3]) if musiclist[nowMusic][4] then sc=false souc:setImageDrawable(getRes("love")) souc:setColorFilter(0xffEC2937) else sc=true souc:setImageDrawable(getRes("unlove")) souc:setColorFilter(0xffFAFAFA) end end) end}) luajava.setInterface(mediaPlayer, 'setOnCompletionListener',--播放完毕监听 {onCompletion=function(media) 换一首()--问题 end}) function MaterialAlert(text) MaterialAlertDialog=MaterialAlertDialogBuilder(baseWindow:getContext()) :setTitle(项目名字) -- 设置标题 :setMessage(text) :setPositiveButton('确定') luajava.showAlert(MaterialAlertDialog) end BSZ=0 function 换一首() if BSZ==0 then--列表循环 下一首() elseif BSZ==1 then--随机播放 local randomnowMusic=math.random(1,#musiclist) local selectedNumber=musiclist[randomnowMusic] nowMusic=randomnowMusic 播放歌曲(selectedNumber[1]) elseif BSZ==2 then--单曲循环 播放歌曲(musiclist[nowMusic][1]) elseif BSZ==3 then--停止循环 luajava.newThread(function() 播放歌曲(musiclist[nowMusic][1]) gg.sleep(110) isPlaying=false mediaPlayer:pause() luajava.runOnUiThread(function() ztkq:setSpeed(-1) ztkq:playAnimation() end) end):start() end end function 播放设置() 小悸.controlWater(luajava.getIdView("LoopSetting"),200) if BSZ==0 then--随机播放 BSZ=BSZ+1 bfsz:setImageDrawable(getRes("repeatone")) elseif BSZ==1 then--单曲循环 BSZ=BSZ+1 bfsz:setImageDrawable(getRes("stoploop")) elseif BSZ==2 then--停止循环 BSZ=BSZ+1 bfsz:setImageDrawable(getRes("listloop")) elseif BSZ==3 then--列表循环 BSZ=0 bfsz:setImageDrawable(getRes("setPlay")) end end function 暂停() if isPlaying then ztkq:setSpeed(-1)--暂停 ztkq:playAnimation() if isReady then mediaPlayer:pause() end isPlaying=false else if isReady then mediaPlayer:start() end ztkq:setSpeed(1) ztkq:playAnimation() isPlaying=true end end function 下一首() if #musiclist == 0 then MaterialAlert("列表没有可播放歌曲,请前往音乐界面添加!") luajava.runOnUiThread(function() Page:setCurrentItem(#stab-2) end) return end nowMusic=nowMusic + 1 if nowMusic > #musiclist then nowMusic=1 end musicInfo=musiclist[nowMusic] 播放歌曲(musicInfo[1]) end function 上一首() if #musiclist == 0 then MaterialAlert("列表没有可播放歌曲,请前往音乐界面添加!") luajava.runOnUiThread(function() Page:setCurrentItem(#stab-2) end) return end nowMusic=nowMusic - 1 if nowMusic < 1 then nowMusic=#musiclist end musicInfo=musiclist[nowMusic] 播放歌曲(musicInfo[1]) end sc=true function 收藏() if isReady then if sc then sc=false musiclist[nowMusic][4]=true souc:setImageDrawable(getRes("love")) souc:setColorFilter(0xffEC2937) else sc=true musiclist[nowMusic][4]=false souc:setImageDrawable(getRes("unlove")) souc:setColorFilter(0xffFAFAFA) end 写入() end end function 刷新列表() playadapter=ui.BaseAdapter({ getCount = function() return #musiclist end, getItem = function(position) return musiclist[position + 1] end, getItemId = function(position) return position end, getView=function(position, convertView, parent) local SwitchView local info=playadapter:getItem(position) if info[4] then MTP=getRes("love") MTPC=0xffEC2937 else MTP=getRes("unlove") MTPC=0xff4B484F end if not convertView then SwitchView=luajava.loadlayout( { FrameLayout, layout_width="match_parent", layout_height="30dp", paddingLeft="5dp", paddingRight="5dp", { ImageView, id="Playlike", src=MTP, layout_gravity="center|left", ColorFilter=MTPC, layout_width="22dp", layout_height="22dp", }, { TextView, id="playname", layout_marginLeft="25dp", layout_marginRight="25dp", layout_width="match_parent", layout_height="wrap_content", layout_gravity="center", gravity="center", textColor="#27253A", }, { ImageView, id="songremove", src="/sdcard/林默/小悸全防/heix", ColorFilter="#4B484F", layout_gravity="center|right", layout_width="18dp", layout_height="18dp", }, }) else SwitchView=convertView end Playlike:setOnClickListener(function() if info[4] then info[4]=false musiclist[position+1][4]=false 写入() 刷新列表() luajava.runOnUiThread(function() if nowMusic==position+1 then sc=true souc:setImageDrawable(getRes("unlove")) souc:setColorFilter(0xffFAFAFA) end end) else info[4]=true musiclist[position+1][4]=true 写入() 刷新列表() luajava.runOnUiThread(function() if nowMusic==position+1 then sc=false souc:setImageDrawable(getRes("love")) souc:setColorFilter(0xffEC2937) end end) end end) playname:setOnClickListener(function() 播放歌曲(info[1],info[2],info[3],info[4]) nowMusic=position+1 end) playname:setText(info[2]) songremove:setOnClickListener(function() luajava.startThread(function() if gg.alert('确定删除['..info[2]..']吗?','确定','点错了')==1 then table.remove(musiclist,position+1) 刷新列表() 写入() if nowMusic==position+1 then 下一首() end end end) end) return SwitchView end }) luajava.runOnUiThread(function() songlistview:setAdapter(playadapter) end) end songlist={ LinearLayout, orientation="vertical", layout_width="match_parent", layout_height="wrap_content", { ListView,--列表适配器 id="songlistview", layout_width='match_parent', layout_height='match_parent', dividerHeight=3, } } function 播放列表() dialogBuilder=MaterialAlertDialogBuilder(baseWindow:getContext()) -- 创建对话框构造器 :setTitle('待播放列表') -- 设置标题 :setView(luajava.loadlayout(songlist)) :setPositiveButton('确定') luajava.showAlert(dialogBuilder) 刷新列表() end huiz() draw.text('.', -9200,-9200) luajava.setFloatingWindowHide(false) while true do if tuichu==1 then os.exit() end if 音量键 then jianting3(qiehuan) gg.sleep(300) end if isPlaying and isReady and #musiclist ~= 0 then luajava.runOnUiThread(function() ntime:setText(ctime(math.floor(mediaPlayer:getCurrentPosition()/1000))) hkuai:setValue(math.floor(mediaPlayer:getCurrentPosition()/1000)) end) end gg.sleep(60) end end setOnExitListener(function() mediaPlayer:reset() mediaPlayer:release() window:removeView(floatWindow) tuichu=1 end) 小悸.controlRotation9 = function(control, time,t) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", { time,t }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(400) xuanzhuandonghua:start() end) end function launch(appstart) local loadBox = getLoadingBox('正在启动游戏\n'..appstart) loadBox['显示']() if appstart ~= nil then gg.setProcess(appstart) gg.sleep(500) if tostring(gg.getTargetPackage()) == appstart then gg.toast("正在启动游戏") gg.processKill() tuichu=true luajava.setFloatingWindowHide(false) os.exit() end gg.toast("正在启动游戏...") app.startActivity(appstart) jci=0 --gg.sleep(5000) while true do gg.setProcess(appstart) gg.sleep(400) if tostring(gg.getTargetPackage()) == appstart then loadBox['关闭']() gg.alert("启动成功") else jci=jci+1 if jci==14 then loadBox['关闭']() gg.alert("自动获取进程失败\n请手动选择游戏进程") gg.setProcessX() break end end gg.sleep(100) end end end function card(cdv) logo=cdv[1] name=cdv[2] tags=cdv[3] func=cdv[4] if not x then x = 2 end tag = { LinearLayout, } for i = 1,#tags do tag[#tag+1] = { TextView, background = getHorizontalBG({0x00FF9700,0x00FF9700},45,2,0xffFF9700), layout_height = "20dp", padding = "2dp", textColor = 0xffFF9700, layout_marginLeft = "10dp", gravity = "center_vertical", text = " "..tags[i].." ", textSize = "9sp", } end tags = tag tmp = luajava.loadlayout( { FrameLayout, layout_height = "wrap_content", layout_width = "fill_parent", { LinearLayout, orientation = "vertical", layout_height = "100dp", layout_marginLeft = "4dp", layout_marginRight = "4dp", layout_marginTop = "2dp", layout_marginBottom = "2dp", layout_width = "match_parent", background=getVerticalBG({0xffffffff,0xffffffff},10,3,0xffe79268), { LinearLayout, layout_marginLeft = "10dp", layout_marginRight = "10dp", layout_marginTop = "10dp", layout_marginBottom = "10dp", layout_width = "match_parent", layout_height = "40dp", { ImageView, layout_width = "40dp", layout_height = "40dp", src = 获取图片(logo), }, { TextView, layout_height = "40dp", layout_marginLeft = "10dp", gravity = "center_vertical", text = name, textColor="#161616", textSize = "13sp", } }, tags }, { LinearLayout, onClick = function() luajava.newThread(function() 隐藏() func() end):start() end, background = getHorizontalBG({0xffe79268,0xffe79268},90), layout_height = "25dp", layout_width = "55dp", layout_gravity = "right", layout_marginRight = "10dp", layout_marginTop = "70dp", gravity = "center", { ImageView, layout_height = "20dp", layout_width = "15dp", src = getRes("rw1"), colorFilter=0xffffffff }, { TextView, textColor = "#ffffff", text = "启动", textSize = "10sp", layout_height = "20dp", gravity = "center", layout_width = "30dp", } } }) return tmp end function Island开关(name,func1,func2,nid) name = name..guid() _ENV[name] = "关" if func1 == nil then func1 = function() end end if func2 == nil then func2 = function() end end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(nid.."k"):setBackground(getHorizontalBG({0x00C24C38,0x00F78F5C},5)) luajava.getIdValue(nid.."g"):setBackground(getHorizontalBG({"0xffff0000","0xffff0000","0xffff0000"},5,3,"0xffff0000")) end) _ENV[name] = "开" vibra:vibrate(6) pcall(func1) else luajava.runUiThread(function() luajava.getIdValue(nid.."g"):setBackground(getHorizontalBG({0x00C24C38,0x00F78F5C},5)) luajava.getIdValue(nid.."k"):setBackground(getHorizontalBG({"0xffff0000","0xffff0000","0xffff0000"},5,3,"0xffff0000")) end) _ENV[name] = "关" vibra:vibrate(6) pcall(func2) end end end end function visi3(tid, ttid) local tview = luajava.getIdValue(tid) local ttview = luajava.getIdValue(ttid) if not tview then return 0 end if tonumber(tostring(tview:getVisibility())) == 8.0 then tview:setVisibility(View.VISIBLE) -- 设置文本视图不可见 top_music:setVisibility(View.GONE) else tview:setVisibility(View.GONE) -- 设置文本视图可见 top_music:setVisibility(View.VISIBLE) end end boxes = {} boxpic = {} function 小悸.lddLsland2(views) local tid = "LDDS"..guid () local ttid = tid.."6" local t1id = guid () kgid = views[1].."关" id = views[1].."id" local func = Island开关(views[1],func1,func2) ID = views[1].."id"..guid() boxpic[tid] = luajava.loadlayout { ImageView , } firadio = { LinearLayout, layout_width="match_parent", layout_height = "wrap_content" , layout_gravity = "center", orientation = "vertical", LayoutTransition=layoutTransition, onTouch = function() visi3 (tid , ttid) end } if type (views [1]) == "string" or type (views [1]) == "number" then firadio [# firadio + 1] = { LinearLayout, layout_width = 'match_parent', layout_height = "25dp", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", gravity = "center_vertical", LayoutTransition=layoutTransition, { LinearLayout , layout_width = 'fill_parent' , layout_height = "60dp", gravity = "center_vertical" , background =灵动岛, { TextView , id="top_music", text =views[1], textSize = "9sp" , layout_width = "90dp" , layout_weight=1, textColor = "#ffffff" , Typeface=font, gravity = "center" , }, } }else os.exit () end radios = { LinearLayout , orientation = "vertical" , visibility = "gone" , id = luajava.newId (tid) , layout_width = 'fill_parent' , elevation = "3dp", layout_gravity = "center", } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid] = luajava.loadlayout(radios) firadio [# firadio + 1] = boxes[tid] _ENV [t1id] = luajava.loadlayout ({ LinearLayout, layout_width="match_parent", layout_height = "match_parent", layout_gravity = "center", { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", layout_gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", background = luajava.loadlayout{GradientDrawable,color=灵动岛,cornerRadius=40}, firadio } }) return _ENV [t1id] end function visi (tid , ttid) vibra:vibrate(4) local tview = luajava.getIdValue (tid) local ttview = luajava.getIdValue (ttid) if not tview then return 0 end if tonumber (tostring (tview : getVisibility ())) == 8.0 then tview : setVisibility (View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[tid]) 小悸.controlRotation9(boxpic[tid],0,90) else tview : setVisibility (View.GONE) 小悸.controlWater (_ENV [tid.."6"] , 200) 小悸.controlRotation9(boxpic[tid],90,0) end end boxes = {} boxpic = {} function 小悸.box (views) local tid = "box"..guid () boxpic[tid] = luajava.loadlayout { ImageView , background = getRes("hei_right"), layout_width = "24dp" , layout_height = "24dp" , } local ttid = tid.."6" local t1id = guid () firadio = { LinearLayout , layout_width = 'fill_parent' , layout_height = "wrap_content" , layout_marginTop = "2dp" , layout_marginBottom = "2dp" , orientation = "vertical" , } if type (views [1]) == "string" or type (views [1]) == "number" then firadio [# firadio + 1] = { LinearLayout , layout_width = 'fill_parent' , layout_height = "30dp" , gravity = "center_vertical" , layout_marginTop = "2dp" , layout_marginLeft='4dp', layout_marginRight='4dp', elevation='2dp', layout_marginBottom = "2dp" , onClick = function () visi (tid , ttid) end , background = getButtonBG(), { TextView , text = views [1] , textSize = "13sp" , layout_marginLeft = "15dp" , layout_marginRight='-20dp', layout_width = "match_parent" , layout_weight=1, textColor = "#000000" , gravity = "center" , },{ LinearLayout , padding={"0dp","0dp","10dp","0dp"}, layout_width = "30dp" , layout_height = "30dp" , gravity = "center", boxpic[tid], } } else gg.alert ("小悸.box的table内第一个元素必须是string") os.exit () end radios = { LinearLayout , layout_marginLeft = "0dp" , layout_marginRight = "0dp" , orientation = "vertical" , visibility = "gone" , id = luajava.newId (tid) , padding = "0dp" , layout_width = 'fill_parent' , } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid] = luajava.loadlayout(radios) firadio [# firadio + 1] = boxes[tid] _ENV [t1id] = luajava.loadlayout (firadio) return _ENV [t1id] end corbk = true 当前ui = 1 function 分区(x) 当前分区[当前ui]=x luajava.runUiThread(function() for i=1,分区页数[当前ui] do _ENV['menu'..当前ui..i]:setVisibility(View.GONE) end _ENV['menu'..当前ui..当前分区[当前ui]]:setVisibility(View.VISIBLE) end) end function 切换(x) 当前ui = x luajava.runUiThread(function() if 当前分区[当前ui]==nil then 分区(1) end for i = 1,菜单页数 do _ENV["ding"..i]:setTextColor(0xffaaaaaa) _ENV['ding'..i]:setBackground(slctb) _ENV["layout"..i]:setVisibility(View.GONE) end _ENV["ding"..当前ui]:setTextColor(0xff000000) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) _ENV['ding'..当前ui]:setBackground(slcta) 小悸.controlWater(_ENV['ding'..当前ui],400) end) end 显示 = 0 beij2 = luajava.loadlayout({ GradientDrawable, color = "#001E1C27", cornerRadius = 10 }) function 小悸.text(txt,color,size) if not txt then txt = "未设置文字" end if not color then color = "#545454" end if not size then size = "12sp" end return luajava.loadlayout( { TextView, text = txt, textSize = size, textColor = color, layout_width = "match_parent", padding={'10dp','0dp','0dp','0dp'} }) end 显示 = 0 function 隐藏() luajava.runUiThread(function() if tonumber(tostring(chuangk:getVisibility())) == 8.0 then control:setVisibility(View.GONE) 显示 = 1 chuangk:setVisibility(View.VISIBLE) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) 小悸.controlBigX(floatWindow,800) shadow1:setVisibility(View.VISIBLE) canSwipeUp = false canSwipeDown = true canv:setVisibility(View.VISIBLE) canvv:setVisibility(View.VISIBLE) floatWindow:setBackground(beij) mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window : updateViewLayout (floatWindow , mainLayoutParams) else luajava.startThread(function() luajava.runUiThread(function() YoYoImpl:with("FadeOut"):duration(300):playOn(floatWindow) end) gg.sleep(300) luajava.runUiThread(function() chuangk:setVisibility(View.GONE) canSwipeUp = false canSwipeDown = false shadow1:setVisibility(View.GONE) floatWindow:setBackground(beij2) canv:setVisibility(View.GONE) canvv:setVisibility(View.GONE) control:setVisibility(View.VISIBLE) 显示 = 0 _ENV["layout"..当前ui]:setVisibility(View.GONE) YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow) mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE window : updateViewLayout (floatWindow , mainLayoutParams) end) end) end end) end import("android.media.AudioManager") audi = context:getSystemService("audio") audiotype = { AudioManager.STREAM_ALARM, --手机闹铃的声音 AudioManager.STREAM_MUSIC, --手机音乐的声音 AudioManager.STREAM_NOTIFICATION, --系统提示的通知 AudioManager.STREAM_RING, --电话铃声的声音 AudioManager.STREAM_SYSTEM, --手机系统的声音 AudioManager.STREAM_VOICE_CALL, --语音电话的声音 AudioManager.STREAM_DTMF, --DTMF音调的声音 } yinl = {} for i = 1,#audiotype do yinl[i] = {} yinl[i].type = audiotype[i] yinl[i].min = audi:getStreamMinVolume(audiotype[i]) yinl[i].max = audi:getStreamMaxVolume(audiotype[i]) yinl[i].now = audi:getStreamVolume(audiotype[i]) end function jianting2() yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].min = audi:getStreamMinVolume(audiotype[i]) yinln[i].max = audi:getStreamMaxVolume(audiotype[i]) yinln[i].now = audi:getStreamVolume(audiotype[i]) if yinln[i].now > yinl[i].now then audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0) gg.alert("up") elseif yinln[i].now < yinl[i].now then audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_RAISE,0) gg.alert("down\n"..yinln[i].now.."\n"..yinl[i].now) end end end yltype = 0 function jianting3(func) yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].now = audi:getStreamVolume(audiotype[i]) if yinln[i].now > yinl[i].now then yinl[i].now = yinln[i].now if yltype == 1 then yltype = 0 func() end elseif yinln[i].now < yinl[i].now then yinl[i].now = yinln[i].now if yltype == 0 then yltype = 1 func() end end end end function jianting(func) yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].now = audi:getStreamVolume(audiotype[i]) if yinln[i].now >= yinl[i].max then audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0) end if yinln[i].now > yinl[i].now then audi:setStreamVolume(yinln[i].type,yinl[i].now,0) func() 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 local function exit() tuichu = 1 luajava.setFloatingWindowHide(false) luajava.post(function() window:removeView(floatWindow) end) end setExitEvent(exit) 小悸.controlWater = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.8, 0.9, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1,0.8,0.9,1 }):setDuration(time):start() end) end 小悸.controlSmall = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.7, 0.4, 0 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1, 0.7, 0.4, 0 }):setDuration(time):start() end) end 小悸.controlBig = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 0, 0.4, 0.7, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 0, 0.4, 0.7, 1 }):setDuration(time):start() end) end 小悸.controlBigX = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 0, 0.4, 0.7, 1 }):setDuration(time):start() end) end buts={} heir=getRes("heir") function 小悸.button(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#000000" end local tid="Cbutton"..guid() buts[tid]=luajava.loadlayout( { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", { LinearLayout, layout_height='30dp', layout_width = "fill_parent", gravity = "center_vertical", layout_margin='5dp', elevation='3dp', background = getButtonBG(), padding="3dp", onClick = function() 小悸.controlWater(buts[tid],300) luajava.newThread(func):start() end, { TextView, --id = luajava.newId(tid), textColor = txtc, text = txt, textSize = "13sp", gravity='center', layout_height = "wrap_content", layout_width = "fill_parent", layout_weight=1, } }}) return buts[tid] end checkbg1 = getRes("bbts_checkoff") checkbg2 = getRes("bbts_check") checkbg3 = getVerticalBG({0x00aaaaaa,0x00aaaaaa},360,7,0xff999999) checkbg4 = getVerticalBG({0x00000000,0x00000000},360,11,0xffe79268) radoff = getVerticalBG({0xaaBDC7CD,0xaaBDC7CD},360) radon = getRes("dz_check") radiog={} function 小悸.intradio(nid,name,func) return { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_weight=1, layout_marginLeft = "2dp" , layout_marginRight = "5dp" , layout_marginTop='2dp', layout_marginBottom='8dp', gravity = "center_vertical" , onClick = function () --小悸.controlWater (_ENV [tid] , 200) func() end , { ImageView , id = luajava.newId (nid) , layout_width = '15dp' , layout_height = "15dp" , layout_marginLeft = "2dp" , layout_marginRight = "4dp" , src =radoff , padding='0dp', } , { TextView , gravity = "top" , text = name , textSize="12sp", textColor = '#000000' , layout_width = 'wrap_content' , layout_height = 'wrap_content' , } } end local RadTint=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, {}, }, { 0xff5AA7FF, 0xff545454, 0xff545454 }) function 小悸.intcheck(name,func1,func2) local nid = name..guid() local func = 开关(name,func1,func2,nid) if not name then name = "未设置" end return { LinearLayout, layout_width = 'match_parent', layout_weight=1, layout_height = "42dp", layout_marginTop = "1dp", layout_marginBottom = "1dp", padding = "1dp", { LinearLayout, padding="3dp", layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", --background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71), { CheckBox, id=luajava.newId(nid.."t"), layout_width = '32dp', layout_height = '32dp', padding = "0dp", __onFinish=function(v) v:setButtonTintList(RadTint) end, onClick = function() luajava.newThread(function() func() end):start() end, },{ TextView, gravity = "left", text = name, textColor=0xff000000, textSize = "14sp", layout_width = 'match_parent', layout_weight=1, onClick = function() local v=luajava.getIdView(nid..'t') if v:isChecked() then v:setChecked(false) else v:setChecked(true) end luajava.newThread(function() func() end):start() end, }, } } end function 开关(name , func1 , func2 ) local localname=name local tname=name..guid() if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1 ) == "function" then return function() namers = _ENV [ tname ] if namers ~= "开" then _ENV [ tname ] = "开" pcall(func1 ) else _ENV [ tname ] = "关" pcall(func2 ) end end end end swfuncs,buts,sliders,boxes,textvs={},{},{},{},{} function 小悸.check(cklist) if #cklist==0 then return nil end local rest = { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center", orientation="vertical", } for i = 1, #cklist,2 do local tempTable = {LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "left", orientation="horizontal" } for j = 0, 1 do if cklist[i + j] ~= nil then local name = cklist[i + j][1] local func1 = cklist[i + j][2] local func2 = cklist[i + j][3] if not name then name = "未设置" end rstt = 小悸.intcheck(name,func1,func2) table.insert(tempTable, rstt) else table.insert(tempTable, {LinearLayout, layout_width = 'match_parent', layout_weight=1,}) end end table.insert(rest, tempTable) end return rest end function 小悸.radio(cklist) local rid=guid() radiog[rid]={} rest = { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_marginTop = "10dp" , } local restt={ LinearLayout , layout_width = 'match_parent' , layout_weight=1, layout_height = "wrap_content" , gravity = "left" , orientation='vertical', } for i = 1, #cklist,4 do local tempTable = {LinearLayout, layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "left", orientation="horizontal" } for j = 0, 3 do if cklist[i + j] ~= nil then local nid = name..guid () local name = cklist[i + j][1] radiog[rid][nid]=false local func1 = radin(rid,nid,cklist[i + j][2],name) if not name then name = "未设置" end local rstt = 小悸.intradio(nid,name,func1) table.insert(tempTable, rstt) else table.insert(tempTable, {LinearLayout, layout_width = 'match_parent', layout_weight=1,}) end end table.insert(restt, tempTable) end rest [# rest + 1] = restt return luajava.loadlayout (rest) end switchs={} MSwitch = {} function 小悸.switch(name,func1,func2) ID = name..guid() MSwitch[#MSwitch+1] = ID Checked = false if name=="音量键隐藏UI" then 音量键 = true Checked = true end if name=="摇一摇隐藏UI" then 摇一摇 = true Checked = true end rest = luajava.loadlayout({ LinearLayout, layout_width="fill_parent", layout_height = "47dp", gravity = "center", { LinearLayout, layout_width = 'fill_parent', layout_height = "40dp", gravity = "center", elevation = "2dp", layout_marginRight = "4dp", layout_marginLeft = "4dp", background = getButtonBG(), { TextView, Typeface=font, gravity = "top", text = name, textColor = "#000000", textSize = "13sp", layout_weight = 1, layout_width = 'fill_parent', layout_marginLeft = "10dp", layout_marginRight = "20dp", }, { MaterialSwitch, id = luajava.newId(ID), layout_weight = 1, checked = Checked, layout_width = 'fill_parent', layout_height = 'wrap_content', onCheckedChange = function(compoundButton, isChecked) luajava.newThread(function() if isChecked then pcall(func1) else pcall(func2) end end):start() end } } }) return rest end import "android.graphics.Color" import "android.content.res.ColorStateList" function SliderColor(id,color1,color2,color3) id:setTrackActiveTintList(ColorStateList({{}},{color1})) id:setTrackInactiveTintList(ColorStateList({{}},{color2})) id:setThumbTintList(ColorStateList({{}},{color3})) end function SwitchColor(id,color1,color2,color3,color4) id:setTrackTintList(ColorStateList({{android.R.attr.state_checked},{}},{color1,color2})) id:setThumbTintList(ColorStateList({{android.R.attr.state_checked},{-android.R.attr.state_checked}},{color3,color4})) end chazhi={} chajv={} function 小悸.seek(name,bian,smin,smax,nows) _ENV[bian] =nows smin=tonumber(smin) smax=tonumber(smax) if _ENV[bian] == nil then _ENV[bian] = 1.0 end if not name then name = "未设置" end local names = name..guid() kid=guid().."sk" rest = luajava.loadlayout({ LinearLayout, layout_width = 'match_parent', layout_hight = "match_parent", { LinearLayout, id=luajava.newId(kid), layout_width = 'match_parent', layout_hight = "match_parent", layout_marginTop = "3dp", layout_marginBottom = "3dp", layout_marginLeft = "5dp" , layout_marginRight = "5dp" , gravity = "center_vertical", elevation='3dp', background = getButtonBG(), { TextView, padding={"5dp","10dp","0dp","10dp",}, gravity = "top", textColor='#000000', text = name, id = luajava.newId(names), layout_width = '100dp', --layout_marginLeft = "5dp", layout_marginRight = "0dp", }, { Slider, thumbHeight='23dp', trackHeight='15dp', trackStopIndicatorSize='0dp', tickVisible=false, __onFinish=function(v) v:setTrackActiveTintList(ColorStateList({{},},{0xff5AA7FF})) v:setTrackInactiveTintList(ColorStateList({{},},{0xff5AA7FF})) v:setThumbTintList(ColorStateList({{},},{0xff5AA7FF})) luajava.setInterface(v, 'addOnChangeListener', function(SeekBar, var2, var3) _ENV[bian] = var2 end) end, layout_width = 'match_parent', id=luajava.newId(name.."seekbar"), valueFrom=smin, valueTo=smax, value=nows, stepSize=1.0, } }}) luajava.getIdView(name..'seekbar'):setHaloRadius(100)--拖动时北景阴影大小 return rest end import('android.content.res.ColorStateList') local swfuncs={} swcDraw=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, }, { 0xff0062ff, 0x33d7d7d7, }) swcThumb=ColorStateList({ {android.R.attr.state_checked}, {android.R.attr.state_pressed}, {-android.R.attr.state_pressed}, }, { 0xff5AA7FF, 0xff5AA7FF, 0xff5AA7FF }) swfuncs={} radon=getRes("heiraon") radoff=getRes("heiraoff") radiog={} function 小悸.radioM3 (cklist) local rid=guid() radiog[rid]={} rest = { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_marginTop = "30dp" , gravity = "top" , orientation = "vertical" , } if type (cklist [1]) == "string" then rds=2 rest [# rest + 1] = { TextView , gravity = "left" , padding="5dp", text = cklist [1] , textSize = "13sp" , textColor = 0xff000000 , layout_width = 'fill_parent' , layout_height = 'wrap_content' , layout_marginLeft = "10dp" , layout_marginRight = "5dp" , layout_marginTop = "0dp" , layout_marginBottom = "0dp" , } else rds=1 end local restt={ RadioGroup, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", layout_marginRight = "10dp", layout_marginLeft = "10dp", layout_marginTop='4dp', layout_marginBottom='4dp', elevation='2dp', orientation = "vertical" , background = getButtonBG(), } for i = rds , # cklist do local name = cklist [i] [1] local func = cklist [i] [2] if not name then name = "未设置" end local nid = name..guid () radiog[rid][nid]=false local tid = nid..guid () restt [# restt + 1] = { RadioButton , layout_width = '250dp' , layout_height = "wrap_content" , layout_marginLeft = "4dp" , layout_marginRight = "10dp" , text = name , textSize="13sp", buttonTintList = ColorStateList({ {} }, { 0xff5AA7FF }), textColor = 0xff000000 , gravity = "center_vertical" , onClick = function (v) --小悸.controlWater (v, 200) luajava.startThread(func) end } end rest [# rest + 1] = restt return luajava.loadlayout (rest) end function radin(rid,nid,func) return function() for k,v in pairs(radiog[rid]) do luajava.getIdValue(k):setBackground(radoff) if k==nid and v~=true then luajava.getIdValue(k):setBackground(radon) v=true, luajava.newThread(func):start() end end end end 无=function() end function 开关(name,func1,func2) local localname=name if func1 == nil then func1 = function() end end if func2 == nil then func2 = function() end end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then _ENV[name] = "开" pcall(func1) else _ENV[name] = "关" pcall(func2) end end end end chips={} function 小悸.intchip(name,func1,func2,size) nid = name..guid() lname=name local func = 开关(nid,func1,func2,lname) if not name then name = "未设置" end ID = name..guid() local rest = { LinearLayout, layout_width = 'match_parent', layout_weight=1, layout_height = "42dp", layout_marginTop = "1dp", layout_marginBottom = "1dp", padding = "1dp", { ChipGroup, padding="3dp", layout_width = 'fill_parent', layout_height = "wrap_content", gravity = "center_vertical", { Chip, layout_width = 'wrap_content', layout_height = '40dp', checked="true", text=name, setCheckable = true, setChipIconVisible = true, --显示icon setChipIcon = luajava.getBitmapDrawable(chip图片), onClick=function() luajava.newThread(function() pcall(func) end):start() end } }} return rest end wyylog=luajava.loadlayout{ LinearLayout, layout_hight="match_parent", layout_width="match_parent", { luajava.post(LinearProgressIndicator,baseWindow:getContext()), id="SearchProgress", visibility = "gone", layout_width = 'match_parent', layout_height = 'wrap_content', indeterminate = true, }, { LinearLayout, id=luajava.newId("musicWindow"), orientation="vertical", layout_height="match_parent", layout_width="match_parent", { LinearLayout, layout_hight="wrap_content", layout_width="match_parent", layout_margin="5dp", Elevation="3dp", background={GradientDrawable,color=0x44FFFFFF,cornerRadius=20}, { EditText, id=luajava.newId("搜索"), background={GradientDrawable,color=0x44FFFFFF,cornerRadius=20}, gravity="center", hint="请输入关键词", textSize="13sp", layout_weight="1", HintTextColor="0x40201E1E", layout_width="match_parent", textColor="#201E1E", OnKeyListener={ onKey=function(v,keyCode,event) if (KeyEvent.KEYCODE_ENTER == keyCode and KeyEvent.ACTION_DOWN == event:getAction()) then thread=luajava.getThread(function() searchmusic() end) thread:start() return true; else return false; end end } }, { LinearLayout, layout_height="match_parent", layout_width="1dp", backgroundColor="0x44ffffff", }, { TextView, text="搜索", gravity="center", id=luajava.newId("stxt"), textSize="15sp", TextColor="#161616", layout_height="match_parent", layout_width="50dp", onClick=function() thread=luajava.getThread(function() searchmusic() end) thread:start() end }, }, { ListView, id="musiclistview", layout_width='match_parent', layout_height='match_parent', dividerHeight=3, }, }, } 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end 背景图片= "https://www.cccimg.com/view.php/d8d0af65d566a3180d536e082ff3539b.jpg" 悬浮窗图标 = "https://www.cccimg.com/view.php/4e46a2a759c60d769912266d05a7786a.png" function huiz()---绘制必须放在这里面 end 第一页 = {--创建分页,结尾调用 ['分页名字']="公告", ['分页图标']="https://www.cccimg.com/view.php/6a5f3b2f02432f23fb5a27f654109936.jpg", ['功能配置']={ luajava.loadlayout({ LinearLayout, layout_width='wrap_content', layout_height= '150dp', layout_width = '250dp', background='https://www.cccimg.com/view.php/d4ac57cf279777b2064bd3e88afb8581.jpg', }), 小悸.button('选择进程',gg.setProcessX), 小悸.button("功能", function() end), } } 第二页 = { ['分页名字']="防封", ['分页图标']="https://www.cccimg.com/view.php/cb1adbeb9656491b74c41eda714e1f9c.jpg", ['功能配置']={ 小悸.button('选择进程',gg.setProcessX), 小悸.switch('logo防闪', function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end--https://t.me/WMNB66 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--https://t.me/WMNB66 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--https://t.me/WMNB66 local t = {"libanogs.so:bss", "Cb"} local tt = {0x430} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}}) --https://t.me/WMNB66 local t = {"libanogs.so:bss", "Cb"} local tt = {0x550} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}}) string.toMusic('开启成功')---语音 end, function() end), 小悸.switch('LOGO防封', function() string.toMusic('开启成功')---语音 end, function() end), } } 第三页 = { ['分页名字']="功能", ['分页图标']="https://www.cccimg.com/view.php/7c0b84914a80c872aad081189b410104.jpg", ['功能配置']={ 小悸.button('选择进程',gg.setProcessX), 小悸.button("公告", function() gg.alert("开挂本就是逆天改命封号在所难免只要不想挂号那就别开开了就不要怕") end), 小悸.switch('16:9比例', function() end), } } 第四页 = { ['分页名字']='美化不想更新', ['分页图标']="https://www.cccimg.com/view.php/a77c26048ad309a60b555f8c022be98d.jpg", ['功能配置']={ 小悸.button('清理冻结',gg.clearList()), 小悸.switch('衣服初始化', function() D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function getvalue(addr,flags) local asbd={} asbd[1]={} asbd[1].address=addr asbd[1].flags=flags tmp=gg.getValues(asbd) return tmp[1].value end function iceEdit(addr,type,value) local t={} t[1]={} t[1].address=addr t[1].flags=type t[1].value=value t[1].freeze=true gg.addListItems(t) end function breakice(addr,type) local t={} t[1]={} t[1].address=addr t[1].flags=type t[1].freeze=false gg.addListItems(t) end function getMapRanges() local ranges = {} local r_list = {} local _index = 1 local library = gg.getRangesList('^/data/*.so*$') for index, map in ipairs(library) do if map.type:sub(2, 2) == "w" or map.type == "r-xp" then local name = map.internalName local state = map.state local count = map.count if not r_list[name] then r_list[name] = {} end if not r_list[name][state] then r_list[name][state] = {0, _index} end r_list[name][state][1] = r_list[name][state][1] + 1 r_list[name][state][2] = _index map.count = r_list[name][state][1] table.insert(ranges, map) _index = _index + 1 end end return ranges, r_list end function staticstart(map) local ranges = getMapRanges() if not map[3] then map[3] = 1 end for index, value in ipairs(ranges) do local name = value.internalName:gsub("^.*/", "") if map[1] == name and map[2] == value.state and map[3] == value.count then return value.start end end end function xing(start, offset) local flags = {[true] = 32, [false] = 4} local ti64 = gg.getTargetInfo().x64 local type = flags[ti64] local addr = 0 if start then addr = start + offset[1] for index = 2, #offset do local pointer = gg.getValues({{address = addr, flags = type}}) if not ti64 then pointer[1].value = pointer[1].value & 0xFFFFFFFF end addr = pointer[1].value + offset[index] end end return addr end function xingshen() ue4=staticstart({"libUE4.so:bss", "Cb", 1}) nmsl=xing(ue4,{0x5524F0,0x30,0x4B8,0x2E08,0x3E8,0x0}) end--0x5524F0, 0x30, 0x460, 0x2D58, 0x388, 0x0 function TK(kjsm)-- xingshen() for qckjsm=0x0,0x999,0x3c do if getvalue(nmsl+0x8+qckjsm,4) == 9 then--改9头盔 setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function BB(kjsm)-- xingshen() for qckjsm=0x0,0x999,0x3c do if getvalue(nmsl+0x8+qckjsm,4) == 8 then--改8背包 setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function st(kjsm)--手套秒刷新 xingshen() for qckjsm=0x0,0x999,0x3c do--不动 if getvalue(nmsl+0x8+qckjsm,4) == 10 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function yf(kjsm)--衣服 xingshen() for qckjsm=0x0,0x999,0x78 do if getvalue(nmsl+0x8+qckjsm,4) == 5 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function ts(kjsm)--头饰 xingshen() for qckjsm=0x0,0x999,0x38 do if getvalue(nmsl+0x8+qckjsm,4) == 3 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function tf(kjsm)--头发 xingshen() for qckjsm=0x0,0x999,0x3C do if getvalue(nmsl+0x8+qckjsm,4) == 2 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function kz(kjsm)--裤子 xingshen() for qckjsm=0x0,0x999,0x3C do--不动 if getvalue(nmsl+0x8+qckjsm,4) == 6 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function xz(kjsm)--鞋子 xingshen() for qckjsm=0x0,0x999,0x38 do if getvalue(nmsl+0x8+qckjsm,4) == 7 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end --小复 function mz(kjsm)--面罩 xingshen() for qckjsm=0x0,0x999,0x38 do if getvalue(nmsl+0x8+qckjsm,4) == 4 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function yz(kjsm)--眼罩 xingshen() for qckjsm=0x0,0x999,0x38 do if getvalue(nmsl+0x8+qckjsm,4) == 12 then setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function sb(kjsm)--手部 xingshen() for qckjsm=0x0,0x999,0x3c do--不动 if getvalue(nmsl+0x8+qckjsm,4) == 10 then--改10是手部特效 隐藏护甲 翅膀飞行器 setvalue(nmsl+0x0+qckjsm,4,kjsm) end end end function lb(lain2)--脸部 function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x460,0x2D58,0x388,0x0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain2}}) end function PS() end--防十年 function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end--静态 function gz(lain3)--鼓掌 local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x2F8,0x1A0,0x358,0x30C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain3}}) end function nh1(lain1)--你好 local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x2F8,0x170,0x358,0x18C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain1}}) end function xx2(lain2)--谢谢 local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x2F8,0x170,0x358,0x24C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain2}}) end function sc(lain)--手持 local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x4B8,0x2588,0x5C8,0x7A0,0x11C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end --0x5C7BD0, 0x170, 0x300, 0x270, 0x740, 0x11C function qjbjhd(lain)--倍镜 local t = {"libUE4.so:bss", "Cb"} local tt = {0xD9FB8,0x648,0x20,0x38,0x38,0x7CA0,0x18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function qjbjqx(lain)--倍镜 local t = {"libUE4.so:bss", "Cb"} local tt = {0xD9FB8,0x648,0x20,0x38,0x38,0x7CB8,0x18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function qjbj3(lain)--倍镜 local t = {"libUE4.so:bss", "Cb"} local tt = {0xD9FB8,0x648,0x20,0x38,0x38,0x7DD8,0x18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function qjbj4(lain)--倍镜 local t = {"libUE4.so:bss", "Cb"} local tt = {0xD9FB8,0x648,0x20,0x38,0x38,0x7CE8,0x18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function qjbj6(lain)--倍镜 local t = {"libUE4.so:bss", "Cb"} local tt = {0xD9FB8,0x648,0x20,0x38,0x38,0x7DF0,0x18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function qjbj8(lain)--倍镜 local t = {"libUE4.so:bss", "Cb"} local tt = {0xD9FB8,0x648,0x20,0x38,0x38,0x7D00,0x18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function ttBB(lain)--枪械播报 local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x1970} local ttt = S_Pointer(t, tt, true) --gg.setValues({{address=ttt,flags=4,value=lain}}) gg.addListItems({{address = ttt, flags = 4, value = lain, freeze = true}}) end function ttBB(lain)--圣装播报 local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x1974} local ttt = S_Pointer(t, tt, true) --gg.setValues({{address=ttt,flags=4,value=lain}}) gg.addListItems({{address = ttt, flags = 4, value = lain, freeze = true}}) end function mj(lain) local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x460,0x29D0,0x748,0xA4}--小复 local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}})----瞄具 end function dj(lain) local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x4B8,0x2588,0x5C8,0x54} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}})----默认弹夹 end function qk(lain) local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x4B8,0x2588,0x5C8,0x4}--枪口 local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function qt(lain) local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x4B8,0x2588,0x5C8,0x2C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}})----默认枪托 end function wb(lain) local t = {"libUE4.so:bss", "Cb"} local tt = {0x5524F0,0x30,0x4B8,0x2588,0x5C8,0x2C}--握把 local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=4,value=lain}}) end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=true gg.addListItems(t) end function RUI(address) return gg.getValues({ { ["address"] = address, flags = 32 } })[1]["value"] end function readD(address) return gg.getValues({ { ["address"] = address, flags = 4 } })[1]["value"] end function readF(address) return gg.getValues({ { ["address"] = address, flags = 16 } })[1]["value"] end string.toMusic('开启成功')---语音 end, function() end), 小悸.box({"EVA系列", 小悸.check({ {"明日香",function() yf(1406387) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"真嗣",function() yf(1406385) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"零",function() yf(1406386) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"真理",function() yf(1406388) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"薰",function() yf(1406389) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"进击的巨人", 小悸.check({ {"艾伦",function() yf(1407597) string.toMusic('开启成功')---语音 end },{"裸体巨人",function() yf(1407598) string.toMusic('开启成功')---语音 end },{"三笠·阿克曼",function() yf(1407599) string.toMusic('开启成功')---语音 end },{"阿尔敏",function() yf(1407600) string.toMusic('开启成功')---语音 end },{"超大型巨人(阿尔敏)",function() yf(1407601) string.toMusic('开启成功')---语音 end },{"利威尔",function() yf(1407602) string.toMusic('开启成功')---语音 end },{"白皮巨人",function() yf(1407604) string.toMusic('开启成功')---语音 end },{"黑皮巨人",function() yf(1407605) string.toMusic('开启成功')---语音 end },{"凯之巨人",function() yf(1407569) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"神羽恋人", 小悸.check({ {"神羽恋人",function() yf(1407276) ts(1410647) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"暗烬天使",function() yf(1407275) ts(1410646) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"更多套装", 小悸.check({ {"糖心雪宝(大头发)",function() yf(1407441) ts(1410768) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"糖心雪宝(小头发)",function() yf(1407598) ts(1410768) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"逍遥谪仙",function() yf(1407470) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"流沙公主",function() yf(1407522) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"极乐愚者",function() yf(1407079) ts(1410533) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"魅夜死神(白)",function() yf(1407387) ts(1410720) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"魅夜死神(紫)",function() yf(1407425) ts(1410752) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"青霜剑姬",function() yf(1407471) ts(1410797) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"圣装",--box名字 小悸.check({{ "秘渊灵主", function() yf(1406971) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"法老", function() yf(1406469) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"血鸦",function() yf(1405870) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"海洋之王",function() yf(1405983) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"寒冰圣装",function() yf(1406152) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"精灵王",function() yf(1406311) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"金辉艳后",function() yf(1406475) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"千面诡皇",function() yf(1406638) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"千面诡皇",function() yf(1406152) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"千面诡皇",function() yf(1406641) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"血渊圣王",function() yf(1406810) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"曙光芙洛拉",function() yf(1407103) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"圣焰伊格尼",function() yf(1407219) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"圣焰伊格尼",function() yf(1407259) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"风灵迦尔",function() yf(1407366) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"幽冥阿努比斯",function() yf(1407512) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"咒术回战", 小悸.check({ {"伏黑 惠",function() yf(1406241) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"虎杖 悠仁",function() yf(1406242) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"钉崎 野蔷薇",function() yf(1406243) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"五条 悟认真状态",function() yf(1406244) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"五条 悟",function() yf(1406291) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"搞怪衣服", 小悸.check({ {"大花衣",function() yf(1407197) string.toMusic('开启成功')---语音 end },{"流浪汉",function() yf(1405325) string.toMusic('开启成功')---语音 end },{"城市人",function() yf(1405324) string.toMusic('开启成功')---语音 end },{"米勒B",function() yf(1405733) string.toMusic('开启成功')---语音 end },{"米勒A",function() yf(1405734) string.toMusic('开启成功')---语音 end },{"祖国人",function() yf(1406439) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"全职猎人", 小悸.check({ {"小杰",function() yf(1407188) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"奇犽",function() yf(1407187) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"库拉皮卡",function() yf(1407186) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end },{"雷欧力",function() yf(1407189) gg.sleep(4000)--等待二秒 yf(110) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"变形金刚", 小悸.check({ {"擎天柱",function() yf(1407614) string.toMusic('开启成功')---语音 end },{"大黄蜂",function() yf(1407615) string.toMusic('开启成功')---语音 end },{"威震天",function() yf(1407612) string.toMusic('开启成功')---语音 end },{"风刃",function() yf(1407613) string.toMusic('开启成功')---语音 end, function() end } }), }), 小悸.box({"搭配", 小悸.check({ {"天使之翼",function() yf(1404008) ts(1402223) kz(140400203) xz(1404293) tf(40605012) mz(1400165) yz(1404198) string.toMusic('开启成功')---语音 end },{"恶魔之翼",function() yf(1404017) ts(1402218) kz(140400203) xz(1404293) tf(40605012) mz(1400165) yz(1404198) string.toMusic('开启成功')---语音 end },{"桃子姐姐",function() yf(1400101) ts(1404366) kz(1404050) xz(1404293) tf(1404366) mz(1400165) yz(1404198) string.toMusic('开启成功')---语音 end },{"鲨鱼",function() yf(1404049) ts(1410085) kz(1404050) xz(1404051) tf(1410085) mz(1400165) yz(1404198) string.toMusic('开启成功')---语音 end },{"胖达",function() yf(1405040) ts(1402223) xz(1404293) tf(40605012) mz(1400165) yz(1404198) string.toMusic('开启成功')---语音 end },{"小黄鸭",function() yf(1405801) ts(1402223) tf(40605012) mz(1400165) yz(1404198) string.toMusic('开启成功')---语音 end },{"狮子队长",function() yf(1405207) ts(1402223) tf(40605012) mz(1400165) yz(1410646) string.toMusic('开启成功')---语音 end },{"裁决冥王混搭", function() ts(1410687)--头饰 yz(1404198)--眼罩 yf(1406569) string.toMusic('开启成功')---语音 end },{"Ducati混搭", function() yz(140332)--眼罩 tf(1410085)--头发 kz(1404050)--裤子 yf(1404411) string.toMusic('开启成功')---语音 end },{"冰衣混搭", function() tf(40604012)--头发 yz(1404198)--眼罩 yf(1400782) string.toMusic('开启成功')---语音 end },{"极乐愚者混搭", function() tf(1410299)--头发 yz(1404198)--眼罩 yf(1407079) ts(1402218) mz(1400165) string.toMusic('开启成功')---语音 end },{"龙岩骸骨混搭", function() tf(1402142)---古城密探帽子 yf(1406791) string.toMusic('开启成功')---语音 end },{"黄鲨鱼混搭", function() tf(1410085)--头发 kz(1404050)--裤子 xz(1404051)--鞋子 yz(1404198)--眼罩 mz(1400165)--面罩 yf(1400708) string.toMusic('开启成功')---语音 end },{"白色骑兵混搭", function() yf(403183) kz(404030) tf(1402708) string.toMusic('开启成功')---语音 end },{"紧身衣混搭", function() yf(1407211) mz(1403028) tf(40605012) string.toMusic('开启成功')---语音 end },{"涤焰魔甲混搭", function() yf(1406398) tf(1402142) string.toMusic('开启成功')---语音 end },{"暗金舞者混搭", function() yf(1404133) tf(40604012) kz(1404160) xz(1404051) yz(1404198) mz(1400165) ts(1402218) string.toMusic('开启成功')---语音 end },{"水银刺客混搭", function() yf(403191) tf(40604012) kz(404001) xz(1400022) yz(1403326) ts(1402223) string.toMusic('开启成功')---语音 end },{"WALKER混搭2", function() yf(1404016) tf(1410085) kz(1404191) xz(1404003) yz(1403273) mz(1400165) string.toMusic('开启成功')---语音 end },{"WALKER混搭", function() yf(1404016) tf(40604012) kz(1404050) xz(1404423) yz(1404198) ts(1402218) string.toMusic('开启成功')---语音 end },{"LIKE混搭", function() yf(403212) tf(1410480) kz(1404160) xz(1404423) yz(1501003629) ts(1402218) string.toMusic('开启成功')---语音 end },{"废墟猎手混搭", function() yf(1405163) tf(1402142) yz(1404198) mz(474031) BB(1501003211) string.toMusic('开启成功')---语音 end },{"甜蜜菠萝混搭", function() yf(1404153) tf(1404367) kz(1404152) mz(474031) xz(1404151) BB(1501003211) string.toMusic('开启成功')---语音 end },{"天方旅人混搭", function() yf(1407453) tf(1410085) yz(1404198) string.toMusic('开启成功')---语音 end }, }), }), 小悸.box({"头发",--box名字 小悸.check({{ "恢复头发", function() ts(0) string.toMusic('开启成功')---语音 end },{"双马尾", function() ts(40604012) string.toMusic('开启成功')---语音 end },{"武魂宗师",function() ts(1410299) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"眼罩",--box名字 小悸.check({{ "恢复眼罩", function() yz(0) string.toMusic('开启成功')---语音 end },{"幻境骇客", function() yz(1403326) string.toMusic('开启成功')---语音 end },{"红眼罩",function() yz(1404198) string.toMusic('开启成功')---语音 end },{"终结战神",function() yz(1403201) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"口罩",--box名字 小悸.check({{ "恢复口罩", function() kz(0) string.toMusic('开启成功')---语音 end },{"小丑鼻子", function() kz(1400165) string.toMusic('开启成功')---语音 end },{"小丑面罩",function() kz(1400168) string.toMusic('开启成功')---语音 end },{"豹纹面罩",function() kz(474031) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"上衣",--box名字 小悸.check({{ "恢复衣服", function() yf(1400129) string.toMusic('开启成功')---语音 end },{"骷髅船长", function() yf(1404053) string.toMusic('开启成功')---语音 end },{"战队服",function() yf(1400708) string.toMusic('开启成功')---语音 end },{"白骑兵",function() yf(403183) string.toMusic('开启成功')---语音 end },{"暗金舞者",function() yf(1404133) string.toMusic('开启成功')---语音 end },{"水银刺客",function() yf(403190) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"裤子",--box名字 小悸.check({{ "恢复裤子", function() kz(0) string.toMusic('开启成功')---语音 end },{"运动裤", function() kz(404030) string.toMusic('开启成功')---语音 end },{"雪地潮人",function() kz(1404155) string.toMusic('开启成功')---语音 end },{"甜蜜菠萝",function() kz(1404152) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"鞋子",--box名字 小悸.check({{ "恢复鞋子", function() xz(0) string.toMusic('开启成功')---语音 end },{"发声天使", function() xz(1400127) string.toMusic('开启成功')---语音 end },{"黑色帆布鞋",function() xz(1400022) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"丧尸美化",--box名字 小悸.check({{ "女丧尸", function() yf(1407194) string.toMusic('开启成功')---语音 end },{"男丧尸", function() yf(1407195) string.toMusic('开启成功')---语音 end },{"猪头丧尸",function() xz(1407196) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"手部特效",--box名字 小悸.check({{ "恢复手部", function() hj(0) string.toMusic('开启成功')---语音 end },{"彩虹", function() hj(4151006) string.toMusic('开启成功')---语音 end },{"蓝色",function() hj(4151004) string.toMusic('开启成功')---语音 end },{"钞票",function() hj(4151062) string.toMusic('开启成功')---语音 end },{"冰霜手套",function() hj(452001) string.toMusic('开启成功')---语音 end },{"流沙手套",function() hj(452003) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"翅膀美化",--box名字 小悸.check({{ "吸血鬼翅膀", function() hj(150015) string.toMusic('开启成功')---语音 end },{"紫色吸血鬼翅膀", function() hj(150020) string.toMusic('开启成功')---语音 end },{"糖心绘梦",function() hj(4151090) string.toMusic('开启成功')---语音 end },{"法老飞行器",function() hj(4151101) string.toMusic('开启成功')---语音 end },{"凌空圣剑飞行器",function() hj(4151093) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"头盔",--box名字 小悸.check({{ "隐藏头盔",function() TK(0) string.toMusic('开启成功')---语音 end },{"地狱骑士",function() TK(1502003014) string.toMusic('开启成功')---语音 end },{"昏迷兔子",function() TK(1502003280) string.toMusic('开启成功')---语音 end },{"冰雪晶核",function() TK(1502003023) string.toMusic('开启成功')---语音 end },{"蛮荒主宰",function() TK(1502003410) string.toMusic('开启成功')---语音 end },{"星辉王冠",function() TK(1502003439) string.toMusic('开启成功')---语音 end },{"御灵师",function() TK(1502003069) string.toMusic('开启成功')---语音 end }, }), }),--box结尾 小悸.box({"背包",--box名字 小悸.check({{ "隐藏背包",function() BB(0) string.toMusic('开启成功')---语音 end },{"莎莉背包",function() BB(1501003554) string.toMusic('开启成功')---语音 end },{"致命凝视背包", function() BB(1501003487) string.toMusic('开启成功')---语音 end },{"瑰宝甲贝背包", function() BB(1501003396) string.toMusic('开启成功')---语音 end },{"可爱天使背包", function() BB(1501003041) string.toMusic('开启成功')---语音 end },{"万圣小妖精", function() BB(1501003022) gg.playMusic('https://tv.muau.net/down.php/b211f8cf84d734cb6ffd07e3482b1b2a.zip') end },{"幻世裁决者背包", function() BB(1501003043) string.toMusic('开启成功')---语音 end },{"蔚蓝风暴背包", function() BB(1501003009) string.toMusic('开启成功')---语音 end },{"恐龙布朗熊背包", function() BB(1501003261) string.toMusic('开启成功')---语音 end },{"圣焰伊格尼背包", function() BB(1501003567) string.toMusic('开启成功')---语音 end },{"朋克犀牛背包", function() BB(1501003211) string.toMusic('开启成功')---语音 end },{"旷野仙灵背包", function() BB(1501003336) string.toMusic('开启成功')---语音 end },{"炽焰绯狐背包", function() BB(1501003549) string.toMusic('开启成功')---语音 end },{"倒立熊仔",function() BB(1501003519) string.toMusic('开启成功')---语音 end },{"天使之翼",function() BB(1501003081) string.toMusic('开启成功')---语音 end },{"愚人小丑",function() BB(1501003051) string.toMusic('开启成功')---语音 end },{"古城密探",function() BB(1501003053) string.toMusic('开启成功')---语音 end },{"酷酷小子",function() BB(1501003402) string.toMusic('开启成功')---语音 end },{"老虎",function() BB(1501003596) string.toMusic('开启成功')---语音 end },{"帝皇肖像",function() BB(1501003668) string.toMusic('开启成功')---语音 end },{"金蛇槐宝",function() BB(1501003639) string.toMusic('开启成功')---语音 end },{"心动魔法",function() BB(1501003619) string.toMusic('开启成功')---语音 end },{"蝴蝶花灵",function() BB(1501003047) string.toMusic('开启成功')---语音 end },{"小猫宠物背包",function() BB(1501003050) string.toMusic('开启成功')---语音 end },{"呆萌鳄鱼",function() BB(1501003164) string.toMusic('开启成功')---语音 end },{"憨憨萌龙",function() BB(1501003659) string.toMusic('开启成功')---语音 end }, }) }),--box结尾 } } 第五页 = { ['分页名字']="枪械不想更新😘😘", ['分页图标']="https://www.cccimg.com/view.php/b34ab0f24faf29940905277f2afb5a59.jpg", ['功能配置']={ 小悸.button('清理冻结',gg.clearList()), 小悸.button("手持枪械使用方法", function() gg.alert("手持枪械采用的是回改过1秒\n开启枪械后换配件把皮肤刷新出来\n等提示开启成功后\n在开其他手持枪械\n这个过程中不能换枪") end), 小悸.box({"M416", 小悸.check({--样1 { '虎啸丹青', function() sc(1101004236) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '冰霜核心 ', function() sc(1101004046) --by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾 function S_Pointer(t_So, t_Offset, _bit) local ranges = {} for _, v in ipairs(gg.getRangesList('^/data/*.so*$')) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end for _, v in ipairs(ranges) do if t_So[1] == v.internalName:gsub('^.*/', '') and t_So[2] == v.state then local addr = v.start + t_Offset[1] for i = 2, #t_Offset do local val = gg.getValues({{address = addr, flags = _bit and 32 or 4}})[1].value if not gg.getTargetInfo().x64 then val = val & 0xFFFFFFFF end addr = val + t_Offset[i] end return string.format('0x%X', addr) end end return "0x0" end local config = { so = {"libUE4.so:bss", "Cb"}, base = {0xDEFE8,0x648,0x50,0x38,0x38},--美化数组 scopes = { {0x7F40, 1010040470, "红点"},--这里改你的美化代码就行了 {0x7F58, 1010040469, "全息"}, {0x7F70, 1010040468, "二倍"}, {0x8078, 1010040467, "三倍"}, {0x7F88, 1010040466, "四倍"}, {0x8090, 1010040481, "六倍"}, {0x7FA0, 1030070212, "八倍"} } } local items = {} for _, scope in ipairs(config.scopes) do local offset = {} for _, v in ipairs(config.base) do table.insert(offset, v) end table.insert(offset, scope[1]) table.insert(offset, 0x18) local addr = S_Pointer(config.so, offset, true) if addr ~= "0x0" then table.insert(items, { address = addr, flags = 4, value = scope[2], freeze = true, name = scope[3] }) end end if #items > 0 then gg.addListItems(items) gg.toast(string.format("成功修改%d个地址", #items)) end --by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾 sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '庇护之潮 ', function() sc(1101004209) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '武魂宗师 ', function() sc(1101004201) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '潮鸣宫廷', function() sc(1101004163) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '愚人小丑 ', function() sc(1101004062) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '封印幽冥', function() sc(1101004226) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '萌龙咆哮 ', function() sc(1101004086) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '机魂忍者 ', function() sc(1101004218) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '魅力幻影', function() sc(1101004145) sleep(3000) sc(10100400)---m416 wow() end }, { '游荡者', function() sc(1101004078) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '西部俏影', function() sc(1101004099) sleep(3000) sc(10100400)---m416 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }),--box收 小悸.box({"AKM", 小悸.check({ { '沙影神国 ', function() sc(1101001265) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '华丽浮雕 ', function() sc(1101001042) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '冰霜核心 ', function() sc(1101001089) sleep(3000) sc(10100100)--AK string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, { '积木龙骨 ', function() sc(1101001103) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '星海提督', function() sc(1101001213) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '神殿神月', function() sc(1101001249) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '神殿金羽', function() sc(1101001256) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '俏皮兔宝 ', function() sc(1101001231) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end },{ '决胜之日 ', function() sc(1101001242) sleep(3000) sc(10100100)--AKM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"M762", 小悸.check({ {"森白骸骨", function() sc(1101008146) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"琉璃仙灵", function() sc(1101008136) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"龙女魔后", function() sc(1101008126) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"梅西绿菌传奇", function() sc(1101008116) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"星云机械", function() sc(1101008104) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"神莲之怒", function() sc(1101008036) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"比特宝莉", function() sc(1101008025) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"浪漫乐章", function() sc(1101008051) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"精密杀戮", function() sc(1101008061) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"GACKT", function() sc(1101008070) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"乖张怪客", function() sc(1101008079) sleep(3000) sc(10100800)--M76 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"铂金骸骨", function() sc(1101008154) sleep(3000) sc(10100800)--M762 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"SCAR-L", 小悸.check({ {"血魂魔皇", function() sc(1101003167) sleep(3000) sc(10100300)--SCAR-L string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"霓虹天后", function() sc(1101003195) sleep(3000) sc(10100300)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"邪能植物", function() sc(1101003146) sleep(3000) sc(10100300)--SCAR-L string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"梦幻水枪", function() sc(1101003057) sleep(3000) sc(10100300)--SCAR-L string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"梦幻奇缘", function() sc(1101003208) sleep(3000) sc(10100300)--SCAR-L string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"雪花少女", function() sc(1101008106)--AKM经典 - sleep(3000) sc(10100300)--SCAR-L string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"AUG", 小悸.check({ {"弃誓冰灵", function() sc(1101006062) sleep(3000) sc(10100600)--AUG string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"破军狂鸣", function() sc(1101006075) sleep(3000) sc(10100600)--AUG string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"MK14", 小悸.check({ {"龙吟国度", function() sc(1103007028)---MK1 --by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾 function S_Pointer(t_So, t_Offset, _bit) local ranges = {} for _, v in ipairs(gg.getRangesList('^/data/*.so*$')) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end for _, v in ipairs(ranges) do if t_So[1] == v.internalName:gsub('^.*/', '') and t_So[2] == v.state then local addr = v.start + t_Offset[1] for i = 2, #t_Offset do local val = gg.getValues({{address = addr, flags = _bit and 32 or 4}})[1].value if not gg.getTargetInfo().x64 then val = val & 0xFFFFFFFF end addr = val + t_Offset[i] end return string.format('0x%X', addr) end end return "0x0" end local config = { so = {"libUE4.so:bss", "Cb"}, base = {0xDEFE8,0x648,0x50,0x38,0x38},--美化数组 scopes = { {0x7F40, 1030070218, "红点"},--这里改你的美化代码就行了 {0x7F58, 1030070217, "全息"}, {0x7F70, 1030070470, "二倍"}, {0x8078, 1030070215, "三倍"}, {0x7F88, 1030070214, "四倍"}, {0x8090, 1030070213, "六倍"}, {0x7FA0, 1030070212, "八倍"} } } local items = {} for _, scope in ipairs(config.scopes) do local offset = {} for _, v in ipairs(config.base) do table.insert(offset, v) end table.insert(offset, scope[1]) table.insert(offset, 0x18) local addr = S_Pointer(config.so, offset, true) if addr ~= "0x0" then table.insert(items, { address = addr, flags = 4, value = scope[2], freeze = true, name = scope[3] }) end end if #items > 0 then gg.addListItems(items) gg.toast(string.format("成功修改%d个地址", #items)) end --by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾--by乱川删除死全家 反弹替我挡灾 sleep(3000) sc(10300700)--Mk14 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"奶龙妹控", function() sc(1103007038) sleep(3000) sc(10300700)--Mk14 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"C2S4", function() sc(1103007015) sleep(3000) sc(10300700)--Mk14 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"凌霄凤鸣", function() sc(1103007029) sleep(3000) sc(10300700)--Mk14 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"红白赛季", function() sc(1103007010) sleep(3000) sc(10300700)--Mk14 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"星云力量", function () sc(1103007020)---MK14 sleep(3000) sc(10300700)--Mk14 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"MG3", 小悸.check({ {"风鸣神戟", function() sc(1105010019)---MK14 sleep(3000) sc(10501000)--MG3 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"C2S6", function() sc(1105010001)---MK14 sleep(3000) sc(10501000)--MG3 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"暗黑萝娘", function() sc(1105010012) sleep(3000) sc(10501000)--MG3 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"苍穹之龙" , function () sc(1105010008)---MK14 sleep(3000) sc(10501000)--MG3 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"C5S14", function() sc(1105010011) sleep(3000) sc(10501000)--MG3 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"铜铸神兽", function() sc(1105010010) sleep(3000) sc(10501000)--MG3 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"GROZA", 小悸.check({ {"幽冥夜歌", function() sc(1101005001) sleep(3000) sc(10100500)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"冥河烈焰", function() sc(1101005052) sleep(3000) sc(10100500)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"红莲哥斯拉", function() sc(1101005098) sleep(3000) sc(10100500)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"暗夜裁决", function() sc(1101005091) sleep(3000) sc(10100500)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"古神蚀刻", function() sc(1101005090) sleep(3000) sc(10100500)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"粉色胖达", function() sc(1101005055) sleep(3000) sc(10100500)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"珠光魅影", function() sc(1101005083) sleep(3000) sc(10100500)--GROZ string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"ACE32", 小悸.check({ {"传奇海怪号", function() sc(1101102025) sleep(3000) sc(10110200)--ACE32 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"神庭冰棘", function() sc(1101102017) sleep(3000) sc(10110200)--ACE32 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"终极对撞", function() sc(1101102007) sleep(3000) sc(10110200)--ACE32 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"幸运赌神", function() sc(1101102027) sleep(3000) sc(10110200)--ACE32 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"赤焰铠甲", function() sc(1101102026) sleep(3000) sc(10110200)--ACE32 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"AWM", 小悸.check({ {"玲珑白蛇", function() sc(1103003087) sleep(3000) sc(10300300)--AWM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"致命炎凤", function() sc(1103003062) sleep(3000) sc(10300300)--AWM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"金属风暴", function() sc(1030020661) sleep(3000) sc(10300300)--AWM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"紫夜苍穹", function() sc(1103003022) sleep(3000) sc(10300300)--AWM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"冰花朽木", function() sc(1103003072) sleep(3000) sc(10300300)--AWM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"金翼神妃", function() sc(1103003069) sleep(3000) sc(10300300)--AWM string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"AMR", 小悸.check({ {"烈焰圣枪", function() sc(1103012019) sleep(3000) sc(10301200)--AMR string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"嗜血龙魇", function() sc(1103012010) sleep(3000) sc(10301200)--AMR string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"雪暴寒锋", function() sc(1103012024) sleep(3000) sc(10301200)--AMR string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"少女之吻", function() sc(1103012011) sleep(3000) sc(10301200)--AMR string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"超能电弧", function() sc(1103012012) sleep(3000) sc(10301200)--AMR string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end, }, { "灵泉剑影", function() sc(1103012031) sleep(3000) sc(10301200)--AMR string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end, }, }), }), 小悸.box({"UZI", 小悸.check({ {"冰晶神锤", function() sc(1102001120) sleep(3000) sc(10200100) string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"野兽之王", function() sc(1102001999) sleep(3000) sc(10200100) string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"UMP45", 小悸.check({ {"冰晶冰刺", function() sc(1102002136) sleep(3000) sc(10200200)--UMP45 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"龙焰之怒", function() sc(1102002043) sleep(3000) sc(10200200)--UMP45 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"电磁脉冲", function() sc(1102002053) sleep(3000) sc(10200200)--UMP45 string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"QBZ", 小悸.check({ {"灵蛟曼舞", function() sc(1101007071)-- sleep(3000) sc(10100700)--QBZ string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"S12K", 小悸.check({ {"核子步枪", function() sc(1104003037)-- sleep(3000) sc(10400300)--S12K string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"雷鸣紫韵", function() sc(1104003038) sleep(3000) sc(10400300)--GROZA string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, {"GACKT", function() sc(1104003026)-- sleep(3000) sc(10400300)--S12K string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), 小悸.box({"DBS", 小悸.check({ {"异兽战甲", function() sc(1104004035)-- sleep(3000) sc(10400400)--DBS string.toMusic('开启成功')---语音 gg.alert("开启成功") wow() end }, }), }), } } 第六页 = { ['分页名字']='音乐', ['分页图标']="https://www.cccimg.com/view.php/e403a710c8d6762028fd6496412863d8.jpg", ['功能配置']={ wyylog, } } 第七页 = { ['分页名字']="设置", ['分页图标']="https://www.cccimg.com/view.php/dc05e177f5646777f141c0bdb521d163.jpg", ['功能配置']={ 小悸.button( "退出", function() tuichu=1 end), } } 小悸.menu({ 第一页,--调用上边的分页配置 第二页, 第三页, 第四页, 第五页, 第六页, 第七页, })