string.toMusic('欢迎使用绵羊全防作者绵羊副作者佬狼代理扶贫达人Ford没有脸,火速反馈')draw.setColor('#00fff9')
draw.text("绵", 175,215)--字体
draw.circle(200, 200, 50)--
draw.circle(200, 200, 60)--圆2
draw.setSize(48)
draw.text("羊", 310,215)--字
draw.circle(330, 200, 50)--圆1
draw.circle(330, 200, 60)--圆2

xfcpic="https://pic.imgdb.cn/item/65059d88661c6c8e541edb8c.jpg"
function ui_init()------ui初始化
gg.loopKillGG()--- 杀GG
----------------------------------------------------------------↓音乐↓---------------------------------------------------------------
local json =json
local g = {}
g.file = gg.getFile()
g.sel = nil
gqlb={"请先搜索歌曲",}
idb={"1010"}
SN,gc=1,nil
g.config = gg.getFile():gsub("%lua$", "").."cfg"
function bei()
	g.data = loadfile("-- WSG PRO 1.0.9(109)\n"..g.config)
	if g.data ~= nil then
		g.sel = g.data()
		g.data = nil
	end
	if g.sel == nil then
		g.sel = {"请输入歌曲名","10"}
	end
end
bei()
--搜索歌曲
function start(name,sl)
	fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl)
	return fw
end
--歌词
--播放音乐
function play(id,name)
	gg.toast("正在播放音乐:"..name,true)
	gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3")
end
--停止播放
function stop()
	gg.toast("正在停止音乐")
	for i=1,100 do
		gg.playMusic("stop")
		gg.playMusic("stop")
		gg.playMusic("stop")
	end
end
----
function Play(gqlb,idb)
	SN = gg.choice(gqlb,nil,ts)
	if SN == nil then XGCK =-1 else
		sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN])
		if sn == nil then end
		if sn == 1 then
			play(idb[SN],gqlb[SN])
		end
		if sn == 2 then
			local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content
			local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3"
			io.open(XEY1,"w"):write(XEY)
			gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1)
		end
		XGCK=-1
	end
end
function zjson(jsonr)
	local str = jsonr
	-- 匹配Json Key的正则表达式
	local pattern = "\"[%w]+\":"
	string.gsub(str, pattern, function(v)
		if string.find(str, v) then
			str = string.gsub(str, v, string.gsub(v, "\"", ""))
		end
	end)
	str = string.gsub(str, ":", "=")
	str = string.gsub(str, "%[", "{")
	str = string.gsub(str, "%]", "}")
	local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str
	local res = load(data)()
	return res
end

function json(con)
	res=zjson(con)
	zd=res.result.songCount
	pd=go3-zd
	if pd <= 0 then else go3=zd end
	ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首"
	gqlb={}
	idb={}
	for i=1,go3 do
		gqlb[i]=res.result.songs[i].name
		idb[i]=res.result.songs[i].id
	end
	--print(idb)
end
function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end
----------------------------------------------------------------个音乐个---------------------------------------------------------------

-------------------------------------------------------------------------------------美化-------------------------------------------------------------------------

function S_Pointer(t_So, t_Offset, _bit)
	local function getRanges() 
		local ranges = {}
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v.type:sub(2, 2) == 'w' then
				table.insert(ranges, v)
			end
		end
		return ranges 
	end
	local function Get_Address(N_So, Offset, ti_bit)
		local ti = gg.getTargetInfo()
		local S_list = getRanges()
		local t = {}
		local _t
		local _S = nil 
		if ti_bit then
			_t = 32
	else
			_t = 4
		end
		for i in pairs(S_list) do
			local _N = S_list[i].internalName:gsub('^.*/', '')
			if N_So[1] == _N and N_So[2] == S_list[i].state then
				_S = S_list[i]
				break
			end 
		end
		if _S then
			t[#t + 1] = {}
			t[#t].address = _S.start + Offset[1]
			t[#t].flags = _t
			if #Offset ~= 1 then
				for i = 2, #Offset do
					local S = gg.getValues(t)
					t = {}
					for _ in pairs(S) do
						if not ti.x64 then
							S[_].value = S[_].value & 0xFFFFFFFF
						end
						t[#t + 1] = {}
						t[#t].address = S[_].value + Offset[i]
						t[#t].flags = _t
					end
				end
			end
			_S = t[#t].address
			
		end
		return _S
	end
	local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
	return _A
end
--遍历写法
local function readD ( a )
    return gg.getValues ( { {
            address = a ,
            flags = 4
        } } ) [ 1 ].value
end

function setvalue(address,flags,value)
local tt={} tt[1]={}
tt[1].address=address
tt[1].flags=flags
tt[1].value=value
gg.setValues(tt)
end

function addListltems(address,flags,value,freeze)
t={} t[1]={}
t[1].address=address
t[1].flags=flags
t[1].value=value
t[1].freeze=freeze
gg.addListItems(t)
end

function xfnb(add,lx)
return gg.getValues({
{
address=add,flags = lx
}
})[1].value
end

local function RUI(address)
return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value
end
function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
function addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end
local function RUI(address)
return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value
end
function readPointer(name, offset, i)
	local re = gg.getRangesList(name)
	local x64 = gg.getTargetInfo().x64
	local va = {[true] = 32, [false] = 4}
	if re[i or 1] then
		local addr = re[i or 1].start + offset[1]
		for i = 2, #offset do
			addr = gg.getValues({{address = addr, flags = va[x64]}})
			if not x64 then
				addr[1].value = addr[1].value & 0xFFFFFFFF
			end
			addr = addr[1].value + offset[i]
		end
		return addr
	end
end

function gg.edits(addr, Table, name)
	local Table1 = {{}, {}}
	for k, v in ipairs(Table) do
		local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]}
		if v[4] then
			Table1[2][#Table1[2] + 1] = value
		else
			Table1[1][#Table1[1] + 1] = value
		end
	end
	gg.addListItems(Table1[2])
	gg.setValues(Table1[1])
	gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值")
end
function 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 split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end
function setvalue(address, flags, value)
    local tt = {}
    tt[1] = {}
    tt[1].address = address
    tt[1].flags = flags
    tt[1].value = value
    gg.setValues(tt)
    end
    function read(address, flags)
    local tt = {}
    tt[1] = {}
    tt[1].address = address
    tt[1].flags = flags
    filzer = gg.getValues(tt)[1].value 
    return filzer
    end
    function getbase(address)
    local tt = {}
    tt[1] = {}
    tt[1].address = address
    tt[1].flags = 32
    filzer = gg.getValues(tt)[1].value 
    return filzer
end



function S_Pointer(t_So, t_Offset, _bit)
local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x2C4D6BCE) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 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
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要17024)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
---静态基址写法配置


function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "地址成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "失败") end end end end

--仿XS写法配置

function xqmnb(Search,Modification)
gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败')  return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do  sum=0 for i=1,#Result do  if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true  sum=sum+1 end  end  if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end  local Data,Freeze,Freezes={},{},0  sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then  local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value  end  sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze)  if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end



-- 读取内存地址的函数
function readPointer(name, offset, i)
local re = gg.getRangesList(name)  local x64 = gg.getTargetInfo().x64  local va = {[true]=32, [false]=4}  if re[i or 1] then local addr = re[i or 1].start + offset[1]  for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}})  if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}  for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end
local Ranges=gg.getRangesList('/')
local function Read(module,type)
    for k,v in pairs(Ranges) do
        if v['internalName']:match('[^/]*$')==module and v['type']==type then
            return v['start']
        end
    end
end


function S_Pointer(t_So, t_Offset, _bit)
	local function getRanges() 
		local ranges = {}
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v.type:sub(2, 2) == 'w' then
				table.insert(ranges, v)
			end
		end
		return ranges 
	end
	local function Get_Address(N_So, Offset, ti_bit)
		local ti = gg.getTargetInfo()
		local S_list = getRanges()
		local t = {}
		local _t
		local _S = nil 
		if ti_bit then
			_t = 32
	else
			_t = 4
		end
		for i in pairs(S_list) do
			local _N = S_list[i].internalName:gsub('^.*/', '')
			if N_So[1] == _N and N_So[2] == S_list[i].state then
				_S = S_list[i]
				break
			end 
		end
		if _S then
			t[#t + 1] = {}
			t[#t].address = _S.start + Offset[1]
			t[#t].flags = _t
			if #Offset ~= 1 then
				for i = 2, #Offset do
					local S = gg.getValues(t)
					t = {}
					for _ in pairs(S) do
						if not ti.x64 then
							S[_].value = S[_].value & 0xFFFFFFFF
						end
						t[#t + 1] = {}
						t[#t].address = S[_].value + Offset[i]
						t[#t].flags = _t
					end
				end
			end
			_S = t[#t].address
			
		end
		return _S
	end
	local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
	return _A
end
--遍历写法
local function readD ( a )
    return gg.getValues ( { {
            address = a ,
            flags = 4
        } } ) [ 1 ].value
end

function setvalue(address,flags,value)
local tt={} tt[1]={}
tt[1].address=address
tt[1].flags=flags
tt[1].value=value
gg.setValues(tt)
end

function addListltems(address,flags,value,freeze)
t={} t[1]={}
t[1].address=address
t[1].flags=flags
t[1].value=value
t[1].freeze=freeze
gg.addListItems(t)
end

function xfnb(add,lx)
return gg.getValues({
{
address=add,flags = lx
}
})[1].value
end

local function RUI(address)
return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value
end
function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
function addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end
local function RUI(address)
return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value
end
----------------------------------------------------------------------------------个美化个---------------------------------------------------------------------

----------------------------------------------------------------------------------↓防封↓---------------------------------------------------------------------

function S_Pointer(t_So, t_Offset, _bit)
local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x2C4D6BCE) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 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
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要17024)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
---静态基址写法配置


function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "地址成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "失败") end end end end

--仿XS写法配置

function xqmnb(Search,Modification)
gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败')  return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do  sum=0 for i=1,#Result do  if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true  sum=sum+1 end  end  if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end  local Data,Freeze,Freezes={},{},0  sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then  local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value  end  sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze)  if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end



-- 读取内存地址的函数
function readPointer(name, offset, i)
local re = gg.getRangesList(name)  local x64 = gg.getTargetInfo().x64  local va = {[true]=32, [false]=4}  if re[i or 1] then local addr = re[i or 1].start + offset[1]  for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}})  if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}  for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end
----------------------------------------------------------------------------------个防封个-----------------------------------------------------------------------

-------------------------------------------------------------↓脚本配置↓-----------------------------------------------------------
changan = {}
local changan = changan
local android = import('android.*')
function write(fileName, content)
--f = assert( io.open( fileName, 'w'))   f:write( content )     f:close()
if file.write(fileName, content) == false then gg.alert("请给框架和修改器 文件储存权限\n否则无法正常运行") os.exit() end
end
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
function pdcf(lujing) rec = "/sdcard/小何牛逼/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end
sleep = gg.sleep
if gg.isHTTPdump()==true and panduan("/sdcard/小何牛逼/配置文件/vpn.txt") == false then os.exit() end
function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end
function wtcf(lujing,neirong)
write("/sdcard/小何牛逼/配置文件/"..lujing,neirong)
end
function rdcf(lujing)
return read("/sdcard/小何牛逼/配置文件/"..lujing)
end
function pmusic(x) if audiokg == "å¼€" then tmp1 = 0 gg.playMusic(x) tmp1 = 1 end end
if pdcf("audio") ~= true then wtcf("audio","å¼€") end
audiokg = rdcf("audio")
function camusic(ress)
tmp1 = 0
if audiokg == "å¼€" then
if panduan("/sdcard/小何牛逼/音频/"..ress) == true then
pmusic("/sdcard/小浩牛逼/音频/"..ress)
tmp1 = 1
else
	download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..ress ,"/sdcard/小何牛逼/音频/"..ress)
pmusic("/sdcard/小何牛逼/音频/"..ress)
tmp1 = 1
end
end
end
å¼€ = "å¼€" å…³ = "å…³"
function checkimg(tmp)
if panduan("/sdcard/小何牛逼/图片/"..tmp) ~= true then
gg.toast("正在下载资源"..tmp.."\n请耐心等待")
download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/小何牛逼/图片/"..tmp)
end
end
file.getdirs("/sdcard/小何牛逼/状态读取/")
ckimg = {
	"KBlogo",
	"check1",
	"arblackx",
	"check2",
	"exit",
	"sj",
	"hsj"
}
for i = 1,#ckimg do
jindu = i
checkimg(ckimg[i])
end
context = app.context
window = context:getSystemService("window") -- 获取窗口管理器
function getLayoutParams()
LayoutParams = WindowManager.LayoutParams
layoutParams = luajava.new(LayoutParams)
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY
else
	layoutParams.type = LayoutParams.TYPE_PHONE
end

layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish
layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置
layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度
layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度

return layoutParams
end
function getj6()
jianbian6 = luajava.new(GradientDrawable)
jianbian6:setCornerRadius(20)
jianbian6:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbian6:setColors(菜单小背景颜色)
jianbian6:setStroke(3,菜单小背景边框)--边框宽度和颜色
return jianbian6
end
function getseekgra()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(其他控件背景)
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色
return jianbians
end
function getseekgra2()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(8)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0x66FF55AA,0x66FFAAFF})
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色
return jianbians
end
function 获取图片(txt)
ntxt=string.sub(string.gsub(txt,"/","."),-10,-1)
if string.find(tostring(txt),"http")~=nil then
    if panduan("/storage/emulated/0/图片/图标.png"..ntxt)==false then
    download(txt,"/storage/emulated/0/图片/图标.png"..ntxt)
    end
    txt="/storage/emulated/0/图片/图标.png"..ntxt
end
return luajava.getBitmapDrawable(txt)
end
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(侧边按钮背景1)
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色
slctb = jianbians
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(侧边按钮背景2)
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色

slcta = jianbians

slctc = luajava.loadlayout {
	GradientDrawable,
	color = "#11ffffff",
	cornerRadius = 8
}
slctd = luajava.loadlayout {
	GradientDrawable,
	color = "#55ffffff",
	cornerRadius = 8
}
slcte = luajava.loadlayout {
	GradientDrawable,
	color = "#11ffffff",
	cornerRadius = 12
}
slctf = luajava.loadlayout {
	GradientDrawable,
	color = "#aa1E1C27",
	cornerRadius = 15
}
function getjb()
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(15)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0x66FF55AA,0x66FFAAFF})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
return jianbians
end
function chatbg2()
selector = luajava.getStateListDrawable()
selector:addState({
	android.R.attr.state_pressed
}, luajava.loadlayout {
	GradientDrawable,
	color = "#aa0082FF",
	cornerRadius = 12
}) -- 点击时候的背景
selector:addState({
	-android.R.attr.state_pressed
}, getjb()) -- 没点击的背景
return selector
end
function getshape9()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(button颜色)
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色
return jianbians
end
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0x66FF55AA,0x66FFAAFF})
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色
t3s=jianbians
t4s=luajava.loadlayout {
	GradientDrawable,
	color = "#87000000",
	cornerRadius = 12
}
t5s=jianbians
t6s=luajava.loadlayout {
	GradientDrawable,
	color = "#87000000",
	cornerRadius = 12
}
function getSelector3()
 t9s=getshape9()
selector = luajava.getStateListDrawable()
selector:addState({
	android.R.attr.state_pressed
}, t4s) -- 点击时候的背景
selector:addState({
	-android.R.attr.state_pressed
}, t9s) -- 没点击的背景
return selector
end
function getSelector5()
selector = luajava.getStateListDrawable()
selector:addState({
	android.R.attr.state_pressed
}, t6s) -- 点击时候的背景
selector:addState({
	-android.R.attr.state_pressed
}, t5s) -- 没点击的背景
return selector
end
function getSelector()
selector = luajava.getStateListDrawable()
selector:addState({
	android.R.attr.state_pressed
}, slcta) -- 点击时候的背景
selector:addState({
	-android.R.attr.state_pressed
}, slctb) -- 没点击的背景
return selector
end
function getSelector2()
selector = luajava.getStateListDrawable()
selector:addState({
	android.R.attr.state_pressed
}, slctd) -- 点击时候的背景
selector:addState({
	-android.R.attr.state_pressed
}, slctc) -- 没点击的背景
return selector
end

jianbian = luajava.new(GradientDrawable)
jianbian:setCornerRadius(30)
jianbian:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbian2 = luajava.new(GradientDrawable)
jianbian2:setCornerRadius(30)
jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT)

local isswitch
YoYoImpl = luajava.getYoYoImpl()
changan.menu = function(sview)
if isswitch then
return false
end
for i=1,#stab do
	_ENV["jmb"..i]=getSelector()
end
if #stab> #sview then gg.alert("菜单标题参数多于菜单配置,请检查") os.exit() end
isswitch = true
cebian = {
	LinearLayout,
	id = "ä¾§è¾¹",
	visibility = "gone",
	layout_height = "230dp",
	layout_width = "58dp",
	orientation = "vertical",
	background = {
		GradientDrawable,
		color = "#00ffffff",
		cornerRadius = 10
	},
}
gund = {
	LinearLayout,
	orientation = "vertical",
}
for i = 1,#stab do
_ENV["jm"..i]=luajava.loadlayout({
	LinearLayout,
	id = "jm"..i,
	layout_height = "38.3dp",
	layout_width = "58dp",
	layout_marginTop = "2dp",
	layout_marginBottom = "2dp",
	background = _ENV["jmb"..i],
	onClick=function() 
	changan.controlFlip(_ENV["jm"..i],500)
	切换(i) end,
	{
		TextView,
		gravity = "center",
		textColor=侧边文字颜色,
		text = stab[i][1],
		layout_height = "38.3dp",
		layout_width = "58dp",
		--onClick = function() 切换(i) end
	}})
gund[#gund+1] = _ENV["jm"..i]
end
cebian[#cebian+1] = {
	ScrollView,
	layout_height = "fill_parent",
	layout_width = "fill_parent",
	gund
}
cebian = luajava.loadlayout(cebian)
for i = 1,#stab do
_ENV["layout"..i] = luajava.loadlayout(
	{
		ScrollView,
		background = getj6(),
		fillViewport = "true",
		padding = "2dp",
		id = "layout"..i,
		visibility = "gone",
		gravity="center",
		layout_width = "260dp",
		layout_height = "230dp",
		orientation = "vertical",
			{
			LinearLayout,
			--background = getj6(),
			id = "layoutm"..i,
			gravity = "top",
			layout_width = "260dp",
			orientation = "vertical",
			gravity = "center_horizontal",
		},
	
	})
end
_ENV["layout".. 4] = luajava.loadlayout(
	{LinearLayout,
			orientation = "horizontal",
			layout_width="wrap_content",
			layout_height="230dp",
			visibility = "gone",
		{
		ScrollView,
		background = getj6(),
		fillViewport = "true",
		padding = "3dp",
		id = "layouts".. 4,
		layout_width = "260dp",
		layout_height = "230dp",
		orientation = "vertical",
			{
			LinearLayout,
			--background = getj6(),
			id = "layoutm"..4,
			gravity = "top",
			layout_width = "260dp",
			orientation = "vertical",
			gravity = "center_horizontal",
		}},
	{ScrollView,
		fillViewport = "true",
		id="ltg4",
		{LinearLayout,
			id="layoutg4",
			orientation="vertical",
			gravity="center",
			layout_width="230dp",
			layout_height="wrap_content",
		}}
	})
ckou = {
	LinearLayout,
	id = "chuangk",
	padding="4dp",
	visibility = "gone",
	layout_width = "wrap_content",
	layout_height = "wrap_content",
	orientation = "horizontal",
	cebian,
	
}
for i = 1,#stab do
ckou[#ckou+1] = _ENV["layout"..i]
end
luajava.newThread(function() develo(ckou) end):start()
ckou = luajava.loadlayout(ckou)
title = luajava.loadlayout({
	TextView,
	id = "title",
	textColor = "#000000",
	visibility = "gone",
	text = stab[1][2],
	gravity = "center",
	textSize = "24sp",
	layout_width = "fill_parent",
})
control1=luajava.loadlayout({
ImageView,
id = "control",
hardwareAccelerated="true",
layout_gravity = "left",
background = xfcpic,
layout_width = "45dp",
layout_height = "45dp",
})
frme=luajava.loadlayout({
FrameLayout,
padding = "8dp",
layout_width = "match_parent",
layout_height = "wrap_content",
orientation = "horizontal",
background = beij2,
gravity = "center",
control1,
title,
{
ImageView,
id = "exitt",
visibility = "gone",
layout_gravity = "right",
src = "/sdcard/小何牛逼/图片/arwhitex",
layout_width = "20dp",
layout_height = "20dp",
layout_marginTop = "10dp",
layout_marginRight = "14dp",
}
})
floatWindow = {
LinearLayout,
id = "motion",
layout_width = "wrap_content",
orientation = "vertical",
gravity = "center_vertical",
layout_height = "wrap_content",
frme,
ckou
}local function invoke()
local ok
local RawX, RawY, x, y
mainLayoutParams = getLayoutParams()
floatWindow = luajava.loadlayout(floatWindow)
local function invoke2()
block('start')
for k = 1,#stab do
for i = 1,#sview[k] do
_ENV["layoutm"..k]:addView(sview[k][i])
end
end

window:addView(floatWindow, mainLayoutParams)
block('end')
end

local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
block('join')
control.onClick = function()
隐藏()
end
exitt.onClick = function()
隐藏()
end
jm4.onClick = function()
changan.controlFlip(jm4,500)
切换(4)
gundong()
already = true
changan.setedit("",qltname)
changan.setedit("",qlticon)
end
local isMove

hanshu = function(v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawX = event:getRawX()
RawY = event:getRawY()
x = mainLayoutParams.x
y = mainLayoutParams.y
elseif Action == MotionEvent.ACTION_MOVE then
isMove = true
mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX)
mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(floatWindow, mainLayoutParams)
end
end
motion.onTouch = hanshu
control.onTouch = hanshu
exitt.onTouch = hanshu
for i = 1,#stab do
--_ENV["jm"..i].onTouch = hanshu
end
end

invoke(swib1,swib2)
jm1:setBackground(slcta)
gg.setVisible(false)
luajava.setFloatingWindowHide(true)

end
corbk = true
当前ui = 1
function 切换(x)
当前ui = x
luajava.runUiThread(function()
	for i = 1,#stab do
	_ENV["jm"..i]:setBackground(_ENV["jmb"..i])
	_ENV["layout"..i]:setVisibility(View.GONE)
	end
	title:setText(stab[当前ui][2])
	_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
	_ENV["jm"..当前ui]:setBackground(slcta)
	YoYoImpl:with("FadeIn"):duration(200):playOn(_ENV["layout"..当前ui])
	end)
end
显示 = 0
beij = luajava.new(GradientDrawable)
beij:setCornerRadius(20)
beij:setGradientType(GradientDrawable.LINEAR_GRADIENT)
beij:setColors((大背景颜色))
beij:setStroke(6,大背景边框)--边框宽度和颜色

beij2 = luajava.loadlayout({
	GradientDrawable,
	color = "#001E1C27",
	cornerRadius = 10
})


titlejb = luajava.new(GradientDrawable)
titlejb:setCornerRadius(20)
titlejb:setGradientType(GradientDrawable.LINEAR_GRADIENT)
titlejb:setColors((标题颜色))
if 标题边框开关~=0 then
titlejb:setStroke(6,标题边框颜色)--边框宽度和颜色
end
function getcolor(cl)
cl[1] = tonumber(math.ceil(cl[1]*2.6,0,5))

if cl[1] > 255 then cl[1] = "0xff" else
	cl[1] = "0x"..string.format("%x",cl[1]) end
for i = 1,3 do
cl[i+1] = string.format("%x",cl[i+1])
if string.len(cl[i+1]) == 1 then cl[i+1] = "0"..cl[i+1] end
end
cl = cl[1]..cl[2]..cl[3]..cl[4]
return cl
end
function getrgb(cl)
if string.sub(cl,1,1) == "#" then cl = "0x"..string.sub(cl,2,-1) end
cl = {
	tonumber(string.sub(cl,0,4)),tonumber("0x"..string.sub(cl,5,6)),tonumber("0x"..string.sub(cl,7,8))}
return cl
end
function 隐藏()
luajava.runUiThread(function()
--control:setBackground(luajava.getBitmapDrawable("/sdcard/一念牛逼/图片/arlogo"))
	if tonumber(tostring(cebian:getVisibility())) == 8.0 then
	chuangk:setVisibility(View.VISIBLE)
	cebian:setVisibility(View.VISIBLE)
	title:setVisibility(View.VISIBLE)
	exitt:setVisibility(View.VISIBLE)
	frme:setBackground(titlejb)
	显示=1
	mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
	window:updateViewLayout(floatWindow, mainLayoutParams)
	YoYoImpl:with("SlideInDown"):duration(200):playOn(cebian)
	_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
	YoYoImpl:with("FadeIn"):duration(800):playOn(_ENV["layout"..当前ui])
	floatWindow:setBackground(beij)
	else
		显示=0
		luajava.runUiThread(function()mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
		window:updateViewLayout(floatWindow, mainLayoutParams)
		end)
	frme:setBackground(beij2)
--control:setBackground(luajava.getBitmapDrawable("/sdcard/一念牛逼/图片/arlogo"))
	title:setVisibility(View.GONE)
	exitt:setVisibility(View.GONE)
	floatWindow:setBackground(beij2)
	chuangk:setVisibility(View.GONE)
	cebian:setVisibility(View.GONE)
	_ENV["layout"..当前ui]:setVisibility(View.GONE)
	end
	end)
end
function guid()
seed = {
	'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'
}
tb = {}
for i = 1,32 do
table.insert(tb,seed[math.random(1,16)])
end
sid = table.concat(tb)
return string.format('%s%s%s%s%s',
	string.sub(sid,1,8),
	string.sub(sid,10,12),
	string.sub(sid,21,22))
..string.format('%s%s%s%s%s',
	string.sub(sid,1,6),
	string.sub(sid,21,25)
)
end


chazhi = {} chajv = {}
function changan.seek(name,bian,smin,smax,nows)
_ENV[bian] = nows
thum=getseekgra()
thum:setSize(60, 60)
smin = tonumber(smin) smax = tonumber(smax)
chajv[bian] = smax-smin
chazhi[bian] = 1-smin
if smin == nil then smin = 1 smax = 10 end
truesmin = 1
truesmax = truesmin+chajv[bian]
if not nows then nows = smin tnows = (smin-nows)
else
	tnows = (nows-smin)+1
end
if _ENV[bian] == nil then _ENV[bian] = 1.0 end
if not name then name = "未设置" end
local names = name..guid()
rest = luajava.loadlayout({
	LinearLayout,
	layout_width = 'fill_parent',
	layout_hight = "fill_parent",
	{
		LinearLayout,
		layout_width = 'fill_parent',
		layout_hight = "fill_parent",
		layout_marginTop = "5dp",
		layout_marginBottom = "5dp",
		layout_marginLeft = "10dp",
		layout_marginRight = "10dp",
		gravity = "center_vertical",
		background = getseekgra(),
		{
			TextView,
			gravity = "top",
			textColor=txtco,
			text = name..":"..nows,
			id = luajava.newId(names),
			layout_width = '110dp',
			layout_marginLeft = "5dp",
			layout_marginRight = "0dp",
		},
		{
			SeekBar,
			layout_width = '100dp',
			min = truesmin,
			max = truesmax,
			progress = tnows,
			progressDrawable={getseekgra2()},
			thumb=thum,
			onSeekBarChange = {
				onProgressChanged = function(SeekBar, var2, var3)
				if not var3 then
				return
				end
				local resultvar = tonumber(string.sub(var2,0,-3))-chazhi[bian]
				luajava.runUiThread(function()
					luajava.getIdValue(names):setText(name..":".. resultvar)
					end)
				_ENV[bian] = resultvar
				end
			}}
	}})

return rest
end





function changan.switch(name,func1,func2)
local func = 开关(name,func1,func2)
if not name then name = "未设置" end
rest = luajava.loadlayout({
	LinearLayout,
	layout_width = 'fill_parent',
	layout_hight = "fill_parent",
	{
		LinearLayout,
		layout_width = 'fill_parent',
		layout_hight = "fill_parent",
		layout_marginTop = "5dp",
		layout_marginBottom = "5dp",
		layout_marginLeft = "10dp",
		layout_marginRight = "10dp",
		gravity = "center_vertical",
		background = getseekgra(),
		{
			TextView,
			gravity = "top",
			text = name,
			layout_width = '140dp',
			layout_marginLeft = "10dp",
			layout_marginRight = "10dp",
		},
		{
			Switch,
			gravity = "top",
			layout_width = 'match_parent',
			layout_hight = "10dp",
--id=luajava.newId(tid),
			switchMinWidth = "20dp",
			onCheckedChange = function(Switch,var2,var3)
			if var2 == true then var2 = "å¼€" else var2 = "å…³" end
			luajava.newThread(function() func() end):start()
			end,

		}}
})

return rest
end
function changan.edit(name)
_ENV[name] = name..guid()
if not name then name = "" end
rest = luajava.loadlayout({
	LinearLayout,
	layout_width = 'fill_parent',
	layout_hight = "fill_parent",
	{
		LinearLayout,
		layout_width = 'fill_parent',
		layout_hight = "fill_parent",
		layout_marginTop = "5dp",
		layout_marginBottom = "5dp",
		layout_marginLeft = "10dp",
		layout_marginRight = "10dp",
		gravity = "center_vertical",
		background = getseekgra(),
		{
			EditText,
			gravity = "top",
			hint = name,
			gravity = "center",
			id = luajava.newId(_ENV[name]),
			layout_width = 'fill',
			layout_marginLeft = "10dp",
			layout_marginRight = "10dp",
		}}
})


return rest
end
function changan.radio(radio)
firadio = {
	LinearLayout,
	layout_width = 'fill_parent',
	layout_hight = "fill_parent",
	padding = "10dp",
	orientation = "vertical"
}
if type(radio[1]) == "string" or type(radio[1]) == "number" then
firadio[#firadio+1] = {
	TextView,text = radio[1],
	textColor=txtco
} end
radios = {
	RadioGroup,background = getseekgra(),
	layout_width = 'fill_parent',
}
for i = 2,#radio do
radios[#radios+1] = {
	RadioButton,
	layout_width = 'fill_parent',
	text = radio[i][1],
	textColor=txtco,
	onClick = function() luajava.newThread(function() pcall(radio[i][2]) end):start() end,
}
end
firadio[#firadio+1] = radios
return luajava.loadlayout(firadio)
end

function changan.check(cklist)
local rest = {
	GridLayout,
	columnCount = '3',
	layout_width = 'match_parent',
	layout_height = "wrap_content",
	layout_marginLeft = "3dp",
	layout_marginRight = "3dp",
	gravity = "center"

}
for i = 1,#cklist do
local name = cklist[i][1]
local func1 = cklist[i][2]
local func2 = cklist[i][3]
if not name then name = "未设置" end
rstt = changan.intcheck(name,func1,func2)
rest[#rest+1] = rstt
end
return luajava.loadlayout({
	LinearLayout,rest
})
end
function changan.intcheck(name,func1,func2)
nid = name..guid()
local func = 开关3(name,func1,func2,nid)
if not name then name = "未设置" end
local rest = luajava.loadlayout({
	LinearLayout,
	layout_width = 'wrap_content',
	layout_height = "32dp",
	layout_marginTop = "1dp",
	layout_marginBottom = "1dp",
	padding = "1dp",
	{
		LinearLayout,
		onClick = function() luajava.newThread(function() func() end):start() end,
		layout_width = 'fill_parent',
		layout_height = "32dp",
		gravity = "center_vertical",
		
		{
			TextView,
			gravity = "left",
			text = name,
			textColor="#FFFFFFFF",
			textSize = "12sp",
			gravity="center",
--layout_marginLeft="8dp",
			layout_width = '45dp',
		},
		{
            FrameLayout,
            id = luajava.newId(nid),
            background = checkbg,
            onClick = function() luajava.newThread(function() func() end):start() end,
            layout_width = '38dp',
            layout_height = 'wrap_content',
            padding="1dp",
            {
            LinearLayout,
            layout_gravity="left",
            id = luajava.newId(nid.."k"),
            background = checkbg1,
            onClick = function() luajava.newThread(function() func() end):start() end,
            layout_width = '21dp',
            layout_height = '21dp',
        	},{
            LinearLayout,
            visibility="gone",
            layout_gravity="right",
            id = luajava.newId(nid.."g"),
            background = checkbg2,
            onClick = function() luajava.newThread(function() func() end):start() end,
            layout_width = '21dp',
            layout_height = '21dp',
        	}
        }}
})

return rest
end
function 开关3(name,func1,func2,nid)
	_ENV [ name ] = "å…³"
	if func1 == nil then
		func1 = ""
	end
	if func2 == nil then
		func2 = ""
	end
	if type(func1 ) == "function" then
		return function()
			namers = _ENV [ name ]
			if namers ~= "å¼€" then
				luajava.runUiThread(function()
    luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
    luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
    luajava.getIdValue(nid):setBackground(checkbga)
    end)
_ENV [ name ] = "å¼€"
				pcall(func1 )
			else
	luajava.runUiThread(function()
	luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
    luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
    luajava.getIdValue(nid):setBackground(checkbg)
    end)
_ENV [ name ] = "å…³"
				pcall(func2 )
			end

		end

	end
end

function getShape(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(1,tmp3)--边框宽度和颜色
return jianbians
end
function getShape2(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(1,tmp3)--边框宽度和颜色
return jianbians
end
checkbg=getShape(
	45,
	{0x66FF55AA,0x66FFAAFF},
	10,0x7F02000C)
checkbga=getShape(
	45,
	{0x66FF55AA,0x66FFAAFF},
	10,0x7F02000C)
checkbg1=getShape2(
	45,
	{0x66FF55AA,0x66FFAAFF},
	10,0x7F02000C)
checkbg2=getShape2(
	45,
	{0x66FF55AA,0x66FFAAFF},
	10,0x7F02000C)

function changan.button(txt,func)
if not txt then txt = "未设置" end
return luajava.loadlayout(
	{
		LinearLayout,
		layout_width = 'fill_parent',
		layout_hight = "wrap_content", {
			LinearLayout,
			layout_width = "fill_parent",
			gravity = "center_horizontal",
			layout_marginRight = "10dp",
			layout_marginLeft = "10dp",
			layout_marginTop = "5dp",
			layout_marginBottom = "5dp",
			background = getSelector3(),
			onClick = function() luajava.newThread(function() pcall(func) end):start() end,
			{
				TextView,
--id = luajava.newId(tid),
				text = txt,
				textColor=txtco,
				textSize = "16sp",
				layout_width = "wrap_content",
			},
		}})
end
function changan.text(txt,color,size)
if not txt then txt = "未设置文字" end
if not color then color = "#ffffff" end
if not size then size = "18sp" end
return luajava.loadlayout(
	{
		TextView,
		text = txt,
		textSize = size,
		textColor = color,
		layout_width = "wrap_content",
	})
end
corb = true
function changan.setedit(name,txt)
txt = tostring(txt)
luajava.runUiThread(function()
	luajava.getIdValue(_ENV[name]):setText(txt)
	end)
end

function changan.getedit(name)
gg.alert(edit)
edit = tostring(luajava.getIdValue(_ENV[name]):getText())
return edit
end
function 开关(name,func1,func2)
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "å¼€" then
_ENV[name] = "å¼€"
pcall(func1)
else
	_ENV[name] = "å…³"
pcall(func2)
end

end
end
end
function 开关2(name,func1,func2,nid)
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "å¼€" then
luajava.runUiThread(function()
	luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png"))
	end)
_ENV[name] = "å¼€"
func1()
else
	luajava.runUiThread(function()
	luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png"))
	end)
_ENV[name] = "å…³"
func2()
end

end
end
end
function deve(t)
	luajava.newThread(function() gg.alert(tostring(t)) end):start()
end
changan.controlChange = function(control,colors)
luajava.runUiThread(function()
	if type(colors) ~= "table" then
	end
	import "android.animation.ObjectAnimator"
	import "android.animation.ArgbEvaluator"
	import "android.animation.ValueAnimator"
	import "android.graphics.Color"
	colorAnim = ObjectAnimator:ofInt(control,"textColor", colors)
	colorAnim:setDuration(7000)
	colorAnim:setEvaluator(ArgbEvaluator())
	colorAnim:setRepeatCount(ValueAnimator.INFINITE)
	colorAnim:setRepeatMode(ValueAnimator.REVERSE)
	colorAnim:start()
	end)
end
changan.controlRotetion = function(control,time)
luajava.runUiThread(function()
	import "android.view.animation.Animation"
	import "android.animation.ObjectAnimator"
	xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
		0,360
	})
	xuanzhuandonghua:setRepeatCount(0)
	xuanzhuandonghua:setRepeatMode(Animation.REVERSE)
	xuanzhuandonghua:setDuration(time)
	xuanzhuandonghua:start()
	end) end
xuanzhuandonghua = nil  -- 全局变量用于保存动画对象

changan.controlRotation2 = function(control, time)
    luajava.runUiThread(function()
        import "android.view.animation.Animation"
        import "android.animation.ObjectAnimator"
        xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {
            0,360
        })
        xuanzhuandonghua:setRepeatCount(0)
        xuanzhuandonghua:setRepeatMode(Animation.RESTART)
        xuanzhuandonghua:setDuration(time)
        xuanzhuandonghua:start()
    end)
end

-- 停止旋转动画
changan.stopRotation = function()
    if xuanzhuandonghua then
        xuanzhuandonghua:cancel()
    end
end
changan.controlFlip = function(control,time)
	luajava.runUiThread(function()
  import "android.view.animation.Animation"
  import "android.animation.ObjectAnimator"
  xuanzhuandonghua1 = ObjectAnimator:ofFloat(control, "rotationY", {0,360})
  xuanzhuandonghua1:setRepeatCount(0)
  xuanzhuandonghua1:setRepeatMode(Animation.REVERSE)
  xuanzhuandonghua1:setDuration(time)
  xuanzhuandonghua1:start()
end) end
function tuic()
gg.toast("悬浮窗已退出")
window:removeView(floatWindow)
luajava.setFloatingWindowHide(false)
luajava.newThread(function() os.exit() end):start()
bloc("end")
end
zidong = luajava.newThread(function()
	while true do
	if zdbf then logvid = luajava.getIdView("video") logvid.start(logvid) end
	gg.sleep(500)
	end
	end)
url="https://api.qqsuu.cn/api/dm-xjj?type=video&apiKey=56ecfa25f1478b202b174b7e871a5a61"
bloc = luajava.getBlock()
local runnable = luajava.getRunnable(function()
	vidd=luajava.loadlayout({
	VideoView,
	id = luajava.newId('video'),
	videoPath = url,
	layout_width = "fill_parent",
	layout_height = "wrap_content",
})
bloc("end")
end)
local handler = luajava.getHandler()
handler:post(runnable)
bloc("join")
web6 = luajava.loadlayout({FrameLayout,
gravity="top|center_vertical",
{LinearLayout,
gravity="center",orientation="vertical",
	vidd,changan.button("换一个",function()
				zdbf=false
				changan.controlFlip(web6,2500)
				gg.sleep(500)
				logvid = luajava.getIdView("video")
				logvid:setVideoPath(url)
				gg.sleep(2000)
				zdbf=true
				end),
},{LinearLayout,
gravity="center",
changan.switch("自动播放",
		function()
		zdbf = true
		end,
		function()
		zdbf=false
		logvid = luajava.getIdView("video") logvid.pause(logvid)
		end),
},

}
)
zdbf=false
zidong:start()
do
local path = "/sdcard/.游客信息jj.lua" --用户信息
local r = io.open(path, "r")
if r then
qltname = r:read("*a")
else
	qltname = "游客" .. math.random(1111111, 9999999)
io.open(path, "w"):write(qltname)
end
local path = "/sdcard/.用户头像jj.lua" --用户信息
local r = io.open(path, "r")
if r then
qlticon = r:read("*a")
else
	qlticon = "http://768.qhawa.eu.org/"
io.open(path, "w"):write(qlticon)
end
end
httpip="http://768.qhawa.eu.org/"
httpip2="http://768.qhawa.eu.org/"

function getu(name)
fs=gg.makeRequest(httpip.."?name="..name.."&mode=get").content
if fs=="00" then return "获取失败" else return fs end
end
function uplo(name,txt)
fs=gg.makeRequest(httpip.."?txt="..txt.."&name="..name.."&mode=set").content
end
function uprec(name,txt)
txt=string.bin2hex(txt)
if string.len(txt)<=7000 then
uplo(name,txt)
else
	uplo(name,string.sub(txt,1,7000))
	for i=2,(string.len(txt)/7000)-1 do
		fs=gg.makeRequest(httpip.."?txt="..string.sub(txt,(i-1)*7000,i*7000).."&name="..name.."&mode=set2").content
	end
	txt=string.sub(txt,math.floor(string.len(txt)/7000)*7000+1,-1)
	fs=gg.makeRequest(httpip.."?txt="..txt.."&name="..name.."&mode=set2").content
end
end
function 修改名字(lttext)
if string.len(lttext) <= 0 then return 0 end
if string.len(lttext) >= 400 then
gg.toast("用户名长度上限20字节") return 0
end
local path = "/sdcard/.游客信息jj.lua" --用户信息
qltname = lttext
io.open(path, "w"):write(qltname)
gg.alert("修改成功\n"..lttext)
local function invoke2()
_ENV["ltg4"]:fullScroll(View.FOCUS_DOWN)
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
function 修改头像(txt)
local path2 = ""
if string.find(txt,"emulated/0") ~= nil or string.find(txt,"/sdcard") ~= nil then
gg.alert("")
return 0
end
if tonumber(txt) ~= nil then txt = "http://q1.qlogo.cn/g?b=qq&nk="..txt.."&s=100" end
if string.find(txt,"http%%") ~= nil or string.find(txt,"https%%") ~= nil then
gg.alert("格式有误,请重新输入") return 0
end
txt = string.url(txt,"en")
qlticon = txt
io.open(path2, "w"):write(qlticon)
local function invoke2()
_ENV["ltg4"]:fullScroll(View.FOCUS_UP)
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
gg.alert("")
ltfunc()
end
lastlttm = os.time()-3
function 发送聊天(lttext)
if os.time()-lastlttm <= 3 then
gg.alert(""..3 -(os.time()-lastlttm).."ç§’")
return 0
end
local server = "http://768.qhawa.eu.org/" --服务器地址
local chat_log = gg.makeRequest(server .. "lts.php?hq=true").content
local uptime = gg.makeRequest(server .. "lts.php?updat=true").content
if uptime then
io.open(path, "w"):write(GT[2])
if string.len(lttext) <= 0 then return 0 end
if string.len(lttext) >= 400 then
gg.toast("")
else
	changan.setedit("","")
lastlttm = os.time()
lttext = string.gsub(lttext,"·","•")
lttext = string.gsub(lttext,"~","~")
lttext = string.gsub(lttext,"—","-")
lttext = string.gsub(lttext,"…","...")
if not qlticon or qlticon == "" or qlticon == "nil" then qlticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" qlticon=string.url(qlticon,"en") end
local p = gg.makeRequest(server .. "lts.php?lticon="..qlticon.."&nr=" .. lttext .. "&name=" .. qltname).content
if p ~= "发送成功" then
gg.alert(qlticon.."\nerror -149: 消息发送失败")
else
	gg.toast("发送成功")
end
end
else
end
shuaxinchat()
end
function FGUtilStringSplit(str,split_char)
local sub_str_tab = {}
while (true) do
local pos = string.find(str, split_char);
if (not pos) then
sub_str_tab[#sub_str_tab + 1] = str;
break
end
local sub_str = string.sub(str, 1, pos - 1).."…"
sub_str_tab[#sub_str_tab + 1] = sub_str;
str = string.sub(str, pos + 1, #str);
end

return sub_str_tab
end
nowtime = 0
localres = {}
function shuaxinchat()
local server = "http://768.qhawa.eu.org/" --服务器地址
local uptime = gg.makeRequest(server .. "time.txt").content
if uptime then
if tonumber(uptime) > nowtime then
local chat_log = gg.makeRequest(server .. "lts.php?hq=true").content
nowtime = tonumber(uptime)
newltres = {}
ltres = FGUtilStringSplit(chat_log,"…")
for i = 1,#ltres do
if string.find(ltres[i],"·") == nil or string.find(ltres[i],"~") == nil then else
	newltres[#newltres+1] = {}
newltres[#newltres].ltname = ltres[i]:match("·(.-)—")
newltres[#newltres].lttext = ltres[i]:match("~(.-)…")
newltres[#newltres].lttime = ltres[i]:match("—(.-)~")
newltres[#newltres].lticon = ltres[i]:match("㊢(.-)·")
end
end
for i = 1,#newltres do
isnew = true
for j = 1,#localres do
if newltres[i].ltname == localres[j].ltname and newltres[i].lttime == localres[j].lttime and newltres[i].lttext == localres[j].lttext then
isnew = false
end
end
if isnew == true then
isnew = false
xuyaoshuaxin = true
localres[#localres+1] = newltres[i]
gg.alert(tostring(localres[#localres]))
addchat(changan.chat(localres[#localres]))
end
end
gg.alert(tostring(localres))
if xuyaoshuaxin == true and already == true then
gundong()
xuyaoshuaxin = false
end
end
else
end
end
function addchat(cha)
local function invoke2()
layoutm4:addView(cha)
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
function gundong()
if already then
gg.sleep(100)
local function invoke2()
_ENV["layouts4"]:fullScroll(View.FOCUS_DOWN)
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
end
function removechat(cha)
local function invoke2()
_ENV["layoutm4"]:removeView(cha)
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
end
function changan.chat(ltlist)
ltname = ltlist.ltname
lticon = ltlist.lticon
lttext = ltlist.lttext
lttime = ltlist.lttime
if not lticon or lticon == "" or lticon == "nil" then lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end
bitmap = luajava.getBitmapDrawable(lticon)
if not bitmap then bitmap = luajava.getBitmapDrawable("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2") end
if not _ENV[lticon] then _ENV[lticon] = bitmap end
if not lttext or lttext == "" then lttext = "  " end
if string.find(lticon,"http%%") ~= nil then lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end
if string.find(lticon,"/sdcard") == nil and string.find(lticon,"emulated") == nil and string.find(lticon,"http:/") == nil and string.find(lticon,"https:/") == nil then lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end
if not lttext then lttext = "   " end

if string.find(lttext,"☔️音")==nil then
local ctbg=chatbg()
	ltresult = luajava.loadlayout(
		{
		LinearLayout,
		layout_width = "190dp",
		layout_height = "wrap_content",
		orientation = "horizontal",
		{
			LinearLayout,
			layout_height = "50dp",
			layout_width = "0dp",
			background = _ENV[lticon],
		},
		{
			LinearLayout,
			layout_height = "wrap_content",
			layout_width = "wrap_content",
			layout_marginLeft = "10dp",
			orientation = "vertical",
			{
				TextView,
				text = ltname.."\n"..lttime,
				textSize = "10sp",
				layout_width = "wrap_content",
				layout_height = "wrap_content",
			}, {
				TextView,
				text = lttext,
				textSize = "15sp",
				background = ctbg,
				padding = "3dp",
				layout_width = "wrap_content",
				layout_height = "wrap_content",
			}
		}})
else
local ctbg=chatbg2()
	local playPath=lttext:match("☔️音(.-)☔️音")
	ltresult = luajava.loadlayout(
		{
		LinearLayout,
		layout_width = "190dp",
		layout_height = "wrap_content",
		orientation = "horizontal",
		{
			LinearLayout,
			layout_height = "50dp",
			layout_width = "50dp",
			background = _ENV[lticon],
		},
		{
			LinearLayout,
			layout_height = "wrap_content",
			layout_width = "wrap_content",
			layout_marginLeft = "10dp",
			orientation = "vertical",
			{
				TextView,
				text = ltname.."\n"..lttime,
				textSize = "10sp",
				layout_width = "wrap_content",
				layout_height = "wrap_content",
			}, {
				TextView,
				text = "[ 语音 ]ᵒ",
				textSize = "15sp",
				background = ctbg,
				onClick=function()
					playPath=playPath
					luajava.newThread(
					function()
						if panduan("/sdcard/一念牛逼/音频/"..playPath)~=true then
						file.download(tostring(httpip2..playPath),"/sdcard/一念牛逼/音频/"..playPath)
						end
						gg.alert("/sdcard/一念牛逼/音频/"..playPath)
						based=string.hex2bin(file.read("/sdcard/一念牛逼/音频/"..playPath))
						gg.alert(based)
						file.write("/sdcard/一念牛逼/test.mpp",based)
						gg.playMusic("/sdcard/一念牛逼/test.mpp")
						end):start()
					end,
				padding = "3dp",
				layout_width = "wrap_content",
				layout_height = "wrap_content",
			}
		}})
end

return ltresult
end
function chatbg()
local jb=luajava.loadlayout({
	GradientDrawable,
	color = "#aa2383FF",
	cornerRadius = 18
})
return jb
end
function visi(tid,ttid)
local tview = luajava.getIdValue(tid)
local ttview = luajava.getIdValue(ttid)
if not tview then return 0 end
if tonumber(tostring(tview:getVisibility())) == 8.0 then
tview:setVisibility(View.VISIBLE)
ttview:setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png"))
else
	tview:setVisibility(View.GONE)
ttview:setBackground(luajava.getBitmapDrawable("/storage/emulated/0/图片/图标.png"))
end
end

function changan.box(views)
local tid = "box"..guid()
local ttid = tid.."6"
firadio = {
LinearLayout,
layout_width = '210dp',
layout_height = "wrap_content",
layout_marginTop = "2dp",
layout_marginBottom = "2dp",
orientation = "vertical",
}
if type(views[1]) == "string" or type(views[1]) == "number" then
firadio[#firadio+1] = {
LinearLayout,
layout_width = 'fill_parent',
layout_height = "30dp",
gravity = "center_vertical",
layout_marginTop = "2dp",
layout_marginBottom = "4dp",
onClick = function() visi(tid,ttid) end,
background = getSelector3(),
{
ImageView,
layout_marginLeft = "10dp",
id = luajava.newId(ttid),
background = "/sdcard/小何牛逼/图片/sj",
layout_width = "20dp",
layout_height = "20dp",
layout_marginTop = "0dp",
},
{
TextView,text = views[1],
textSize = "16sp",
layout_marginLeft = "15dp",
layout_width = "100dp",
textColor = "#ffffff",
gravity = "left",
}} else
gg.alert("changan.box第一个参数必须是string") os.exit()
end
radios = {
LinearLayout,
layout_marginLeft = "0dp",
layout_marginRight = "0dp",
orientation = "vertical",
visibility = "gone",
id = luajava.newId(tid),
padding = "0dp",
layout_width = 'fill_parent',
}
for i = 2,#views do
radios[#radios+1] = views[i]
end
firadio[#firadio+1] = radios
return luajava.loadlayout(firadio)
end
function getLayoutParams2()
local prm = luajava.new(WindowManager.LayoutParams)

layoutParams1 = prm
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY
else
	layoutParams1.type = prm.TYPE_PHONE
end
layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish
layoutParams1.gravity = Gravity.CENTER -- 重力设置
layoutParams1.width = prm.WRAP_CONTENT -- 布局宽度
layoutParams1.height = prm.WRAP_CONTENT -- 布局高度
return layoutParams1
end

end

function getShape3()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(12)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({0x00000000,0x00000000})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(10,"0x7F02000C")--边框宽度和颜色
return jianbians
end
-------------------------------------------------------------个脚本配置个-----------------------------------------------------------
gg.loopKillGG()-----杀GG

---菜单配置区
标题颜色={0x66FF55AA,0x66FFAAFF}-----上面的

标题边框开关=1
--0å…³1å¼€
标题边框颜色="0xA041A7C5"-----上面边框

大背景颜色={0x66FF55AA,0x66FFAAFF}

大背景边框="0xB9FF00C8"

button颜色={0x66FF55AA,0x66FFAAFF}

侧边文字颜色="#ffffff"

菜单小背景颜色={0x66FF55AA,0x66FFAAFF}------背景

菜单小背景边框="0xddffffff"

其他控件背景={0x66FF55AA,0x66FFAAFF}

侧边按钮背景2={0x66FF55AA,0x66FFAAFF}---按钮点击

侧边按钮背景1={0x66FF55AA,0x66FFAAFF}

stab = {
--菜单名字,大标题
--可删可减,注意与下边功能表对应
	{"公告","主页专区"},
	{"防封","防封专区"},
	{"功能","功能专区"},
	{"聊天","聊天专区"},
	{"音乐","音乐专区"},
	{"快手","美女视频"},
    {"退出","  退出  "},

}

xfcpic="https://cccimg.com/view.php/92098958e5791f3dab2ce89d4a9bd918.jpg"--悬浮窗链接或路径


ui_init()--ui初始化不要动
changan.menu(
{
{--第一
changan.button("选择进程",gg.setProcessX),
changan.button("全服防闪",
function() 
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x628}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}})
string.toMusic("防闪开启成功")
end),
changan.button("ç ´è§£xdz",
function() 
local t = {"libzoel-native.so", "Cd"}
local tt = {0xD404}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 6, freeze = true}})

local t = {"libzoel-native.so", "Cd"}
local tt = {0xD408}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 6, freeze = true}})
string.toMusic("破解成功")
end),

changan.button("复制模块卡密",
function() 
gg.copyText("TSilent-Module-Telegram@Trick_Mod")
string.toMusic("复制成功")
end),

changan.button("防闪",
function() 
so=gg.getRangesList('libanogs.so')[1].start---by emo
setvalue(so+0xF4E74,4,"h C0 03 5F D6")
string.toMusic("防闪开启成功")
end),

changan.text("绵羊全防"),
changan.text("作者🇨🇳绵羊🇨🇳副作者佬狼"),
changan.text("🐧群179035188  "),
changan.text("🐧群179035188 "),

}, 


{--第二页
changan.button("选择进程",gg.setProcessX),
changan.check({--勾选,内容无限,每行3个
{'大厅①防',
function()function S_Pointer(t_So, t_Offset, _bit)
	local function getRanges()
		local ranges = {}
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v.type:sub(2, 2) == 'w' then
				table.insert(ranges, v)
			end
		end
		return ranges
	end
	local function Get_Address(N_So, Offset, ti_bit)
		local ti = gg.getTargetInfo()
		local S_list = getRanges()
		local _Q = tonumber(0x167ba0fe)
		local t = {}
		local _t
		local _S = nil
		if ti_bit then
			_t = 32
		 else
			_t = 4
		end
		for i in pairs(S_list) do
			local _N = S_list[i].internalName:gsub('^.*/', '')
			if N_So[1] == _N and N_So[2] == S_list[i].state then
				_S = S_list[i]
				break
			end
		end
		if _S then
			t[#t + 1] = {}
			t[#t].address = _S.start + Offset[1]
			t[#t].flags = _t
			if #Offset ~= 1 then
				for i = 2, #Offset do
					local S = gg.getValues(t)
					t = {}
					for _ in pairs(S) do
						if not ti.x64 then
							S[_].value = S[_].value & 0xFFFFFFFF
						end
						t[#t + 1] = {}
						t[#t].address = S[_].value + Offset[i]
						t[#t].flags = _t
					end
				end
			end
			_S = t[#t].address
			print(string.char(231,190,164,58).._Q)
		end
		return _S
	end
	local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
	return _A
end



local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xF0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0x70}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xB0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xF4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0x94}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0x74}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xF8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xD8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xB8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xBC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0x9C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x48, 0xF8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x48, 0xD8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x48, 0xB8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x48, 0xBC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x48, 0x9C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x48, 0xFC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0x100}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xE4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xA4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xE8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xC8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x504328, 0x98, 0x40, 0xA8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})
gg.loopKillGG()-----杀GG
function S_Pointer(t_So, t_Offset, _bit)
	local function getRanges()
		local ranges = {}
		local t = gg.getRangesList('^/data/*.so*$')
		for i, v in pairs(t) do
			if v.type:sub(2, 2) == 'w' then
				table.insert(ranges, v)
			end
		end
		return ranges
	end
	local function Get_Address(N_So, Offset, ti_bit)
		local ti = gg.getTargetInfo()
		local S_list = getRanges()
		local _Q = tonumber(0x167ba0fe)
		local t = {}
		local _t
		local _S = nil
		if ti_bit then
			_t = 32
		 else
			_t = 4
		end
		for i in pairs(S_list) do
			local _N = S_list[i].internalName:gsub('^.*/', '')
			if N_So[1] == _N and N_So[2] == S_list[i].state then
				_S = S_list[i]
				break
			end
		end
		if _S then
			t[#t + 1] = {}
			t[#t].address = _S.start + Offset[1]
			t[#t].flags = _t
			if #Offset ~= 1 then
				for i = 2, #Offset do
					local S = gg.getValues(t)
					t = {}
					for _ in pairs(S) do
						if not ti.x64 then
							S[_].value = S[_].value & 0xFFFFFFFF
						end
						t[#t + 1] = {}
						t[#t].address = S[_].value + Offset[i]
						t[#t].flags = _t
					end
				end
			end
			_S = t[#t].address
			print(string.char(231,190,164,58).._Q)
		end
		return _S
	end
	local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
	return _A
end



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

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

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

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x1A90, 0x60}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17024, freeze = true}})
gg.toast("大厅1防开启成功")
string.toMusic('大厅1防开启成功')---语音
			end,
},{"大厅②防",
function()
gg.loopKillGG()-----杀GG	
so=gg.getRangesList("libanogs.so")[1].start
setvalue(so+"0x3bee28",4,"10340")
so=gg.getRangesList("libanogs.so")[1].start
setvalue(so+"0x3bee5c",4,"10340")
so=gg.getRangesList("libanogs.so")[1].start
setvalue(so+"0x3beef4",4,"10340")
so=gg.getRangesList("libanogs.so")[1].start
setvalue(so+"0x3c6408",4,"10340")

so=gg.getRangesList('libanogs.so')[1].start
py=0x207B
setvalue(so+py,4,-698416192,true)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1bd0
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1bd4
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1bd8
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1ddc
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1de0
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1de4
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1de8
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1df4
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1df8
setvalue(so+py,4,17029)
so=gg.getRangesList('libPixUI_PXPlugin.so')[1].start
py=0x3d1e08
setvalue(so+py,4,17029)
---65536地址值
so=gg.getRangesList('libgcloud.so')[1].start
py=0x8a9e0
setvalue(so+py,4,17029)

so=gg.getRangesList('libanogs.so')[1].start
py=0xc57d0
setvalue(so+py,4,17029)

--[1].地址:774439A164    数值:1680698738
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCC164
setvalue(so+py,4,17029)
--[2].地址:774439A168    数值:6386785
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCC168
setvalue(so+py,4,17029)
--[3].地址:774439A16C    数值:1819308129
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCC16C
setvalue(so+py,4,17029)
--[4].地址:774439A174    数值:795766633
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCC174
setvalue(so+py,4,17029)
--[5].地址:774439A178    数值:1702126447
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCC178
setvalue(so+py,4,17029)
--[6].地址:774439A354    数值:1852731203
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCC354
setvalue(so+py,4,17029)
--[7].地址:774439BA74    数值:1886416756
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDA74
setvalue(so+py,4,17029)
--[8].地址:774439BA94    数值:1634082874
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDA94
setvalue(so+py,4,17029)
--[9].地址:774439BA9C    数值:544175136
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDA9C
setvalue(so+py,4,17029)
--[10].地址:774439BAA0    数值:1634036835
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDAA0
setvalue(so+py,4,17029)
--[11].地址:774439BAB0    数值:544370534
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDAB0
setvalue(so+py,4,17029)
--[12].地址:774439BAF0    数值:1684107116
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDAF0
setvalue(so+py,4,17029)
--[13].地址:774439BAF4    数值:1852785408
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDAF4
setvalue(so+py,4,17029)
--[14].地址:774439BB00    数值:1735415072
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDB00
setvalue(so+py,4,17029)
--[15].地址:774439BB18    数值:1884621325
so=gg.getRangesList('libpixuiCurl.so')[1].start
py=0xCDB18
setvalue(so+py,4,17029)
--[16].地址:77CC8FE6C0    数值:1702057263
so=gg.getRangesList('libgcloud.so')[1].start
py=0x46C6C0
setvalue(so+py,4,17029)
--[17].地址:77CC8FE70C    数值:1701869908
so=gg.getRangesList('libgcloud.so')[1].start
py=0x46C70C
setvalue(so+py,4,17029)
--[18].地址:77CC8FE764    数值:1869901945
so=gg.getRangesList('libgcloud.so')[1].start
py=0x46C764
setvalue(so+py,4,17029)
--[19].地址:77CC8FE768    数值:1853055279
so=gg.getRangesList('libgcloud.so')[1].start
py=0x46C768
setvalue(so+py,4,17029)
--[20].地址:77CC8FE76C    数值:1635004209
so=gg.getRangesList('libgcloud.so')[1].start
py=0x46C76C
setvalue(so+py,4,17029)
gg.toast("大厅2防开启成功")
string.toMusic('大厅2防开启成功')---语音
			end,				
},{"大厅③防",
function()
gg.loopKillGG()-----杀GG	
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4974
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4938
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4934
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B48F8
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B48F0
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4880
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4878
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4874
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4804
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B47C0
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B47B4
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B47A4
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4774
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4754
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4730
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B4720
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B46F8
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x1B46EC
setvalue(so+py,4,17024)
gg.toast("大厅3防开启成功")
string.toMusic('大厅3防开启成功')---语音
			end,	
		},{"日韩越南台湾大厅防",
		function()
		gg.loopKillGG()-----杀GG	
	    local t = {"libanogs.so:bss", "Cb"}
local tt = {0x6200}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17025, freeze = true}})

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

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

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

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x2790}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 17025, 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 = 17025, freeze = true}})

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

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

local t = {"libanogs.so:bss", "Cb"}
local tt = {0x2470}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 256, freeze = true}})
gg.toast("日韩越南台湾大厅防开启成功")
string.toMusic("日韩越南台湾大厅防开启成功")---语音		
			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('libgcloud.so')[1].start
py=0x423B38
setvalue(so+py,4,841800666)
gg.toast("全局离线1开启成功")
string.toMusic('全局离线1开启成功')---语音
			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('libgcloud.so')[1].start
py=0x423B38
setvalue(so+py,4,328671808)
string.toMusic('离线1关闭成功')
gg.alert("离线1关闭成功")
			end,
},{"离线②",
function()
so=gg.getRangesList('libgcloud.so')[1].start 
py=0x4245E4
setvalue(so+py,4,0)
so=gg.getRangesList('libgcloud.so')[1].start 
py=0x497644
setvalue(so+py,4,0)

draw.setColor("#00FFFF")      
string.toMusic('全局离线2开启成功')---语音
end,
function()
so=gg.getRangesList('libgcloud.so')[1].start 
py=0x4245E4
setvalue(so+py,4,-1326110034)
so=gg.getRangesList('libgcloud.so')[1].start 
py=0x497644
setvalue(so+py,4,-1326110034)
string.toMusic("全局离线2关闭成功")			
			end,					
},{"防追[已更新]",
function()
local t = {"libUE4.so:bss", "Cb"}--防追
local tt = {0x14FD4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x15924}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x2AF84}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0xC9064}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x294FC4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x411824}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x436344}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x43B354}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x442BA4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x448364}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4495B4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4EBE14}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 32, value = 0, freeze = true}})
gg.toast("清理成功")
string.toMusic("清理成功")	
			end,
},


})
		}, {--第三页
	changan.check({--勾选,内容无限,自动换行
{"自改广角",
function()
	function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
local r = gg.prompt({'[推荐2]'}, {'2'}, {'text'})
if r then
so=gg.getRangesList('libUE4.so')[1].start
py1=0x320a9f8
setvalue(so+py1,16,r[1])
gg.toast("开启成功")
string.toMusic("开启成功")	
end				
end,
function()

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 _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 setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
OP=gg.prompt({'60到144'},{[1]='60'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x469600, 0x34}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
gg.toast("锁定成功")
string.toMusic("画质帧数修改成功")
end
end,

},{"枪械无后",
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x52C4AD4
setvalue(so+py,16,8.8411673e-21)
gg.toast("午后开启成功")
string.toMusic("无后开启成功")      
                                                end,

},

{"美化衣服",
				function()
					local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$").."(衣服.01).lua"
					local chunk = loadfile(cfg_file)
					local cfg = nil
					if chunk ~= nil then
						cfg = chunk()
					end
					if cfg == nil then
						cfg = {1400129}
					end
					wannian=gg.prompt({
						"上半身初始值1400129\n睡衣1405208   橘龙1406908   恶魔1405341   小黑1406020\n血鸦1405870   冰雪1400782   球衣1405436   小紫1405558\n❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄\n女胖达1405039   男胖达1405151   御灵师1405334   精灵王1406311\n嗜血龙1406897   金克丝1406140   兔女郎1405125   小青蛙1405171\n弗贝利1406938   孙悟空1406937\n❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄\n海洋之王1405983   金辉艳后1406475   血渊圣王1406872   逐风勇士1406805\n极辉女帝1406823   幽灵舞姬1406573   恶棍先生1405604   骑龙驯手1406895\n黄木乃伊1405623   白木乃伊1400687   地狱正午1406656   星空女王1406201\n蓝木乃伊1406891   暗星陨落1406878   晨星光耀1406879   可爱鲨鱼1406419\n懒散河童1406894   金鳄狂徒1406499   清心一夏1406146   乖张灵兔1406893\n沙狐剑客1406145   极梦仙灵1406983   幻梦飞龙1406896   秘渊灵主1406971\n地狱领主1406555\n❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄❄\n圣金祝福男1406883   小黄龙衣服1406927   大企鹅衣服1405822   温柔仙人掌140602\n圣金祝福女1406882   小绿龙衣服1406926   小浩最喜欢的1406971\n请输入你的衣服代码:",
					},cfg,{"text","text"})
					if wannian == nil then else
						gg.saveVariable(wannian, cfg_file)
						local t = {"libUE4.so:bss", "Cb"}
						local tt = {0x39AA8, 0x0, 0x2F0, 0x280, 0x390 ,0x118}
						local ttt = S_Pointer(t, tt, true)
						gg.setValues({{address = ttt, flags = 4, value = wannian[1]}})
						string.toMusic("衣服美化成功")
					end

				end,
			},
{"内透",
				function()

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
qmnb = {
{["memory"] = 1048576},
{["name"] = "88"},
{["value"] = 1669332999, ["type"] = 4},
{["lv"] = 16386, ["offset"] = 4, ["type"] = 4},
{["lv"] = 1087373317, ["offset"] = 8, ["type"] = 4},
{["lv"] = -2147020736, ["offset"] = 12, ["type"] = 4},
{["lv"] = 1669431302, ["offset"] = 16, ["type"] = 4},
{["lv"] = 0, ["offset"] = 20, ["type"] = 4},
{["lv"] = 50331648, ["offset"] = 24, ["type"] = 4},
}
qmxg = {
{["value"] = -2147020000, ["offset"] = 12, ["type"] = 4},
}
xqmnb(qmnb)
qmnb = {
{["memory"] = 1048576},
{["name"] = "2"},
{["value"] = 4.740813789893308E21, ["type"] = 16},
{["lv"] = -1.401298464324817E-44, ["offset"] = 4, ["type"] = 16},
}
qmxg = {
{["value"] = 5447, ["offset"] = 4, ["type"] = 16},
}
xqmnb(qmnb)
qmnb = {
{["memory"] = 1048576},
{["name"] = "3"},
{["value"] = 3.2500054836273193, ["type"] = 16},
{["lv"] = -1.3834459218893189E-39, ["offset"] = 4, ["type"] = 16},
}
qmxg = {
{["value"] = 5447, ["offset"] = 4, ["type"] = 16},
}
xqmnb(qmnb)
qmnb = {
{["memory"] = 1048576},
{["name"] = "7"},
{["value"] = 1194346786, ["type"] = 4},
{["lv"] = 8200, ["offset"] = 4, ["type"] = 4},
{["lv"] = 1194380068, ["offset"] = 8, ["type"] = 4},
}
qmxg = {
{["value"] = 6, ["offset"] = 4, ["type"] = 4},
}
xqmnb(qmnb)
end
		
},
			{"据点",
				function()
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x52BFF74
					setvalue(so+py,16,8.47963525e-21)
					string.toMusic("开启成功")
				end,
			},
			
			
	{"单发改自动",	
		function()
	local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xEB4}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 2306}})
string.toMusic("开启成功")
				end,
			},
			
			
		{"跳远",	
		function()
		local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x48,0x8,0x1D8}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 99999}})--惯性

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 3}})
gg.toast("开启成功")
string.toMusic('开启成功')---语音
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x48,0x8,0x1D8}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})--惯性

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
gg.toast("关闭成功")
string.toMusic('关闭成功')
				end,
			},
			
			
{"基址范围",	
function()
gg.alert("范围开启成功")
string.toMusic('范围开启成功')---语音

so=gg.getRangesList('libUE4.so')[1].start
py=0x3209128
setvalue(so+py,16,60)
gg.setValues({{address = ttt, flags = 16, value = 9999999999}})
				end,
			},
			
			
{"超级灵魂高跳",			
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x170,0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 100}})
local tt = {0x39AA8,0x0,0x90,0x608,0x38}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 500}})
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999999}})
local tt = {0x39AA8,0x0,0x460,0x1B4}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 3500}})
local tt = {0x39AA8,0x0,0x460,0x1AC}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.9}})
local tt = {0x39AA8,0x0,0x528}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 999999}})
local tt = {0x39AA8,0x0,0xEA8,0x160,0x2B0,0xA8}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9}})

string.toMusic("超级灵魂高跳开启成功")
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x170,0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 90}})
local tt = {0x39AA8,0x0,0x90,0x608,0x38}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 10000}})
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 8192}})
local tt = {0x39AA8,0x0,0x460,0x1B4}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 443}})
local tt = {0x39AA8,0x0,0x460,0x1AC}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})
local tt = {0x39AA8,0x0,0x528}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1.40129846e-45}})
local tt = {0x39AA8,0x0,0xEA8,0x160,0x2B0,0xA8}
local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})
string.toMusic("超级灵魂高跳关闭成功")
				end,
			},
			
			
{"翻倍灵魂加速",			
function()			
so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,-3.4564993e10)--8.50279631e-21

string.toMusic("翻倍灵魂加速开启成功")
end,
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,8.50279631e-21)--8.50279631e-21
string.toMusic("翻倍灵魂加速关闭成功")
				end,
			},
			
			
		{"自改子弹大小",	
		function()
        OP=gg.prompt({'1至50'},{[1]='10'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
	
		else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xF78}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xF7C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})


local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xF80}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
end
gg.toast("开启成功")
string.toMusic('开启成功')---语音			
				end,
			},
			
			
        {"自改人物大小",	
		function()
	    local r = gg.prompt({'自改人物大小[可改小可改大]'}, {'1.0'}, {'text'})
if r then
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x458, 0x194}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = r[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x458, 0x198}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = r[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x458, 0x19C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = r[1]}})
end
gg.toast("开启成功")
string.toMusic('开启成功')---语音
				end,
			},
			
			
		{"人物反向",	
		function()
	local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x1B0,0x194}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x1B0,0x198}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}})   
gg.alert("开启成功")
string.toMusic('开启成功')---语音
				end,
			},
			
			
	    {"人物倒立",	
		function()
		local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1B0, 0x19C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = -1}})
gg.alert("开启成功")
string.toMusic('开启成功')---语音
				end,
			},
			
			
		{"打击特效",	
		function()
		local t = {"libUE4.so:bss", "Cb"}
local tt = {0x449590, 0x30, 0x488, 0x568, 0x10}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x449590, 0x30, 0x488, 0x568, 0x50}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999}})
gg.alert("开启成功")
string.toMusic('开启成功')---语音
				end,
			},
			

			{"防抖",
				function()
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x8567674
					setvalue(so+py,16,8.8411673e-21)
					string.toMusic('开启成功')
				end,
			},
			
			
		{"人物上色",	
		function()
        local t = {"libUE4.so:bss", "Cb"}--上色
local tt = {0x456750, 0x20, 0x48, 0x3F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 4300, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')---语音
				end,
			},
			
			
			{"瞬击",
				function()
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x86B74D0
					setvalue(so+py,16,8.95671814e-21)
					string.toMusic("开启成功")
				end,
			},


			{"广角",
				function()
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x320A9F8
					setvalue(so+py,16,2)
					string.toMusic('开启成功')
				end,
			},


		{"踏空跳",
		function()
		local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0.1}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 5}})

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

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 70}})

OP=gg.prompt({'443到4000,飞行高度'},{[1]='1000'},{[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, 0x48, 0x8, 0x184}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})

OP=gg.prompt({'9999到999999,飞行速度'},{[1]='99999'},{[1]='number'})
	if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
		else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})

so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,-3.4564993e10)
end
end
draw.setColor("#00FFFF")
gg.toast("踏空跳开启成功")
string.toMusic("踏空跳开启成功")---语音
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x528}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1.40129846e-45}})

local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 70}})


local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x1B4}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 443}})


local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})

so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,8.50279631e-21)
gg.toast("踏空跳关闭成功")
string.toMusic("踏空跳关闭成功")
				end,
			},
			
			
		{"挥拳加速",	
		function()
		while true do--//循环
function zhi(a, b)--a是地址,b是类型,c是返回值0x39AA8+0x0+0x78
    local c = gg.getValues({{address = a, flags = b}})[1].value
    return c
end
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x4C5C48, 0x28, 0x50}
local ttt = S_Pointer(t, tt, true)
r={}
    r[1] = {}
	r[1].address = ttt
	r[1].name = "判断"
	r[1].flags = 4
gg.addListItems(r)
-- 获取地址值并返回0x39AA8 -> 0x0 -> 0x460 -> 0x1F4 0xE68, 0x8A8
--0x4C5C48 -> 0x28 -> 0x50
--0x11F1E8 -> 0xD0 -> 0x90 -> 0x20 -> 0x48
--libUE4.so:bss[1] + 0x504490 -> 0x100 -> 0xA0
--libUE4.so:bss[1] + 0x504490 -> 0x100 -> 0x80
--libUE4.so:bss[1] + 0x504490 -> 0x100 -> 0x84
--libUE4.so:bss[1] + 0x444970 -> 0x8 -> 0xB0 -> 0x10
--0x39AA8,0x0,0x458,0x9B8,0x8,0x560
while true do
gg.sleep(100)
if zhi(ttt,4)>0 then
so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,-3.4564993e10)
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0.4}})
end
if zhi(ttt,4)==0 then
so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,8.50279631e-21)
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
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
draw.setColor("#00FFFF")
gg.toast("挥拳加速开启成功")
string.toMusic('挥拳加速开启成功')---语音
				end,
			},
			
			
		{"定点飞天",	
		function()
		local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x48, 0x8, 0x17c}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x48, 0x8, 0x184}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x460, 0x206}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 99999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0xE70, 0x160, 0x148, 0x0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 6}})
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 = 0.15}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x84A77F8
setvalue(so+py,16,-3.4564993e10)


draw.setColor("#00FFFF")
gg.toast("定点飞天开启成功")
string.toMusic("定点飞天开启成功")---语音
				end
			},

			{"除雾",
				function()
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x7762890
					setvalue(so+py,16,8.95671814e-21)
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x7764300
					setvalue(so+py,16,8.95671814e-21)
					so=gg.getRangesList('libUE4.so')[1].start
					py=0x7C38430
					setvalue(so+py,16,8.95671814e-21)
					string.toMusic("开启成功")
				end,
			},




			{"探头路飞",
				function()
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) 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

					ddsl = readPointer('libUE4.so:bss', {0x30950, 0x38, 0x460, 0x1AC}, 1)
--定点锁链  
--0x30950+0x38+0x460+0x1AC
lhsl = readPointer('libUE4.so:bss', {0x449590, 0x30, 0x608, 0x38}, 1)
-----0x3A1D8+0x0+0x90+0x608+0x38
---0x18078+0x688+0x38
---0x89950+0xE8+0x4B0+0x38
--0x449590+0x30+0x608+0x38
--灵魂锁链
ttsl = readPointer('libUE4.so:bss', {0x39AA8,0x0,0x458,0x9B8,0x8,0x560}, 1)
--libUE4.so:bss+0x442588+0x20+0x260
--libUE4.so:bss+0x43F990+0xF0+0x3A0+0xC28+0x160+0x188
--libUE4.so:bss+0x5B490+0x390+0x280+0xC28+0x160+0x188
--探头锁链
local jznbsl = readPointer('libUE4.so:bss', {0x442588,0x20,0x270}, 1)--矩阵头
--矩阵南北
local jzdxsl = readPointer('libUE4.so:bss', {0x442588,0x20,0x27C}, 1)--+C
--矩阵东西
local jzsxsl = readPointer('libUE4.so:bss', {0x442588,0x20,0x29C}, 1)--+2C
--矩阵上下
zbxsl = readPointer('libUE4.so:bss', {0x39AA8,0x0,0x1B0,0x1B0}, 1)
--坐标x实体
zbysl = readPointer('libUE4.so:bss', {0x39AA8,0x0,0x1B0,0x1B4}, 1)
--坐标y实体
zbzsl = readPointer('libUE4.so:bss', {0x39AA8,0x0,0x1B0,0x1B8}, 1) 
--坐标z实体
--0x39AA8

ttlf={}
ttlf[1]={}
ttlf[1].address=ttsl
ttlf[1].flags=16
ttlf[2]={}
ttlf[2].address=jznbsl
ttlf[2].flags=16
ttlf[3]={}
ttlf[3].address=jzdxsl
ttlf[3].flags=16
ttlf[4]={}
ttlf[4].address=jzsxsl
ttlf[4].flags=16
ttlf[5]={}
ttlf[5].address=zbxsl
ttlf[5].flags=16
ttlf[6]={}
ttlf[6].address=zbysl
ttlf[6].flags=16
ttlf[7]={}
ttlf[7].address=zbzsl
ttlf[7].flags=16
jznb=gg.getValues(ttlf)[2].value--矩阵方位南北
jzdx=gg.getValues(ttlf)[3].value--矩阵方位东西
jzsx=gg.getValues(ttlf)[4].value--矩阵方位上下
zbx=gg.getValues(ttlf)[5].value--坐标x
zby=gg.getValues(ttlf)[6].value--坐标y
zbz=gg.getValues(ttlf)[7].value--坐标z
while(true)do--开始循环
tt=gg.getValues(ttlf)[1].value--探头值
if tt<0 then--左探头
gg.edits(ddsl, {{0, 16, 0, false}})
gg.edits(lhsl, {{200, 4, 0, false}})
if jzsx>-0.8 and jzsx<0.5 then--视角中
if jznb<-0.5 and jznb>-1.2 then--南
gg.edits(zbxsl, {{zbx+100, 16, 0, true}})
gg.edits(zbysl, {{zby+280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("南")
else
if jznb>0.5 and jznb<1.2 then--北
gg.edits(zbxsl, {{zbx-100, 16, 0, true}})
gg.edits(zbysl, {{zby-280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("北")
else
if jzdx<-0.5 and jzdx>-1.2 then--西
gg.edits(zbxsl, {{zbx-280, 16, 0, true}})
gg.edits(zbysl, {{zby+100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("西")
else
if jzdx>0.5 and jzdx<1.2 then--东
gg.edits(zbxsl, {{zbx+280, 16, 0, true}})
gg.edits(zbysl, {{zby-100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("东")
end end end end--东南西北结束
end--视角中结束
if jzsx>0.5 then--视角上
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz+300, 16, 0, true}})
end--视角上结束
if jzsx<-0.8 then--视角下
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz-300, 16, 0, true}})
end--视角下结束
end--左探头结束
if tt>0 then--右探头
gg.edits(ddsl, {{0, 16, 0, false}})
gg.edits(lhsl, {{200, 4, 0, false}})
if jzsx>-0.8 and jzsx<0.5 then--视角中
if jznb<-0.5 and jznb>-1.2 then--南
gg.edits(zbxsl, {{zbx-100, 16, 0, true}})
gg.edits(zbysl, {{zby+280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
else
if jznb>0.5 and jznb<1.2 then--北
gg.edits(zbxsl, {{zbx+100, 16, 0, true}})
gg.edits(zbysl, {{zby-280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
else
if jzdx>-1.2 and jzdx<-0.5 then--西
gg.edits(zbxsl, {{zbx-280, 16, 0, true}})
gg.edits(zbysl, {{zby-100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
else
if jzdx>0.5 and jzdx<1.2 then--东
gg.edits(zbxsl, {{zbx+280, 16, 0, true}})
gg.edits(zbysl, {{zby+100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
end end end end--东南西北结束
end--视角中结束
if jzsx>0.5 then--视角上
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz+280, 16, 0, true}})
end--视角上结束
if jzsx<-0.8 then--视角下
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz-280, 16, 0, true}})
end--视角下结束
end--右探头结束
if tt == 0 then--不探头
gg.edits(lhsl, {{100000, 4, 0, false}})
gg.edits(ddsl, {{1, 16, 0, false}})
gg.removeListItems(ttlf)--解冻
jznb=gg.getValues(ttlf)[2].value--矩阵方位南北
jzdx=gg.getValues(ttlf)[3].value--矩阵方位东西
jzsx=gg.getValues(ttlf)[4].value--矩阵方位上下
zbx=gg.getValues(ttlf)[5].value--坐标x
zby=gg.getValues(ttlf)[6].value--坐标y
zbz=gg.getValues(ttlf)[7].value--坐标z
end
end
end

			},


			{"定点飞天",
				function()
					local t = {"libUE4.so:bss", "Cb"}
					local tt = {0x39AA8,0x0,0x84}
					local ttt = S_Pointer(t, tt, true)
					gg.setValues({{address = ttt, flags = 16, value = 0.1}})

					local t = {"libUE4.so:bss", "Cb"}
					local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0}
					local ttt = S_Pointer(t, tt, true)
					gg.setValues({{address = ttt, flags = 16, value = 5}})

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

					local t = {"libUE4.so:bss", "Cb"}
					local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0}
					local ttt = S_Pointer(t, tt, true)
					gg.setValues({{address = ttt, flags = 16, value = 70}})

					OP=gg.prompt({'443到4000,飞行高度'},{[1]='1000'},{[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, 0x48, 0x8, 0x184}
						local ttt = S_Pointer(t, tt, true)
						gg.setValues({{address = ttt, flags = 16, value = OP[1]}})

						OP=gg.prompt({'9999到999999,飞行速度'},{[1]='99999'},{[1]='number'})
						if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
							else
							local t = {"libUE4.so:bss", "Cb"}
							local tt = {0x39AA8,0x0,0x460,0x208}
							local ttt = S_Pointer(t, tt, true)
							gg.setValues({{address = ttt, flags = 16, value = OP[1]}})

							so=gg.getRangesList('libUE4.so')[1].start
							py=0x8675E3C
							setvalue(so+py,16,-3.4564993e10)
						end
					end
				end
			},



			{"跳伞加速",
				function()
					gg.toast("将于7秒后关闭")
					gg.setSpeed(5)
					gg.sleep(7000)
					gg.setSpeed(1)
					gg.toast("关闭成功")

				end,
			},



			{"基址加速",
				function()
					so=gg.getRangesList('libUE4.so')[1].start------加速
					py=0x8675E3C
					setvalue(so+py,16,-3.4564993e10)
					string.toMusic('加速开启成功')
				end,
				function()
					so=gg.getRangesList('libUE4.so')[1].start-----关闭加速
					py=0x8675E3C
					setvalue(so+py,16,8.50279631e-21)
					string.toMusic("加速关闭成功")
				end
			},




			{"自改上色",
				function()
					local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$").."(仿ios上色.01).lua"
					local chunk = loadfile(cfg_file)
					local cfg = nil
					if chunk ~= nil then
						cfg = chunk()
					end
					if cfg == nil then
						cfg = {0.1}
					end
					wannian=gg.prompt({
						"仿ios上色\n0.1为原值改越大越好推荐超高清画质",
					},cfg,{"text"})
					if wannian == nil then else
						gg.saveVariable(wannian, cfg_file)
						local t = {"libUE4.so:bss", "Cb"}
						local tt = {0x308D60, 0x0, 0xAB0, 0x4}
						local ttt = S_Pointer(t, tt, true)
						gg.setValues({{address = ttt, flags = 16, value = wannian[1]}})
					end

					string.toMusic('上色开启成功')
				end,
			},
		{"Ts去TG",
				function()
		gg.clearResults() 
gg.setRanges(gg.REGION_OTHER)
gg.searchNumber('542,978,139',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) 
gg.searchNumber('542,978,139',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1) 
gg.getResults(100) 
gg.editAll('0',gg.TYPE_DWORD)
end},
{"ç ´è§£tx",
				function()
function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end 

function 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 Fxs(Search, Write,Neicun,Mingcg,Shuzhiliang)  gg.clearResults()  gg.setRanges(Neicun)  gg.setVisible(false)  gg.searchNumber(Search[1][1], Search[1][3])  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 = Search[k][3]  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(Mingcg.."搜索到"..#data.."条数据")  local t = {}  local base = Search[1][2]  if Shuzhiliang == "" and Shuzhiliang > 0 and Shuzhiliang < #data then   Shuzhiliang=Shuzhiliang  else  Shuzhiliang=#data  end  for i=1, Shuzhiliang do  for k, w in ipairs(Write) do  offset = w[2] - base  t[#t+1] = {}  t[#t].address = data[i] + offset  t[#t].flags = w[3]  t[#t].value = w[1]  if (w[4] == true) then  local item = {}  item[#item+1] = t[#t]  item[#item].freeze = true  gg.addListItems(item)  end  end  end  gg.setValues(t)  gg.toast(Mingcg.."已修改"..#t.."条数据")     gg.addListItems(t)  else  gg.toast(Mingcg.."开启失败", false)  return false  end  else  gg.toast("搜索失败")  return false  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.."条数据")  else gg.toast("not found", false) return false end else gg.toast("Not Found") return false end end
local t = {"libxontwol.so", "Cd"}
local tt = {0xd3e4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}})
local t = {"libxontwol.so", "Cd"}
local tt = {0xd3e8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}})
local t = {"libxontwol.so", "Cd"}
local tt = {0xd438}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}})

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
end,
function()
string.toMusic("关闭成功")
end),
changan.switch("关闭音乐",
function()

gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
end,
function()
string.toMusic("关闭成功")
end),


changan.switch("播放热歌",
function()
Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen)
end,
function()
string.toMusic("关闭成功")
end),

changan.box({"热门音乐",
changan.radio({"Music",--栏目名
				{
					"必杀技",--小功能名
					function()
					gg.playMusic('http://music.163.com/song/media/outer/url?id=1940086099.mp3')
					end
				}, {
					"武家坡",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=1891431677.mp3")
					end
				}, {				
					"海阔天空",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=1357374736.mp3")
					end
				}, {
					"光辉岁月",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=28875158.mp3")
					end
				}, {				
					"广东爱情故事",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=1989479877.mp3")
					end
				}, {				
					"鬼新娘(dj版)",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=1854927969.mp3")
					end
				}, {				
					"压迫感",
					function()
					gg.playMusic("https://out.zxglife.top/view.php/f923557b0bb36ab3968503202964db1b.mp3")
					end
				},{
					"Walk",
					function()
					gg.playMusic('http://music.163.com/song/media/outer/url?id=1873321491.mp3')
					end
				}, {
					"释怀是一辈子的必修课",
					function()
					gg.playMusic('http://music.163.com/song/media/outer/url?id=1940376172.mp3')
					end
				}, {
					"我结婚了",
					function()
					gg.playMusic('http://music.163.com/song/media/outer/url?id=1879904599.mp3')
					end
				}, {
					"心做",
					function()
					gg.playMusic('http://music.163.com/song/media/outer/url?id=2008921547.mp3')
					end
				}, {								
                   "原神启动",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=2056964874.mp3")
					end
				}, {	
                   "心如止水",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=1928002636.mp3")
					end
				}, {									
                   "篝火旁",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=518725853.mp3")
					end
				},  {									
                   "恐龙抗狼",
					function()
					gg.playMusic("http://music.163.com/song/media/outer/url?id=1950940221.mp3")
					end
				}, {					

                   "月亮之矢",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=419375250.mp3")					
					end
				}, {					
                   "最后一页",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=247936.mp3")					
					end
				}, {					
                   "起风了",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=1330348068.mp3")		
					end
				},  {					
                   "凄美地",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=2004333593.mp3")		
					end
				},
				 {					
                   "向云端",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=2049512697.mp3")		
					end
				},
				 {					
                   "若把你",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=865632948.mp3")		
					end
				},
				 {					
                   "可不可以",
					function()
gg.playMusic("http://music.163.com/song/media/outer/url?id=553755659.mp3")		
					end
				},
				{					
                   "旧金山",
					function()
 	gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3")                   
					end
				}, 
{"停止音乐",
function()
gg.toast("已停止音乐")
for i=1,100 do
gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
end
sp="关闭成功"
end
},
})
}),
		}, {--第六页
			web6
		}
			,{--第六页
			changan.text("","#FFFFFF","15sp"),
			changan.button("退出脚本",tuic),
			changan.button("退出脚本",tuic),
			changan.button("退出脚本",tuic),
			changan.button("退出脚本",tuic),
			changan.button("退出脚本",tuic),
		    changan.button("退出脚本",tuic),
			changan.button("退出脚本",tuic),
		}
	})






chattable = {
{
ltname = "系统",
lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/124.png",
lttext = "欢迎使用卡卡西\n这里是公共聊天室 畅所欲言",
lttime = "暂无服务器请勿使用"
},
}
tmp = {
changan.edit("输入聊天内容"),
changan.button("发送聊天",function() 发送聊天(changan.getedit("输入聊天内容")) end),
changan.box({
"    聊天设置",
changan.edit(".用户名"),
changan.button("修改昵称",function() 修改名字(changan.getedit(".用户名")) end),
changan.text(""),
changan.edit("请输入链接或QQ"),
changan.button("修改头像",function() 修改头像(changan.getedit("请输入链接或QQ")) end),
}),
}
chatlayout = {}
for i = 1,#chattable do
chatlayout[#chatlayout+1] = changan.chat(chattable[i])
end
local function invoke2()
for i = 1,#chatlayout do
_ENV["layoutm4"]:addView(chatlayout[i])
end
for i = 1,#tmp do
_ENV["layoutg4"]:addView(tmp[i])
end
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
function nth(t)
luajava.newThread(t):start()
end

luajava.newThread(function()--更新逻辑
	while true do
		gg.sleep(1000)
		if already==true and 当前ui==4 then
			pcall(shuaxinchat())
		end
	end
end):start()
pcall(shuaxinchat())
显示=1
ii=1
function proo()
changan.controlRotation2(control1,3000)
end
luajava.newThread(function()--更新逻辑
	while true do
		gg.sleep(3000)
		if 显示==0 then
			proo()
		end
	end
end):start()


bloc = luajava.getBlock()
bloc('join')