
	
gg.toast(os.date("当前登录卡密时间为:%m月%d日%H点"))


Target = gg.getTargetPackage()
if Target ~= "com.tencent.ig" then 

end
if lib==nil then xxtx="基址:lib未获取(请确保进程大于700mb)❗" else xxtx="基址:lib已获取"
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
---[=[   ]=]---------------------------------------------------------------------------------------------
----------------------
  
lib=gg.getRangesList("libGameCore.so","Cd")[1]

function rangeSearch(value, type, addr, offset)
	gg.searchNumber(value, type, nil, nil, addr-offset, addr+offset)
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 




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
---[=[   ]=]-------------------------------------------------------------------------------------------------------------------
if true then local org=_ENV['gg']['searchNumber'] local hook=function(...) _ENV['gg']['setVisible'](false) local ret=org(...) if _ENV['gg']['isVisible']() then while true do _ENV['print']('LY全防专属水印') gg.clearResults() _ENV['os']['exit']() end end return ret end _ENV['gg']['searchNumber']=hook 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 searchwb(a,b,c) gg.setRanges(c) gg.searchNumber(a,b) end function xgwb(a1,a2) gg.getResults(gg.getResultsCount()) gg.editAll(a1,a2) end

function search(ss,lx,nc,dz1,dz2)  if ss~=nil then if lx~=nil then  if nc==nil then nc=32 end  gg.setRanges(nc)  if dz1==nil then dz1="-1" end  if dz2==nil then dz1="0" end  gg.searchNumber(ss,lx,false,gg.SIGN_EQUAL,dz1,dz2)  sl=gg.getResultCount()  if sl~=0 then  sj=gg.getResults(sl)  gg.toast("♥️️️搜索到 "..sl.." 个结果♥️️️")  gg.clearResults()  else  gg.toast("🐮未搜索到结果🍺")  end  else  gg.toast("🌸无搜索值类型🌸")  end  else  gg.toast("🌟无需搜索值🌟")  end  end  
function py1(value,lx,py)  if #sj~=nil then  z1={} z2={}  for i=1,#sj do  z1[1]={}  z1[1].address=sj[i].address+py  z1[1].flags=lx  z1=gg.getValues(z1)  if z1[1].value==value then  z2[#z2+1]={}  z2[#z2]=sj[i]  end end  sj=z2  z1={} z2={}  gg.toast("👻共偏移 "..#sj.." 个数据👻")  else  gg.toast("👀没有搜索数据👀")  end  end  
function py2(value,lx,py)  if #sj~=nil then  z1={} z2={}  for i=1,#sj do  z1[1]={}  z1[1].address=sj[i].address+py  z1[1].flags=lx  z1=gg.getValues(z1)  if z1[1].value~=value then  z2[#z2+1]={}  z2[#z2]=sj[i]  end end  sj=z2  z1={} z2={}  gg.toast("👄共偏移 "..#sj.." 个数据👄")  else  gg.toast("👅没有搜索数据👅")  end  end  
function xg1(value,lx,py,dj)  if #sj~=nil then  z={}  for i=1,#sj do  z[i]={}  z[i].address=sj[i].address+py  z[i].flags=lx  z[i].value=value  if dj==true then z[i].freeze=true end  end  if dj==true then  gg.addListItems(z)  else  gg.clearList()  gg.setValues(z)  end  gg.toast("👁️共修改 "..#z.." 个数据👁️")  else  gg.toast("🐲没有搜索数据🐲")  end  end  
function xg2(bz,value,lx,py,dj)  if #bz~=nil then  z={}  for i=1,#bz do  z[i]={}  z[i].address=bz[i].address+py  z[i].flags=lx  z[i].value=value  if dj==true then z[i].freeze=true end  end  if dj==true then  gg.addListItems(z)  else  gg.clearList()  gg.setValues(z)  end  gg.toast("❣️共修改 "..#z.." 个数据❣️")  else  gg.toast("♥️️️没有搜索数据♥️️️")  end  end  
function bc(bz)  if sj~=nil then  _ENV[bz]=sj  else  gg.toast("💖无数据💖")  end  end 
function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) if gg.searchNumber(qmnb[3]["value"],qmnb[3]["type"],false,gg.SIGN_EQUAL,0,-1)~=true then gg.searchAddress(qmnb[3]["value"],-1,qmnb[3]["type"]) end if gg.getResultCount()==0 then gg.toast(qmnb[2]["name"].."开启失败")return end szxx=gg.getResults(gg.getResultCount()) szpd={} a=0 for i=4,#qmnb do for s=1,#szxx do if szpd[s]~="false" then if gg.getValues({{address=szxx[s].address+qmnb[i]["offset"],flags=qmnb[i]["type"]}})[1].value+0~=qmnb[i]["lv"]then szpd[s]="false" a=a+1 end end end end if a==#szxx then gg.toast(qmnb[2]["name"].."开启失败")return end b=0 t={} for x=1,#qmxg do if qmxg[x]["freeze"]==true then a=1 end for i=1,#szxx do if szpd[i]==nil then b=b+1 table.insert(t,{address=szxx[i].address+qmxg[x]["offset"],flags=qmxg[x]["type"],freeze=qmxg[x]["freeze"],value=qmxg[x]["value"]}) end end end gg.setValues(t) gg.addListItems(t) gg.clearResults() if a~=1 then gg.clearList()else a=nil end gg.toast(qmnb[2]["name"].."开启成功,共修改了"..b.."条数据") end
function luoxuell(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 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
bqt={"","","","","","","","","","","","","","",""}
local APP=gg.getTargetInfo()


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$", "").."LY内部音乐已自动下载.lua"
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 = "-- WG 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
--主页

				function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能
					getRanges = getRanges or (function()
						local ranges = {}
						local t = gg.getRangesList('^/data/*.so*$')
						for i, v in pairs(t) do
							if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写
								ranges[#ranges+1] = v
							end
						end
						return ranges
					end)
					local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD
					if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位
						valtype = gg.TYPE_QWORD
					end

					for i in pairs(ranges) do
						local _name = ranges[i]["internalName"]:gsub('^.*/', '')
						if so[1] == _name and so[2] == ranges[i]["state"] then
							sostart = ranges[i]["start"]
							break
						end
					end

					if sostart then
						if offset[1] then
							for i = 1, #offset do
								rest = {{flags = valtype,address = sostart + offset[i]}}
								rest = gg.getValues(rest)
								if i == #offset then
									break
								end
								if valtype == gg.TYPE_DWORD then
									sostart = rest[1].value & 0xFFFFFFFF--对值进行补位操作
									else
									sostart = rest[1].value
								end
							end
						end
						print(rest)
						if #rest == 1 then

						end
						return Format(rest, format, value, type, Function)
					end
					gg.toast("功能:" .. Function .. "开启失败")
					print("功能开启失败原因: 未找到静态头")
					return os.exit()
				end

				function Format(tab, format, value, type, Function)
					if format == "查看" then
						tab[1]["flags"] = type
						return print(gg.getValues(tab))
						elseif format == "修改" then
						tab[1]["flags"] = type
						tab[1]["value"] = value
						return gg.setValues(tab)
						elseif format == "冻结" then
						tab[1]["flags"] = type
						tab[1]["freeze"] = true
						tab[1]["name"] = Function or "功能"
						return gg.addListItems(tab)
						elseif format == "加载" then
						tab[1]["flags"] = type
						return gg.loadResults(tab)
					end
				end


				function 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-------仿xs配置





				function PS() end
				function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end--静态
				function setvalue(address,flags,value)
					local CatWill={}
					CatWill[1]={}
					CatWill[1].address=address
					CatWill[1].flags=flags
					CatWill[1].value=value
					gg.setValues(CatWill)
				end
				function 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 readPointer(name, offset, i)
					local re = gg.getRangesList(name)
					local x64 = gg.getTargetInfo().x64
					local va = {[true] = 32, [false] = 4}
					if re[i or 1] then
						local addr = re[i or 1].start + offset[1]
						for i = 2, #offset do
							addr = gg.getValues({{address = addr, flags = va[x64]}})
							if not x64 then
								addr[1].value = addr[1].value & 0xFFFFFFFF
							end
							addr = addr[1].value + offset[i]
						end
						return addr
					end
				end

				function gg.edits(addr, Table, name)
					local Table1 = {{}, {}}
					for k, v in ipairs(Table) do
						local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]}
						if v[4] then
							Table1[2][#Table1[2] + 1] = value
							else
							Table1[1][#Table1[1] + 1] = value
						end
					end
					gg.addListItems(Table1[2])
					gg.setValues(Table1[1])
				end------基质配置

function 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 Format(tab, format, value, type, Function)
    if format == "查看" then
        tab[1]["flags"] = type
        return print(gg.getValues(tab))
    elseif format == "修改" then
        tab[1]["flags"] = type
        tab[1]["value"] = value        
        return gg.setValues(tab)
    elseif format == "冻结" then
        tab[1]["flags"] = type
        tab[1]["freeze"] = true
        tab[1]["name"] = Function or "功能"       
        return gg.addListItems(tab)    
    elseif format == "加载" then
        tab[1]["flags"] = type
        return gg.loadResults(tab)    
    end
end

local ALL = [==[
v1.0 -> 优化指针链条判断

v1.1 -> 添加多功能模板，可查看，修改，冻结，载入

v1.3 -> 修复了同一个so名称下有多个基址头，而只判断第一个基址头偏移的问题点 

v1.4 -> 修复了在64位环境下偏移异常的问题
]==]

function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能
        getRanges = getRanges or (function()
        local ranges = {}    		
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写
			    ranges[#ranges+1] = v
			end
		end
    	return ranges
    end)        
    local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD
    if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位
        valtype = gg.TYPE_QWORD
    end
    
    for i in pairs(ranges) do
		local _name = ranges[i]["internalName"]:gsub('^.*/', '')
		if so[1] == _name and so[2] == ranges[i]["state"] then
			sostart = ranges[i]["start"]
			break
		end
	end
    
    if sostart then	
        if offset[1]  then	    	    
            for i = 1, #offset do    	    
    	        rest = {{flags = valtype,address = sostart + offset[i]}}
    	        rest = gg.getValues(rest)
		        if i == #offset then
                    break
                end
	 		    if valtype == gg.TYPE_DWORD then
				    sostart = rest[1].value & 0xFFFFFFFF--对值进行补位操作 
				else
				    sostart = rest[1].value			
			    end
		    end
	    end		    
	    print(rest)
	    if #rest == 1 then
	       
	    end
	    return Format(rest, format, value, type, Function)
    end
    gg.toast("功能:" .. Function .. "开启失败")
    print("功能开启失败原因: 未找到基址头")
    return os.exit()
end
function 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 split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end
function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
function edit(orig,ret)_om=orig[1].memory or orig[1][1]_ov=orig[3].value or orig[3][1]_on=orig[2].name or orig[2][1]gg.clearResults()gg.setRanges(_om)gg.searchNumber(_ov,orig[3].type or orig[3][2])sz=gg.getResultCount()if sz<1 then gg.toast(_on.."开启失败")else sl=gg.getResults(720)for i=1,sz do ist=true for v=4,#orig do if ist==true and sl[i].value==_ov then cd={{}}cd[1].address=sl[i].address+(orig[v].offset or orig[v][2])cd[1].flags=orig[v].type or orig[v][3]szpy=gg.getValues(cd)cdlv=orig[v].lv or orig[v][1]cdv=szpy[1].value if cdlv==cdv then pdjg=true ist=true else pdjg=false ist=false end end end if pdjg==true then szpy=sl[i].address for x=1,#(ret)do xgpy=szpy+(ret[x].offset or ret[x][2])xglx=ret[x].type or ret[x][3]xgsz=ret[x].value or ret[x][1]xgdj=ret[x].freeze or ret[x][4]xgsj={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xgsj[1].freeze=xgdj gg.addListItems(xgsj)else gg.setValues(xgsj)end end xgjg=true end end if xgjg==true then gg.toast(_on.."开启成功")else gg.toast(_on.."开启失败")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("搜索到"..#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) gg.toast("已修改"..#t.."条数据") gg.addListItems(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 PS() end
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end--静态
function setvalue(address,flags,value) 
local CatWill={} 
CatWill[1]={} 
CatWill[1].address=address 
CatWill[1].flags=flags 
CatWill[1].value=value 
gg.setValues(CatWill) 
end
function 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 readPointer(name, offset, i)
	local re = gg.getRangesList(name)
	local x64 = gg.getTargetInfo().x64
	local va = {[true] = 32, [false] = 4}
	if re[i or 1] then
		local addr = re[i or 1].start + offset[1]
		for i = 2, #offset do
			addr = gg.getValues({{address = addr, flags = va[x64]}})
			if not x64 then
				addr[1].value = addr[1].value & 0xFFFFFFFF
			end
			addr = addr[1].value + offset[i]
		end
		return addr
	end
end

function gg.edits(addr, Table, name)
	local Table1 = {{}, {}}
	for k, v in ipairs(Table) do
		local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]}
		if v[4] then
			Table1[2][#Table1[2] + 1] = value
		else
			Table1[1][#Table1[1] + 1] = value
		end
	end
	gg.addListItems(Table1[2])
	gg.setValues(Table1[1])
end

function 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
DWORD=gg.TYPE_DWORD  DOUBLE=gg.TYPE_DOUBLE  FLOAT=gg.TYPE_FLOAT WORD=gg.TYPE_WORD BYTE=gg.TYPE_BYTE XOR=gg.TYPE_XOR QWORD=gg.TYPE_QWORD


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 WZ9()---这是示例，下边调用这个功能
OP=gg.prompt({'1恢复地震，建议修改30或200'},{[1]='35'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
local qmnb=
{
{['memory']=32},
{['name']='枪械地震'},
{['value']=22659481600, ['type']=32},
{['lv']=22659481600,['offset']=0, ['type']=32},
}
local qmxg=
{
{['value']=OP[1],['offset']=0x24,['type']=16},
}
xqmnb(qmnb,qmxg)
end
end

function WZ99()---这是示例，下边调用这个功能
	OP=gg.prompt({'30到100'},{[1]='30'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0xF58}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0xF5c}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0xF60}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})
		end			                      
            
end

function WZ999()---这是示例，下边调用这个功能
OP=gg.prompt({'1恢复枪械-建议改3否则没伤害'},{[1]='3'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0x570}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0x574}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0x578}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})
		end	
end







function on1()---这是示例，下边调用这个功能
					so=gg.getRangesList('libdiscord_connect_sdk_android.so')[1].start
					py=0X48bbb0
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libijkffmpeg.so')[1].start
					py=0X323a58
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libanogs.so')[1].start
					py=0X4bf2a8
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libanogs.so')[1].start
					py=0X4c0408
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libgcloud.so')[1].start
					py=0X4A4E48
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libgcloud.so')[1].start
					py=0X42A998
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libTDataMaster.so')[1].start
					py=0x312590
					setvalue(so+py,4,328671808)
					so=gg.getRangesList('libanort.so')[1].start
					py=0X1d587c
					setvalue(so+py,4,328671808)
					string.toMusic("全局离线关闭成功")
end

function off2()---这是示例，下边调用这个功能
					so=gg.getRangesList('libdiscord_connect_sdk_android.so')[1].start
					py=0X48bbb0
					setvalue(so+py,4,0)
					so=gg.getRangesList('libijkffmpeg.so')[1].start
					py=0X323a58
					setvalue(so+py,4,0)
					so=gg.getRangesList('libanogs.so')[1].start
					py=0X4bf2a8
					setvalue(so+py,4,0)
					so=gg.getRangesList('libanogs.so')[1].start
					py=0X4c0408
					setvalue(so+py,4,0)
					so=gg.getRangesList('libgcloud.so')[1].start
					py=0X4A4E48
					setvalue(so+py,4,0)
					so=gg.getRangesList('libgcloud.so')[1].start
					py=0X42A998
					setvalue(so+py,4,0)
					so=gg.getRangesList('libTDataMaster.so')[1].start
					py=0x312590
					setvalue(so+py,4,0)
					so=gg.getRangesList('libanort.so')[1].start
					py=0X1d587c
					setvalue(so+py,4,0)
					string.toMusic("全局离线开启成功")
end

function abc()---这是示例，下边调用这个功能
local addr = readPointer("libUE4.so:bss", {0x3A1D8, 0x0, 0x84}, 1)
gg.edits(addr, {{0.7, 16, 0, false}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,-3.4564993e10)
string.toMusic("加速开启成功")
gg.toast("加速开启成功.")
end
function a1()---这是示例，下边调用这个功能
local addr = readPointer("libUE4.so:bss", {0x3A1D8, 0x0, 0x84}, 1)
gg.edits(addr, {{1, 16, 0, false}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,8.50279631e-21)
string.toMusic("加速关闭成功")
gg.toast("加速关闭成功.")
end

function WZ1()---这是示例，下边调用这个功能
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
	so=gg.getRangesList('libUE4.so')[1].start
py=0X84A77F8
setvalue(so+py,16,-3.4564993e10)
	print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "0.9", 16, "防拉"))
string.toMusic("跑毒加速开启成功")
gg.toast("跑毒加速开启成功.")
end
function WZ2()---这是示例，下边调用这个功能
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
so=gg.getRangesList('libUE4.so')[1].start
py=0X84A77F8
 setvalue(so+py,16,8.50279631e-21)
	print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "1", 16, "防拉"))
string.toMusic("跑毒加速关闭成功")
gg.toast("跑毒加速关闭成功.")
end

draw.setSize(49)
draw.setStyle('填充')
draw3 = require('draw3')
text1 = draw3.text("全防名☞LY",40,60)
text2 = draw3.text('作者☞董事长',40,120)
text3 = draw3.text('LY连夜制作',40,180)
text4 = draw3.text('代理☞无代理',40,240)
text5 = draw3.text('LY内部',40,300)
text5 = draw3.text('QQ交流群:879392461',40,480)
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色


draw.text('💎LY牛逼💎',40,360)
draw.setColor('#FFFFFF00')

draw.text('💎LY全防维护账号中......💎',40,420)
draw.setColor('#FFFFFF00')


string.toMusic(os.date("欢迎使用LY内部.作者为董事长帅哥.目前内部已稳定后续会继续更新防封和功能.请选择游戏进程.你登录卡密时间为:\n%Y年%m月%d日%H时%M分%S秒"))





--↑↑这里放你的脚本功能内容↑↑
--注意不要在前面开启while等循环
loadYunLua("[payload removed: 337 characters]")

tupian=luajava.loadlayout(
    {LinearLayout,
    layout_height="100dp",
    layout_width="100dp",
    background="http://pan.rlyun.asia/api/v3/file/get/20342/ic_gg_48dp.png?sign=l_mvoDsTQdUTgLOY84EIC3LUwvcE5XtoLLz6Hkh47Fk%3D%3A0",
    })
    
---像tupian一样loadlayout生成的自定义布局，可以用变量直接传到下面使用
---我封装的生成布局函数有
---changan.text 文本
---changan.button 按钮
---changan.switch 开关
---changan.radio 单选
---changan.check 多选
---changan.seek 拉条
---changan.edit("输入框ID") 输入框
---changan.getedit("输入框ID") 获取输入框返回字符串
---changan.setedit("输入框ID","内容")设置输入框内容
---示例都在下面
---其他布局等待后续更新或者你们自己写

changan.menu("LY内部",---大标题
{
    {---这里是第一个菜单 直接传入布局即可 以下是我封装的布局，也可以自己写
changan.text(""),

changan.radio({
				"登录页面全防和大厅第①套必开.第②套不稳定开",--栏目名
						}),
	changan.button("点我选择游戏进程",
    function() 
     gg.setProcessX()
    end), 
    changan.switch("隐藏T模块\n[悬浮窗]",
    function()
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x498, 0x460, 0xB10, 0xB6C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 256, freeze = true}})
string.toMusic("隐藏TS模块开启成功")    
    end,
    function()
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x498, 0x460, 0xB10, 0xB6C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 8389120, freeze = true}})
string.toMusic("隐藏TS模块关闭成功")    
    end
    ),        
changan.switch("登录页面全防\n[没有更新]",
    function()

					string.toMusic("登录页面杀检测开启成功")

    end,
    function()
    
    end
    ),  
     changan.switch("微加速",
    function()
OP=gg.prompt({'1～1.9之间'},{[1]='1.2'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
end
					
					gg.alert("开启成功")
	
	
    end,
    function()
gg.clearResults()
					gg.setRanges(gg.REGION_C_ALLOC)
					gg.searchNumber("67109633", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
					gg.getResults(100)
					gg.editAll('0', gg.TYPE_DWORD)
					
					gg.alert("如果结果大于5000则登录页面防没有开启成功重启重新开如果在4400左右则证明开启成功")
	gg.alert(string.format('搜索到%s个结果', gg.getResultsCount()))
	
    end
    ),        
changan.switch("大厅第①套\n[大厅全防]",
    function() 
    local t = {"libanogs.so:bss", "Cb"}
local tt = {0x780}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x7C0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x7F0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x818}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x868}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x898}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x8E0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x910}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x948}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x974}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x99C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x10F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1120}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1170}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x11A0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x11D0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1200}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1240}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1270}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1398}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1408}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1438}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1468}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1498}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x14C0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1908}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1938}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1968}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x3FB8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x3FE8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x4018}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x4048}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x4078}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x40B8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x4110}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x41A0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x41E8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x4228}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 67109633, freeze = true}})

					
string.toMusic("第1套开启成功部分手坤禁网建议一把一退")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function()
    gg.searchNumber("131331;133,634", gg.TYPE_DWORD)
gg.searchNumber("131,331", gg.TYPE_DWORD)
gg.getResults(2)
gg.getResults(2)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("134,914;144,387", gg.TYPE_DWORD)
gg.searchNumber("134,914", gg.TYPE_DWORD)
gg.getResults(65)
gg.getResults(65)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("131,842;262,403", gg.TYPE_DWORD)
gg.searchNumber("131,842", gg.TYPE_DWORD)
gg.getResults(9)
gg.getResults(9)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("134,658;134,658", gg.TYPE_DWORD)
gg.searchNumber("134,658", gg.TYPE_DWORD)
gg.getResults(133)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("144,387;262,403", gg.TYPE_DWORD)
gg.searchNumber("144,387", gg.TYPE_DWORD)
gg.getResults(41)
gg.getResults(41)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("144,387;133,634:289", gg.TYPE_DWORD)
gg.searchNumber("144,387", gg.TYPE_DWORD)
gg.getResults(80)
gg.getResults(80)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("133,378;144,387", gg.TYPE_DWORD)
gg.searchNumber("133,378", gg.TYPE_DWORD)
gg.getResults(51)
gg.getResults(51)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("196,864;16,842,753:5", gg.TYPE_DWORD)
gg.searchNumber("196,864", gg.TYPE_DWORD)
gg.getResults(3)
gg.getResults(3)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchNumber("262,144;262,149", gg.TYPE_DWORD)
gg.searchNumber("262,149", gg.TYPE_DWORD)
gg.getResults(1)
gg.getResults(1)
gg.editAll("84,149,249", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_OTHER | gg.REGION_C_ALLOC)
gg.searchNumber("262,400;262,656", gg.TYPE_QWORD)
gg.searchNumber("262,400", gg.TYPE_QWORD)
gg.getResults(7)
gg.getResults(7)
gg.editAll("84,149,249", gg.TYPE_QWORD)
gg.clearResults()
    local t = {"libijkffmpeg.so", "Cd"}
local tt = {0x1728, 0x38}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libijkffmpeg.so", "Cd"}
local tt = {0x1730, 0xE8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
--基址大厅防TG：niumazZz
local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD0, 0xC0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD0, 0xB8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD0, 0xC8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD0, 0xBC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD0, 0xB4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD0, 0xC4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD8, 0xB0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD8, 0xA8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD8, 0xB8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD8, 0xAC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD8, 0xA4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})

local t = {"libGCloudVoice.so", "Cd"}
local tt = {0x2FD8, 0xB4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})


    
    end
    ),   
    changan.switch("大厅第②套\n[已稳定]",
    function()

	gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
          string.toMusic("大厅第2套开启成功请搭配全局离线")
    end,
    function()

    end
    ), --大厅第2套 
        changan.switch("大厅第③套\n[没有更新]",
    function()    					

	gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
          string.toMusic("第3套开启成功")
    end,
    function()

    end
    ), --大厅第3套 
    changan.switch("局内防检测\n[没有更新]",  
                 function()                
                 string.toMusic('局内过检测正在开启请您稍等')                        

            gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
	string.toMusic('局内过检测开启成功')
    end,
    function() 

    end
    ),  
changan.switch("全局离线[部分手机可能会安全区建议别开]",  
                 function()  
                 X = gg.alert("必须在对局内开启打完就关掉", "关闭全局离线", "开启全局离线")
  if X == 2 then
    off2()
   elseif X == 1 then
    on1()
  end
    end,
    function() 
X = gg.alert("必须在对局内开启打完就关掉", "关闭全局离线", "开启全局离线")
  if X == 2 then
    off2()
   elseif X == 1 then
    on1()
  end
    end
    ),    
    changan.switch("下线防追封\n[没有更新追封开]",
    function()

					string.toMusic("下线防追封开启成功")
    end,
    function()
  
    end
    ),   
changan.button("点我收起悬浮窗",
    function() 
        隐藏()--收起悬浮窗
    end),  
  



},{
---这里是第二个菜单
changan.radio({
				"基础菜单",--栏目名
				}),  
				changan.button("下面还有更多功能↓",
    function() 
     
    end),	
    changan.switch("人物绘制\n[仅root]",
    function() 
string.toMusic('请等待1到2分钟')
pcall(load(gg.makeRequest("https://cccimg.com/down.php/3c4a0355e5c15fd1022f7993df4926e4.").content))
string.toMusic("人物绘制功能开启成功")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
end,
    function()
      string.toMusic("关闭失败")
    end
    ),  				
changan.switch("一键开稳定功能",
    function() 
so=gg.getRangesList('libUE4.so')[1].start
py=0x8399960
setvalue(so+py,16,8.8411673e-21)
so=gg.getRangesList('libUE4.so')[1].start
py=0X759BDF4
 setvalue(so+py,16,8.95671814e-21)
so=gg.getRangesList('libUE4.so')[1].start
py=0X759D864
 setvalue(so+py,16,8.95671814e-21)
so=gg.getRangesList('libUE4.so')[1].start
py=0X7A6E088
 setvalue(so+py,16,8.95671814e-21)
so=gg.getRangesList('libUE4.so')[1].start--聚点
py=0x517815C
setvalue(so+py,16,8.47963525e-21) 
string.toMusic("稳定功能开启成功")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
end,
    function()
      string.toMusic("关闭失败")
    end
    ),  
    changan.switch("上帝视角[安全]",
    function()
 so=gg.getRangesList('libUE4.so')[1].start
py=0X3142EB8
 setvalue(so+py,16,2)
	string.toMusic('上帝视角开启成功')
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function()
 
    end
    ),   
      changan.switch("无后[一般]",
    function ()
so=gg.getRangesList('libUE4.so')[1].start--无后座
py=0x517CB58
setvalue(so+py,16,8.8411673e-21)
so=gg.getRangesList('libUE4.so')[1].start--无后座
py=0x517CC4C
setvalue(so+py,16,8.8411673e-21)
so=gg.getRangesList('libUE4.so')[1].start--无后座
py=0x517CCBC
setvalue(so+py,16,8.8411673e-21)
       string.toMusic("无后开启成功")
       gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function()
OP=gg.prompt({'1到3'},{[1]='2'},{[1]='number'})
 if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
  else
so=gg.getRangesList('libUE4.so')[1].start--无后座
py=0x3A1D8
setvalue(so+py,16,OP[1])
end
    end
    ),
    changan.switch("防抖[一般]",
    function ()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0xD90, 0x50, 0x7B8, 0xC04}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x8399960
setvalue(so+py,16,8.8411673e-21)
gg.toast("开启成功防抖")
  string.toMusic("稳定防抖开启成功")
  gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function()
      string.toMusic("关闭失败")
    end
    ),
        changan.switch("聚点[稳定]",
    function()
so=gg.getRangesList('libUE4.so')[1].start--聚点
py=0x517815C
setvalue(so+py,16,8.47963525e-21)
  string.toMusic("稳定据点开启成功")
  gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
       
    end,
    function()
      string.toMusic("关闭失败")
    end
    ),
    changan.switch("自改变大[娱乐]",
    function()
OP=gg.prompt({'1恢复'},{[1]='100'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
so=gg.getRangesList('libUE4.so')[1].start
py=0X397B58C
setvalue(so+py,16,OP[1])
end
    end,
    function()
 
    end
    ),   
    changan.switch("瞬击[一般]",
    function()
so=gg.getRangesList('libUE4.so')[1].start
py=0X84E8E20
setvalue(so+py,16,8.95671814e-21)

string.toMusic("拉闸瞬击开启成功")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
       
   end,    
    function()
      string.toMusic("关闭失败")
    end
    ),     
        changan.switch("范围[娱乐]",
    function()  
so=gg.getRangesList('libUE4.so')[1].start
py=0X31415E0
 setvalue(so+py,16,75)     
string.toMusic("范围开启成功")	
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function() 
so=gg.getRangesList('libUE4.so')[1].start
py=0X31415E0
 setvalue(so+py,16,0.10000000149)    
gg.toast("开启成功")
    end
    ),     
    changan.switch("打鸟范围\n[32通用]",
    function()   
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("23;25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(100000)
gg.editAll("180", gg.TYPE_FLOAT)
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("23;180", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("23", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(100000)
gg.editAll("80", gg.TYPE_FLOAT)
string.toMusic("打鸟范围开启成功")	
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function() 

    end
    ),    
    changan.switch("全图除雾[安全]",
    function()
so=gg.getRangesList('libUE4.so')[1].start
py=0X759BDF4
 setvalue(so+py,16,8.95671814e-21)--除雾
string.toMusic('除雾开启成功')
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end,
    function()
      string.toMusic("关闭失败")
    end
    ),       
    changan.switch("子弹射速[娱乐]",
    function()
OP=gg.prompt({'0.1=恢复原来射速.改越低射速越快.建议改0.05-0.01'},{[1]='0.05'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xD80, 0x50, 0x7A8, 0x518}, 1)
gg.edits(addr, {{OP[1], 16, 0, false}})
string.toMusic("射速开启成功")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
end
       
    end,
    function()
      
    end
    ),         
    changan.switch("击杀特效[娱乐]",
    function()
    gg.clearResults()
	gg.setRanges(gg.REGION_ANONYMOUS)
	gg.searchNumber("10;45;46", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
	gg.searchNumber("10", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
	gg.getResults(10)
	gg.editAll("9999",gg.TYPE_FLOAT)
string.toMusic("X特效开启成功")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
gg.toast("特效开启成功")
       
    end,
    function()
    gg.clearResults()
	gg.setRanges(gg.REGION_ANONYMOUS)
	gg.searchNumber("9999;45;46", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
	gg.searchNumber("9999", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
	gg.getResults(10)
	gg.editAll("10",gg.TYPE_FLOAT)
	gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))      
    end
    ),
changan.switch("除草除树[娱乐]",
    function()
so=gg.getRangesList('libUE4.so')[1].start
py=0X759BDF4
 setvalue(so+py,16,8.95671814e-21)--除雾
so = gg.getRangesList(("libUE4.so"))[1].start
py = 73024712
setvalue(so + py, 4, 0)
gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber("0.000005;0.000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.searchNumber("0.000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(10)
gg.editAll("0.45", gg.TYPE_FLOAT)
string.toMusic("除草除树除雾开启成功")
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
       
    end,
    function()
     string.toMusic("关闭失败") 
    end
    ),     
    changan.switch("人物内透[娱乐]",
    function()
gg.clearResults()
gg.setRanges(1048576)
gg.searchNumber("4.81460133e21;2.0",16)
gg.refineNumber("2",16)
gg.searchAddress("608")
gg.getResults(999)
gg.editAll("99999",16)
gg.toast("")
gg.clearResults()
gg.setRanges(1048576)
gg.searchNumber("-6.48677875e-40;2.0",16)
gg.refineNumber("2",16)
gg.searchAddress("200")
gg.getResults(999)
gg.editAll("99999",16)
gg.toast("")

gg.clearResults()
gg.setRanges(1048576)
gg.searchNumber("-1.40129846e-44",16)
gg.refineNumber("-1.40129846e-44",16)
gg.searchAddress("550")
gg.getResults(999)
gg.editAll("4567",16)
gg.toast("马赛克")
gg.clearResults()
gg.setRanges(1048576)
gg.searchNumber("-1.38344592e-39",16)
gg.refineNumber("-1.38344592e-39",16)
gg.searchAddress("8B0")
gg.getResults(999)
gg.editAll("4567",16)
gg.toast("透明化")
gg.clearResults()
gg.setRanges(1048576)
gg.searchNumber("1194346786;8,200",4)
gg.refineNumber("8200",4)
gg.searchAddress("048")
gg.getResults(999)
gg.editAll("6",4)
gg.toast("绿色")
	string.toMusic('内透开启成功')
    end,
    function()          
      string.toMusic("关闭失败")
    end
    ),   
    	changan.radio({
				"帧率",--栏目名
				{
					"大厅锁帧",--小功能名
					function()
	local addr = readPointer("libUE4.so:bss", {0x48D1F8, 0x0}, 1)
gg.edits(addr, {{120, 16, 0, true}})
					end
				}, {
					"30FPS",--小功能名
					function()
	local addr = readPointer("libUE4.so:bss", {0x48D1F8, 0x0}, 1)
gg.edits(addr, {{30, 16, 0, true}})
					end
				}, {
					"45FPS",
					function()
	local addr = readPointer("libUE4.so:bss", {0x48D1F8, 0x0}, 1)
gg.edits(addr, {{45, 16, 0, true}})
					end
				}, {
					"60FPS",
					function()
	local addr = readPointer("libUE4.so:bss", {0x48D1F8, 0x0}, 1)
gg.edits(addr, {{60, 16, 0, true}})
					end
				}, {
					"90FPS",
					function()
	local addr = readPointer("libUE4.so:bss", {0x48D1F8, 0x0}, 1)
gg.edits(addr, {{90, 16, 0, true}})
					end
				},
			}),
     
},
{
---这里是第三个菜单
changan.radio({
				"娱乐菜单",--栏目名
						}),
						changan.button("下面还有更多娱乐功能↓",
						function() 
     
    end),
						changan.switch("自改基址美化",
                        function()  
    local UE4 = gg.getRangesList("libUE4.so")
	if not UE4 or #UE4 == 0 then
		gg.alert("请打开游戏在开美化")
		os.exit()
	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


	--原作者:昕仔
	--优化脚本:川秋
	--川秋:适配PUBG人物美
	local UE4 = gg.getRangesList("libUE4.so")
	if not UE4 or #UE4 == 0 then
		os.exit()
	end

	local base_pointer = readPointer('libUE4.so', {0xBEA1400,0x30,0x24A0,0x62D0,0x390,0x0}, 1)
	local pointers = {
		[1] = {pointer = base_pointer + 0x11C, name = "衣服"},

	}

	local config_path = gg.EXT_FILES_DIR:gsub("%lua$", "") .. "/PUBG配置.ini"
	local config_data = loadfile(config_path)
	local config = config_data and config_data()
	if not config or #config == 0 then
		config = {}
	end

	local values = {}
	local names = {}

	for i, p in ipairs(pointers) do
		table.insert(names, p.name.."美化代码:↓ \n初始1400129 \n木乃伊1400687 \n深渊皇后1406140\n小丑1405092\n猴子1406327\n祖国人1406439\n胖达1405039\n黄金木乃伊1405623\n蓝色木乃伊1406891\n满级艳后1406475\n满级法老140460\n满级血鸦1405870\n海洋圣装1405983\n满级精灵王1406311\n满级寒冰1406152\n黑诡皇1406641\n白诡皇1406638\n血渊圣王1406872\n裁决冥王1406569\n至尊银龙1400779\n金尊法老1406469\n五条1406244\n机械狂鲨1406039\n伏黑1406241\n明日香1406387\n美国战警套装1405062\n千面诡煌1410245\n哥斯拉套装1405160\n巫女套装1405056\n幽灵舞姬1406573\n振翅灵甲1406399\n涤焰魔甲1410072\n辉耀星云1406483\n武魂宗师1406742\n星海提督1406657\n猎魂者1406574\n荆棘红冠1406482\n请先下载好资源包\n\n请输入美化代码：")
		table.insert(values, config[i])
	end
	
	table.insert(values, config[8])

	local options = gg.prompt(names, values, {"number>", "number", "number", "number", "number", "number", "number", "checkbox"})

	if options then

		gg.saveVariable(options, config_path)

		for i, p in ipairs(pointers) do
			if i==6 or i==7 or options[i]==""then else
				gg.edits(p.pointer-4, {{options[i], 4, 0}}, p.name)
			end
		end

		if options[8] then
			if options[6]==""then else
				gg.edits(pointers[6].pointer-4, {{options[6], 4, 0}}, pointers[6].name)
			end
			if options[7]==""then else
				gg.edits(pointers[7].pointer-4, {{options[7], 4, 0}}, pointers[7].name)
			end
		end
		end
    end,
    function()
        
    end
    ),  

    changan.switch("人物加速[危险]",
    function()
        abc()
      
    end,
    function()
    a1()
    
    end
    ), 
    changan.switch("人物秒落地\n[娱乐]",
    function()
gg.toast("跳伞加速将于14秒后自动关闭")
string.toMusic("跳伞加速已开启")
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "3", 16, "加速"))
gg.sleep(14000)
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "1", 16, "防拉"))
gg.toast("跳伞加速已自动关闭")
string.toMusic("跳伞加速已关闭")    
    end,
    function()

    end
    ),   
  changan.switch("定点飞天[娱乐]",
    function()
OP=gg.prompt({'1到2.5'},{[1]='1.5'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xE68, 0x160, 0x268, 0x0A8}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})--改0.1~0.35
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x17c}, 1)
		gg.edits(addr, {{0, 16, 0, false}})--改0.1~0.35
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
		gg.edits(addr, {{0, 16, 0, false}})--改0.1~0.35
		RW=gg.prompt({'0.1到0.35'},{[1]='0.15'},{[1]='number'})
		if RW == nil or RW[1] == '' or RW[1] == '0' then gg.toast("取消")
			else
			local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x84}, 1)
			gg.edits(addr, {{RW[1], 16, 0, false}})--改0.1~0.35
			so=gg.getRangesList('libUE4.so')[1].start
			py=0x81F67E8
			setvalue(so+py,16,-3.4564993e10)
			gg.toast("开启成功")
		end
	end
      
    end,
    function()    
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xE68, 0x160, 0x268, 0x0A8}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x17c}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
	gg.edits(addr, {{443, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x84}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	so=gg.getRangesList('libUE4.so')[1].start
	py=0x81F67E8
	setvalue(so+py,16,8.50279631e-21)    
    end
    ),   
    changan.switch("跑毒加速[娱乐]",
    function()
        WZ1()
      
    end,
    function()
    WZ2()
    
    end
    ),     
    changan.switch("蹲下加速[娱乐]",
    function()
    string.toMusic('蹲下加速开启成功')
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
 while true do--//循环
function zhi(a, b)--a是地址，b是类型，c是返回值
    local c = gg.getValues({{address = a, flags = b}})[1].value
    return c
end
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3AC08, 0x0, 0x388, 0x8, 0x3C8}
local ttt = S_Pointer(t, tt, true)
r={}
    r[1] = {}
	r[1].address = ttt
	r[1].name = "判断"
	r[1].flags = 4
gg.addListItems(r)
-- 获取地址值并返回
while true do
gg.sleep(100)
if zhi(ttt,4)>0 then
local addr = readPointer("libUE4.so:bss", {0x3A1D8, 0x0, 0x84}, 1)
gg.edits(addr, {{0.7, 16, 0, false}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,-3.4564993e10)
end
if zhi(ttt,4)==0 then
local addr = readPointer("libUE4.so:bss", {0x3A1D8, 0x0, 0x84}, 1)
gg.edits(addr, {{1, 16, 0, false}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,8.50279631e-21)
end
if gg.isVisible(true) then 
Yk = gg.alert("检测循环时打开修改器 是否退出？","退出功能","继续执行")
gg.sleep(150)
if  Yk~=1 and CB~=2 then
 gg.setVisible(false)
  else 
     end
    if  Yk== 1 then 
   Exit()
      end
    end
   end
  end
    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
	so=gg.getRangesList('libUE4.so')[1].start
	py=0x81F67E8
	setvalue(so+py,4,505453829)
   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
	so=gg.getRangesList('libUE4.so')[1].start
	py=0x81F67E8
	setvalue(so+py,4,505453824)
    string.toMusic("蹲下加速关闭成功")
    gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
    end
    ),  
    changan.switch("微加速[娱乐]",
    function()
OP=gg.prompt({'1～1.9之间'},{[1]='1.2'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
end
	string.toMusic('微加速开启成功')
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
    end,   
    function()
OP=gg.prompt({'1～1.9之间'},{[1]='1.2'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
end
	string.toMusic('微加速关闭成功')
gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
    end
    ),  
    changan.switch("开枪加速[娱乐]",
    function()  
string.toMusic("开枪加速开启成功")		
	gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		       
  		zs=
	readAdd(readAdd(getAdd('libUE4.so:bss','0x3AC08')+0x0)+0x78)
while(true)do--循环
if gg.isVisible(true)then
 gg.setVisible(false)
 else

panduan=gg.getValues({[1]={address=zs+0x1538,flags=4}})[1].value
if panduan == "1" then
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,-3.4564993e10)
else
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,8.50279631e-21)
end--
end
end      
    end,
    function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,8.50279631e-21)
string.toMusic('关闭成功')
    end
    ), 
    changan.switch("挥拳加速[娱乐]",
    function()   
	string.toMusic("挥拳加速开启成功")	
    gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
zs=readAdd(readAdd(getAdd('libUE4.so:bss','0x3AC08')+0x0)+0xE60)
while(true)do--循环
if gg.isVisible(true)then
 gg.setVisible(false)
 else
panduan=gg.getValues({[1]={address=zs+0x910,flags=4}})[1].value
if panduan == "1" then
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,-3.4564993e10)
else
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,8.50279631e-21)
end--
end
end    
    end,
    function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,8.50279631e-21)
    string.toMusic("挥拳加速关闭成功")
    gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))				
    end
    ), 
        changan.switch("人物路飞[娱乐]",
    function()
  qmnb = {
{["memory"] = 32},
{["name"] = "站立向前"},
{["value"] = 5.821421146392822, ["type"] = 16},
{["lv"] = 25.46935272216797, ["offset"] = 28, ["type"] = 16},
}
qmxg = {
{["value"] = 150, ["offset"] = 0, ["type"] = 16},
}
xqmnb(qmnb)
qmnb = {
{["memory"] = 32},
{["name"] = "蹲下向上"},
{["value"] = 18.38787841796875, ["type"] = 16},
{["lv"] = 4.135903555803204E-25, ["offset"] = 24, ["type"] = 16},
}
qmxg = {
{["value"] = 150, ["offset"] = 0, ["type"] = 16},
}
xqmnb(qmnb)
gg.toast("开启成功")
    end,   
    function()
  qmnb = {
{["memory"] = 32},
{["name"] = "站立向前"},
{["value"] = 5.821421146392822, ["type"] = 16},
{["lv"] = 25.46935272216797, ["offset"] = 28, ["type"] = 16},
}
qmxg = {
{["value"] = 150, ["offset"] = 0, ["type"] = 16},
}
xqmnb(qmnb)
qmnb = {
{["memory"] = 32},
{["name"] = "蹲下向上"},
{["value"] = 18.38787841796875, ["type"] = 16},
{["lv"] = 4.135903555803204E-25, ["offset"] = 24, ["type"] = 16},
}
qmxg = {
{["value"] = 150, ["offset"] = 0, ["type"] = 16},
}
xqmnb(qmnb)
gg.toast("开启成功")
    end
    ),  
    changan.switch("人物高跳[安全]",
    function()
    OP=gg.prompt({'443到4000'},{[1]='3500'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x17c}, 1)
		gg.edits(addr, {{6, 16, 0, false}})--改0.1~0.35
		local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
		gg.edits(addr, {{OP[1], 16, 0, false}})--改0.1~0.35
		gg.toast("高跳开启成功")
	end
    end,   
    function()
    local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x17c}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
	gg.edits(addr, {{443, 16, 0, false}})--改0.1~0.35
	string.toMusic('高跳关闭成功')
    gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
    end
    ),  
        changan.switch("使斗宗踏空\n[娱乐专用]",
    function()
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0x458,0x1AC+0x5C}, "修改", "99999.0", 16, "跳远"))
local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
gg.edits(addr, {{800, 16, 0, false}})
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0x528}, "修改", "999", 16, "加速"))
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "0.1", 16, "防拉"))
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0xE68,0x160,0x268,0x0A8}, "修改", "4", 16, "加速"))
so=gg.getRangesList('libUE4.so')[1].start
py=0x81F67E8
setvalue(so+py,16,-3.4564993e10)
string.toMusic('跳跃高度开启成功连续跳跃开启成功慢动作防止拉回开启成功空中滑动速度开启成功微加速使滑动速度提高开启成功使斗宗速度提高开启成功')
    gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		      
    end,   
    function()  
    print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0x458,0x1AC+0x5C}, "修改", "8192", 16, "跳远"))
local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
gg.edits(addr, {{443, 16, 0, false}})
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0x528}, "修改", "1.40129846e-45", 16, "加速"))
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "1", 16, "防拉"))
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0xE68,0x160,0x268,0x0A8}, "修改", "1", 16, "加速"))
so=gg.getRangesList('libUE4.so')[1].start
py=0x81F67E8
setvalue(so+py,16,8.50279631e-21)  
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0xE68, 0x160, 0x268, 0x0A8}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x17c}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x48, 0x8, 0x184}, 1)
	gg.edits(addr, {{443, 16, 0, false}})--改0.1~0.35
	local addr = readPointer("libUE4.so:bss", {0x3AC08, 0x0, 0x84}, 1)
	gg.edits(addr, {{1, 16, 0, false}})--改0.1~0.35
	so=gg.getRangesList('libUE4.so')[1].start
	py=0x81F67E8
	setvalue(so+py,16,8.50279631e-21)    
    string.toMusic("关闭失败，骗你也信哈哈哈.不用怕已经关闭成功了")	
    end
    ),      
    changan.switch("人物跳远[危险]",
    function()
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0x458,0x1AC+0x5C}, "修改", "99999.0", 16, "跳远"))
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0xE68,0x160,0x268,0x0A8}, "修改", "8", 16, "加速"))
gg.toast("开启成功")
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "0.9", 16, "防拉"))
string.toMusic('人物跳远开启成功')
							gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
      
    end,
    function()
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0x458,0x1AC+0x5C}, "修改", "8192", 16, "跳远"))
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08,0x0,0xE68,0x160,0x268,0x0A8}, "修改", "1", 16, "加速"))
gg.toast("关闭成功")
print(LSQ_Chain({'libUE4.so:bss','Cb'},{0x3AC08, 0x0, 0x84}, "修改", "1", 16, "防拉"))
string.toMusic("人物跳远关闭成功")
    end
    ), 
    changan.switch("空中漫步[娱乐]",
    function()
function S_Pointer(t_So, t_Offset, _bit)
	local function getRanges()
		local ranges = {}
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v.type:sub(2, 2) == 'w' then
				table.insert(ranges, v)
			end
		end
		return ranges
	end
	local function Get_Address(N_So, Offset, ti_bit)
		local ti = gg.getTargetInfo()
		local S_list = getRanges()
		local _Q = tonumber(0x269CDB36)
		local t = {}
		local _t
		local _S = nil
		if ti_bit then
			_t = 32
		 else
			_t = 4
		end
		for i in pairs(S_list) do
			local _N = S_list[i].internalName:gsub('^.*/', '')
			if N_So[1] == _N and N_So[2] == S_list[i].state then
				_S = S_list[i]
				break
			end
		end
		if _S then
			t[#t + 1] = {}
			t[#t].address = _S.start + Offset[1]
			t[#t].flags = _t
			if #Offset ~= 1 then
				for i = 2, #Offset do
					local S = gg.getValues(t)
					t = {}
					for _ in pairs(S) do
						if not ti.x64 then
							S[_].value = S[_].value & 0xFFFFFFFF
						end
						t[#t + 1] = {}
						t[#t].address = S[_].value + Offset[i]
						t[#t].flags = _t
					end
				end
			end
			_S = t[#t].address
			-- print(string.char(231,190,164,58).._Q)
		end
		return _S
	end
	local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
	return _A
end
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end    
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2C6A4, 0x0, 0x350, 0x13C}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 16, value = 1000}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2C6A4, 0x0, 0xB98 , 0x1B0, 0x418}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 16, value = 9999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2C6A4, 0x0, 0x350,0x188}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 16, value = 99999}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x2445DD8
 setvalue(so+py,16,0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2445DDC
 setvalue(so+py,16,0)
 so=gg.getRangesList('libUE4.so')[1].start
py=0x25F148C
 setvalue(so+py,16,0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25F1490
 setvalue(so+py,16,0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25F1498
 setvalue(so+py,16,0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x573D598
 setvalue(so+py,16,0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x58301B0
 setvalue(so+py,16,0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x5ED681C
 setvalue(so+py,16,22)
string.toMusic('开启成功')
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
      
    end,
    function()
function S_Pointer(t_So, t_Offset, _bit)
	local function getRanges()
		local ranges = {}
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v.type:sub(2, 2) == 'w' then
				table.insert(ranges, v)
			end
		end
		return ranges
	end
	local function Get_Address(N_So, Offset, ti_bit)
		local ti = gg.getTargetInfo()
		local S_list = getRanges()
		
		local 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
	function PS() end--本源码由tg@zbcai发布搬运请不要删
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
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2C6A4, 0x0, 0x350, 0x13C}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 16, value = 443}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2C6A4, 0x0, 0xB98 , 0x1B0, 0x418}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 4, value = 1}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2C6A4, 0x0, 0x350,0x188}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 16, value = 8192}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x2445DD8
 setvalue(so+py,16,-1.24646391078696E28)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2445DDC
 setvalue(so+py,16,-1.2546846063603395E28)
 so=gg.getRangesList('libUE4.so')[1].start
py=0x25F148C
 setvalue(so+py,16,-6.152623126282461E27)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25F1490
 setvalue(so+py,16,-9.983932770753347E27)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25F1498
 setvalue(so+py,16,-1.2464629663136634E28)
so=gg.getRangesList('libUE4.so')[1].start
py=0x573D598
 setvalue(so+py,16,-5.108018541693195E27)
so=gg.getRangesList('libUE4.so')[1].start
py=0x58301B0
 setvalue(so+py,16,-6.154944759704602E27)
so=gg.getRangesList('libUE4.so')[1].start
py=0x5ED681C
 setvalue(so+py,16,25.725290298461914)
    end
    ),     
    changan.switch("美国功能[半稳]",
    function()
X = gg.alert("自改美国功能", "自改地震", "自改子弹","自改枪械")
  if X == 1 then
    WZ9()
   elseif X == 2 then
    WZ99()
    elseif X == 3 then
    WZ999()
  end
    end,
    function()
    
    end
    ),  

changan.switch("子弹穿墙[危险]",
    function()  
      
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4E0820}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 999}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4E0820}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 999}})    
    
	string.toMusic('子弹穿墙开启成功')
	gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
      
    end,   
    function()
    
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4E0820}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 2}})  

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4E0820}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 2}})  

    string.toMusic("子弹穿墙关闭成功")	
    gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
    end
    ),        
},
{
---这里是第四个菜单
changan.radio({
				"网易云音乐菜单",--栏目名
						}),    
						changan.button("下面还有更多音乐↓",
    function() 
     
    end),
    changan.switch("自定义搜索音乐",
    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
							gg.toast("官方频道@WZJD666")
    end,
    function()
     gg.playMusic("stop")
							gg.playMusic("stop")
							gg.playMusic("stop")
    end
    ),
    changan.switch("随机播放热歌\n[关再开下一个]",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen)
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),    
    changan.switch("原神启动！",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
gg.playMusic("http://music.163.com/song/media/outer/url?id=2043603498.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),    
    changan.switch("搭配原神！",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
gg.playMusic("http://music.163.com/song/media/outer/url?id=1408798068.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),  
    changan.switch("王宝挖野菜",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
gg.playMusic("http://music.163.com/song/media/outer/url?id=2015789002.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),    
    changan.switch("高跳专属歌曲",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
gg.playMusic("http://music.163.com/song/media/outer/url?id=2047795601.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),  
    changan.switch("战神歌曲",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
gg.playMusic("http://music.163.com/song/media/outer/url?id=1985748314.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                    
       changan.switch("洪荒之力",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
							gg.playMusic("http://music.163.com/song/media/outer/url?id=1852308700.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),      
    changan.switch("无雨耶F",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
							gg.playMusic("http://music.163.com/song/media/outer/url?id=2003327136.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ), 
    changan.switch("Ferrari",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
gg.playMusic("http://music.163.com/song/media/outer/url?id=550936829.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                            
    changan.switch("886哥们",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
gg.playMusic("http://music.163.com/song/media/outer/url?id=1986269238.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),      
    changan.switch("大哥神曲",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))
							gg.playMusic("http://music.163.com/song/media/outer/url?id=1377530437.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),           
    changan.switch("无敌神曲",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
							gg.playMusic("http://music.163.com/song/media/outer/url?id=2030763514.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),   
    changan.switch("战歌神曲",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
							gg.playMusic("http://music.163.com/song/media/outer/url?id=527824482.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                   
    changan.switch("原地爆炸",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
							gg.playMusic("http://music.163.com/song/media/outer/url?id=2031442714.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ), 
    changan.switch("离别",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
gg.playMusic("http://music.163.com/song/media/outer/url?id=2048605310.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                             
    changan.switch("待(dj)",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
gg.playMusic("http://music.163.com/song/media/outer/url?id=2027666436.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),               
    changan.switch("劲爆舞曲",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
							gg.playMusic("http://music.163.com/song/media/outer/url?id=2030198627.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),               
    changan.switch("Ligh7%",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))		
gg.playMusic("http://music.163.com/song/media/outer/url?id=1925396823.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),  
    changan.switch("难逃大哥版",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
gg.playMusic("http://music.163.com/song/media/outer/url?id=2004450895.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                             
    changan.switch("印度魔怔",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))			
gg.playMusic("http://music.163.com/song/media/outer/url?id=2019947441.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                             
    changan.switch("脚踩魔怔",
    function()
local color = math.random(000000, 0xffffff)-- 设置随机颜色
text1.setColor(color)-- 设置随机颜色
text2.setColor(color)-- 设置随机颜色
text3.setColor(color)-- 设置随机颜色
text4.setColor(color)-- 设置随机颜色
gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒"))	
							gg.playMusic("http://music.163.com/song/media/outer/url?id=2038442987.mp3")
    end,
    function()
     gg.playMusic("stop")
     gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒"))
    end
    ),                                 
}


})

悬浮窗图标("https://cccimg.com/view.php/07b3af8c270c60c34fe2f6a3ece70963.jpg")--设定悬浮窗图片，可以写链接
功能图标1("https://pan.szfx.top/view.php/491277425ff35328431830b5fae4cd01.png")
功能图标2("https://pan.szfx.top/view.php/9c39f7ebec51ca24009cda2719f69791.png")
功能图标3("https://pan.szfx.top/view.php/88ef3825b09e83e47dcb77f8f54dc81f.png")
功能图标4("/sdcard/长安/图片/config")
---↓下面这段可以修改rgb值修改颜色↓
jianbian1:setColors({
	0xffFF3044,0xff7137FF
})---菜单1的两个渐变，改0xff后面的6位十六进制rgb
jianbian2:setColors({
	0xff0895FF,0xffFF3CA9
})---菜单2的两个渐变，改0xff后面的6位十六进制rgb
jianbian3:setColors({
	0xff24DEFF,0xffFF93CA
})---菜单3的两个渐变，改0xff后面的6位十六进制rgb
jianbian4:setColors({
	0xffFF8944,0xff3BDD37
})---菜单4的两个渐变，改0xff后面的6位十六进制rgb

功能背景1("https://cccimg.com/view.php/07b3af8c270c60c34fe2f6a3ece70963.jpg")---设置背景为上边的jianbian1
功能背景2("https://cccimg.com/view.php/07b3af8c270c60c34fe2f6a3ece70963.jpg")--设定悬浮窗图片，可以写链接或本地路径
功能背景3("http://bsy.lnci.top/view.php/e402d0b4e7b57c0fc9de7785ee0f2665.jpg")
功能背景4("http://bsy.lnci.top/view.php/e402d0b4e7b57c0fc9de7785ee0f2665.jpg")
bloc = luajava.getBlock()
bloc("join")


