-- 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({
第一页,--调用上边的分页配置
第二页,
第三页,
第四页,
第五页,
第六页,
第七页,
})