do
if type(getrlyunyz) ~= 'function' then
gg.alert('请使用RLGG执行')
os.exit()
return
end
local info = {
example_version = '1.0.3',
name = '旧甜加速2.0',
appid = '90829',
appkey = '98h2JTXAGA8a5b12',
rc4key = 'DB48sJY04oRkiKGD',
version = '1.0',
mi_type = '3'
}
local rlyunyz = getrlyunyz(info)
local ret = rlyunyz.start()
if not ret or not isTable(ret) or ret.sign ~= '05275c9983d723ef2a2dd6ec483e15a9' then
os.exit()
return
end
end
gg.alert('轩梦感谢你们的支持祝你们玩的开心')
draw.setColor("#ff00ffff")
draw.text('轩梦牛逼', 100,300)
string.toMusic("欢迎使用轩梦加速1.0感谢你成为我们的尊贵的vip用户,悬浮窗弹窗有点慢大家请耐心等候,谢谢大家支持")
gg.playVideo"https://pan.jl8.top/view.php/6d2f0cd83b5bff73e4633a137eddefb4.mp4"
check字体颜色=0xff000000
switch颜色=0xff0062FF
按钮颜色=0xffefefef
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
changan = {}
local changan = changan
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 pdcf(lujing) rec = "/sdcard//配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end
sleep = gg.sleep
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
开 = "开" 关 = "关"
function checkimg(tmp)
if panduan("/sdcard/轩梦/图片/"..tmp) ~= true then
gg.toast("正在下载资源"..tmp.."\n请耐心等待")
download("https://cccimg.com/down.php/29cd4e62b292a951a4ea8eb6da425f7b."..tmp,"/sdcard/轩梦/图片/"..tmp)
end
end
ckimg = {
'skin',
'heir',
'hei_right',
'quarkcheckoff',
'quarkcheckon',
}
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
if file.length("/sdcard/轩梦/图片/"..ntxt) <= 1 then
file.download(txt,"/sdcard/轩梦/图片/"..ntxt)
end
end
txt = "/sdcard/轩梦/图片/"..ntxt
end
return luajava.getBitmapDrawable(txt)
end
function getRes(x)
return 获取图片("/sdcard/轩梦/图片/"..x)
end
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 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_FOCUSABLE -- 焦点设置Finish
layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置
layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度
layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度
return layoutParams
end
function getj7()
jianbian6 = luajava.new(GradientDrawable)
jianbian6:setCornerRadius(20)
jianbian6:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbian6:setColors({
0x002F3032,0x002F3032
})
jianbian6:setStroke(3,"0xff0091FE")--边框宽度和颜色
return jianbian6
end
slctb = getVerticalBG({0xffefefef,0xffefefef},10)
slcta = getHorizontalBG({0xff0077ff,0xff975DFF},10)
slctc = luajava.loadlayout {
GradientDrawable,
color = "#11ffffff",
cornerRadius = 8
}
slctd = luajava.loadlayout {
GradientDrawable,
color = "#55ffffff",
cornerRadius = 8
}
slcte = luajava.loadlayout {
GradientDrawable,
color = "#11ffffff",
cornerRadius = 12
}
slctf = luajava.loadlayout {
GradientDrawable,
color = "#aa1E1C27",
cornerRadius = 12
}
function getButtonBG()
local selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0xffd7d7d7,0xffd7d7d7},15))
selector:addState({
-android.R.attr.state_pressed
}, getVerticalBG({按钮颜色,按钮颜色},15))
return selector
end
function getSelector3()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, luajava.loadlayout {
GradientDrawable,
color = "#b9b9b9",
cornerRadius = 10
}) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, luajava.loadlayout {
GradientDrawable,
color = "#ffffff",
cornerRadius = 10
}) -- 没点击的背景
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
function getSelector2()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, slctd) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, slctc) -- 没点击的背景
return selector
end
jianbian = luajava.new(GradientDrawable)
jianbian:setCornerRadius(30)
jianbian:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbian2 = luajava.new(GradientDrawable)
jianbian2:setCornerRadius(30)
jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT)
function 获取图片(txt)
--gg.toast("正在加载资源...")
txt = file.checkUrl(txt)
return luajava.getBitmapDrawable(txt)
end
local isswitch
YoYoImpl = luajava.getYoYoImpl()
changan.menu = function(sview)
if isswitch then
return false
end
beij=bglist[1]
isswitch = true
cebian = {
LinearLayout,
layout_height = "match_parent",
layout_width = "wrap_content",
orientation = "horizontal",
gravity = "center",
orientation='vertical',
}
for i = 1,#stab do
cebian[#cebian+1] = {
LinearLayout,
id = "jm"..i,
gravity="center",
layout_height = "wrap_content",
layout_width = "wrap_content",
layout_marginTop = "3dp",
layout_marginBottom = "6dp",
layout_marginRight = "3dp",
layout_marginLeft = "3dp",
elevation='2dp',
onClick = function() 切换(i) end,
orientation='vertical',
{ImageView,
id="jmp"..i,
layout_height='20dp',
layout_width='20dp',
src=获取图片(stab[i][2]),
colorFilter=0xffd7d7d7,
},
{
TextView,
text = stab[i][1],
id="jmt"..i,
gravity = "center",
textSize = "12sp",
textColor = "#"..颜色2,
layout_height = "wrap_content",
layout_width = "68dp",
}}
end
cebian = luajava.loadlayout(
{
ScrollView,
layout_height = "wrap_content",
layout_width = "wrap_content",
cebian
})
for i = 1,#stab do
_ENV["layout"..i] = luajava.loadlayout({
LinearLayout,
layout_width = "fill_parent",
layout_height = "200dp",
visibility = "gone",
orientation = "vertical",
background={
GradientDrawable,
color = "#33ffffff",
cornerRadius = 20
},
{
ScrollView,
fillViewport = "true",
--padding = "10dp",
gravity = "center",
layout_width = "250dp",
layout_height = "200dp",
orientation = "horizontal",
{
LinearLayout,
id = "layoutm"..i,
layout_marginRight = "5dp",
layout_marginLeft = "5dp",
layout_width = "240dp",
orientation = "vertical",
gravity = "center_horizontal",
}
}})
end
ckou = {
LinearLayout,
layout_width = "wrap_content",
layout_height = "wrap_content",
cebian,
{
LinearLayout,
layout_marginBottom = "1dp",
layout_marginTop = "1dp",
layout_width = "2dp",
layout_height = "match_parent",
background = "#D7D7D7"
}
}
for i = 1,#stab do
ckou[#ckou+1] = _ENV["layout"..i]
end
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",
{LinearLayout,
orientation='vertical',
id='chuangk',
visibility='gone',
{--顶部栏
FrameLayout,
orientation = "horizontal",
padding = "2dp",
layout_width="fill_parent",
{
ImageView,
layout_gravity="center_vertical|left",
src = 获取图片(xfcpic),
id = "titlebar",
layout_marginLeft='2dp',
elevation='2dp',
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
background=getVerticalBG({0xffefefef,0xffefefef},12),
padding="2dp",
--visibility = "gone",
layout_width = "24dp",
layout_height = "24dp",
gravity = "center",
onClick = 隐藏,
onTouch = hanshu,
},{TextView,
textSize="14sp",
text=titlet,
textColor="#323232",
gravity="center",
layout_marginLeft='20dp',
layout_gravity="center",
layout_width="match_parent",
layout_height="match_parent",
},{ImageView,
layout_width='24dp',
layout_height='24dp',
layout_gravity='center_vertical',
src=getRes('skin'),
padding='5dp',
layout_marginLeft='44dp',
onClick=changebg,
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
background=getVerticalBG({0xffefefef,0xffefefef},12),
elevation='2dp'
},{
LinearLayout,
layout_gravity="center_vertical|right",
padding={"2dp","2dp","8dp","2dp"},
layout_marginLeft='2dp',
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
layout_width = "40dp",
layout_height = "24dp",
gravity = "center",
onClick = 隐藏,
onTouch = hanshu,
{LinearLayout,
layout_width='6dp',
layout_height='6dp',
background=getVerticalBG({0xffFFC03C,0xffFFC03C},360),
layout_marginLeft='2dp',
layout_marginRight='2dp'
},{LinearLayout,
layout_width='6dp',
layout_height='6dp',
background=getVerticalBG({0xff36CC56,0xff36CC56},360),
layout_marginLeft='2dp',
layout_marginRight='2dp'
},{LinearLayout,
layout_width='6dp',
layout_height='6dp',
background=getVerticalBG({0xffFF3E44,0xffFF3E44},360),
layout_marginLeft='2dp',
layout_marginRight='2dp'
},
}
},
ckou,
},{ScrollView,
id='ggscro',
layout_marginTop='236dp',
layout_marginLeft='82dp',
layout_height='60dp',
layout_width='235dp',
layout_margin='3dp',
elevation='2dp',
padding='4dp',
background=getVerticalBG({0xffefefef,0xffefefef},12),
{LinearLayout,
id='gggscro',
orientation='vertical',
layout_width='match_parent',
layout_height='wrap_content',
}
},{
ImageView,
id = "control",
background = 获取图片(xfcpic),
layout_width = "40dp",
layout_height = "40dp",
onTouch = hanshu,
onClick = 隐藏,
}
}
local function invoke()
local ok
local RawX, RawY, x, y
mainLayoutParams = getLayoutParams()
floatWindow = luajava.loadlayout(floatWindow)
local function invoke2()
for k = 1,#stab do
for i = 1,#sview[k] do
_ENV["layoutm"..k]:addView(sview[k][i])
end
end
window:addView(floatWindow, mainLayoutParams)
block('end')
end
切换(1)
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
block('join')
local isMove
end
invoke(swib1,swib2)
隐藏()
gg.setVisible(false)
luajava.setFloatingWindowHide(true)
qhkai = 0
qiehuan = function()
if qhkai == 0 then
qhkai = 1
draw.remove()
luajava.runUiThread(function()
changan.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()
changan.controlBig(floatWindow,400)
end)
end
end
huiz()
draw.text('.', -9200,-9200)
隐藏()隐藏()
while true do
if tuichu == 1 then break end
jianting3(qiehuan)
gg.sleep(300)
end
luajava.setFloatingWindowHide(false)
end
changan.controlRotation9 = function(control, time,t)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
time,t
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(400)
xuanzhuandonghua:start()
end)
end
function uiadtext(txt,color,size)
if not txt then txt = "" end
if not color then color = "#000000" end
if not size then size = "10sp" end
local tmp=luajava.loadlayout(
{
TextView,
text = string.fromHtml(" "..getTimeStamp(os.time()).." "..txt..""),
textSize = size,
--textColor = color,
gravity="left",
layout_width = "wrap_content",
})
luajava.post(function()
gggscro:addView(tmp)
end)
luajava.newThread(function()
gg.sleep(100)
luajava.post(function()
ggscro:fullScroll(View.FOCUS_DOWN)
end)
end):start()
end
function getTimeStamp(t)
local str = os.date("%m-%d %H:%M:%S",t)
return str
end
function addadView(tmp)
local function invoke()
parentv:addView(tmp)
end
luajava.post(invoke)
end
function rmdadView(tmp)
local function invoke()
parentv:removeView(tmp)
end
luajava.post(invoke)
end
function visi (tid , ttid)
vibra:vibrate(4)
local tview = luajava.getIdValue (tid)
local ttview = luajava.getIdValue (ttid)
if not tview then
return 0
end
if tonumber (tostring (tview : getVisibility ())) == 8.0 then
tview : setVisibility (View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[tid])
changan.controlRotation9(boxpic[tid],0,90)
else
tview : setVisibility (View.GONE)
changan.controlWater (_ENV [tid.."6"] , 200)
changan.controlRotation9(boxpic[tid],90,0)
end
end
boxes = {} boxpic = {}
function changan.box (views)
local tid = "box"..guid ()
boxpic[tid] = luajava.loadlayout {
ImageView ,
background = getRes("hei_right"),
layout_width = "24dp" ,
layout_height = "24dp" ,
}
local ttid = tid.."6"
local t1id = guid ()
firadio = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "wrap_content" ,
layout_marginTop = "2dp" ,
layout_marginBottom = "2dp" ,
orientation = "vertical" ,
}
if type (views [1]) == "string" or type (views [1]) == "number" then
firadio [# firadio + 1] = {
LinearLayout ,
layout_width = 'fill_parent' ,
layout_height = "40dp" ,
gravity = "center_vertical" ,
layout_marginTop = "2dp" ,
layout_marginLeft='2dp',
layout_marginRight='2dp',
elevation='2dp',
layout_marginBottom = "4dp" ,
onClick = function ()
visi (tid , ttid)
end
,
background = getButtonBG(),
{
TextView , text = views [1] ,
textSize = "13sp" ,
layout_marginLeft = "15dp" ,
layout_width = "match_parent" ,
layout_weight=1,
textColor = "#000000" ,
gravity = "left" ,
},{
LinearLayout ,
padding={"0dp","0dp","10dp","0dp"},
layout_width = "30dp" ,
layout_height = "30dp" ,
gravity = "center",
boxpic[tid],
}
} else
gg.alert ("changan.box的table内第一个元素必须是string") os.exit ()
end
radios = {
LinearLayout ,
layout_marginLeft = "0dp" ,
layout_marginRight = "0dp" ,
orientation = "vertical" ,
visibility = "gone" ,
id = luajava.newId (tid) ,
padding = "0dp" ,
layout_width = 'fill_parent' ,
}
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,#stab do
_ENV["jmt"..i]:setTextColor(0xff000000)
_ENV["jmp"..i]:setColorFilter(0xffd7d7d7)
_ENV["layout"..i]:setVisibility(View.GONE)
end
_ENV["jmt"..当前ui]:setTextColor(0xff0062FF)
_ENV["jmp"..当前ui]:setColorFilter(0xff0062FF)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
--YoYoImpl:with("FadeIn"):duration(800):playOn(_ENV["layout"..当前ui])
end)
end
显示 = 0
beij2 = luajava.loadlayout({
GradientDrawable,
color = "#001E1C27",
cornerRadius = 10
})
nowbg=1
function changebg()
luajava.runUiThread(function()
if nowbg<#bglist then
nowbg=nowbg+1
else
nowbg=1
end
beij=bglist[nowbg]
floatWindow:setBackground(beij)
YoYoImpl:with("FadeIn"):duration(600):playOn(floatWindow)
end)
end
function getcolor(cl)
cl[1] = tonumber(math.ceil(cl[1]*2.6,0,5))
if cl[1] > 255 then cl[1] = "0xff" else
cl[1] = "0x"..string.format("%x",cl[1]) end
for i = 1,3 do
cl[i+1] = string.format("%x",cl[i+1])
if string.len(cl[i+1]) == 1 then cl[i+1] = "0"..cl[i+1] end
end
cl = cl[1]..cl[2]..cl[3]..cl[4]
return cl
end
function getrgb(cl)
if string.sub(cl,1,1) == "#" then cl = "0x"..string.sub(cl,2,-1) end
cl = {
tonumber(string.sub(cl,0,4)),tonumber("0x"..string.sub(cl,5,6)),tonumber("0x"..string.sub(cl,7,8))}
return cl
end
显示 = 0
function 隐藏()
luajava.runUiThread(function()
if tonumber(tostring(chuangk:getVisibility())) == 8.0 then
control:setVisibility(View.GONE)
显示 = 1
ggscro:setVisibility(View.VISIBLE)
chuangk:setVisibility(View.VISIBLE)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
changan.controlBig(floatWindow,500)
floatWindow:setBackground(beij)
else
ggscro:setVisibility(View.GONE)
chuangk:setVisibility(View.GONE)
floatWindow:setBackground(beij2)
control:setVisibility(View.VISIBLE) 显示 = 0
_ENV["layout"..当前ui]:setVisibility(View.GONE)
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)
changan.controlWater = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.8, 0.9, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1,0.8,0.9,1
}):setDuration(time):start()
end) end
changan.controlSmall = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
end) end
changan.controlBig = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
function 开关3(name,func1,func2,nid)
local localname=name
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()
changan.controlWater(_ENV[nid],200)
luajava.getIdValue(nid):setBackground(check2)
luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
end)
_ENV[name] = "开"
vibra:vibrate(6)
pcall(func1)
uiadtext(localname.." 已开启.","#161616")
else
luajava.runUiThread(function()
changan.controlWater(_ENV[nid],200)
luajava.getIdValue(nid):setBackground(check1)
luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
end)
_ENV[name] = "关"
vibra:vibrate(6)
pcall(func2)
uiadtext(localname.." 已关闭.","#545454")
end
end
end
end
function getShape3()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(20)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0x55FF9DBC,0x55FF9DBC
})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(8,0xaa80C3F9)--边框宽度和颜色
return jianbians
end
function getShape(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(8,tmp3)--边框宽度和颜色
return jianbians
end
function getShape2(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(15,tmp3)--边框宽度和颜色
return jianbians
end
function getShape0(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(30,tmp3)--边框宽度和颜色
return jianbians
end
checkbg1 = getRes("quarkcheckoff")
checkbg2 = getRes("quarkcheckon")
switchs={}
function changan.intcheck(name,func1,func2)
nid = name..guid()
local func = 开关5(name,func1,func2,nid)
if not name then name = "未设置" end
switchs[nid] = {
LinearLayout,
layout_width = 'match_parent',
layout_weight=1,
layout_height = "42dp",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding = "1dp",
{
LinearLayout,
padding="3dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
--background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71),
{
FrameLayout,
id = luajava.newId(nid),
background = checkbg1,
layout_width = '32dp',
layout_height = '32dp',
padding = "0dp",
},{
TextView,
id=luajava.newId(nid.."t"),
gravity = "left",
text = name,
textColor=check字体颜色,
textSize = "14sp",
--layout_marginLeft="8dp",
layout_width = 'match_parent',
layout_weight=1,
},
}
}
return switchs[nid]
end
function 开关5(name,func1,func2,nid)
local sname = nid
local localname=name
name = name..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(checkbg2)
luajava.getIdValue(nid.."t"):setTextColor(switch颜色)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "开"
pcall(func1)
uiadtext(localname.." 已开启.","#161616")
else
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(checkbg1)
luajava.getIdValue(nid.."t"):setTextColor(0xff232323)
--changan.controlWater(switchs[nid],300)
end)
_ENV[name] = "关"
pcall(func2)
uiadtext(localname.." 已关闭.","#545454")
end
end
end
end
function changan.check(cklist)
if #cklist==0 then return nil end
local rest = {
LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center",
orientation="vertical",
}
for i = 1, #cklist,2 do
local tempTable = {LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "left",
orientation="horizontal"
}
for j = 0, 1 do
if cklist[i + j] ~= nil then
local name = cklist[i + j][1]
local func1 = cklist[i + j][2]
local func2 = cklist[i + j][3]
if not name then name = "未设置" end
rstt = changan.intcheck(name,func1,func2)
table.insert(tempTable, rstt)
else
table.insert(tempTable, {LinearLayout,
layout_width = 'match_parent',
layout_weight=1,})
end
end
table.insert(rest, tempTable)
end
return luajava.loadlayout(rest)
end
switches = {}
function 开关3(name,func1,func2,nid)
local sname = nid
local localname=name
name = name..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
local outfunc=function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
YoYoImpl:with("ZoomInLeft"):duration(600):playOn(switches["2s"..sname])
luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid):setBackground(checkbg)
end)
_ENV[name] = "开"
pcall(func1)
uiadtext(localname.." 已开启.","#161616")
else
vibra:vibrate(9)
luajava.runUiThread(function()
luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
YoYoImpl:with("ZoomInRight"):duration(600):playOn(switches["1s"..sname])
luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid):setBackground(checkbga)
end)
_ENV[name] = "关"
pcall(func2)
uiadtext(localname.." 已关闭.","#545454")
end
end
if localname=="摇一摇隐藏UI" then yyfunc=outfunc end
if localname=="音量键隐藏UI" then ylfunc=outfunc end
return outfunc
end
end
function changan.switch(name,func1,func2,miaoshu)
if not checkbg then
checkbg = getShape2(
45,
{
switch颜色,switch颜色
},
4,switch颜色)
checkbg0 = getShape2(
45,
{
0xff232323,0xff232323
},
4,0x00ffffff)
checkbga = getShape2(
45,
{
0xffE6E6E6,0xffE6E6E6
},
4,0xffE6E6E6)
switchbg1 = getShape(
45,
{
0xffffffff,0xffffffff
},
4,0xffffffff)
switchbg2 = luajava.loadlayout {
GradientDrawable ,
color = "#ffffff" ,
cornerRadius = 360
}
end
nid = name..guid()
local func = 开关3(name,func1,func2,nid)
if not name then name = "未设置" end
switches["1s"..nid] = luajava.loadlayout {
FrameLayout,
layout_width = '40dp',
layout_height = '20dp',
gravity = "center_vertical",
padding = {
"1dp","0dp","1dp","0dp"
},
{
LinearLayout,
layout_gravity = "left|center_vertical",
id = luajava.newId(nid.."k"),
background = switchbg1,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '17dp',
layout_height = '17dp',
},
}
switches["2s"..nid] = luajava.loadlayout {
FrameLayout,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '40dp',
layout_height = '20dp',
gravity = "center_vertical",
padding = {
"1dp","0dp","1dp","0dp"
}
, {
LinearLayout,
visibility = "gone",
layout_gravity = "right|center_vertical",
id = luajava.newId(nid.."g"),
background = switchbg2,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '17dp',
layout_height = '17dp',
}
}
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
{
LinearLayout,
layout_width = 'fill_parent',
layout_height = "40dp",
gravity = "center_vertical",
layout_marginLeft='2dp',
layout_marginRight='2dp',
layout_marginTop='2dp',
layout_marginBottom='2dp',
elevation='2dp',
background = luajava.loadlayout {
GradientDrawable ,
color = 按钮颜色 ,
cornerRadius = 12
} ,padding = {
"0dp","0dp","6dp","0dp"
},
{
TextView,
gravity = "top",
text = name,
textColor = "#000000",
textSize = "13sp",
layout_weight = 1,
layout_width = '80dp',
layout_marginLeft = "10dp",
layout_marginRight = "20dp",
},
{
TextView,
gravity = "center",
layout_height = "match_parent",
text = miaoshu,
textSize = "11sp",
layout_width = "wrap_content",
layout_marginLeft = "-50dp",
layout_weight = 1,
textColor = "#F4D7FE",
},
{
FrameLayout,
id=luajava.newId(nid),
background = checkbga,
elevation = "1dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
gravity = "left",
padding="1dp",
switches["1s"..nid],switches["2s"..nid]
}}
})
return rest
end
function initbg()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
--0x00444444,0x00ffffff
0xffffffff,0xffffffff
})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(0,0xff000000)--边框宽度和颜色
return jianbians
end
buts={}
heir=getRes("heir")
function changan.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_width = "fill_parent",
gravity = "center_vertical",
layout_marginTop = "5dp",
layout_marginBottom = "5dp",
layout_marginLeft='3dp',
layout_marginRight='3dp',
elevation='2dp',
background = getButtonBG(),
padding="10dp",
onClick = function()
changan.controlWater(buts[tid],300)
uiadtext('执行 '..txt,"#161616")
luajava.newThread(func):start() end,
{
TextView,
--id = luajava.newId(tid),
textColor = txtc,
text = txt,
textSize = "13sp",
layout_height = "wrap_content",
layout_width = "fill_parent",
layout_weight=1,
},{ImageView,
src=heir,
layout_height="14dp",
layout_width="14dp",
}
}})
return buts[tid]
end
function changan.text(txt,color,size)
if not txt then txt = "未设置文字" end
if not color then color = "#"..颜色2 end
if not size then size = "18sp" end
return luajava.loadlayout(
{
TextView,
text = txt,
textSize = size,
textColor = color,
layout_width = "wrap_content",
})
end
function 开关(name,func1,func2)
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)
uiadtext(name.." 已开启.","#161616")
else
_ENV[name] = "关"
pcall(func2)
uiadtext(name.." 已关闭.","#545454")
end
end
end
end
颜色1 = "F4D7FE"
颜色2 = "545454"
function 开关2(name,func1,func2,nid)
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/轩梦/图片/check2"))
end)
_ENV[name] = "开"
func1()
uiadtext(name.." 已开启.","#161616")
else
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/战少/图片/check1"))
end)
_ENV[name] = "关"
func2()
uiadtext(name.." 已关闭.","#545454")
end
end
end
end
local json =json--调用
local g = {}
g.file = gg.getFile()
g.sel = nil
gqlb={"请先搜索歌曲",}
idb={"1010"}
SN,gc=1,nil
g.config = gg.getFile():gsub("%lua$", "").."cfg"
function bei()
g.data = loadfile("-- WSG PRO 1.0.9(109)\n"..g.config)
if g.data ~= nil then
g.sel = g.data()
g.data = nil
end
if g.sel == nil then
g.sel = {"请输入歌曲名","10"}
end
end
bei()
--搜索歌曲
function start(name,sl)
fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl)
return fw
end
--歌词
--播放音乐
function play(id,name)
gg.toast("正在播放音乐:"..name,true)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3")
end
--停止播放
function stop()
gg.toast("正在停止音乐")
for i=1,100 do
gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
end
end
----
function Play(gqlb,idb)
SN = gg.choice(gqlb,nil,ts)
if SN == nil then XGCK =-1 else
sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN])
if sn == nil then end
if sn == 1 then
play(idb[SN],gqlb[SN])
end
if sn == 2 then
local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content
local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3"
io.open(XEY1,"w"):write(XEY)
gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1)
end
XGCK=-1
end
end
function zjson(jsonr)
local str = jsonr
-- 匹配Json Key的正则表达式
local pattern = "\"[%w]+\":"
string.gsub(str, pattern, function(v)
if string.find(str, v) then
str = string.gsub(str, v, string.gsub(v, "\"", ""))
end
end)
str = string.gsub(str, ":", "=")
str = string.gsub(str, "%[", "{")
str = string.gsub(str, "%]", "}")
local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str
local res = load(data)()
return res
end
function json(con)
res=zjson(con)
zd=res.result.songCount
pd=go3-zd
if pd <= 0 then else go3=zd end
ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首"
gqlb={}
idb={}
for i=1,go3 do
gqlb[i]=res.result.songs[i].name
idb[i]=res.result.songs[i].id
end
--print(idb)
end
function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end
local function readD (a)
return gg.getValues ( {
{
address = a ,
flags = 4
}
}) [1].value
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 = freeze
gg.addListItems(t)
end
------------------------------
------------------------------
function xfnb(add,lx)
return gg.getValues({
{
address = add,flags = lx
}
})[1].value
end
------------------------------
------------------------------
local function RUI(address)
return gg.getValues({{
address = address, flags = gg.TYPE_QWORD
}})[1].value
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 = freeze gg.addListItems(t) end
local function RUI(address)
return gg.getValues({{
address = address, flags = gg.TYPE_QWORD
}})[1].value
end
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true] = 32, [false] = 4
}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{
address = addr, flags = va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xBAE0FFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
------------------------------
------------------------------
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}
for k, v in ipairs(Table) do
local value = {
address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]}
if v[4] then
Table1[2][#Table1[2] + 1] = value
else
Table1[1][#Table1[1] + 1] = value
end
end
gg.addListItems(Table1[2])
gg.setValues(Table1[1])
gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值")
end
function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能
getRanges = getRanges or (function()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写
ranges[#ranges+1] = v
end
end
return ranges
end)
local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD
if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位
valtype = gg.TYPE_QWORD
end
------------------------------
------------------------------
for i in pairs(ranges) do
local _name = ranges[i]["internalName"]:gsub('^.*/', '')
if so[1] == _name and so[2] == ranges[i]["state"] then
sostart = ranges[i]["start"]
break
end
end
------------------------------
------------------------------
if sostart then
if offset[1] then
for i = 1, #offset do
rest = {{
flags = valtype,address = sostart + offset[i]}}
rest = gg.getValues(rest)
if i == #offset then
break
end
if valtype == gg.TYPE_DWORD then
sostart = rest[1].value & 0xBAE0FFFF--对值进行补位操作
else
sostart = rest[1].value
end
end
end
print(rest)
if #rest == 1 then
end
return Format(rest, format, value, type, Function)
end
gg.toast("功能:" .. Function .. "开启失败")
print("功能开启失败原因: 未找到静态头")
return os.exit()
end
------------------------------
------------------------------
function Format(tab, format, value, type, Function)
if format == "查看" then
tab[1]["flags"] = type
return print(gg.getValues(tab))
elseif format == "修改" then
tab[1]["flags"] = type
tab[1]["value"] = value
return gg.setValues(tab)
elseif format == "冻结" then
tab[1]["flags"] = type
tab[1]["freeze"] = true
tab[1]["name"] = Function or "功能"
return gg.addListItems(tab)
elseif format == "加载" then
tab[1]["flags"] = type
return gg.loadResults(tab)
end
end
------------------------------
------------------------------
function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {
address = xgpy, flags = xglx, value = xgsz
}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end 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 read(address, flags)
local tt = {}
tt[1] = {}
tt[1].address = address
tt[1].flags = flags
filzer = gg.getValues(tt)[1].value
return filzer
end
function getbase(address)
local tt = {}
tt[1] = {}
tt[1].address = address
tt[1].flags = 32
filzer = gg.getValues(tt)[1].value
return filzer
end
------------------------------
------------------------------
local json = json--调用
local g = {}
g.file = gg.getFile()
g.sel = nil
gqlb = {
"请先搜索歌曲",
}
idb = {
"1010"
}
SN,gc = 1,nil
g.config = gg.getFile():gsub("%lua$", "").."cfg"
function bei()
g.data = loadfile("音乐配置"..g.config)
if g.data ~= nil then
g.sel = g.data()
g.data = nil
end
if g.sel == nil then
g.sel = {
"","10"
}
end
end
bei()
------------------------------
------------------------------
function start(name,sl)
fw = gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end
function play(id,name)
gg.toast("正在播放音乐:"..name,true)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end
function Play(gqlb,idb)
SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn = gg.choice({
"播放歌曲","播放并下载"
},nil,"歌曲:"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then
local XEY = gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1 = gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.toast("提示:\n\n音乐已成功下载位置:\n\n"..XEY1) end XGCK=-1 end end
function zjson(jsonr)
local str = jsonr local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end
function json(con)
res = zjson(con) zd = res.result.songCount pd = go3-zd if pd <= 0 then else go3 = zd end ts = "《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首" gqlb = {} idb = {} for i = 1,go3 do gqlb[i] = res.result.songs[i].name idb[i] = res.result.songs[i].id
end end
---+音乐配置
------------------------------
------------------------------
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x2C4D6BCE) 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 & 0xBAE0FFFF 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
------------------------------
------------------------------
----动态基址写法配置
function PS() end
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要65536)') local tt = {} tt[1] = {} tt[1].address = address tt[1].flags = flags tt[1].value = value gg.setValues(tt) end
---静态基址写法配置
------------------------------
------------------------------
function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {
address = xgpy, flags = xglx, value = xgsz
}}) else gg.addListItems({[1] = {
address = xgpy, flags = xglx, freeze = xgdj, value = xgsz
}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "地址成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "失败") end end end end
------------------------------
------------------------------
--仿SX写法配置
------------------------------
------------------------------
function xqmnb(Search,Modification)
gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount() == 0 then gg.toast(Search[2].name..'开启失败') return end local Result = gg.getResults(gg.getResultCount()) local sum for index = 4,#Search do sum = 0 for i = 1,#Result do if gg.getValues({{
address = Result[i].address+Search[index].offset,flags = Search[index].type
}})[1].value ~= Search[index].lv then Result[i].Usable = true sum = sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes = {}, {},0 sum = 0 for index,value in ipairs(Modification)do for index = 1,#Result do if not Result[index].Usable then local Value = {
address = Result[index].address+value.offset,flags = value.type,value = value.value,freeze = true
} if value.freeze then Freeze[#Freeze+1] = Value Freezes = Freezes+1 else Data[#Data+1] = Value end sum = sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes == 0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end
-- 读取内存地址的函数
function readPointer(name, offset, i)
local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true] = 32, [false] = 4
} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{
address = addr, flags = va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xBAE0FFFF end addr = addr[1].value + offset[i] end return addr end end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {
address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end
local Ranges = gg.getRangesList('/')
local function Read(module,type)
for k,v in pairs(Ranges) do
if v['internalName']:match('[^/]*$') == module and v['type'] == type then
return v['start']
end
end
end
------------------------------
------------------------------
local Table = {}
local function Modify(address,value,flags)
Table[#Table+1] = {
address = address,value = value,flags = flags
}
end
------------------------------
------------------------------
-- 读取内存地址的函数
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true]=32, [false]=4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address=addr, flags=va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}
for k, v in ipairs(Table) do
local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]}
if v[4] then
Table1[2][#Table1[2]+1] = value
else
Table1[1][#Table1[1]+1] = value
end
end
gg.addListItems(Table1[2])
gg.setValues(Table1[1])
end
function getRanges()
local ranges = {}
local t = gg.getRangesList('^/dev/kgsl-3d0*$')
for i, v in pairs(t) do
if v.type:sub(4, 4) == 's' then
table.insert(ranges, v)
end
end
return ranges
end
local function readD(a)
return gg.getValues({{
address = a,
flags = gg.TYPE_DWORD
}})[1].value
end
local function readF(a)
return gg.getValues({{
address = a,
flags = gg.TYPE_FLOAT
}})[1].value
end
------------------------------
------------------------------
function setvalue(address,flags,value)
local t = {}
t[1] = {}
t[1].address = address
t[1].flags = flags
t[1].value = value
gg.setValues(t)
gg.addListItems(t)
end
------------------------------
------------------------------
function _V(add,value1,flag,value2)
local num = 0;ednum = 0
if flag == gg.TYPE_DWORD then
readV = readD
elseif flag == gg.TYPE_FLOAT then
readV = readF
else
os.exit("不支持的类型")
end
local S_list = getRanges()
for i in pairs(S_list) do
num = num+1
addr = S_list[i].start+add
if readV(addr) == value1 then
setvalue(addr,flag,value2)
ednum = ednum+1
end
end
return "遍历了"..num.."个地址\n".."修改了"..ednum.."个地址"
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 setvalue(address,flags,value)
local CatWill={}
CatWill[1]={}
CatWill[1].address=address
CatWill[1].flags=flags
CatWill[1].value=value
gg.setValues(CatWill)
end
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true] = 32, [false] = 4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address = addr, flags = va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}
for k, v in ipairs(Table) do
local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]}
if v[4] then
Table1[2][#Table1[2] + 1] = value
else
Table1[1][#Table1[1] + 1] = value
end
end
gg.addListItems(Table1[2])
gg.setValues(Table1[1])
end
bglist={
getHorizontalBG({0xffe9e9e9,0xffe9e9e9},12),
getHorizontalBG({0xff7F58FF,0xff2964FF,0xff5399FF},12),
getHorizontalBG({0xaaffffff,0xaaffffff},12,3,0xaa232323),
}
function huiz()---绘制必须放在这里面
draw.setColor('#00FFFF')
draw.setSize(47)draw.setStyle('描边并填充')
--绘制内容请写到这里面,否则会消失
draw.text(os.date'', 30,300)draw.setColor('#00FFFF')
end
titlet="轩梦加速1.0"
stitle = "轩梦加速1.0"
stab = {
--菜单名字,添加即可加页数,需要与结尾配置表对应
{"公告","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/quarkweb"},
{"防封","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/safe"},
{"功能","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/bm_gn"},
{"音乐","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/bm_music"},
{"设置","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/bm_sz"},
}
xfcpic = "https://cccimg.com/down.php/29cd4e62b292a951a4ea8eb6da425f7b."
--悬浮窗链接或路径
---公告
changan.menu(
{
{--1
changan.button("公告", function()
string.toMusic("感谢大家一直支持轩梦我们会一直努力做更好的加速,感谢大家对轩梦的支持,轩梦会一直加油的")
end),
changan.button("每日语录",function()
Y=gg.makeRequest("https://v1.hitokoto.cn/").content
--获取云端数据
Q=string.match(Y,'hitokoto(.+)type')
--模式匹配他们中的一切字符
F=string.gsub(Q,'":"',"")
K=string.gsub(F,'","',"")
--删除多余垃圾
string.toMusic("\n\n"..""..K.."")
QD = gg.alert("今日语录:\n\n"..""..K.."")
if QD == 1 then
end
if QD == 3 then
end
end),
changan.button("选择进程", gg.setProcessX),
changan.text("轩梦加速永远的神","#A11322","10sp"),
changan.text("认准轩梦|学生蛋的神","#545454","15sp"),
}, {
--2功能
changan.button("游戏防封区",
function()
end),
--changan.text("文字演示","#0077FF","20sp"),
--changan.text("文字演示文字演示文字演示","#545454","10sp"),
changan.switch("腾讯防封",
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
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", "Cd"}
local tt = {0x158}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 16384, freeze = true}})
local t = {"libtersafe.so", "Cd"}
local tt = {0x385F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 16384, freeze = true}})
string.toMusic("腾讯防封开启成功")
end,
function()
end,"登录必开"),
changan.switch("轩梦独家防封旁路",
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
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 = {"libgcloudcore.so", "Cd"}
local tt = {0x5A8, 0x30, 0x6C, 0x6}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libgcloudcore.so", "Cd"}
local tt = {0x858, 0x64, 0x40}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libgcloudcore.so", "Cd"}
local tt = {0x5A8, 0xF0, 0x6C, 0x6}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libqimei.so:bss", "Cb"}
local tt = {0x4D0, 0xE8, 0xD8, 0x8E}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libgcloudcore.so", "Cd"}
local tt = {0x858, 0xD8, 0x14, 0x40}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libMsdkAdapter.so", "Cd"}
local tt = {0x160, 0x38, 0xA8, 0x6}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libMsdkAdapter.so", "Cd"}
local tt = {0x160, 0x38, 0xA8, 0xFE}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
local t = {"libgcloudcore.so", "Cd"}
local tt = {0x5A8, 0xD0, 0x6C, 0x6}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 2, value = 64, freeze = true}})
end,
function()
end,"登录必开"),
changan.switch("无敌防闪(框架必开)",
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
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 = {"libtersafe.so:bss", "Cb"}
local tt = {0x3F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 2, freeze = true}})
string.toMusic("防闪开启成功")
end,
function()
end,"登录必开"),
changan.switch("防闪(适配更多机型)",
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
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 = {"libtersafe.so:bss", "Cb"}
local tt = {0x3F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 2, freeze = true}})
string.toMusic("防闪开启成功")
end,
function()
end,"备用防闪"),
}, {
--3
changan.button("实用功能区",
function()
end),
changan.switch(
"人物超广角",
function()
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 setvalue(A0_146, A1_147, A2_148)
PS("修改地址数值(地址,数值类型,要修改的值)")
local tmp = {}
tmp.address = A0_146
tmp.flags = A1_147
tmp.value = A2_148
gg.setValues({
[1] = tmp
})
end
---静态基址写法配置
so=gg.getRangesList('libUE4.so')[1].start--视角
py=0XB94373C
setvalue(so+py,16,2)
end,
function()
end),
changan.switch("自改范围拾取",
function()
local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(广角.).lua'
local chunk = loadfile(cfg_file)
local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {3000} end fanweishiqu=gg.prompt({ "输入拾取范围大小[200~9999999]:", },cfg,{"text"}) if fanweishiqu == nil then else gg.saveVariable(fanweishiqu, cfg_file) if fanweishiqu[1] == true then g1() end
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x558,0x2568}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = fanweishiqu[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x88}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999999999}}) local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x558,0x19D8,0x16C}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 99999999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x88}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x558,0x19D8,0x16C+0x4}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}})
end
gg.toast("开启成功")
end,
function()
end),
changan.switch(
"换装备加速开",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x558,0x399C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 4}})
string.toMusic('换装备加速开启成功')---语音
end,
function()
end),
changan.switch(
"换装备加速关",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x631CB0,0x30,0x558,0x399C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
string.toMusic('换装备加速关闭成功')---语音
end,
function()
end),
changan.switch(
"微加速",
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
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
so=gg.getRangesList('libUE4.so')[1].start
py=0x98208CC
setvalue(so+py,4,505425152)
string.toMusic('微加速开启成功')---语音
end,
function()
end),
changan.switch(
"大厅镰刀改火焰刀",
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
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
gg.clearResults()
gg.setRanges(32)
gg.searchNumber("108003", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.searchNumber("108003", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(100)
gg.editAll("9,807,005", gg.TYPE_DWORD)
gg.toast("美化完成")---语音
gg.clearResults()
end,
function()
end),
changan.switch("大厅砍刀改蝴蝶刀",
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
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
gg.clearResults()
gg.setRanges(32)
gg.searchNumber("108001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.searchNumber("108001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(100)
gg.editAll("9,807,006", gg.TYPE_DWORD)
gg.toast("美化完成")---语音
gg.clearResults()
end,
function()
end),
}, {
--第五页,没有写菜单标题所以不显示
changan.switch("我怀念的",
function ()
gg.playMusic("https://pan.jl8.top/view.php/f2ab5f55d93adc586aa3f7bf84011109.mp3")
end),
changan.switch("有爱就不怕",
function ()
gg.playMusic("https://pan.jl8.top/view.php/5775fd5529dee8b86641607660f669a2.mp3")
end),
changan.switch("如果爱忘了",
function ()
gg.playMusic("https://pan.jl8.top/view.php/6656dd8e9d3538a0576e4806c44b0deb.mp3")
end),
changan.switch("指纹",
function ()
gg.playMusic("https://pan.jl8.top/view.php/894dfa8abb75fdba1a9069ab31f76a42.mp3")
end),
changan.switch("瞬(郑润泽)",
function ()
gg.playMusic("https://pan.jl8.top/view.php/c8ccec37a8b2f5a6dd60c5a414e9b489.mp3")
end),
changan.switch("如果可以",
function ()
gg.playMusic("https://pan.jl8.top/view.php/a46257edef0d3d94c074eedf2117b7ea.mp3")
end),
changan.switch("陪我过个冬",
function ()
gg.playMusic("https://pan.jl8.top/view.php/83983a537f03998f5bcb8065183dc2a5.mp3")
end),
changan.switch("慢慢",
function ()
gg.playMusic("https://pan.jl8.top/view.php/cf8f5a8fd6bebfc33c922349bf4cee1b.mp3")
end),
changan.switch("谦让",
function ()
gg.playMusic("https://pan.jl8.top/view.php/293b5b2609fb943604fb6d8e058b7378.mp3")
end),
changan.switch("孤独患者",
function()
gg.playMusic("https://pan.jl8.top/view.php/4c7842b0dfdff8e41a4a33599d4420c9.mp3")
end),
changan.switch("绽放",
function()
gg.playMusic("https://pan.jl8.top/view.php/243c3534931042c0b9346913bbcfe0c7.mp3")
end),
changan.switch("匿名的朋友",
function ()
gg.playMusic("https://pan.jl8.top/view.php/bbc70d7e4dea57c97b4574434da51b4b.mp3")
end),
changan.switch("于是",
function ()
gg.playMusic("https://pan.jl8.top/view.php/e3b681deadb8c1b67bce346644a62907.mp3")
end),
changan.switch("说好的幸福呢",
function ()
gg.playMusic("https://pan.jl8.top/view.php/6dbd26c022866d1748de52e82df90bb6.mp3")
end),
changan.switch("你就是我的风景",
function ()
gg.playMusic("https://pan.jl8.top/view.php/50bc9da28116e8a10d21ac9b9cf4bff0.mp3")
end),
changan.switch("慢冷",
function ()
gg.playMusic("https://pan.jl8.top/view.php/4ecaf0c28fd83f40708dbb76bc0b0053.mp3")
end),
changan.switch("你在,不在",
function ()
gg.playMusic("https://pan.jl8.top/view.php/9a52a90b26bba2b5e52ecee188569e61.mp3")
end),
changan.switch("我要稳稳的幸福",
function ()
gg.playMusic("https://pan.jl8.top/view.php/79f14d849cdb0c020c741a0b6282c508.mp3")
end),
changan.switch("搁浅",
function ()
gg.playMusic("https://pan.jl8.top/view.php/595236b48e1290ba7436ff43993ad33c.mp3")
end),
changan.switch("冬眠",
function ()
gg.playMusic("https://pan.jl8.top/view.php/7bd64fde0cbae98fc911e62743630d21.mp3")
end),
changan.button("暂停音乐",function()
gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
end),
},{
--changan.switch("6"),
changan.button("退出脚本UI",function()
luajava.setFloatingWindowHide(false)
tuichu=1
end),
changan.switch("音量键隐藏UI",
function()
音量键=true
end,
function()
音量键=false
end),
},{
},{
},{
},{
},{
},{
},{
}
})
--配置表添加表即可加页数,只需要与上边菜单标题数对应