-- 把以上代码复制到你脚本最前面即可
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
YH={}
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end 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)
else
if file.length("/sdcard/流浪者配置/原神/"..tmp) <= 1 then
gg.toast("正在下载资源"..jindu.."/"..#ckimg.."\n请耐心等待")
download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/流浪者配置/原神/"..tmp)
end
end
end
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
if panduan("/sdcard/流浪者配置/原神/原神.zip") ~= true then
gg.toast("正在下载黑名单系统\n请耐心等待")
gg.toast("正在下载泛滥格机系统\n请耐心等待")
file.download("http://twjht.yjir.cn/down.php/430bc296527d1f0455df9298276c89f1.zip","/sdcard/流浪者配置/原神/原神.zip")
end
if panduan("/sdcard/流浪者配置/原神/CircleImageView.dex")~=true then
file.unzip("/sdcard/流浪者配置/原神/原神.zip","/sdcard/流浪者配置/原神/")
end
function getRes(x)
return 获取图片("/sdcard/流浪者配置/原神/"..x)
end
function 获取图片(txt)
ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1)
if string.find(tostring(txt),"http") ~= nil then
if panduan("/sdcard/流浪者配置/原神/"..ntxt) == false then
download(txt,"/sdcard/流浪者配置/原神/"..ntxt)
end
txt = "/sdcard/流浪者配置/原神/"..ntxt
end
return luajava.getBitmapDrawable(txt)
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://www.123pan.com/s/HcLuVv-cx4D3.html"..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 = "#A5A5A5",
},
{
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 = "80C3F9"
颜色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
function launch(pkg)
local loadBox = getLoadingBox('正在启动游戏')
gg.setProcess(pkg)
gg.sleep(500)
if tostring(gg.getTargetPackage()) == pkg then
gg.toast("进程已选择:"..pkg)
return 0
end
gg.toast("正在启动游戏...")
loadBox['显示']()
print(gg.isPackageInstalled(pkg))
app.start(pkg)
jci=0
--gg.sleep(5000)
while true do
gg.setProcess(pkg)
gg.sleep(400)
if tostring(gg.getTargetPackage()) == pkg then
gg.alert("启动成功")
loadBox['关闭']()
break
else
jci=jci+1
if jci==14 then
loadBox['关闭']()
gg.alert("自动获取进程失败\n请手动选择游戏进程")
gg.setProcessX()
break
end
end
gg.sleep(100)
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 editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end end
function readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false end end
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true] = 32, [false] = 4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address = addr, flags = va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}
for k, v in ipairs(Table) do
local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]}
if v[4] then
Table1[2][#Table1[2] + 1] = value
else
Table1[1][#Table1[1] + 1] = value
end
end
gg.addListItems(Table1[2])
gg.setValues(Table1[1])
gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值")
end
function nc_offset(addr,tablex,tt) for i,v in ipairs(tablex) do if v[4]==true then gg.addListItems({{address=addr+v[3],flags=v[2],value=v[1],freeze=v[4]}})else gg.setValues({{address=addr+v[3],flags=v[2],value=v[1]}}) end end gg.toast((tt or "").."开启成功") end function getso(So_name) return gg.getRangesList(So_name)[1].start end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function readPointer(Add,Item) for i=1,(#Item-1) do Add=BaAdd(Add+Item[i]) end return Add+Item[#Item] end function setvalue(add,value,falgs,dj) local WY={} WY[1]={} WY[1].address=add WY[1].value=value WY[1].flags=falgs if dj==true then WY[1].freeze=true gg.addListItems(WY) else gg.setValues(WY) end end function getnc(Name,nc) local t=gg.getRangesList(Name) for i, v in ipairs(t) do if v.state==nc then return v.start end end end function SearchWrite(Search, Write, Type)gg.clearResults()gg.setVisible(false)gg.searchNumber(Search[1][1], Type)local count = gg.getResultCount()local result = gg.getResults(count)gg.clearResults()local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {}local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then gg.toast("\n注入"..#data.."条数据") local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) else gg.toast("\n开启失败", false) return false end else gg.toast("\n开启失败")return false 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"] .. "\n开启失败") 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"] .. "\n开启失败") 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"] .. "\n开启成功\n注入" .. xgsl .. "\n条数据") else gg.toast(qmnb[2]["name"] .. "\n开启失败") end end end end lde={} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function so(a,b,c) local cSN=gg.getRanges() lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3] then b[p][3]=a[4] end lode[p][i].flags=b[p][3] end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2] then db[2]=db[1] end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(cSN) if p>11 then p=11 end return a[1].."开启失败" end count=lope lope={} end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3] then c[i][3]=a[4] end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true else if c[i][4]==2 then lobe[#lobe].freeze=false end end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(cSN) return a[1].."开启成功" else lde.srg(cSN) return a[1].."开启失败" end end lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end 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 SearchWrite(Search, Write, Type)gg.clearResults()gg.setVisible(false)gg.searchNumber(Search[1][1], Type)local count = gg.getResultCount()local result = gg.getResults(count)gg.clearResults()local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {}local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then gg.toast("搜索到"..#data.."条数据") local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item)end end end gg.setValues(t) else gg.toast("not found", false)return false end else gg.toast("Not Found") return false 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"] 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 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 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 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 recover=gg.getResults(100000) function AppSearch(SSNR,XGNR,BCNR,notWrite) gg.clearResults() gg.setRanges(SSNR["M"]) gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil)) jg=gg.getResults(100000) local base=(SSNR[1]["offs"] or 0) local data={} if #jg==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={} if totonumber(to) then jg[num[i]].Useful=false end end end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end if notWrite==true then gg.loadResults(recover)return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={} write[#write].address=data[i]+(XGNR[j][2]-base) write[#write].flags=XGNR[j][3] write[#write].value=XGNR[j][1] write[#write].freeze=XGNR[j][4] write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]}) else gg.setValues({[1]=write[#write]})end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]})end end end end if BCNR then local bc={}for j=1,#data do for i=1,#BCNR do bc[#bc+1]={}bc[#bc].address=data[j]+(BCNR[i][1]-base)bc[#bc].flags=BCNR[i][2]bc[#bc].name=BCNR[i][3]end end gg.addListItems(bc)end gg.toast("功能名:"..(SSNR.name or "无").."\n".."[修改成功]")gg.loadResults(recover)end lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local cSN=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(cSN)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(cSN) return a[1].."开启成功" else lde.srg(cSN) return a[1].."开启失败!!!" end end function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1) for i=2 , #tb1 do local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]} table.insert(lt1,i,mm2) end for i=1 , #tb2 do if tb2[i][2]~=nil then local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]} table.insert(lt2,i,mm3) else local mm3={["修改"] = false,["偏移"] = tb2[i][1]} table.insert(lt2,i,mm3) end end LongTao(lt1, lt2 ) end function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local num = Search[k]["副特征码"] if Search[k]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] end for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + Search[k]["偏移"] tmp[#tmp].flags = lx end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} for i=1, #data do for k, w in ipairs(Write) do if w["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] end t[#t+1] = {} t[#t].address = data[i] + w["偏移"] t[#t].flags = lx if (w["修改"]~=nil) and (w["修改"]~=false) then t[#t].value = w["修改"] gg.setValues(t) if (w["冻结"] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = w["冻结"] gg.addListItems(item) end end end end gg.loadResults(t) gg.toast("共偏移η"..#t.." 条数据ΔΘ") else gg.toast("未定位到数据!") return false end else gg.toast("未定位到数据!") return false end end local app = {} function Assert(data) if data == nil or data == "" or data == "nil" then return false else return true end end function mearrass(memory, array) if Assert(memory) and Assert(array) then return true else return false end end function typetab(array, type) local datatype = {} for i = 1, #array do if Assert(array[i].type) then table.insert(datatype, i, array[i].type) else if Assert(type) then table.insert(datatype, i, type) else return false end end end return true, datatype end function app.memorysearch(memory, array, type) gg.setVisible(false) local isok = mearrass(memory, array) if isok then local isok, datatype = typetab(array, type) if isok then if Assert(array[1].hv) then gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) end if gg.getResultCount() == 0 then return false else local tab = {} local data = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #data do data[i].isok = true end for i = 2, #array do local t = {} local offset = array[i].offset for x = 1, #data do t[#t + 1] = {} t[#t].address = data[x].address + offset t[#t].flags = datatype[i] end local t = gg.getValues(t) for z = 1, #t do if Assert(array[i].hv) then if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then data[z].isok = false end else if tostring(t[z].value) ~= tostring(array[i].lv) then data[z].isok = false end end end end for i = 1, #data do if data[i].isok then tab[#tab + 1] = data[i].address end end if #tab > 0 then return true, tab else return false end end else print("type参数错误") gg.toast("type参数错误") os.exit() end else print("memory or array参数错误") gg.toast("memory or array参数错误") os.exit() end end function app.memoryread(addr, type) local t = {} t[1] = {} t[1].address = addr t[1].flags = type if #t > 0 then return true, gg.getValues(t)[1].value else return false end end function app.memorywrite(addr, type, value, freeze) local t = {} t[1] = {} t[1].address = addr t[1].flags = type t[1].value = value if #t > 0 then if Assert(freeze) then t[1].freeze = freeze return gg.addListItems(t) else return gg.setValues(t) end else return false end 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 gg.edits = function(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]}if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2])gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end function fastsearch(search, write)gg.setVisible(false)gg.clearResults()gg.setRanges(search[1][3])gg.searchNumber(search[1][1], search[1][2])if gg.getResultsCount() == 0 then return false else local result = gg.getResults(gg.getResultsCount())gg.clearResults()for i = 2, #search do local mtp = {}for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }end mtp = gg.getValues(mtp)local hook = {}for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w]end end result = hook end if #result > 0 then local tb = {{}, {}}for i, v in ipairs(result) do for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}if vv[4] then table.insert(tb[2], p)else table.insert(tb[1], p)end end end gg.addListItems(tb[2])gg.setValues(tb[1])gg.toast("修改成功注入了" .. (#tb[1] + #tb[2]) .. "条数据")else end end end
function Address(adds,offset,chang,value,flags,freeze,save,name)local add=gg.getRangesList(adds)[1]["start"]+offset local data={{["address"]=add,["value"]=value,["flags"]=flags,["freeze"]=freeze}}if chang==true then gg.setValues(data)end if freeze or save ==true then gg.addListItems(data)end if name~="false" then gg.toast("["..name.."]已注入")end end
uper ='启动'i='再次遇到你应该是什么时候呢 启动时长:5201314秒'print(i)
t=1
function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1)
for i=2 , #tb1 do
local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]}
table.insert(lt1,i,mm2)
end
for i=1 , #tb2 do
if tb2[i][2]~=nil then
local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]}
table.insert(lt2,i,mm3)
else
local mm3={["修改"] = false,["偏移"] = tb2[i][1]}
table.insert(lt2,i,mm3)
end
end
LongTao(lt1, lt2 )
end
function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功,共修改1个数值" else lde.srg(csn) return a[1].."开启失败!!!" end end
function LongTao(Search, Write)
gg.clearResults()
gg.setVisible(false)
lx=Search[1]["类型"]
gg.searchNumber(Search[1]["主特征码"], lx)
local count = gg.getResultCount()
local result = gg.getResults(count)
gg.clearResults()
local data = {}
if (count > 0) then
for i, v in ipairs(result) do
v.isUseful = true
end
for k=2, #Search do
local tmp = {}
local num = Search[k]["副特征码"]
if Search[k]["类型"]~= nil then
lx =Search[k]["类型"]
else
lx = Search[1]["类型"]
end
for i, v in ipairs(result) do
tmp[#tmp+1] = {}
tmp[#tmp].address = v.address + Search[k]["偏移"]
tmp[#tmp].flags = lx
end
tmp = gg.getValues(tmp)
for i, v in ipairs(tmp) do
if ( tostring(v.value) ~= tostring(num) ) then
result[i].isUseful = false
end
end
end
for i, v in ipairs(result) do
if (v.isUseful) then
data[#data+1] = v.address
end
end
if (#data > 0) then
local t = {}
for i=1, #data do
for k, w in ipairs(Write) do
if w["类型"] ~= nil then
lx = w["类型"]
else
lx = Search[1]["类型"]
end
t[#t+1] = {}
t[#t].address = data[i] + w["偏移"]
t[#t].flags = lx
if (w["修改"]~=nil) and (w["修改"]~=false) then
t[#t].value = w["修改"]
gg.setValues(t)
if (w["冻结"] == true) then
local item = {}
item[#item+1] = t[#t]
item[#item].freeze = w["冻结"]
gg.addListItems(item)
end
end
end
end
gg.loadResults(t)
gg.toast("共搜索"..#t.." 条数据")
else
gg.toast("开启失败")
return false
end
else
gg.toast("开启失败")
return false
end
end
local app = {}
function Assert(data)
if data == nil or data == "" or data == "nil" then
return false
else
return true
end
end
function mearrass(memory, array)
if Assert(memory) and Assert(array) then
return true
else
return false
end
end
function typetab(array, type)
local datatype = {}
for i = 1, #array do
if Assert(array[i].type) then
table.insert(datatype, i, array[i].type)
else
if Assert(type) then
table.insert(datatype, i, type)
else
return false
end
end
end
return true, datatype
end
function app.memorysearch(memory, array, type)
gg.setVisible(false)
local isok = mearrass(memory, array)
if isok then
local isok, datatype = typetab(array, type)
if isok then
if Assert(array[1].hv) then
gg.clearResults()
gg.setRanges(memory)
gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1])
else
gg.clearResults()
gg.setRanges(memory)
gg.searchNumber(array[1].lv, datatype[1])
end
if gg.getResultCount() == 0 then
return false
else
local tab = {}
local data = gg.getResults(gg.getResultCount())
gg.clearResults()
for i = 1, #data do
data[i].isok = true
end
for i = 2, #array do
local t = {}
local offset = array[i].offset
for x = 1, #data do
t[#t + 1] = {}
t[#t].address = data[x].address + offset
t[#t].flags = datatype[i]
end
local t = gg.getValues(t)
for z = 1, #t do
if Assert(array[i].hv) then
if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then
data[z].isok = false
end
else
if tostring(t[z].value) ~= tostring(array[i].lv) then
data[z].isok = false
end
end
end
end
for i = 1, #data do
if data[i].isok then
tab[#tab + 1] = data[i].address
end
end
if #tab > 0 then
return true, tab
else
return false
end
end
else
print("type错误")
gg.toast("type错误")
os.exit()
end
else
print("错误")
gg.toast("错误")
os.exit()
end
end
function app.memoryread(addr, type)
local t = {}
t[1] = {}
t[1].address = addr
t[1].flags = type
if #t > 0 then
return true, gg.getValues(t)[1].value
else
return false
end
end
function app.memorywrite(addr, type, value, freeze)
local t = {}
t[1] = {}
t[1].address = addr
t[1].flags = type
t[1].value = value
if #t > 0 then
if Assert(freeze) then
t[1].freeze = freeze
return gg.addListItems(t)
else
return gg.setValues(t)
end
else
return false
end
end
lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults
function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end
function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end
function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end
function xe(name,offset,i) local re=gg.getRangesList(name) local x64=gg.getTargetInfo().x64 local va={[true]=32,[false]=4} if re[i or 1] then local addr=re[i or 1].start+offset[1] for i=2,#offset do addr=gg.getValues({{address=addr,flags=va[x64]}}) if not x64 then addr[1].value=addr[1].value&0xFFFFFFFF end addr=addr[1].value+offset[i] end return addr end end function gg.edits(addr,Table,name) local Table1={{},{}} for k,v in ipairs(Table) do local value={address=addr+v[3],value=v[1],flags=v[2],freeze=v[4]} if v[4] then Table1[2][#Table1[2]+1]=value else Table1[1][#Table1[1]+1]=value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end
function readValue(read) local bf={} for i,v in ipairs(read) do bf[i]={address=v[1],flags=v[2]} end bf=gg.getValues(bf) for i=1,#bf do bf[i]=bf[i].value end return bf 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 sod,so_bss,xdd='libil2cpp.so','libil2cpp.soo:bss',gg.getRangesList("libil2cpp.so:bss")
function xe(name,offset,i) local re=gg.getRangesList(name) local x64=gg.getTargetInfo().x64 local va={[true]=32,[false]=4} if re[i or 1] then local addr=re[i or 1].start+offset[1] for i=2,#offset do addr=gg.getValues({{address=addr,flags=va[x64]}}) if not x64 then addr[1].value=addr[1].value&0xFFFFFFFF end addr=addr[1].value+offset[i] end return addr end end function gg.edits(addr,Table,name) local Table1={{},{}} for k,v in ipairs(Table) do local value={address=addr+v[3],value=v[1],flags=v[2],freeze=v[4]} if v[4] then Table1[2][#Table1[2]+1]=value else Table1[1][#Table1[1]+1]=value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end
function 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 "") .. "开启成功") end
function gg.Hjkl(value) local GT=gg.getListItems() local t={} for i,v in pairs(GT) do if v.value==value then table.insert(t,v) end end gg.removeListItems(t) end
function hqmz(a) local b='' for i=1,999 do local c=gg.getValues({{address=a+(i-1)*1,flags=1}})[1].value if c==0 then break end b=b..string.char(c<0 and 256+c or c) end if b=='' then local b else return b end end
function WX(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败,请尝试更换房间")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功,请切换一下物品\n 共注入 1 条冻结数据")else gg.toast(qmnbn.."开启失败,请尝试更换房间")end end end
function XE(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败,请尝试重启游戏")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功\n 共注入 1 条数据")else gg.toast(qmnbn.."开启失败,请尝试重启游戏")end end end
function CA(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败,请尝试重启游戏")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功\n 共注入 1 条数据")else gg.toast(qmnbn.."开启失败,请尝试重启游戏")end 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'] 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('id'..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('云端:\n'..qmnb[2]['name']..'成功共修改' .. xgsl .. '条数据') else gg.toast('云端:\n'..qmnb[2]['name'] .. '开启失败') end end end end
--[[配置1]]function js(address,flags,value) local jz={} jz[1]={} jz[1].address=address jz[1].flags=flags jz[1].value=value gg.setValues(jz) end
--[[配置2]]function jz(py,xl,xgsz) flags=xl value=xgsz so=gg.getRangesList(''..name..'')[1].start js(so+py,xl,xgsz) end
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
recover=gg.getResults(100000) function AppSearch(SSNR,XGNR,BCNR,notWrite) gg.clearResults() gg.setRanges(SSNR["M"]) gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil)) jg=gg.getResults(100000) local base=(SSNR[1]["offs"] or 0) local data={} if #jg==0 then gg.alert("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or "")) gg.loadResults(recover) return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={} if totonumber(to) then jg[num[i]].Useful=false end end end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.alert("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or "")) gg.loadResults(recover) return nil end if notWrite==true then gg.loadResults(recover) return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={} write[#write].address=data[i]+(XGNR[j][2]-base) write[#write].flags=XGNR[j][3] write[#write].value=XGNR[j][1] write[#write].freeze=XGNR[j][4] write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]}) else gg.setValues({[1]=write[#write]}) end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]}) end end end end if BCNR then local bc={} for j=1,#data do for i=1,#BCNR do bc[#bc+1]={} bc[#bc].address=data[j]+(BCNR[i][1]-base) bc[#bc].flags=BCNR[i][2] bc[#bc].name=BCNR[i][3] end end gg.addListItems(bc) end gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改成功") gg.loadResults(recover) end
recover=gg.getResults(100000)
function AppSearch(SSNR,XGNR,BCNR,notWrite)
gg.clearResults()
gg.setRanges(SSNR["M"])
gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil))
jg=gg.getResults(100000)
local base=(SSNR[1]["offs"] or 0)
local data={}
if #jg==0 then
gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))
gg.loadResults(recover)
return nil
end
for i=1,#jg do
jg[i].Useful=true
end
for k=2,#SSNR do
if not SSNR[k] then
break
end
local content={}
local offset=SSNR[k]["offs"]-base
local value=SSNR[k]["sv"]
local type=SSNR[k]["lx"]
local to=(SSNR[k]["to"] or value)
local num={}
if totonumber(to) then
jg[num[i]].Useful=false
end
end
--↑
end
for j=1,#jg do
if jg[j].Useful==true then
data[#data+1]=jg[j].address
end
end
if #data==0 then
gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))
gg.loadResults(recover)
return nil
end
if notWrite==true then
gg.loadResults(recover)
return data
end
if XGNR then
local write={}
for i=1,#data do
for j=1,#XGNR do
write[#write+1]={}
write[#write].address=data[i]+(XGNR[j][2]-base)
write[#write].flags=XGNR[j][3]
write[#write].value=XGNR[j][1]
write[#write].freeze=XGNR[j][4]
write[#write].name=XGNR[j][5] or nil
if write[#write].freeze==true then
gg.addListItems({[1]=write[#write]})
else
gg.setValues({[1]=write[#write]})
end
if XGNR[j][6]==true then
gg.addListItems({[1]=write[#write]})
end
end
end
end
if BCNR then
local bc={}
for j=1,#data do
for i=1,#BCNR do
bc[#bc+1]={}
bc[#bc].address=data[j]+(BCNR[i][1]-base)
bc[#bc].flags=BCNR[i][2]
bc[#bc].name=BCNR[i][3]
end
end
gg.addListItems(bc)
end
gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改成功")
gg.loadResults(recover)
end
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
function 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 gg.Hjkl(value) local GT=gg.getListItems() local t={} for i,v in pairs(GT) do if v.value==value then table.insert(t,v) end end gg.removeListItems(t) end
function hqmz(a) local b='' for i=1,999 do local c=gg.getValues({{address=a+(i-1)*1,flags=1}})[1].value if c==0 then break end b=b..string.char(c<0 and 256+c or c) end if b=='' then local b else return b end end
function ntrp(add,se,flags) gg.setValues({{address=add,flags=flags or 16,value=se}}) end
function nty(addr,flags) add=gg.getValues({{address=addr,flags=flags or 32}})[1].value return add end
function Get_Text(add) local b='' for i=1,999 do local c=gg.getValues({{address=add+(i-1)*1,flags=1}})[1].value if c==0 then break end b=b..string.char(c<0 and 256+c or c) end if b=='' then local b else return b end end
function Get_Addr(add,flags) return gg.getValues({{address=add or 0,flags=flags or 4}})[1].address end
function Get_Value(add,flags) return gg.getValues({{address=add or 0,flags=flags or 4}})[1].value end
function Search(read,Memory) gg.clearResults() gg.setVisible(false) gg.setRanges(Memory) gg.searchNumber(read[1],read[2]) if gg.getResultCount()==0 then gg.toast("开启失败") return false end end
function doAction(method) load(method .. "()")() end
--[so,基址,仿xs,改分数,搜全员,GT等配置]
function remove(value) local GT=gg.getListItems() local t={} for i,v in pairs(GT) do if v.value==value then table.insert(t,v) end end gg.removeListItems(t) end
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 nc_offset(addr, tablex, tt)
local sjyy= cnm[math.random(1,#cnm)]
local g=os.clock()
for i, v in ipairs(tablex) do
if v[4] == true then
gg.addListItems({{address = addr + v[3], flags = v[2], value = v[1], freeze = v[4]}})
else
gg.setValues({{address = addr + v[3], flags = v[2], value = v[1]}})
end
end
gg.toast((tt or "") .. "开启成功\n用时:"..os.clock()-g.."秒\n"..sjyy.."")
end
function getso(So_name)
return gg.getRangesList(So_name)[1].start
end
cnm={"-"}
function XGBase(Address,AFV)
local address=0
for index,offset in ipairs(Address)do
if index==1 then
address=offset
else
address=gg.getValues({{address=address+offset,flags=4}})[1].value
end
end
local Value,Freeze={},{}
for index,value in ipairs(AFV)do
local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true}
if value[4]then
Freeze[#Freeze+1]=VALUE
else
Value[#Value+1]=VALUE
end
end
gg.setValues(Value)
gg.addListItems(Freeze)
end
lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" 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 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
--Xe写法配置
function xe(name,offset,i) local re=gg.getRangesList(name) 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=32}}) 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]) if name then gg.toast((name or "") .. "开启成功") end end
--xs写法配置
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 readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.xynb(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false end end
function XGBase(Address,AFV)
local address=0
for index,offset in ipairs(Address)do
if index==1 then
address=offset
else
address=gg.getValues({{address=address+offset,flags=4}})[1].value
end
end
local Value,Freeze={},{}
for index,value in ipairs(AFV)do
local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true}
if value[4]then
Freeze[#Freeze+1]=VALUE
else
Value[#Value+1]=VALUE
end
end
gg.setValues(Value)
gg.addListItems(Freeze)
end
function gg.FMatrix(value) local GT=gg.getListItems() local t={} for i,v in pairs(GT) do if v.value==value then table.insert(t,v) end end gg.removeListItems(t)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 AppSearch(SSNR,XGNR,BCNR,notWrite)gg.clearResults()gg.setRanges(SSNR["M"])gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil))jg=gg.getResults(100000)local base=(SSNR[1]["offs"] or 0)local data={}if #jg==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={}if totonumber(to) then jg[num[i]].Useful=false end end end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end if notWrite==true then gg.loadResults(recover)return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={}write[#write].address=data[i]+(XGNR[j][2]-base)write[#write].flags=XGNR[j][3]write[#write].value=XGNR[j][1]write[#write].freeze=XGNR[j][4]write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]})else gg.setValues({[1]=write[#write]})end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]})end end end end if BCNR then local bc={}for j=1,#data do for i=1,#BCNR do bc[#bc+1]={} bc[#bc].address=data[j]+(BCNR[i][1]-base) bc[#bc].flags=BCNR[i][2]bc[#bc].name=BCNR[i][3]end end gg.addListItems(bc)end gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改成功") gg.loadResults(recover)end
function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end 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 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 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
local tarAddr = nil
local function readPtrF(name, off, idx)
local r = gg.getRangesList(name)
if not r or #r < (idx or 1) then return nil end
local x64 = gg.getTargetInfo().x64
local fl= x64 and gg.TYPE_QWORD or gg.TYPE_DWORD
local a = r[idx or 1].start + off[1]
for i = 2, #off do a = (gg.getValues({{address = a, flags = fl}})[1].value or 0) + off[i]
if not x64 then a = a & 0xFFFFFFFF end end
local v = gg.getValues({{address = a, flags = gg.TYPE_FLOAT}})[1]
return v and v.value or nil, a end
local function initTarAddr()
local _, addr = readPtrF("libunity.so", {467960,1300,1744,96,0,508}, 3)
if not addr then
gg.alert("指针读取失败,传送功能不可用!")
return false end
tarAddr = addr
return true end
function AtableQL()
if not initTarAddr() then return end
local menu = gg.choice({
"海盗海滩","小码头","石滩","驿站"}, nil, "CS-撤离专区_1.0\n请选择撤离地点.")
if not menu then return end
local t = {
[1] = {4.36959171295, 2.76959300041, 3.85591673851},
[2] = {4.41817140579, 2.90084719658, 4.07470703125},
[3] = {3.87122106552, 2.76728892326, 3.76815748215},
[4] = {3.87953042984, 3.08518266678, 4.13522005081}
}
local x,y,z = t[menu][1], t[menu][2], t[menu][3]
gg.setValues({
{address = tarAddr - 8, flags = 16, value = x},
{address = tarAddr, flags = 16, value = y},
{address = tarAddr + 8, flags = 16, value = z}
})
gg.alert("已传送到 "..({"海盗海滩","小码头","石滩","驿站"})[menu])
end
function AtableJZ()
if not initTarAddr() then return end
local menu = gg.choice({
"嘹望塔","海边小屋","遗迹","海盗船","南湾渔村","德库拉庄园","修道院","补给站","生活区","巨石迷阵",}, nil, "CS-建筑专区_1.0\n请选择建筑地点.")
if not menu then return end
local t = {
[1] = {4.28718519211, 3.08997035027, 4.10037946701},
[2] = {4.3541226387, 2.95413780212, 3.95152592659},
[3] = {4.23732614517, 3.01301431656, 3.94188213348},
[4] = {4.27038288116, 3.15148711205, 3.82700133324},
[5] = {4.1362657547, 3.00681781769, 3.76228475571},
[6] = {4.11525201797, 3.30795717239, 4.14562034607},
[7] = {3.93631839752, 3.28967499733, 4.03864622116},
[8] = {3.93007826805, 3.09906744957, 4.12051582336},
[9] = {3.98550510406, 2.99628257751, 3.91131687164},
[10] = {3.8873500824, 3.11442995071, 3.92616605759},
}
local x,y,z = t[menu][1], t[menu][2], t[menu][3]
gg.setValues({
{address = tarAddr - 8, flags = 16, value = x},
{address = tarAddr, flags = 16, value = y},
{address = tarAddr + 8, flags = 16, value = z}
})
gg.alert("已传送到 "..({"嘹望塔","海边小屋","遗迹","海盗船","南湾渔村","德库拉庄园","修道院","补给站","生活区","巨石迷阵"})[menu])
end
-- ==================== 迷你枪战/和平精英通用 内存&FPS监控工具(修复draw.color报错) ====================
local PerfTool = {
-- FPS变量
frameCount = 0,
lastTime = os.clock(),
fps = 0,
-- 内存GC变量
gcCheckTime = os.clock(),
gcInterval = 2.5, -- 每2.5秒自动完整回收一次内存
memWarnMB = 380, -- 内存超过380MB弹出警告并强制深度清理
}
-- KB转MB格式化
local function KB2MB(kb)
return string.format("%.2f", kb / 1024)
end
-- 深度全量垃圾回收(专治OOM溢出)
function PerfTool:DeepClearMem()
collectgarbage("setpause", 70)
collectgarbage("setstepmul", 220)
collectgarbage("collect")
for _ = 1, 15 do
collectgarbage("step", 300)
end
end
-- 更新帧率计算
function PerfTool:CalcFPS()
self.frameCount = self.frameCount + 1
local now = os.clock()
local delta = now - self.lastTime
if delta >= 1 then
self.fps = math.floor(self.frameCount / delta)
self.frameCount = 0
self.lastTime = now
end
end
-- 主循环更新:FPS + 自动GC + 内存检测
function PerfTool:LoopUpdate()
self:CalcFPS()
local now = os.clock()
if now - self.gcCheckTime >= self.gcInterval then
self:DeepClearMem()
self.gcCheckTime = now
end
local memKB = collectgarbage("count")
local memMB = tonumber(KB2MB(memKB))
if memMB >= self.memWarnMB then
toast("内存过高:"..memMB.."MB,正在深度清理!")
self:DeepClearMem()
end
return self.fps, memMB
end
-- 绘制悬浮文字【修复版:去掉draw.color,使用十六进制ARGB颜色】
function PerfTool:DrawPanel()
local fps, mem = self:LoopUpdate()
local x, y = 20, 30
-- 半透明黑色背景 0xAA000000 AA=透明度(00~FF) RRGGBB
local black_bg = 0x82000000
draw.rect_filled(x - 5, y - 5, x + 210, y + 65, black_bg)
-- 白色文字
local white = 0xFFFFFFFF
local textStr = string.format("FPS:%d | Lua内存:%.2fMB", fps, mem)
draw.text(x, y, textStr, white)
-- 浅蓝文字
local light_blue = 0xFFB4DCFF
draw.text(x, y + 32, "内存自动清理已开启", light_blue)
end
-- ==================== 使用示例 ====================
-- 放到你现有的while死循环内,每轮调用 PerfTool:DrawPanel()
-- while true do
-- PerfTool:DrawPanel()
-- -- 你的原有功能代码
-- mSleep(80)
-- 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('念迷你枪战', 200,200)
draw.setColor('#FFBC8ECD')
draw.setSize(55)draw.setStyle('描边并填充')
draw.text('念交流群:761781342', 200,300)
draw.setColor('#FFBC8ECD')
draw.setSize(55)draw.setStyle('描边并填充')
draw.text(os.date'登录时间:%m月%d日%H时%M分%S秒', 100,90)draw.setColor('#E3F9A7FF')
end
titlet="念全防"
stitle = "念工艺迷你枪战"
stab = {
--菜单名字,添加即可加页数,需要与结尾配置表对应
{"公告"},
{"防封"},
{"功能"},
{"传送"},
{"改枪"},
{"音乐"},
}
xfcpic = "https://tc.qqij.cn/view.php/61115f656e8aac2b1aed3bc9b1d7242b.png"
--悬浮窗链接或路径
---公告
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.text("更新内容","#A11322","20sp"),
changan.text("适配最新版本","#545454","10sp"),
changan.text("当前版本为1.0","#A11322","20sp"),
changan.text("作者:念 念开源项目 被念开源项目作者星巴克","#A11322","20sp"),
}, {
--2功能
changan.button("游戏进程",gg.setProcessX),
--changan.text("文字演示","#0077FF","20sp"),
--changan.text("文字演示文字演示文字演示","#545454","10sp")
changan.button("清理列表", function()
gg.clearResults()
gg.clearList()
end),
changan.button("退出脚本",function()
luajava.setFloatingWindowHide(false)
tuichu=1
end),
--changan.text("文字演示","#0077FF","20sp"),
--changan.text("文字演示文字演示文字演示","#545454","10sp")
changan.button(
"改渠道",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
local A = gg.prompt({"输入想修改区服编号1到40"},{10},{"number"})
gg.setValues({{address=so+0x28CA978, flags=4, value= "~A8 MOV X0, #"..A[1] },})--获取平台频道
gg.setValues({{address=so+0x28CA978+4, flags=4, value= "~A8 Ret"},})
end),
changan.button(
"功能效验",
function()
RW=gg.getRangesList('libunity.so')[2].start
So=gg.getRangesList('libtersafe2.so')[1].start
so=gg.getRangesList('libil2cpp.so')[2].start
SO=gg.getRangesList('libtprt.so')[1].start
--[[ protected virtual System.Boolean checkEnableValidTeleportCheck(); // 0x2A5DF90 // check 启用有效传送检查
protected virtual System.Boolean checkEnableSpeedCheatCheck(); // 0x2A5E068 // 检查启用速度作弊检查
protected virtual System.Boolean checkEnableInvalidFlyCheatCheck(); // 0x2A5E240 // 检查启用无效飞行作弊检查
public System.Boolean EnableValidTeleportCheck(System.Single graceFrame); // 0x2A5E3E8 // 启用有效传送检查
public virtual System.Boolean EnableSpeedCheatCheck(System.Single graceFrame); // 0x2A5E4BC // 启用速度作弊检查
public virtual System.Boolean EnableInvalidFlyCheatCheck(System.Single graceFrame); // 0x2A5E590 // 启用无效飞行作弊检查
public System.Boolean CheckAmmoUseUp(); // 0x24772C8 // 检查弹药消耗情
]]
gg.setValues({{address=SO+0x182b10, flags=4, value= "~A8 Ret"},})--
gg.setValues({{address=so+0x2A5DF90 , flags=4, value= "~A8 Ret"},})--check 启用有效传送检查
gg.setValues({{address=so+0x2A5E068, flags=4, value= "~A8 Ret"},})--检查启用速度作弊检查
gg.setValues({{address=so+0x2104E8C, flags=4, value= "~A8 Ret"},})--检查启用速度作弊检查
gg.setValues({{address=so+0x2A5E240, flags=4, value= "~A8 Ret"},})--检查启用无效飞行作弊检查
gg.setValues({{address=so+0x2A5E3E8, flags=4, value= "~A8 Ret"},})--启用有效传送检查
gg.setValues({{address=so+0x2A5E590, flags=4, value= "~A8 Ret"},})--启用无效飞行作弊检查
gg.setValues({{address=so+0x24772C8, flags=4, value= "~A8 Ret"},})--检查弹药消耗情况
gg.alert("检测数据捕捉成功!\n已写入目标模块内存...")
end),
changan.box({"过检配置",
changan.check({
{"过检配置1",
function()
RW=gg.getRangesList('libunity.so')[2].start
So=gg.getRangesList('libtersafe2.so')[1].start
so=gg.getRangesList('libil2cpp.so')[2].start
SO=gg.getRangesList('libtprt.so')[1].start
gg.setValues({{address=so+0x24E0C44 , flags=4, value= "~A8 Ret"},})--更新检查数据12
gg.setValues({{address=so+0x24E0C44 , flags=4, value= "~A8 Ret"},})--更新检查数据4
gg.setValues({{address=so+0x24E00E0 , flags=4, value= "~A8 Ret"},})--启动测试反作弊数据
gg.setValues({{address=so+0x3AED80C , flags=4, value= "~A8 Ret"},})--启动测试反作弊数据
gg.setValues({{address=so+0x3AED2F8 , flags=4, value= "~A8 Ret"},})--设置
gg.setValues({{address=so+0x24DFA20 , flags=4, value= "~A8 Ret"},})--设
gg.setValues({{address=so+0x258982C, flags=4, value= "~A8 Ret"},})--启用
gg.setValues({{address=so+0x24DFC04, flags=4, value= "~A8 Ret"},})--关于
gg.setValues({{address=so+0x3AED8B8, flags=4, value= "~A8 Ret"},})--关于
gg.setValues({{address=so+0x24DF428, flags=4, value= "~A8 Ret"},})--更新
gg.setValues({{address=so+0x24DEDEC, flags=4, value= "~A8 Ret"},})--初始化
gg.setValues({{address=so+0x3AEDB70, flags=4, value= "~A8 Ret"},})--初
gg.setValues({{address=so+0x25894DC, flags=4, value= "~A8 Ret"},})--tp2
gg.setValues({{address=so+0x3AEE9FC, flags=4, value= "~A8 Ret"},})--
gg.setValues({{address=so+0x3AEFBEC, flags=4, value= "~A8 Ret"},})--
gg.setValues({{address=so+0x3AEFFA4, flags=4, value= "~A8 Ret"},})--
gg.setValues({{address=so+0x3AEFC6C, flags=4, value= "~A8 Ret"},})
gg.setValues({{address=So+0x511820, flags=4, value= "~A8 Mov X0, #0x1"},})--sym.imp
gg.setValues({{address=So+0x511820+4, flags=4, value= "~A8 Ret"},})--sym.imp
gg.setValues({{address=So+0x511830, flags=4, value= "~A8 Ret"},})--sym.
gg.setValues({{address=So+0x5118D0, flags=4, value= "~A8 Ret"},})--sym.imp.
gg.setValues({{address=SO+0x182b28, flags=4, value= "~A8 B [PC,#0x0]"},})--迷枪自己模块
gg.alert("反作弊模块数据捕捉成功!\n已写入目标模块内存...")
end
},{
"过检配置2",
function()
--[[
]]
SO=gg.getRangesList('libtprt.so')[1].start
so=gg.getRangesList('libil2cpp.so')[2].start
So=gg.getRangesList('libtersafe2.so')[1].start
RW=gg.getRangesList('libunity.so')[2].start
gg.setValues({{address=So+0x5115A0, flags=4, value= "~A8 Ret"},})--tp2调用
gg.setValues({{address=so+0x3AEE9FC, flags=4, value= "~A8 Ret"},})-- 战斗更新
gg.setValues({{address=so+0x3AEFBEC, flags=4, value= "~A8 Ret"},})--调用内存作弊
gg.setValues({{address=so+0x3AEFFA4, flags=4, value= "~A8 Ret"},})--准时通话速度黑客
gg.setValues({{address=so+0x3AEFC6C, flags=4, value= "~A8 Ret"},})--检查内存作弊
gg.setValues({{address=So+0x511820, flags=4, value= "~A8 Mov X0, #0x1"},})--sym.imp.nanosleep
gg.setValues({{address=So+0x511820+4, flags=4, value= "~A8 Ret"},})--sym.imp.nanosleep
gg.setValues({{address=So+0x511830, flags=4, value= "~A8 Ret"},})--sym.imp.gettimeofday
gg.setValues({{address=So+0x5118D0, flags=4, value= "~A8 Ret"},})--sym.imp.time
gg.setValues({{address=SO+0x182b28, flags=4, value= "~A8 B [PC,#0x0]"},})--迷枪自己模块
gg.alert("反作弊模块数据捕捉成功!\n已写入目标模块内存...")
end
},
}),
}),
}, {
changan.text("功能区","#545454","10sp"),
changan.check({
{"准心强锁",
function()
--更新辅助目标
local addresses = {
{address=so+0x2A64DE0+0x538,flags=4,value=505933827 },--FMOV S3, #0x41F80000 540
{address=so+0x2A64DE0+0x53c,flags=4,value=506351620 },--FMOV S4, #0x3F900000 544
{address=so+0x2A64DE0+0x670,flags=4,value=505933827 },--FMOV S3, #0x41F80000 678
{address=so+0x2A64DE0+0x674,flags=4,value=506351620 },--FMOV S4, #0x3F900000 67C
}
gg.setValues(addresses)
end
},{
"人物遁地",
function()
F=gg.alert("选择遁地高度","半遁","️全遁️","恢复")
if F==1 then
so=gg.getRangesList('libil2cpp.so')[2].start
setvalue(so+0x1D1636C,4,470723203)
setvalue(so+0x1D338BC,16,1.2)
else
if F==2 then
so=gg.getRangesList('libil2cpp.so')[2].start
setvalue(so+0x1D1636C,4,470723203)
setvalue(so+0x1D338BC,16,2)
else
if F==3 then
so=gg.getRangesList('libil2cpp.so')[2].start
setvalue(so+0x1D1636C,4,506204163)
end end end end
},{
"刀具强化",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
local addresses={
{address=so+0x233c0d8,flags=4,value='~A8 B [PC,#0xC78] ' },--更新摇摆攻击循环调用造成伤害
}
gg.setValues(addresses)
end
},{
"人物调节",
function()
local App=gg.prompt({"修改的大小{推荐参数2.0}"},{[1]=""},{[1]="number"})[1]
so=gg.getRangesList('libil2cpp.so')[2].start
local addresses={
{address=so+0x2E42418,flags=4,value=471992704},
{address=so+0x2E86548,flags=16,value=App},}
gg.setValues(addresses)
end
},{
"人物跳高",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({
{address=so+0x1D15434,flags=4,value='~A8 LDR S3, [PC,#0x1E484] '},--第一次跳跃高度
{address=so+0x1D1ACE4,flags=4,value='~A8 LDR S3, [PC,#0x18BD4] '},--第二次跳跃高度
{address=so+0x1D338B8,flags=16,value=5},--指定数值
{address=so+0x1d1abb0,flags=4,value=-763363296},
{address=so+0x1d1abb0+4,flags=4,value=-698416192},--尝试超级跳跃
{address=so+0x1d14f1c,flags=4,value=-698416192},--跳跃次数限制
})
end
},{
"人物广角",
function()
local To=gg.prompt({"请输入修改数值!推荐180"},{[1]=""},{[1]="number"})[1]
so=gg.getRangesList('libunity.so')[2].start
setvalue(so+0x12E6C28,16,To)
end
},{
"视角无后",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
local addresses = {
{address=so+0x26B0B98,flags=4,value=-698416192 },--更新后坐力
{address=so+0x26B125C,flags=4,value=-698416192 },}--更新拍摄晃动
gg.setValues(addresses)
gg.toast("开启成功")
end
},{
"发射数量",
function()
so = gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({{address=so+0x1DA5214, flags=4, value="~A8 Ret"},})--报告武器射击
gg.setValues({{address=so+0x4D452EC, flags=4, value="~A8 MOV X0, #0x10"},})--获取射击子弹计数
gg.setValues({{address=so+0x4D452EC+4, flags=4, value="~A8 Ret"},})--获取射击子弹计数
end
},
{
"击杀播报",
function()
gg.setValues({
{address=so+0x1FFFF14+0x1f8,flags=4,value=1384120424},--武器槽武器击杀播报 最新杀戮信息1F8
})
end
},
{
"枪械等级",
function()
gg.setValues({
{address=so+0x2476AB0+0x88,flags=4,value=1384120424},--武器槽武器等级88 重置装备通用数据
})
end
},
{
"人物穿墙",
function()
gg.setValues({{address=RW+0x10C187C+500, flags=4, value= "~A8 NOP"},})
end,
function()
gg.setValues({{address=RW+0x10C187C+500, flags=4, value= "~A8 FMOV S4, #0x3F800000"},})
end
},
{
"坐标移动",
function()
--[[ public virtual System.Boolean CheckPlayerRoundStateCanMove(); // 0x1F1478C // 检查玩家回合状态是否可以移动
public virtual System.Boolean CheckPlayerRoundStateCanThrow(); // 0x1F148D8 // 检查玩家回合状态是否可以投掷
]]
gg.setValues({{address=so+0x1F1478C, flags=4, value= "~A8 MOV X0, #0x1"},})
gg.setValues({{address=so+0x1F1478C+4, flags=4, value= "~A8 Ret"},})--检查玩家回合状态是否可以移动
end
},
{
"子弹穿墙",
function()
so=gg.getRangesList('libunity.so')[2].start
local addresses={{address=so+0x1058A70,flags=4,value=-698416192},}--RET
gg.setValues(addresses)
end,
function()
so=gg.getRangesList('libunity.so')[2].start
local addresses={{address=so+0x1058A70,flags=4,value=-65138710},}--STR D10, [SP,#-0x20]!
gg.setValues(addresses)
end
},
{
"枪械据点",
function()
gg.setValues({
{address=so+0x26A9C80+0x8,flags=4,value="~A8 LDR S0, [PC,#0x2BDB4]" },--获取 Acc 范围基础8
{address=so+0x26A9C80+0x24,flags=4,value="~A8 LDR S0, [PC,#0x2BD98]" },--24 聚点
{address=so+0x26A9C80+0x40,flags=4,value="~A8 LDR S0, [PC,#0x2BD7C]" },--40
{address=so+0x26A9C80+0x5c,flags=4,value="~A8 LDR S0, [PC,#0x2BD60]" },--5C
{address=so+0x26A9C80+0x5c+0x2bd60,flags=16,value= -0.001 },--聚点值
})
end
}, {
"自瞄圈圈[平板]",
function()
draw.remove()
draw.text('', 695,388)
c=draw.circle(1280,800,500)draw.setColor('#FFBC8ECD')
so=gg.getRangesList('libil2cpp.so')[2].start
local addresses={
{address=so+0x2A64D94,flags=4,value=335544339},--每帧更新辅助逻辑
{address=so+0x2A65310,flags=4,value=469827298},
{address=so+0x2A65314,flags=4,value=469827297},
{address=so+0x2A65318,flags=4,value=469827299},
{address=so+0x2A6531C,flags=4,value=469827300},
{address=so+0x2A672EC,flags=16,value=1.25},--竖距
{address=so+0x2A672F0,flags=16,value=1.25},--竖偏
{address=so+0x2A672F4,flags=16,value=0.6},--竖力
{address=so+0x2A672F8,flags=16,value=0.6},--竖追
{address=so+0x2A65448,flags=4,value=469824930},
{address=so+0x2A6544C,flags=4,value=469824929},
{address=so+0x2A65450,flags=4,value=469824931},
{address=so+0x2A65454,flags=4,value=469824932},
{address=so+0x2A672FC,flags=16,value=1.25},--横距
{address=so+0x2A67300,flags=16,value=1.25},--横偏
{address=so+0x2A67304,flags=16,value=0.6},--横力
{address=so+0x2A67308,flags=16,value=0.6},--横追
}
gg.setValues(addresses)
end
}, {
"自瞄圈圈[手机]",
function()
draw.remove()
draw.text('', 695,388)
c=draw.circle(1170,540,500)draw.setColor('#FFBC8ECD')
so=gg.getRangesList('libil2cpp.so')[2].start
local addresses={
{address=so+0x2A64D94,flags=4,value=335544339},--每帧更新辅助逻辑
{address=so+0x2A65310,flags=4,value=469827298},
{address=so+0x2A65314,flags=4,value=469827297},
{address=so+0x2A65318,flags=4,value=469827299},
{address=so+0x2A6531C,flags=4,value=469827300},
{address=so+0x2A672EC,flags=16,value=1.25},--竖距
{address=so+0x2A672F0,flags=16,value=1.25},--竖偏
{address=so+0x2A672F4,flags=16,value=0.6},--竖力
{address=so+0x2A672F8,flags=16,value=0.6},--竖追
{address=so+0x2A65448,flags=4,value=469824930},
{address=so+0x2A6544C,flags=4,value=469824929},
{address=so+0x2A65450,flags=4,value=469824931},
{address=so+0x2A65454,flags=4,value=469824932},
{address=so+0x2A672FC,flags=16,value=1.25},--横距
{address=so+0x2A67300,flags=16,value=1.25},--横偏
{address=so+0x2A67304,flags=16,value=0.6},--横力
{address=so+0x2A67308,flags=16,value=0.6},--横追
}
gg.setValues(addresses)
end
},{
"人物加速",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({{address=so+0x3AEF52C , flags=4, value= "~A8 MOV X0, #0x1"},})
gg.setValues({{address=so+0x3AEF52C+4, flags=4, value= "~A8 Ret"},})--检测报告速度作弊
gg.setValues({{address=so+0x29298CC, flags=4, value= "~A8 FMOV S0, #0x41200000"},})--处理额外的攻击属性,获取移动速度0 刀
gg.setValues({{address=so+0x29298CC+4, flags=4, value= "~A8 Ret"},})--
gg.setValues({{address=so+0x26A76D4+0xA0, flags=4, value= "~A8 FMOV S10, #0x41200000"},})--获得暴击伤害率,获取移动速度A0 枪
end,
function()
gg.setValues({{address=so+0x26A76D4+0xA0, flags=4, value= "~A8 FMOV S10, #0x3F800000"},})--获得暴击伤害率,获取移动速度A0 枪
gg.setValues({{address=so+0x29298CC, flags=4, value= "~A8 FMOV S0, #0x3F800000"},})--处理额外的攻击属性,获取移动速度0 刀
gg.setValues({{address=so+0x29298CC+4, flags=4, value= "~A8 Ret"},})--
end
},{
"帧率优化",
function()
local Spp=gg.prompt({"输入修改帧率速率"},{[1]=""},{[1]="number"})[1]
So({"[测试]",-1970324836974532,32,32},{{59,-0x20,4},{3,-0x2C,4}},{{Spp,0,4,1},})
end
},{
"伤害倍率",
function()
gg.setValues({
{address=so+0x4D44FC8,flags=4,value=-1862135808 },-- 获得暴击伤害率
{address=so+0x4D4501C,flags=4,value=-1862135808 },--获取心脏损伤率
{address=so+0x4D45070,flags=4,value=-1862135808 },--获取身体伤害率
{address=so+0x4D450C4,flags=4,value=-1862135808 },--获得肢体损伤率
})
end
},{
"屏幕遮挡",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
setvalue(so+0x4a2ce0c,4,-698416192)--RET
end,
function()
so=gg.getRangesList('libil2cpp.so')[2].start
setvalue(so+0x4a2ce0c,4,-1447145484 )--STP X20, X19, [SP,#-0x20]!
end
},{
"人物漂浮",
function()
setvalue(so+0x1D16324+0x48,4,"~A8 LDR S3, [PC,#0x49B08]")
setvalue(so+0x1D16324+0x48+0x1D15B20,16,2)
end,
function()
setvalue(so+0x1D16324+0x48,4,506204163)end
},{
"贴墙透视",
function()
function LSQ_pointer(search, write)
if search[5] or search[6] then
local region_start = search[5]
local region_end = search[6]
else
local region_start = 0
local region_end = -1
end
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end)
gg.refineNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end)--优化搜索的数据
if gg.getResultsCount() == 0 then
gg.toast("没有搜索到指针数据")
return false
else
local result = gg.getResults(gg.getResultsCount())--获取搜索到的所有数据
gg.clearResults()
for i = 2, #search do--遍历副特征码数据
local offset_array = {}--存放偏移数组的表
for k, v in ipairs(result) do
offset_array[#offset_array + 1] = {
["address"] = v["address"] + search[i][2],--把所有搜索出来的结果, 加上偏移量
["flags"] = search[i][3]
}
end
offset_array = gg.getValues(offset_array)--获取所有副特征数据
local verify_array = {}--验证数组表
for k, v in ipairs(offset_array) do--遍历偏移后的数据
if v["value"] == search[i][1] then--如果值等于主特征
verify_array[#verify_array + 1] = result[k]
end
end
result = verify_array
end
if #result > 0 then
local Table = {
{},
{}
}
for k, v in ipairs(result) do
for kk, vv in ipairs(write) do
-- print(string.format("0x%X", v["address"] + vv[2]))
local Modifythe_array = {
["address"] = v["address"] + vv[2],
["flags"] = vv[3],
["value"] = vv[1],
["freeze"] = vv[4]
}
if vv[4] then
Table[2][#Table[2] + 1] = Modifythe_array
else
Table[1][#Table[1] + 1] = Modifythe_array
end
end
end
gg.addListItems(Table[2])
gg.setValues(Table[1])
gg.toast("功能[贴墙透视]开启成功, 共修改" .. #Table .. "个值。")
else
gg.toast("未找到偏移数据")
end
end
end
local Search_array = {
{3000, 16, 32, "贴墙透视"},
{5, -8, 16}
}
local Modifythe_array = {
{2, -4, 16, false}
}
LSQ_pointer(Search_array, Modifythe_array)
end,
function()
gg.alert("该功能无法关闭")
end
},{
"近战范围",
function()
gg.clearResults()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber('0.6',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber('',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.getResults(100)
gg.editAll('9999999',gg.TYPE_FLOAT)
end
},{
"人物范围",
function()
if gg.getRangesList("libunity.so")[1] then
local t = {}
t[1] = gg.getRangesList("libunity.so")[1]["start"] + 0x1385710; -- 数值地址:0x7BD0C14710
t[2] = gg.getRangesList("libunity.so")[1]["start"] + 0x1385714; -- 数值地址:0x7BD0C14714
k=gg.prompt({'输入修改范围大小\n每局必须关闭(要不然掉虚空)'},{99},{'number'})
gg.setValues({
[1] = {
address = t[1],
flags = 16,
value = k[1],
},
[2] = {
address = t[2],
flags = 16,
value = k[1],
},
})
end
end
},{
"火灾燃烧",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
--[[
private System.Void HideDamageAreaTip(); // 0x23BF818 // 隐藏损坏区域提示
private System.Void UpdateEffectTime(); // 0x23BF9C4 // 更新生效时间
private System.Void BeginFireDamage(); // 0x23C0450 // 开始火灾损害
public System.Void DestroyByServer(System.Boolean force); // 0x23C0650 // 由服务器销毁
public System.Boolean CheckNeedSync(); // 0x23C13B4 // 检查是否需要同步
]]
gg.setValues({{address=so+0x23BF818, flags=4, value= "~A8 Ret"},})--隐藏损坏区域提示
gg.setValues({{address=so+0x23BF9C4, flags=4, value= "~A8 MOV X0, #0x1 "},})--更新生效时间
gg.setValues({{address=so+0x23BF9C4+4, flags=4, value= "~A8 Ret"},})
gg.setValues({{address=so+0x23C0450, flags=4, value= "~A8 MOV W0, #0x1"},})--开始火灾损害
gg.setValues({{address=so+0x23C0450+0x4, flags=4, value= "~A8 Ret"},})
gg.setValues({{address=so+0x23C0650, flags=4, value= "~A8 Ret"},})--由服务器销毁
gg.setValues({{address=so+0x23C13B4, flags=4, value= "~A8 ORR W0, WZR, #0x1"},})--检查是否需要同步
gg.setValues({{address=so+0x23C13B4+0x4, flags=4, value= "~A8 Ret"},})
end
},{
"无限子弹",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({
{address=so+0x24773DC,flags=4,value=-763363296 },-- 检查是否有无限弹药
{address=so+0x24773DC+0x4,flags=4,value=-698416192 },--
{address=so+0x2477464,flags=4,value=-763363296 },--检查是否有无限后备弹药
{address=so+0x2477464+0x4,flags=4,value=-698416192 },
{address=so+0x26AD5F4,flags=4,value=-698416192 }})--成本枪弹药
end
},{
"武器射速",
function()
so=gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({
{address=so+0x26A8088,flags=4,value=469762112 },--获取重新加载类型+获取使用阈值0
{address=so+0x26A8088+0x4,flags=4,value=-698416192 },
})
end
},{
"原地复活",
function()
gg.setValues({{address=so+0x21C1C98, flags=4, value= "~A8 Ret"},})--服务器网络
gg.setValues({{address=so+0x21C1E80, flags=4, value= "~A8 Ret"},})--服务器飞天
end
},{
"增高伤害",
function()
gg.setValues({
{address=so+0x4D44FC8,flags=4,value="~A8 Ret" },-- 获得暴击伤害率
{address=so+0x4D4501C,flags=4,value="~A8 Ret" },--获取心脏损伤率
{address=so+0x4D45070,flags=4,value="~A8 Ret" },--获取身体伤害率
{address=so+0x4D450C4,flags=4,value="~A8 Ret" },--获得肢体损伤率
})
end
},{
"无限备弹",
function()
local setvalue=function(a,f,v)
gg.setValues({{
address=a,
flags=f,
value=v,
}})
end
So=gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({{address=So+0x26AC26C, flags=4, value= "~A8 MOV X0, #0x99"},})
gg.setValues({{address=So+0x26AC26C+4, flags=4, value= "~A8 Ret"},})
end
},
}),
},
{--第四页
changan.text("人物传送"),
changan.box({"夺金配置",
changan.check({
{"夺金传送",
function()
local sel = gg.choice({
"撤离地点",
"建筑地点"
}, nil, "CS-地图传送_1.0\n请选择目标传送.")
if sel == 1 then AtableQL()
elseif sel == 2 then AtableJZ()
end
end
},
}),
}),
changan.box({"排位配置",
changan.check({
{'爆破传送',
function()
--写法配置
local 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
original_values = {}
local function gg_edits(addr, Table)
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
local original = gg.getValues({value})[1].value
original_values[#original_values + 1] = original
end
if #Table1[2] > 0 then
gg.addListItems(Table1[2])
end
if #Table1[1] > 0 then
gg.addListItems(Table1[1])
gg.setValues(Table1[1])
end
return original_values[1]
end
local tarAddr = nil
local function initTarAddr()
if tarAddr then return true end
local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 3)
if not addr then
gg.toast("❌ 指针读取失败\n请确认阵营传送可用后再试")
tarAddr = nil
return false
end
local test = gg.getValues({{address = addr, flags = 16}})[1]
if not test or test.value == nil then
gg.toast("❌ 坐标地址不可写/非F类型")
tarAddr = nil
return false
end
tarAddr = addr
return true
end
local function getCoords(x, y, z)
return x or 0, y or 0, z or 0
end
if not initTarAddr() then return end
local maps = {"迷你乐园", "糖果工厂", "美食小镇", "要塞危机", "糖果梦工厂"}
local mapMenu = gg.choice(maps, nil, "CS-爆破守卫专区_1.0\n请选择地图")
if not mapMenu then return end
local points = {"爆破方家", "守卫方家", "A点", "B点"}
local pointMenu = gg.choice(points, nil, "当前地图:" .. maps[mapMenu] .. "\n请选择传送点位")
if not pointMenu then return end
local coordsConfig = {
[1] = {[1]={2.73379135132,-1.69596648216,-3.17464733124},[2]={-2.90078115463,2.16999864578,3.109375},[3]={2.8311984539,2.36937403679,3.00337934494},[4]={-3.12573432922,2.29751348495,-2.72689795494}},
[2] = {[1]={-2.48222708702,1.98875308037,-3.19597649574},[2]={2.53079724312,2.35635590553,2.94259929657},[3]={2.8311984539,2.36937403679,3.00337934494},[4]={-3.25771450996,2.17624926567,2.53557300568}},
[3] = {[1]={2.83972620964,1.85665154457,-3.20818805695},[2]={-2.97621440887,-1.98951852322,3.08303022385},[3]={-3.1112446785,1.89082658291,-2.60583162308},[4]={3.01340222359,1.89082634449,3.22609496117}},
[4] = {[1]={-3.10832738876,1.95440220833,1.79469203949},[2]={3.19644904137,1.95440220833,-2.52469778061},[3]={2.86683082581,2.14764428139,-3.0816078186},[4]={2.79981446266,2.09624004364,3.04907464981}},
[5] = {[1]={2.75312495232,1.92698228359,-3.15625},[2]={-2.54592776299,2.10783934593,3.16895246506},[3]={-2.359375,1.91847479343,2.35312461853},[4]={2.82499980927,-2.51362872124,2.18124985695}}
}
local x, y, z = getCoords(coordsConfig[mapMenu][pointMenu][1], coordsConfig[mapMenu][pointMenu][2], coordsConfig[mapMenu][pointMenu][3])
gg.setValues({
{address = tarAddr, flags = 16, value = x},
{address = tarAddr + 8, flags = 16, value = y},
{address = tarAddr + 16,flags = 16, value = z}
})
gg.toast("✅ 已传送到\n" .. maps[mapMenu] .. "-" .. points[pointMenu])
end
},{
'枪战传送',
function()
--写法配置
local 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
original_values = {}
local function gg_edits(addr, Table)
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
local original = gg.getValues({value})[1].value
original_values[#original_values + 1] = original
end
if #Table1[2] > 0 then
gg.addListItems(Table1[2])
end
if #Table1[1] > 0 then
gg.addListItems(Table1[1])
gg.setValues(Table1[1])
end
return original_values[1]
end
local tarAddr = nil
local function initTarAddr()
if tarAddr then return true end
local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 3)
if not addr then
gg.toast("❌ 指针读取失败\n请确认阵营传送可用后再试")
tarAddr = nil
return false
end
local test = gg.getValues({{address = addr, flags = 16}})[1]
if not test or test.value == nil then
gg.toast("❌ 坐标地址不可写/非F类型")
tarAddr = nil
return false
end
tarAddr = addr
return true
end
local function getCoords(x, y, z)
return x or 0, y or 0, z or 0
end
if not initTarAddr() then return end
local original = gg_edits(tarAddr, {{0, 16, 16, false}})
gg_edits(tarAddr, {{-original, 16, 16, false}})
gg.toast("✅ 枪战传送成功")
end
},
}),
}),
changan.box({"野人配置",
changan.check({
{'野人传送',
function()
if not initTarAddr() then return end
local subMaps = {"积木城堡", "熔岩之城"}
local subMenu = gg.choice(subMaps, nil, "CS-野人追击专区_1.0\n请选择子地图")
if not subMenu then return end
local jimuLocks = {"锁位1", "锁位2", "锁位3", "锁位4", "锁位5"}
local jimuCoords = {
[1] = {3.3011598587, 2.83288931847, -1.57588434219},
[2] = {3.43775200844, 3.00085926056, 3.3043513298},
[3] = {2.61826634407, 2.98312354088, 3.73197817802},
[4] = {3.62462353706, 3.32209920883, 3.82421445847},
[5] = {3.62659740448, 3.46982979774, 3.91453289986}
}
local rongyanLocks = {"锁位1", "锁位2", "锁位3"}
local rongyanCoords = {
[1] = {-2.59880018234, 2.54526543617, 2.64184689522},
[2] = {-2.78865265846, 2.47368121147, -2.66273236275},
[3] = {3.2704911232, 1.95594835281, -2.84927582741}
}
if subMenu == 1 then
local lockMenu = gg.choice(jimuLocks, nil, "当前地图:积木城堡\n请选择锁位")
if not lockMenu then return end
local x, y, z = getCoords(jimuCoords[lockMenu][1], jimuCoords[lockMenu][2], jimuCoords[lockMenu][3])
gg_edits(tarAddr, {{x, 16, 0, false}, {y, 16, 8, false}, {z, 16, 16, false}})
gg.toast("✅ 已传送到\n野人追击-积木城堡-" .. jimuLocks[lockMenu])
elseif subMenu == 2 then
local lockMenu = gg.choice(rongyanLocks, nil, "当前地图:熔岩之城\n请选择锁位")
if not lockMenu then return end
local x, y, z = getCoords(rongyanCoords[lockMenu][1], rongyanCoords[lockMenu][2], rongyanCoords[lockMenu][3])
gg_edits(tarAddr, {{x, 16, 0, false}, {y, 16, 8, false}, {z, 16, 16, false}})
gg.toast("✅ 已传送到\n野人追击-熔岩之城-" .. rongyanLocks[lockMenu])
end
end
},
}),
}),
changan.box({"特训配置",
changan.check({
{'红酒庄园',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{553.93969726562, "-52", "16", true}, {30.56897926331, "-48", "16", true}, {39.00396728516, "-44", "16", true}}, "红酒庄园")
gg.sleep(1000)
gg.clearList()
end
},{
'特训营地',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{682.439453125, "-52", "16", true}, {10.11852645874, "-48", "16", true}, {118.90930938721, "-44", "16", true}}, "特训营地")
gg.sleep(1000)
gg.clearList()
end
},{
'迷萌城',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{586.91583251953, "-52", "16", true}, {22.31999206543, "-48", "16", true}, {201.96411132812, "-44", "16", true}}, "迷萌城")
gg.sleep(1000)
gg.clearList()
end
},{
'迷斯拉家',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{143.06602478027, "-52", "16", true}, {27.07734107971, "-48", "16", true}, {509.43130493164, "-44", "16", true}}, "迷斯拉家")
gg.sleep(1000)
gg.clearList()
end
},{
'彩虹村',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{571.47497558594, "-52", "16", true}, {6.16745185852, "-48", "16", true}, {-212.34643554688, "-44", "16", true}}, "彩虹村")
gg.sleep(1000)
gg.clearList()
end
},{
'临海度假村',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{297.43048095703, "-52", "16", true}, {4.0851726532, "-48", "16", true}, {-557.66760253906, "-44", "16", true}}, "临海度假村")
gg.sleep(500)
gg.clearList()
end
},{
'农庄',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{333.877929296875, "-52", "16", true}, {29.3369102478, "-48", "16", true}, {-437.80825805664, "-44", "16", true}}, "农庄")
gg.sleep(1000)
gg.clearList()
end
},{
'奇迹农场',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{72.54173278809, "-52", "16", true}, {85.63531494141, "-48", "16", true}, {-207.86128234863, "-44", "16", true}}, "奇迹农场")
gg.sleep(1000)
gg.clearList()
end
},{
'豪宅',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-268.08624267578, "-52", "16", true}, {70.92770385742, "-48", "16", true}, {0.00424734876, "-44", "16", true}}, "豪宅")
gg.sleep(1000)
gg.clearList()
end
},{
'游乐场',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-550.76458740234, "-52", "16", true}, {9.96378326416, "-48", "16", true}, {91.62003326416, "-44", "16", true}}, "游乐场")
gg.sleep(1000)
gg.clearList()
end
},{
'侧宅',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-409.32632446289, "-52", "16", true}, {39.15836334229, "-48", "16", true}, {-18.26758766174, "-44", "16", true}}, "侧宅")
gg.sleep(1000)
gg.clearList()
end
},{
'荒郊野岭',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-381.02502441406, "-52", "16", true}, {23.66709327698, "-48", "16", true}, {336.93969726562, "-44", "16", true}}, "荒郊野岭")
gg.sleep(500)
gg.clearList()
end
},{
'渔村',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{78.35810852051, "-52", "16", true}, {0.93331086636, "-48", "16", true}, {102.69964599609, "-44", "16", true}}, "渔村")
gg.sleep(500)
gg.clearList()
end
},{
'图书馆',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-231.34950256348, "-52", "16", true}, {33.63820266724, "-48", "16", true}, {505.78353881836, "-44", "16", true}}, "图书馆")
gg.sleep(500)
gg.clearList()
end
},{
'沿海大街',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-685.77874755859, "-52", "16", true}, {5.68000888824, "-48", "16", true}, {-193.04058837891, "-44", "16", true}}, "沿海大街")
gg.sleep(500)
gg.clearList()
end
},{
'天堂度假村',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-518.03118896484, "-52", "16", true}, {2.74814414978, "-48", "16", true}, {-589.37548828125, "-44", "16", true}}, "天堂度假村")
gg.sleep(500)
gg.clearList()
end
},{
'港口',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-25.8015460968, "-52", "16", true}, {2.40109705925, "-48", "16", true}, {-559.55596923828, "-44", "16", true}}, "港口")
gg.sleep(500)
gg.clearList()
end
},{
'遗迹',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-669.90258789062, "-52", "16", true}, {33.44501495361, "-48", "16", true}, {481.70944213867, "-44", "16", true}}, "遗迹")
gg.sleep(500)
gg.clearList()
end
},{
'温泉酒店',
function()
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 fastsearch(search, write)
gg.setVisible(false)
gg.clearResults()
gg.setRanges(search[1][3])
gg.searchNumber(search[1][1], search[1][2])
if gg.getResultsCount() == 0 then
gg.toast("定位失败,是否已选择迷你枪战精英进程")
return false
else
local result = gg.getResults(gg.getResultsCount())
gg.clearResults()
for i = 2, #search do
local mtp = {}
for w, r in ipairs(result) do
mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
end
mtp = gg.getValues(mtp)
local hook = {}
for w, r in ipairs(mtp) do
if r.value == search[i][1] then
hook[#hook + 1] = result[w]
end
end
result = hook
end
if #result > 0 then
local tb = {{}, {}}
for i, v in ipairs(result) do
--- 遍历每个结果
for _, vv in ipairs(write) do
local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
if vv[4] then --- true 就是冻结
table.insert(tb[2], p)
else
table.insert(tb[1], p)
end
end
end
gg.addListItems(tb[2])
gg.setValues(tb[1])
gg.toast("传送成功")
else
gg.toast("定位失败,是否已选择迷你枪战精英进程")
end
end
end
fastsearch({{"1067702026", "4", "32"}, {"1.0", "-12", "16"}, {"1.0", "-16", "16"}, {"1.0", "-20", "16"}}, {{-327.36645507812, "-52", "16", true}, {13.47700119019, "-48", "16", true}, {-230.36360168457, "-44", "16", true}}, "温泉酒店")
gg.sleep(500)
gg.clearList()
end
},
}),
}),
}, {
changan.box({"改物",
changan.check({
{"自定义改枪",
function()
local t = gg.prompt({"→输入修改武器id←"},{[1]=""},{[1]="number"})
io.open("/sdcard/.手雷改物","w+"):write(t[1])
gg.clearResults()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4, false, gg.SIGN_EQUAL, 0, -1)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4, false, gg.SIGN_EQUAL, 0, -1)
jg=gg.getResults(230)
sl=gg.getResultCount()
if sl>230 then sl=230 end
for i = 1, sl do
dzy=jg[i].address
gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = t[1]}})
end
gg.toast('\n手雷改物开启成功\n修改了['..sl..']条数据')
gg.clearResults()
end,
function()
am=io.open("/sdcard/.手雷改物","r"):read("*a")
gg.clearResults()
gg.setRanges(32)
gg.searchNumber(am, 4, false, gg.SIGN_EQUAL, 0, -1)
gg.searchNumber(am, 4, false, gg.SIGN_EQUAL, 0, -1)
jg=gg.getResults(230)
sl=gg.getResultCount()
if sl>230 then sl=230 end
for i = 1, sl do
dzy=jg[i].address
gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 10401001}})
end
gg.toast('\n手雷改物关闭成功\n修改了['..sl..']条数据')
gg.clearResults()
end
},{
"查询枪码",
function()
gg.alert([[武器名称=SCAR
…………………………………
10101001 SCAR
10101002 SCAR-调查局
10101003 SCAR-机械降神
10101004 SCAR-疾电
10101005 SCAR-玄武
10101006 SCAR-奇幻冒险
10101007 SCAR-涂鸦乐园
10101008 SCAR-小憩时光
10101009 SCAR-荣耀
1010100001 SCAR-黑天鹅
1010100002 SCAR-未来蛇影
1010100003 SCAR-浮世枫庭
…………………………………
武器名称=AK47
…………………………………
10101011 AK47
10101012 AK-调查局
10101013 AK47-绿野仙踪
10101014 AK47-法老
10101015 AK47-积木狂鲨
10101016 AK47-核弹危机
10101017 AK47-捣蛋鬼
10101018 AK47-原恒星
10101019 AK47-荣耀
1010101001 AK47-原子风暴
1010101002 AK47-萝卜枪
1010101003 AK47-白虎
1010101004 AK47-绝命天启
1010101005 AK47-萌龙特攻队
1010101006 AK47-白羊座
1010101007 AK47-关羽·青龙偃月
1010101008 AK47-蓐收
1010101009 AK47-荣誉英雄
1010101010 AK47-火尖枪
1010101011 AK47-代码:MINI
1010101012 AK47-陆地领主
1010101013 AK47-千机鸿影
1010101014 AK47-飞天·霓裳舞
1010101015 AK47-帝皇侠
…………………………………
武器名称=M4
…………………………………
10101021 M4
10101022 M4-调查局
10101023 M4-危险分子
10101024 M4-捣蛋鬼
10101025 M4-积木巨鳄
10101026 M4-龙舟
10101027 M4-机械降神
10101028 M4-原子风暴
10101029 M4-荣耀
1010102001 M4-原恒星
1010102002 M4-疾电
1010102003 M4-青龙
1010102004 M4-奇幻冒险
1010102005 M4-赵云·龙胆亮银
1010102006 M4-萌动出击
1010102007 M4-代码MINI
1010102008 M4-齐天大圣
1010102009 M4-祝融
1010102010 M4-命运之轮
1010102011 M4-青瓷浮梦
1010102012 M4-绮梦幻旅
1010102013 M4-周瑜·焚天琴策
…………………………………
武器名称=AUG
…………………………………
10101031 AUG
10101032 AUG-调查局
10101033 AUG-来打我鸭
10101034 AUG-急速音符
10101035 AUG-荣耀
10101036 AUG-龙舟
10101037 AUG-原子风暴
10101038 AUG-龙行天下
10101039 AUG-双子座
1010103001 AUG-枪神
1010103002 AUG-电玩国度
1010103003 AUG-仙缘禄临
…………………………………
武器名称=Groza
…………………………………
10101041 Groza
10101042 Groza-舞狮-龙腾虎跃
10101043 Groza-舞狮-腾飞云霄
10101044 Groza-舞狮-繁花夜舞
10101045 Groza-舞狮-浮光跃金
10101046 Groza-萌动出击
10101047 Groza-荣耀
10101048 Groza-幻彩灵驹
…………………………………
武器名称=M762
…………………………………
10101051 M762
10101052 M762-旗开得胜
10101053 M762-荣耀
10101054 M762-疾电
10101055 M762-枪神
10101056 M762-奇幻冒险
10101057 M762-牧野寻芳
10101058 M762-雪地迷彩
10101059 M762-玉面玄狐
1010105001 M762-浮世枫庭
1010105002 M762-仙缘禄临
…………………………………
武器名称=QBZ95
…………………………………
10101060 QBZ-旅行者
10101061 QBZ
10101062 QBZ-爆裂
10101063 QBZ-荣耀
10101064 QBZ-疾电
10101065 QBZ-张飞·丈八蛇矛
10101066 QBZ-冰原射手
10101067 QBZ-朱雀
10101068 QBZ-雪地迷彩
10101069 QBZ-代码:MINI
1010106001 QBZ-饕餮盛宴
1010106002 QBZ-水瓶座
1010106003 QBZ-墨雨青莲
…………………………………
武器名称=M16
…………………………………
10101070 M16
10101071 M16-和平使者
10101072 M16-钢铁之心
10101073 M16-荣耀
10101074 M16-枪神
10101075 M16-嘷月之王
10101076 M16-喵星狂想
10101077 M16-圣夜礼赞
…………………………………
武器名称=AK15
…………………………………
10101080 AK15
10101081 AK15-荣耀
10101082 AK15-原子风暴
10101083 AK15-糖果屋
10101084 AK15-句芒
10101085 AK15-雪地迷彩
10101086 AK15-蓐收
10101087 AK15-茉莉
…………………………………
武器名称=SG516
…………………………………
10101090 SG516
10101091 SG516-荣耀
10101092 SG516-疾电
10101093 SG516-绝命天启
10101094 SG516-祝融
10101095 SG516-兔兔茶话会
…………………………………
武器名称=ASVal
…………………………………
10101100 巨浪
10101101 巨浪-光棱-冰晶风暴
10101102 巨浪-光棱-红莲狂舞
10101103 巨浪-光棱-暮色猎影
10101104 巨浪-光棱-破晓晨星
10101105 巨浪-句芒
10101106 巨浪-大灰狼
10101107 巨浪-诸王圣启
10101108 巨浪-鹤唳青霄
…………………………………
武器名称=FAMAS
…………………………………
10101200 Famas
10101201 Famas-夏日作战
10101202 Famas-雪地迷彩
10101203 Famas-纸质雕刻
10101204 Famas-凛冬星冠
…………………………………
武器名称=G36
…………………………………
10101300 G36
10101301 G36-天蓬元帅
10101302 G36-旅行者
…………………………………
武器名称=AN94
…………………………………
10101400 AN94
10101401 AN94-假面舞会
10101402 AN94-玄冥
10101403 AN94-百变脸谱
…………………………………
武器名称=FNFAL
…………………………………
10101501 FNFAL-玄冥
10101502 FNFAL-救世之主
…………………………………
武器名称=ASh12
…………………………………
10101601 ASh12-青瓷浮梦
10101602 ASh12-守护者
…………………………………
武器名称=QBZ191
…………………………………
10101701 QBZ191-马超·虎头湛金
10101702 QBZ191-鹤唳青霄
…………………………………
武器名称=F2000
…………………………………
10101801 F2000-沙海灯谕
…………………………………
武器名称=SKS
…………………………………
10102001 SKS
10102002 SKS-调查局
10102003 SKS-紫目
10102004 SKS-红皇后
10102005 SKS-猎手
10102006 SKS-代码MINI
10102009 SKS-荣耀
10102010 SKS-魔术师
1010201001 SKS-萌动出击
…………………………………
武器名称=MK12
…………………………………
10102011 MK12
10102012 MK12-调查局
10102013 MK12-年年有鱼
10102014 MK12-裁决之眼
10102015 MK12-冰原射手
10102016 MK12-巨蟹座
10102019 MK12-荣耀
…………………………………
武器名称=MINI14
…………………………………
10102021 MINI14
10102022 MINl14-青瓷浮梦
武器名称=MK14
…………………………………
10102031 MK14
10102032 MK14-熔岩怒吼
10102033 MK14-暴走甜心
…………………………………
武器名称=QBU
…………………………………
10102040 QBU
10102041 QBU-二郎神
…………………………………
武器名称=M24
…………………………………
10103000 M24-守护者
10103001 M24
10103002 M24-调查局
10103003 M24-食人鱼
10103004 M24-信条
10103005 M24-星之翼
10103006 M24-爆裂
10103007 M24-奇幻冒险
10103008 M24-祝融
10103009 M24-荣耀
…………………………………
武器名称=巴雷特
…………………………………
10103011 巴雷特
10103012 巴雷特-调查局
10103013 巴雷特-炽热节拍
10103014 巴雷特-奇幻冒险
10103015 巴雷特-深海主宰
10103016 巴雷特-句芒
10103017 巴雷特-金蝉子
10103018 巴雷特-假面舞会
10103019 巴雷特-荣耀
1010301001 巴雷特-喵星狂想
…………………………………
武器名称=Kar98k
…………………………………
10103021 Kar98k
10103022 Kar98k-积木萌龙
10103023 Kar98k-荣耀
10103024 Kar98k-原子风暴
10103025 Kar98k-奇幻冒险
10103026 Kar98k-暴风骤雨
10103027 Kar98k-荣誉英雄
10103028 Kar98k-雪地迷彩
…………………………………
武器名称=AMR
…………………………………
10103031 AMR
10103032 AMR-星舰-曙光
10103033 AMR-星舰-云环
10103034 AMR-星舰-白宇
10103035 AMR-星舰-极光
10103036 AMR-萌龙特攻队
10103037 AMR-雪地迷彩
10103038 AMR-浮世枫庭
…………………………………
武器名称=AWM
…………………………………
10103040 AWM
10103041 AWM-急速音符
10103042 AWM-机甲
10103043 AWM-夜鹰
10103044 AWM-荣耀
10103045 AWM-绝命天启
10103046 AWM-天秤座
10103047 AWM-代码:MINI
10103048 AWM-玄冥
10103049 AWM-墨雨青莲
…………………………………
武器名称=SVD
…………………………………
10103050 SVD
10103051 SVD-小憩时光
10103052 SVD-铁血蔷薇
10103053 SVD-代码:MlNl
10103054 SVD-烛影摇金
…………………………………
武器名称=M200
…………………………………
10103060 M200
10103061 M200-夏日作战
10103062 M200-旅行者
10103063 M200-苍穹使者
…………………………………
武器名称=磁轨狙
…………………………………
10103071 磁轨狙-歼星者
10103072 磁轨狙-仙缘禄临
…………………………………
武器名称=M249
…………………………………
10104001 M249
10104002 M249-调查局
10104003 M249-爆震
10104004 M249-信条
10104005 M249-急速音符
10104006 M249-野人猎手
10104007 M249-机械降神
10104008 M249-大力神
10104009 M249-荣耀
1010400001 M249-猎手
1010400002 M249-鹤唳青霄
…………………………………
武器名称=DP28
…………………………………
10104010 DP28
10104011 DP28-二哈
10104012 DP28-沧龙
10104013 DP28-锯刃出鞘
10104014 DP28-荣耀
10104015 DP28-萝卜枪
10104016 DP28-猎手
10104017 DP28-蓐收
10104018 DP28-代码:MINI
…………………………………
武器名称=MG34
…………………………………
10104020 MG34
10104021 MG34-奥丁神枪
10104022 MG34-涂鸦乐园
10104023 MG34-句芒
10104024 MG34-夏日作战
10104025 MG34-暴走甜心
10104026 MG34-飞天·霓裳舞
…………………………………
武器名称=RPK
…………………………………
10104030 RPK
10104031 RPK-萌龙特攻队
10104032 RPK-小憩时光
10104033 RPK-怒海狂徒
…………………………………
武器名称=M60
…………………………………
10104040 M60
10104041 M60-卷帘大将
10104042 M60-旅行者
10104043 M60-电幻之音
…………………………………
武器名称=MP5
…………………………………
10105001 MP5
10105002 MP5-调查局
10105003 MP5-机甲
10105004 MP5-多彩小熊
10105005 MP5-泡泡鲤
10105006 MP5-爆裂
10105007 MP5-疾电
10105008 MP5-奇幻冒险
10105009 MP5-荣耀
1010501001 MP5-太白金星
1010501003 MP5-机械生肖·子鼠
1010501004 MP5-守护者
…………………………………
武器名称=UZl
…………………………………
10105011 UZI
10105012 UZI-牛轧糖
10105013 UZI-荣耀
10105014 UZI-双持
10105015 UZI-双持-冰焰双生
10105016 UZI-疾电
10105017 UZI-萝卜枪
10105018 UZI-双持-牧野寻芳
10105019 UZI-枪神
10105020 UZl-双持-日月同辉
1010501101 UZI-浮世枫庭
1010501102 UZI-云上漫游者
…………………………………
武器名称=Vector
…………………………………
10105021 Vector
10105022 Vector-迷雾
10105023 Vector-荣耀
10105024 Vector-原子风暴
10105025 Vector-机甲
10105026 Vector-处女座
10105027 Vector-小憩时光
10105028 Vector-小红帽
10105029 Vector-承影
1010502001 Vector-青瓷浮梦
1010502002 Vector-血族蚀刻
…………………………………
武器名称=野牛
…………………………………
10105030 野牛-玄冥
10105031 野牛
10105032 野牛-调查局
10105033 野牛-破坏兔
10105034 野牛-毒液
10105035 野牛-狮心荣耀
10105036 野牛-牛轧糖
10105037 野牛-枪神
10105038 野牛-金牛座
10105039 野牛-荣耀
…………………………………
武器名称=P90
…………………………………
10105041 P90
10105042 P90-精准一击
10105043 P90-原恒星
10105044 P90-荣耀
10105045 P90-枪神
10105046 P90-机甲
10105047 P90-奇幻冒险
10105048 P90-娃娃机
10105049 P90-祝融
10105050 P90-枯骨生花
…………………………………
武器名称=UMP45
…………………………………
10105050 UMP45
10105051 UMP45-涂鸦乐园
10105052 UMP45-捣蛋鬼
10105053 UMP45-荣耀
10105054 UMP45-龙行天下
10105055 UMP45-白天鹅
10105056 UMP45-代码:MINI
10105057 UMP45-战车
10105058 UMP45-雅典娜
…………………………………
武器名称=MP7
…………………………………
10105060 MP7
10105061 MP7-调查局
10105062 MP7-毒液
10105063 MP7-爆弹
10105064 MP7-维京战魂
10105065 MP7-荣耀
10105066 MP7-深海主宰
10105067 MP7-奇幻冒险
10105068 MP7-代码:MINI
10105069 MP7-守护者
…………………………………
武器名称=汤姆逊
…………………………………
10105070 汤姆逊
10105071 汤姆逊-雪地迷彩
10105072 汤姆逊-蓐收
10105073 汤姆逊-荣誉英雄
10105074 汤姆逊-宙斯
…………………………………
武器名称=AKs74U
…………………………………
10105081 AKs74U-暗焰骑士
10105082 AKs74U-兔兔茶话会
10105083 AKs74U-鹤唳青霄
…………………………………
武器名称=PPSh41
…………………………………
10105091 PPSh41-跃马鎏金
10105092 PPSh41-飞天·霓裳舞
…………………………………
武器名称=气锤
…………………………………
10106001 气锤
10106002 气锤-调查局
10106003 气锤-水蜜桃
10106004 气锤-迷斯拉
10106005 气锤-彩虹蜥蜴
10106006 气锤-猎手
10106007 气锤-驱逐舰
10106009 气锤-荣耀
10106010 气锤-代码:MlNl
…………………………………
武器名称=S686
…………………………………
10106011 S686
10106012 S686-调查局
10106013 S686-粉碎者
10106014 S686-爆裂
10106015 S686-射手座
10106016 S686-毒刺
10106019 S686-荣耀
…………………………………
武器名称=双持S686
…………………………………
10106050 双持S686-独行侠
10106051 双持S686
10106052 双持S686-宿命轮回
…………………………………
武器名称=AA12
…………………………………
10106061 AA12-万籁余音
10106062 AA12-仙缘禄临
…………………………………
武器名称=S1897
…………………………………
10106020 S1897-机械降神
10106021 S1897
10106022 S1897-猎手
10106023 S1897-代码:MINI
10106024 S1897-万世神风
…………………………………
武器名称=DBS
…………………………………
10106031 DBS
10106032 DBS-旗开得胜
10106033 DBS-荣耀
10106034 DBS-冰原射手
10106035 DBS-雪地迷彩
10106036 DBS-暖冬恋曲
…………………………………
武器名称=S12K
…………………………………
10106040 S12K
10106041 S12K-史前霸主
10106042 S12K-糖果屋
…………………………………
武器名称=USP
…………………………………
10201001 USP
10201002 USP-调查局
10201003 USP-橙子
10201004 USP-兔美美
10201005 USP-糖果屋
10201009 USP-荣耀
10201010 USP-桃花
…………………………………
武器名称=沙漠之鹰
…………………………………
10201011 沙漠之鹰
10201012 沙漠之鹰-趣味时光
10201013 沙漠之鹰-凤凰
10201014 沙漠之鹰-荣耀
10201015 沙漠之鹰-深海主宰
…………………………………
武器名称=短管散弹枪
…………………………………
10201021 短管霰弹枪
10201022 短管霰弹枪-小海豚
10201023 短管霰弹枪-荣耀
10201024 短管霰弹枪-原子风暴
…………………………………
武器名称=弹弓
…………………………………
10201030 弹弓
10201031 弹弓-积木
…………………………………
武器名称=Glock19
…………………………………
10201040 Glock19
10201041 Glock19-壳中幽灵
10201042 Glock19-怪兽派对
10201043 Glock19-荣耀
10201044 Glock19-捣蛋鬼
10201045 Glock19-炽热节拍
10201046 Glock19-萌动出击
…………………………………
武器名称=左轮
…………………………………
10201050 左轮
10201051 左轮-太阳神
10201052 左轮-原恒星
10201053 左轮-荣耀
10201054 左轮-萝卜枪
10201055 左轮-夏日作战
…………………………………
武器名称=双持柯尔特
…………………………………
10201060 双持柯尔特
10201061 双持柯尔特-冰原射手
10201062 双持柯尔特-绝命天启
10201064 双持柯尔特-绮梦幻旅
…………………………………
武器名称=双持霰弹枪
…………………………………
10201070 双持霰弹枪
10201071 双持霰弹-萌龙特攻队
10201072 双持霰弹-纸质雕刻
…………………………………
武器名称=毛瑟
…………………………………
10201080 毛瑟
10201081 毛瑟-荣誉英雄
10201082 毛瑟-兔兔茶话会
…………………………………
武器名称=双持沙鹰
…………………………………
10201090 双持沙鹰
10201091 双持沙鹰-小白龙
10201092 双持沙鹰-暖东恋曲
…………………………………
武器名称=双持USP
…………………………………
10201100 双持USP
10201101 双持USP-莲花童子
10201102 双持USP-双鱼座
10201103 双持USP-喵星狂想
…………………………………
武器名称=双持左轮
…………………………………
10201200 双持左轮
10201201 双持左轮-怒海狂徒
10201202 双持左轮-摩羯座
…………………………………
武器名称=双持Glock19
…………………………………
10201300 双持Glock19
10201301 双持Glock19-未来蛇影
…………………………………
武器名称=CZ75
…………………………………
10201401 CZ75-百变脸谱
…………………………………
武器名称=双持毛瑟
…………………………………
10201501 双持毛瑟-跃马鎏金
…………………………………
武器名称=TEC9
…………………………………
10201601 TEC9-沙海灯谕
10201602 TEC9-圣夜礼赞
…………………………………
武器名称=加特林
…………………………………
10107001 加特林
10107002 加特林-雷霆之怒
10107003 加特林-野人猎手
10107004 加特林-荣耀
10107005 加特林-糖果屋
10107006 加特林-雪地迷彩
10107007 加特林-狮子座
10107008 加特林-毒刺
…………………………………
武器名称=双持加特林
…………………………………
10107030 双持加特林
10107031 双持加特林-失控时序
…………………………………
武器名称=KAC锯式机枪
…………………………………
10107021 KAC锯式机枪-哈迪斯
10107022 KAC锯式机枪-浮世枫庭
10107023 KAC锯式机枪-毒刺
…………………………………
武器名称=爆炸弓
…………………………………
10108001 爆炸弓
10108002 爆炸弓-日暮月影
10108003 爆炸弓-黑金剑魂
10108004 爆炸弓-野人猎手
10108005 爆炸弓-机械降神
10108006 爆炸弓-英雄降临
10108007 爆炸弓-毒刺
10108008 烈焰弓
…………………………………
武器名称=火焰喷射器
…………………………………
10108010 火焰喷射器
10108011 火焰喷射器-霹雳火
10108012 火焰喷射器-野人克星
10108013 火焰喷射器-猎手
…………………………………
武器名称=榴弹发射器
…………………………………
10108020 榴弹发射器
10108021 榴弹发射器-幻彩灵驹
10108022 榴弹发射器-喵星狂想
10108023 榴弹发射器-凛冬星冠
…………………………………
武器名称=RPG发射器
…………………………………
10108040 RPG发射器
10108041 RPG发射器-千机鸿影
…………………………………
武器名称=防爆盾
…………………………………
10108031 防爆盾-铁血蔷薇
10108032 防爆盾-青瓷浮梦
10108034 防爆盾-极光盾
…………………………………
武器名称=近战武器大全
…………………………………
10301001 拳头
10301002 狼牙棒
10301003 石矛(无效空状态)
10301004 短剑(无效空状态)
10301005 突刺长枪(无效空状态)
10301006 能量剑(无效空状态)
10301007 圣诞拐杖糖
10301008 大葱
10301009 胡萝卜
10301010 锤子-积木
10301011 武士刀-冰枫之刃
10301012 骨矛
10301013 船桨
10301014 气球-捣蛋鬼
10301015 光剑-原恒星
10301016 暗黑狼牙棒
10301017 蒸汽战斧
10301018 能量双剑
10301019 英雄宝剑
10301020 机甲重锤
10301021 麦克风-炽热节拍
10301022 拳头(有效空状态)
10301023 萝卜刀
10301024 萝卜刀-炫彩
10301025 萝卜刀>(萝卜刀模式)
10301026 萝卜刀-炫彩>(萝卜刀模式)
10301027 三叉戟-深海主宰
10301028 冰激凌-糖果屋
10301029 镰刀-绝命天启
10301030 战斗人偶-诺娜娜
10301031 这根糖果有点邪恶
10301032 拳套-萌龙特攻队
10301033 充气鱼-夏日作战
10301034 金箍棒
10301035 弯刀-天蝎座
10301036 乾坤圈
10301037 锚-怒海狂徒
10301038 棒球棍-暖冬恋曲
10301039 剑-未来战锋
10301040 丈八蛇矛
10301041 指虎-幻彩灵驹
10301042 手斧-纸质雕刻
10301043 匕首-猎手
10301044 铁锹-玫瑰
10301045 折扇-百变脸谱
10301046 蝴蝶刀-兔兔茶话会
10301047 双持军刀-跃马鎏金
10301048 动力锤-歼灭者
10301049 稻草人-月影飘灵
10301050 唐刀-侠客行
10301051 双持鹰爪-沙海灯谕
10301052 双持匕首-凛冬星冠
10301053 烈焰刀
10301054 极光剑
10301055 长剑-骑士誓言
10301056 帝皇战戟
10302001 野人狼牙棒
10302002 英雄宝剑
10302003 骨矛
10302004 英雄长剑
10302005 萨满法杖
10302006 能量双剑
10302007 野人图腾柱
10302008 头领骨镰
10302009 猩猩拳
10302010 变色龙匕首
10302011 蒸汽战斧
10302012 机甲重锤
10302013 小蜘蛛卢卡
10302014 沉睡的断剑
10302015 苏醒的魔剑
10302016 女巫宝珠
10302017 外星拳套
10302018 鱼叉
10302019 符咒之剑
10302020 驱邪符咒
10302021 治疗长杖
10302022 树人木槌
10302023 忍者太刀
10302024 惑心焰爪(有效空模型)
10302025 占星法杖
10302026 当康锄头
10302027 青铜法杖
…………………………………
武器名称=投掷冗余杂物
…………………………………
10401001 破片手雷
10401002 破片手雷-奇异果
10401003 破片手雷-甘蓝
10401004 丛林手雷
10401005 破片手雷-积木
10401006 破片手雷-粽子
10401007 破片手雷-捣蛋鬼
10401008 破片手雷-荣耀
10401009 破片手雷-绝命天启
10401010 破片手雷-龙行天下
1040100001 破片手雷-风火轮·青鸾
1040100002 破片手雷-绮蝶
1040100003 破片手雷-紫罗兰
1040100004 破片手雷-沙海灯谕
10401011 燃烧弹
10401012 燃烧弹-奇异果
10401013 燃烧弹-甘蓝
10401014 燃烧弹-蜥蜴人药剂
10401015 燃烧弹-龙行天下
10401016 燃烧弹-荣耀
10401017 燃烧弹-萌龙特攻队
10401018 燃烧弹-风火轮·火凤
10401019 燃烧弹-百变脸谱
10401020 燃烧弹-云上漫游者
10401050 铝热剂
10401051 铝热剂-幻彩灵驹
10401052 铝热剂-跃马鎏金
10401053 铝热剂-圣夜礼赞
10401061 飞刀-血蚀
10402001 烟雾弹
10402002 烟雾弹-奇异果
10402003 烟雾弹-甘蓝
10402004 烟雾弹-荣耀
10402005 烟雾弹-糖果屋
10402006 烟雾弹-龙行天下
10402007 烟雾弹-百变脸谱
10402008 烟雾弹-云上漫游者
10402011 闪光弹
10402012 闪光弹-奇异果
10402013 闪光弹-甘蓝
10402014 闪光弹-荣耀
10402015 闪光弹-炽热节拍
10402016 闪光弹-深海领主
10402017 闪光弹-龙行天下
10402018 闪光弹-怒海狂徒
10402019 闪光弹-樱花
1040201001 闪光弹-沙海灯谕
10402050 震撼弹
10402051 震撼弹-纸质惊喜
10402052 震撼弹-跃马鎏金
10401021 捕兽夹
10401022 碟片捕兽夹
10401031 地雷
10401032 科幻地雷
10401033 笑脸地雷
10401034 机器人地雷
10401035 果冻地雷
10401036 唱片地雷
10401037 兔兔地雷
10401040 粘性手雷
10401041 粘性手雷-小章鱼
10401042 粘性手雷-愤怒叔叔
10401043 粘性手雷-紧箍咒
10401044 粘性手雷-未来蛇影
10402020 诱饵弹[没有建模]
10402021 诱饵弹-夜光鱼饵[没有建模]
10402022 诱饵弹-金鱼鱼饵[没有建模]
10402030 冰冻手雷
10402031 冰冻手雷-冻鱼
10402032 冰冻手雷-樱桃雪糕
10501001 钩爪[改了用不了]
10601001 急救包[修改无效]
10601002 绷带[修改无效]
10601003 医疗箱[修改无效]
10601004 香蕉[修改无效]
10601005 烤鸡腿[修改无效]
10601006 烤全鸡[修改无效]
10602001 炸药桶[改了用不了]
10602002 望远镜
…………………………………
]])
end
},
}),
}),
changan.box({"美化1代",
changan.check({
{'AN94-百变脸谱',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10101403", 4)
gg.clearResults()
gg.toast("开启成功")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x66\x0e\x8a", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'双持s686-宿命轮回',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10106052", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0f\x89\xf3\x92", 4)
gg.getResults(230)
gg.editAll("10106052", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AK47-火尖枪',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010101010", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0f\x89\xf2\x95", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'SCAR-未来蛇影',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010100002", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0e\x89\xf3\x97", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'M4-齐天大圣',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010102008", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0c\x89\xf3\x9d", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'双持UZI-日月同辉',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10105020", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x77\x62\x0c\x89", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'巨浪-光梭-红莲',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10101102", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x63\x0e\x8b", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AK47-绝命天启',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010101004", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0f\x89\xf3\x91", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
' Groza-舞狮-浮光跃金',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10101045", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0a\x8c", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'M4-赵云·龙胆亮银',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010102005", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0c\x89\xf3\x90", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'巨浪-光梭-晨星',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10101104", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x63\x0e\x8d", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'巨浪-光梭-裂影',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10101103", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x63\x0e\x8a", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'QBZ95-张飞·丈八蛇矛',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10101065", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x08\x8c", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AK47-关羽·青龙偃月',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010101007", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0f\x89\xf3\x92", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AK47-陆地领主',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("1010101012", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x73\x62\x0f\x89\xf2\x97", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AMR-星舰-白宇',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103034", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0d\x8d", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'Kar98k-积木萌龙',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103022", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0c\x8b", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'巴雷特-炽热节拍',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103013", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0f\x8a", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'Awm-绝命天启',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103045", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0a\x8c", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AWM-夜莺',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103043", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0d\x8d", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AMR-星舰-云环',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103033", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0d\x8a", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AMR-星舰-曙光',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103032", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0d\x8b", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'AMR-星舰-极光',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10103035", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x71\x62\x0d\x8c", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'气锤-驱逐舰',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10106007", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x74\x62\x0e\x8e", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'S12K-史前霸主',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10106041", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x74\x62\x0a\x88", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'苏醒的魔剑',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10302015", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x70\x62\x0f\x8c", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'变色龙匕首',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10302010", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x70\x62\x0f\x89", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'机甲重锤',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10302012", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x70\x62\x0f\x8b", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'蒸汽战斧',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10302011", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x70\x62\x0f\x88", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'镰刀-绝命天启',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10301029", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x73\x62\x0c\x80", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'光剑-原恒星',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10301015", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x73\x62\x0f\x8c", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'武士刀-冰枫之刃',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10301011", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x73\x62\x0f\x88", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'金箍棒',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10301034", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xaa\x60\x73\x62\x0d\x8d", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'双持霰弹-萌龙特工队',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10201071", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xab\x60\x73\x62\x09\x88", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'闪光弹-深海领主',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10402016", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x70\x62\x0f\x8f", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'燃烧弹',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10401011", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0f\x88", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'RPK-怒海狂徒',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10104033", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x76\x62\x0d\x8a", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'弹弓-积木',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10201031", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xab\x60\x73\x62\x0d\x88", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'榴弹炮',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10108020", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x7a\x62\x0c\x89", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},{
'爆炸弓-黑金箭魂',
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xad\x60\x73\x62\x0e\x88", 4)
gg.getResults(230)
gg.editAll("10108003", 4)
gg.clearResults()
gg.toast("√")
end,
function()
gg.setRanges(32)
_ENV["\xd2\xd8\x37\x45\x88\x63\xfa\xe6\x07\x80\xc6\x57\x55\x0a\x16\x4f\x11\x25\xca\x1a\x8d\xe1\x97\xc2\xae\x47\xc1\x16"]("\xe3\x49\x06\x60\xa0\x35\x83\x01\x46\x36\x79\xd3\x1f\xf9\x5d\xbe\x6e\x41\xd9\xfe\xe6\x63\x4d\xa3\x31\xc9\x4c\x0f\xab\xcb\xa8\x60\x7a\x62\x0e\x8a", 4)
gg.getResults(230)
gg.editAll("10401001", 4)
gg.clearResults()
gg.toast("X")
end
},
}),
}),
changan.box({"美化2代",
changan.check({
{ "Ak74U-火锅",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10105084------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10105084---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"AN94-惊世泰坦",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10101406------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10101406---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"ASh12-伽罗楼之心",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10101603------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10101603---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"ASVal-光棱-破晓晨星",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10101104------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10101104---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"双持-日月同辉",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10105020------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10105020---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"Famas-凛冬星冠",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10101204 ------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10101204---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"镰刀-绝命天启",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10301029------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10301029---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"战斗人偶-诺娜娜",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10301030------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10301030---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
{
"苏醒的魔剑",
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10401001---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10302015------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end,
function()
gg.clearResults()-- ---- 清除旧搜索结果
gg.setRanges(gg.REGION_ANONYMOUS) ---- 设置内存区域
---- 1. 搜索数值
local searchValue = 10302015---- 要搜索的数值
gg.searchNumber(searchValue, gg.TYPE_DWORD)
---- 2. 获取结果数量
local count = gg.getResultsCount()
if count == 0 then
return
end
---- 3. 过滤/修改
local results = gg.getResults(count)
for i, v in ipairs(results) do
v.value = 10401001------ 修改为指定值
v.freeze = false------ 是否冻结
end
gg.setValues(results)
gg.toast("开启成功")
end
},
}),
}),--box结尾
changan.box({"皮肤美化",
changan.check({
{"勋章美化",
function()
local Table=[[
武器名称=消灭勋章
82201001 基础勋章
82201002 枪神之辉
82201003 胜利荣光
82201004 无畏战魂
82201005 独行侠
82201006 迷斯拉
82201007 时序猎手
82201008 梦幻激斗
82201009 天音净语
82201010 蒸汽之星
82201011 葫芦七绝
82201012 纸上战争
82201013 帝皇侠
82201014 猪猪侠
82201015 月冕之狼
82201016 花序狂想
82201017 星际主宰
]]
local function parseTable(list)
local categories = {}
local currentCategory = "消灭勋章" -- 默认分类
for line in list:gmatch("[^\r\n]+") do
if line:find("武器名称=") then
currentCategory = line:match("武器名称=(.*)")
elseif line:find("%d+") then
local code, name = line:match("(%d+)%s+(.+)")
if not categories[currentCategory] then
categories[currentCategory] = {} end
table.insert(categories[currentCategory], { code = code, name = name })
end end return categories end
local function selectWeapon()
local categories = parseTable(Table)
local weapons = categories["消灭勋章"]
local weaponNames = {}
for _, weapon in ipairs(weapons) do
table.insert(weaponNames, weapon.name)end
local weaponChoice = gg.choice(weaponNames, "选择战斗勋章")
if not weaponChoice then return end
return weapons[weaponChoice].code, weapons[weaponChoice].name end
local selectedWeaponCode, selectedWeaponName = selectWeapon()
if selectedWeaponCode and selectedWeaponName then
--[[
仅供娱乐
--protected override System.Void onUpdate(); // 0x20019f0 // 更新时
--private System.Void onMedal(System.Int32 medalId); // 0x2001cec // 奖牌上
]]
local so = gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({
{address=so+0x20019A0,flags=4,value=403241441},--获取战斗勋章
{address=so+0x20138DC,flags=4,value=selectedWeaponCode},--指定勋章代码
{address=so+0x20019f0,flags=4,value='~A8 B [PC,#0x2FC]' },--每帧更新旧奖牌
})
gg.sleep(250)
local so = gg.getRangesList('libil2cpp.so')[2].start
gg.setValues({
{address=so+0x20019f0,flags=4,value=-788397057},--恢复每帧更新
})
end
end
},{
"皮肤美化",
function()
local function ASo(a,b)
gg.setRanges(a[3]);gg.clearResults();gg.searchNumber(a[2],a[4])
local r=gg.getResults(gg.getResultCount());gg.clearResults()
if #r==0 then return end
for _,v in ipairs(b)do
local t={};for i=1,#r do t[i]={address=r[i].address+v[2],flags=v[3]or a[4]}end
t=gg.getValues(t);local tmp={}
for i=1,#r do local val=tonumber(t[i].value)if val>=v[1]and val<=v[1]then tmp[#tmp+1]=r[i]end end
if #tmp==0 then return end;r=tmp end return r[1].address end
local skinCodes={50105900,50101700,50100600}
local idx=gg.choice({"1.小龙人麟休","2.队长汤姆","3.特工罗拉"},nil,"选择当前使用的皮肤.")
if not idx then return end
local bag=ASo({"[测试]",skinCodes[idx],32,32},{{skinCodes[idx],-4,4,1}})
if not bag then gg.toast("定位失败");return end
local tbl=[[
50120200 花小楼
50119600 乐璇儿
50119500 虚空黯影 星莉奈变身形态
50119400 虚空黯影 星莉奈
50119300 花木兰变身形态
50119200 花木兰
50119100 貂蝉变身形态
50119000 貂蝉
50118800 吕布
50118700 财小神
50118600 塔莎
50118500 可瑞儿
50118400 波小茶
50118300 星璃
50118200 辛西娅
50118100 丹姝
50117100 弥梦帝君 空候
50117000 爱尔莉丝
50116900 弗拉明戈
50116800 韶华
50116700 宝儿
50116600 马丁尼
50116500 米诺斯(变身形态)
50116400 米诺斯
50116300 艾琳
50116200 福宝
50116100 伽蓝
50116000 天仙子.雅
50115900 风鹰侠
50115800 刑天侠
50115700 炎龙侠
50115600 帝皇侠
50115500 苍鸿
50115400 叶少
50115300 叶少{变身形态}
50115200 oiia猫
50115100 萨亚
50115000 蓝伯特
50114900 白夜女卡洛儿
50114800 沈一弦
50114700 金樱子
50114600 极兽特工 楠妮
50114500 花火
50114400 锦绣百花
50114300 米兰达
50114200 幻 灵刃白虎
50114100 陶梦蝶
50114000 春樱
50113900 射手星宫之主 肯陶洛斯
50113800 幻 灵刃白虎{变身形态}
50113700 碧水青
50113600 绒儿
50113500 佩露
50113400 弗雷
50113300 圣婴红孩儿
50113200 琏璃梦影 白珍
50113100 残破萝莉 凌幽
50113000 末日救赎 凌影
50112900 狂潮霸主 凌影
50112800 菲欧娜
50112700 部落雄鹰卡卡
50112600 未知皮肤
50112500 张小飞
50112400 花小楼
50112300 格兰妮
50112200 翠丝诺
50112100 妮普洛
50112000 萧元儿
50111900 云胭
50111800 青韵
50111700 圣云芷
50111600 栗子
50111500 古韵山水 远山黛
50111400 电音天后 莎莎
50111300 星速
50111200 彗星
50111100 瑰色
50111000 冰晶公主 雪糯儿
50110900 凛东
50110700 瓦伦汀
50110600 莉莉丝
50110500 菜柯
50110400 格莉菲塔
50110300 空岛商人
50110200 诺亚
50110100 莎拉琳娜
50110000 柿梓
50109900 弥禾
50109800 悠妮
50109700 喵萌厨
50109600 莓果甜心
50109500 幻-猩红战机
50109400 墨语竹
50109300 灯瑶
50109200 炎瑞
50109100 白天鹅 奥杰塔
50109000 黑天鹅 奥杰塔
50108900 卡诺鲁斯
50108800 哈尔薇
50108700 齐天小圣
50108600 二郎神
50108500 哪咤·灵泽童子
50108400 哪吒·赤绫太子
50108300 拇指姑娘 蒂妮
50108200 布拉斯特
50108100 泰诺斯
50108000 糕糕
50107900 春雨
50107800 芙洛丝
50107700 狼少年沃尔夫
50107500 小红帽阿夏尔
50107400 奥利安
50107300 雪圆圆
50107200 唐可馨
50107100 瓦莲娜
50107000 马克
50106900 玛丽露
50106800 艾登
50106700 清夏
50106600 甜恬
50106500 逍遥客
50106400 米豆
50106300 唐可翼
50106200 瑞贝卡
50106100 虎啸丰
50106000 白雪公主 索菲亚
50105900 小龙人麟休
50105700 极兽特工 洛泽·青
50105600 梅嘉
50105500 雪裙
50105400 竹笙
50105300 觉醒者妮妮
50105200 爱尔琳
50105100 爱尔顿
50105000 阿拉丁
50104900 洛特
50104800 奥利维亚
50104700 开斯特
50104600 魔炎
50104500 变色龙野人
50104400 终极金刚
50104300 终极萨满
50104200 野人
50104100 野人头领
50104000 诺娜娜
50103900 凌羽
50103800 觉醒者卡卡
50103700 极兽特工 沃夫·银
50103600 全能玩家劳尔
50103500 暗星
50103400 叶小龙王子
50103300 乔治
50103200 克莱尔
50103100 露西
50103000 叶小龙
50102900 德古拉六世
50102800 帕普奇
50102700 幻零式
50102600 兰斯洛特
50102500 卢卡斯
50102400 星翼
50102300 雪诺
50102200 胖哒
50102100 小淘气辛迪
50102000 雪球球
50101900 柳仙儿
50101800 月无双
50101700 队长汤姆
50101600 兔美美
50101500 卡卡
50101400 星灵
50101300 蒂奇
50101200 黯
50101100 迷梭梭
50101000 熊孩子
50100900 程锦衣
50100800 幻音
50100700 喵小糖
50100600 特工罗拉
50100500 乔克
50100400 千兵卫
50100300 西部警长乔伊
50100200 迷斯拉
50100100 小艾
]]
local function parseTbl()
local map,wps,ws={},{},{}
for l in tbl:gmatch("[^\r\n]+")do
local c,n=l:match("(%d+)%s+(.+)")
if c then c=tonumber(c);map[c]=n;wps[#wps+1]={c=c,n=n};ws[#ws+1]=n end end
return map,wps,ws end
local idMap,wps,ws=parseTbl()
local function getCurName()
local id=gg.getValues({{address=bag,flags=4}})[1].value
return idMap[id]or "未知皮肤("..math.floor(id)..")" end
local isRunning = true
local function doModify()
local items = {"→退出修改←"}
for _,v in ipairs(ws)do items[#items+1]=v end
local c=gg.choice(items,nil,"选择要修改的皮肤:")
if not c then return end
if c==1 then isRunning=false;gg.toast("返回主菜单")return end
gg.setValues({{address=bag,flags=4,value=wps[c-1].c}}) end
gg.setVisible(true)
while isRunning do
if gg.isVisible(true)then gg.setVisible(false)doModify()end end
gg.setVisible(false)
end
},
}),
}),
}, {--第四页
changan.button("搜索音乐",
function()
search = gg.prompt({
"输入要搜索的歌曲\n可加上歌手名字",
"设置显示数量(数字)",
},g.sel,{
"text",
})
if not search then return end
gg.saveVariable(search,g.config)
bei()
go1=search[1]
go3=search[2]
jg=start(go1,go3)
if jg.code == 200 then
fh=jg.content
fh=json(fh)
--print(fh)
Play(gqlb,idb)
else
function inspect()
gg.alert("访问网络异常,错误代码:\n\n"..jg.code)
end
if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end
end
XGCK=-1
end),
changan.button("暂停音乐",
function()
gg.playMusic("关闭")
end),
changan.button("水手",
function()
gg.playMusic("https://wl.tdyun.top/view.php/5093214419d05ab3adc4edca21d820fe.mp3?v=1780219370")
end),
changan.button("室内系的TrackMaker",
function()
gg.playMusic("https://wp.kayyw.com/f/51NouM/%E5%AE%A4%E5%86%85%E7%B3%BB%E7%9A%84TrackMaker.mp3")
end),
changan.button("猛龙过江",
function()
gg.playMusic("https://wp.kayyw.com/f/VWPohb/%E7%8C%9B%E9%BE%99%E8%BF%87%E6%B1%9F.mp3")
end),
changan.button("Plain Jane",
function()
gg.playMusic("https://wp.kayyw.com/f/3DZ1CO/plain%20jane.mp3")
end),
changan.button("辞九门回忆",
function()
gg.playMusic("https://wp.kayyw.com/f/8kYOUl/%E8%BE%9E%E4%B9%9D%E9%97%A8%E5%9B%9E%E5%BF%86.mp3")
end),
changan.button("背起了行囊",
function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=1972918129.mp3")
end),
changan.button("烧酒歌",
function()
gg.playMusic("https://wp.kayyw.com/f/gP8oIa/%E7%83%A7%E9%85%92%E6%AD%8C%28%E7%89%A7%E7%AB%A5%E7%89%88%29.mp3")
end),
changan.button("精卫",
function()
gg.playMusic("https://wp.kayyw.com/f/x8wlFY/%E7%B2%BE%E5%8D%AB.mp3")
end),
changan.button("杨哥",
function()
gg.playMusic("https://wp.kayyw.com/f/BZwWu8/%E6%9D%A8%E5%93%A5.mp3")
end),
},{
},{
},{
},{
},{
}
})
--配置表添加表即可加页数,只需要与上边菜单标题数对应