----上方放你的卡密验证 string.toMusic("卡密登录成功,正在加载脚本,请稍等") drawText("qq群1103910606","#FF0000",-2050,1030,13) drawText("qq群qq群1103910606","#FF0000",2050,1030,13) 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$", "").."夜羽" function bei() g.data = loadfile("音乐配置"..g.config) if g.data ~= nil then g.sel = g.data() g.data = nil end if g.sel == nil then g.sel = {"","10"} end end bei() function 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 start(name,sl) fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end function play(id,name) gg.toast("正在播放音乐:"..name,true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end function Play(gqlb,idb) SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1) end XGCK=-1 end end function zjson(jsonr) local str = jsonr local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end function json(con) res=zjson(con) zd=res.result.songCount pd=go3-zd if pd <= 0 then else go3=zd end ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首" gqlb={} idb={} for i=1,go3 do gqlb[i]=res.result.songs[i].name idb[i]=res.result.songs[i].id end end --So配置 local function bv(a,b)b=b or ","if not tostring(a):find(b)then return{a}end local tab,i={},0 while true do local j=string.find(a,b,i+1)if not j then table.insert(tab,a:sub(i+1))break end table.insert(tab,a:sub(i+1,j-1))i=j end return tab end local function So(a,b,c)local lde={gre=gg.getResults,sbr=gg.searchNumber,srg=gg.setRanges,crs=gg.clearResults}local csn=gg.getRanges()gg.setVisible(false)lde.srg(a[3])lde.crs()lde.sbr(a[2],a[4])local js=gg.getResultCount()local count=lde.gre(js)lde.crs()if #count==0 then lde.srg(csn)return a[1].."开启失败!!!"end local lope={}for p=1,#b do local lode={}for i=1,#count do table.insert(lode,{address=count[i].address+b[p][2],flags=b[p][3]or a[4]})end lode=gg.getValues(lode)local db=bv(b[p][1],"~")db[2]=db[2]or db[1]local min,max=tonumber(db[1]),tonumber(db[2])lope={}for i=1,#lode do local val=tonumber(lode[i].value)if val and val>=min and val<=max then table.insert(lope,count[i])end end if #lope==0 then lde.srg(csn)return p>11 and"开启失败"or a[1].."开启失败!!!"end count=lope lode=nil end local lopeSet,lobeFreeze={},{}for i=1,#c do local cVal=c[i]for n=1,#count do local addr=count[n].address+cVal[2]local flag=cVal[3]or a[4]local setItem={address=addr,flags=flag,value=cVal[1]}if not cVal[1]then setItem.value=gg.getValues({setItem})[1].value end if cVal[4]then table.insert(lobeFreeze,{address=addr,flags=flag,value=setItem.value,freeze=cVal[4]==1,name=cVal[5]})else table.insert(lopeSet,setItem)end end end if #lopeSet>0 then gg.setValues(lopeSet)end if #lobeFreeze>0 then gg.setValues(lobeFreeze)end lde.srg(csn)return a[1].."开启成功!!!"end local lde={mnsj={Dj="0.01",dv={},lz="/sdcard/.zbb",r={}}}function lde.qb()if #bc>=2 then table.remove(bc)table.remove(bc)end end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(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 --音乐配置 loadYunLuaGroup("5C3C4E3813681C4C204C35346F1B4C2F7EFF612D2B221777DBC491EE401C5E24302533352B174A") local n = { 配置['初始宽度']['500'], 配置['初始高度']['300'], 配置['左上角图标']["https://wlwp.tifvncmf.xyz/view.php/f61ecdb2baf6214505af5655120f10b3.png"], 配置['悬浮窗图标']['https://wlwp.tifvncmf.xyz/view.php/4be3a6819b2dbde923a024035d15079d.png'], 配置['菜单列表'][ { {"主页","https://foruda.gitee.com/images%2F1776649432831199569%2Fa384fe69_14553121.png"}, {"功能","https://foruda.gitee.com/images%2F1776649432831199569%2Fa384fe69_14553121.png"}, {"美化","https://foruda.gitee.com/images%2F1776649432831199569%2Fa384fe69_14553121.png"}, {"音乐","https://foruda.gitee.com/images%2F1776649432831199569%2Fa384fe69_14553121.png"}, {"退出","https://foruda.gitee.com/images%2F1776691745685308439%2F5df5a274_14553121.png"} } ] } linmo.menu({ --每一个功能页面需要有上边分页名字对应,多出来的不显示,少了需要补充 { -- 1 首页 linmo.text("主页", 0xFF000000, "20sp", "center"), linmo.MaterialButton('选择进程', function() gg.setProcessX() string.toMusic('请选择迷你枪战精英游戏进程')end), linmo.MaterialButton('Logo过检', function() if gg.getRangesList("libtersafe2.so")[1] then local t = {} t[1] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x2085DC; -- 数值地址:0x77EAA195DC t[2] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x49CEBC; -- 数值地址:0x77EACADEBC t[3] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x49CEC0; -- 数值地址:0x77EACADEC0 t[4] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x49E900; -- 数值地址:0x77EACAF900 t[5] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4C2628; -- 数值地址:0x77EACD3628 t[6] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4C4578; -- 数值地址:0x77EACD5578 t[7] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4C4584; -- 数值地址:0x77EACD5584 t[8] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4C63C4; -- 数值地址:0x77EACD73C4 t[9] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4CD874; -- 数值地址:0x77EACDE874 t[10] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4CD878; -- 数值地址:0x77EACDE878 t[11] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x4CDDA4; -- 数值地址:0x77EACDEDA4 t[12] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x50D9E0; -- 数值地址:0x77EAD1E9E0 t[13] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x50DA70; -- 数值地址:0x77EAD1EA70 t[14] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x50E120; -- 数值地址:0x77EAD1F120 gg.setValues({ [1] = { address = t[1], flags = 4, value = -698416192, }, [2] = { address = t[2], flags = 4, value = 1384120352, }, [3] = { address = t[3], flags = 4, value = -698416192, }, [4] = { address = t[4], flags = 4, value = 335544325, }, [5] = { address = t[5], flags = 4, value = 1795686687, }, [6] = { address = t[6], flags = 4, value = -721445345, }, [7] = { address = t[7], flags = 4, value = -721445345, }, [8] = { address = t[8], flags = 4, value = 838861833, }, [9] = { address = t[9], flags = 4, value = 1384120320, }, [10] = { address = t[10], flags = 4, value = -698416192, }, [11] = { address = t[11], flags = 4, value = -698416192, }, [12] = { address = t[12], flags = 4, value = -698416192, }, [13] = { address = t[13], flags = 4, value = -698416192, }, [14] = { address = t[14], flags = 4, value = -698416192, }, }) So=gg.getRangesList('libtersafe2.so')[1].start SO=gg.getRangesList('libtprt.so')[1].start gg.setValues({{address=SO+0x182810, flags=4, value= "~A8 B [PC,#0x0]"},})--上面sym.imp.__cxa_finalize的ret迷枪自己模块 gg.setValues({{address=So+0x50D9D0, flags=4, value= "~A8 MOV X0, #0x1"},})--sym.imp.nanosleep gg.setValues({{address=So+0x50D9D0+4, flags=4, value= "~A8 RET"},}) gg.toast("开启成功") end end), linmo.MaterialButton('使用必看', function() gg.alert("快手搜:暂时没有快手\n频道qq群1103910606\n部分功能暂不稳定,请谨慎使用")end), linmo.MaterialButton('每日必看', function() Y=gg.makeRequest("https://v1.hitokoto.cn/").content --获取云端数据 Q=string.match(Y,'hitokoto(.+)type') --模式匹配他们中的一切字符 F=string.gsub(Q,'":"',"") K=string.gsub(F,'","',"") --删除多余垃圾 string.toMusic("\n\n"..""..K.."") QD = gg.alert("今日语录:\n\n"..""..K.."") if QD == 1 then end if QD == 3 then end end), linmo.MaterialButton('过新手教程', function()so=gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x3998c4c,flags=4,value=-698416192}, {address=so+0x3b83664,flags=4,value=-763363264}, {address=so+0x3b83664+0x4,flags=4,value=-698416192}, {address=so+0x3b837d8,flags=4,value=-763363264}, {address=so+0x3b837d8+0x4,flags=4,value=-698416192}, {address=so+0x3b8394c,flags=4,value=-763363264}, {address=so+0x3b8394c+0x4,flags=4,value=-698416192}, {address=so+0x3b83ac0,flags=4,value=-763363264}, {address=so+0x3b83ac0+0x4,flags=4,value=-698416192}}) gg.toast("开启成功")end), linmo.MaterialButton( '转换渠道', function() material3_alert( { "渠道转换", "请选择你要转换的游戏服" }, { '华为服', 'vivo服', 'OPPO服' }, { function() so=gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address=so+0x3b7f518, flags=4, value= "~A8 MOV X0, #0x7"},})--转区 gg.setValues({{address=so+0x3b7f518+4, flags=4, value= "~A8 RET"},}) gg.toast("开启成功") end, function() so=gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address=so+0x3b7f518, flags=4, value= "~A8 MOV X0, #0x1"},})--转区 gg.setValues({{address=so+0x3b7f518+4, flags=4, value= "~A8 RET"},}) gg.toast("开启成功") end, function() so=gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address=so+0x3b7f518, flags=4, value= "~A8 MOV X0, #0x6"},})--转区 gg.setValues({{address=so+0x3b7f518+4, flags=4, value= "~A8 RET"},}) gg.toast("开启成功") end } ) end ) }, { -- 2 竞技1 linmo.text("内存功能", 0xFF000000, "20sp", "center"), linmo.MaterialButton('过移速效验', function() so=gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address=so+0x242db0c, flags=4, value= "~A8 RET"},}) --tp2 初始 gg.setValues({{address=so+0x3998c4c, flags=4, value= "~A8 RET"},})--报告速度作弊 gg.toast("开启成功")end), linmo.check({ { "持刀移速", function() local t = {"libil2cpp.so", "Cd"} local tt = {0x5FCCB8, 0x308} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1087594918}}) so=gg.getRangesList('libil2cpp.so')[2].start local addresses={ {address=so+0x25e0260,flags=4,value=470314304},--处理额外的攻击属性,获取移动速度0 {address=so+0x25e0260+0x4,flags=4,value=-698416192 }} gg.setValues(addresses) gg.toast("开启成功")end, function() local t = {"libil2cpp.so", "Cd"} local tt = {0x5FCCB8, 0x308} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}})so=gg.getRangesList('libil2cpp.so')[2].start local addresses={ {address=so+0x25e0260,flags=4,value=-788380673 },--处理额外的攻击属性,获取移动速度0 {address=so+0x25e0260+0x4,flags=4,value=-50318360 }} gg.setValues(addresses)gg.toast("关闭成功") end}, { "持枪移速", function()so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1dfe580+0xA0,flags=4,value="~A8 FMOV S10, #0x41200000" }} gg.setValues(addresses)gg.toast("开启成功") end, function() so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1dfe580+0xA0,flags=4,value=506335242 }} gg.setValues(addresses)gg.toast("关闭成功")end}, { "人物遁地", function() local t = {"libil2cpp.so", "Cd"} local tt = {0x5F9510, 0xCC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 472177603}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x5FB190, 0x3E18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1075983110}})gg.toast("开启成功") end, function()local t = {"libil2cpp.so", "Cd"} local tt = {0x5F9510, 0xCC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 506204163}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x5FB190, 0x3E18} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}})gg.toast("关闭成功") end}, { "击杀播报", function()so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1f24828+0x1f8,flags=4,value=1384120424},--武器槽武器击杀播报 最新杀戮信息1F8 {address=so+0x1f60580+0x88,flags=4,value=1384120424},--武器槽武器等级88 重置装备通用数据 } gg.setValues(addresses)gg.toast("开启成功") end, function() so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1f24828+0x1f8,flags=4,value=-1186966904},--武器槽武器击杀播报 最新杀戮信息1F8 {address=so+0x1f60580+0x88,flags=4,value=960539272},--武器槽武器等级88 重置装备通用数据 } gg.setValues(addresses)gg.toast("关闭成功")end}, { "枪械无后", function() so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1e6aab4,flags=4,value=-698416192 },--RET拍摄中 {address=so+0x345b568,flags=4,value=-698416192 },}--RET清除排队凸轮力.摇一摇 gg.setValues(addresses)gg.toast("开启成功")end, function() so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1e6aab4,flags=4,value=-65335318 },--RET拍摄中 {address=so+0x345b568,flags=4,value=-65269784 },}--RET清除排队凸轮力.摇一摇 gg.setValues(addresses)gg.toast("关闭成功")end}, { "人物传送", function() local function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true] = 32, [false] = 4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address = addr, flags = va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end original_values = {} local function gg_edits(addr, Table) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr + v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end local original = gg.getValues({value})[1].value original_values[#original_values + 1] = original end if #Table1[2] > 0 then gg.addListItems(Table1[2]) end if #Table1[1] > 0 then gg.addListItems(Table1[1]) gg.setValues(Table1[1]) end return original_values[1] end local tarAddr = nil local function initTarAddr() if tarAddr then return true end local addr = readPointer("libunity.so", {467960, 1300, 1744, 96, 0, 500}, 3) if not addr then gg.alert("❌ 指针读取失败\n请确认阵营传送可用后再试") tarAddr = nil return false end local test = gg.getValues({{address = addr, flags = 16}})[1] if not test or test.value == nil then gg.alert("❌ 坐标地址不可写/非F类型") tarAddr = nil return false end tarAddr = addr return true end local function getCoords(x, y, z) return x or 0, y or 0, z or 0 end -- 摸金撤离地点传送 local function AtableQL() if not initTarAddr() then return end local locations = {"海盗海滩", "小码头", "石滩", "驿站"} local menu = gg.choice(locations, nil, "CS-摸金撤离专区_1.0\n请选择撤离地点") if not menu then return end local coords = { [1] = {4.36959171295, 2.76959300041, 3.85591673851}, [2] = {4.41817140579, 2.90084719658, 4.07470703125}, [3] = {3.87122106552, 2.76728892326, 3.76815748215}, [4] = {3.87953042984, 3.08518266678, 4.13522005081} } local x, y, z = getCoords(coords[menu][1], coords[menu][2], coords[menu][3]) gg.setValues({ {address = tarAddr, flags = 16, value = x}, {address = tarAddr + 8, flags = 16, value = y}, {address = tarAddr + 16,flags = 16, value = z} }) gg.alert("✅ 已传送到\n摸金撤离-" .. locations[menu]) end -- 摸金建筑地点传送 local function AtableJZ() if not initTarAddr() then return end local buildings = {"嘹望塔", "海边小屋", "遗迹", "海盗船", "南湾渔村", "德库拉庄园", "修道院", "补给站", "生活区", "巨石迷阵"} local menu = gg.choice(buildings, nil, "CS-摸金建筑专区_1.0\n请选择建筑地点") if not menu then return end local coords = { [1] = {4.28718519211, 3.08997035027, 4.10037946701}, [2] = {4.3541226387, 2.95413780212, 3.95152592659}, [3] = {4.23732614517, 3.01301431656, 3.94188213348}, [4] = {4.27038288116, 3.15148711205, 3.82700133324}, [5] = {4.1362657547, 3.00681781769, 3.76228475571}, [6] = {4.11525201797, 3.30795717239, 4.14562034607}, [7] = {3.93631839752, 3.28967499733, 4.03864622116}, [8] = {3.93007826805, 3.09906744957, 4.12051582336}, [9] = {3.98550510406, 2.99628257751, 3.91131687164}, [10] = {3.8873500824, 3.11442995071, 3.92616605759} } local x, y, z = getCoords(coords[menu][1], coords[menu][2], coords[menu][3]) gg.setValues({ {address = tarAddr, flags = 16, value = x}, {address = tarAddr + 8, flags = 16, value = y}, {address = tarAddr + 16,flags = 16, value = z} }) gg.alert("✅ 已传送到\n摸金建筑-" .. buildings[menu]) end -- 爆破/守卫传送 local function AtableBaoPo() if not initTarAddr() then return end local maps = {"迷你乐园", "糖果工厂", "美食小镇", "要塞危机", "糖果梦工厂"} local mapMenu = gg.choice(maps, nil, "CS-爆破守卫专区_1.0\n请选择地图") if not mapMenu then return end local points = {"爆破方家", "守卫方家", "A点", "B点"} local pointMenu = gg.choice(points, nil, "当前地图:" .. maps[mapMenu] .. "\n请选择传送点位") if not pointMenu then return end local coordsConfig = { [1] = {[1]={2.73379135132,-1.69596648216,-3.17464733124},[2]={-2.90078115463,2.16999864578,3.109375},[3]={2.8311984539,2.36937403679,3.00337934494},[4]={-3.12573432922,2.29751348495,-2.72689795494}}, [2] = {[1]={-2.48222708702,1.98875308037,-3.19597649574},[2]={2.53079724312,2.35635590553,2.94259929657},[3]={2.8311984539,2.36937403679,3.00337934494},[4]={-3.25771450996,2.17624926567,2.53557300568}}, [3] = {[1]={2.83972620964,1.85665154457,-3.20818805695},[2]={-2.97621440887,-1.98951852322,3.08303022385},[3]={-3.1112446785,1.89082658291,-2.60583162308},[4]={3.01340222359,1.89082634449,3.22609496117}}, [4] = {[1]={-3.10832738876,1.95440220833,1.79469203949},[2]={3.19644904137,1.95440220833,-2.52469778061},[3]={2.86683082581,2.14764428139,-3.0816078186},[4]={2.79981446266,2.09624004364,3.04907464981}}, [5] = {[1]={2.75312495232,1.92698228359,-3.15625},[2]={-2.54592776299,2.10783934593,3.16895246506},[3]={-2.359375,1.91847479343,2.35312461853},[4]={2.82499980927,-2.51362872124,2.18124985695}} } local x, y, z = getCoords(coordsConfig[mapMenu][pointMenu][1], coordsConfig[mapMenu][pointMenu][2], coordsConfig[mapMenu][pointMenu][3]) gg.setValues({ {address = tarAddr, flags = 16, value = x}, {address = tarAddr + 8, flags = 16, value = y}, {address = tarAddr + 16,flags = 16, value = z} }) gg.alert("✅ 已传送到\n" .. maps[mapMenu] .. "-" .. points[pointMenu]) end -- 野人追击地图传送 local function YeRenZhuiJi() if not initTarAddr() then return end local subMaps = {"积木城堡", "熔岩之城"} local subMenu = gg.choice(subMaps, nil, "CS-野人追击专区_1.0\n请选择子地图") if not subMenu then return end local jimuLocks = {"锁位1", "锁位2", "锁位3", "锁位4", "锁位5"} local jimuCoords = { [1] = {3.3011598587, 2.83288931847, -1.57588434219}, [2] = {3.43775200844, 3.00085926056, 3.3043513298}, [3] = {2.61826634407, 2.98312354088, 3.73197817802}, [4] = {3.62462353706, 3.32209920883, 3.82421445847}, [5] = {3.62659740448, 3.46982979774, 3.91453289986} } local rongyanLocks = {"锁位1", "锁位2", "锁位3"} local rongyanCoords = { [1] = {-2.59880018234, 2.54526543617, 2.64184689522}, [2] = {-2.78865265846, 2.47368121147, -2.66273236275}, [3] = {3.2704911232, 1.95594835281, -2.84927582741} } if subMenu == 1 then local lockMenu = gg.choice(jimuLocks, nil, "当前地图:积木城堡\n请选择锁位") if not lockMenu then return end local x, y, z = getCoords(jimuCoords[lockMenu][1], jimuCoords[lockMenu][2], jimuCoords[lockMenu][3]) gg_edits(tarAddr, {{x, 16, 0, false}, {y, 16, 8, false}, {z, 16, 16, false}}) gg.alert("✅ 已传送到\n野人追击-积木城堡-" .. jimuLocks[lockMenu]) elseif subMenu == 2 then local lockMenu = gg.choice(rongyanLocks, nil, "当前地图:熔岩之城\n请选择锁位") if not lockMenu then return end local x, y, z = getCoords(rongyanCoords[lockMenu][1], rongyanCoords[lockMenu][2], rongyanCoords[lockMenu][3]) gg_edits(tarAddr, {{x, 16, 0, false}, {y, 16, 8, false}, {z, 16, 16, false}}) gg.alert("✅ 已传送到\n野人追击-熔岩之城-" .. rongyanLocks[lockMenu]) end end -- 整合枪战传送功能 local function QiangZhan() if not initTarAddr() then return end local original = gg_edits(tarAddr, {{0, 16, 16, false}}) gg_edits(tarAddr, {{-original, 16, 16, false}}) gg.alert("✅ 枪战传送成功") end -- 主菜单(已加入枪战传送) local sel = gg.choice({ "摸金撤离地点", "摸金建筑地点", "爆破/守卫传送", "野人追击地图", "枪战传送" }, nil, "地图传送_陌然版\n✅ ") if sel == 1 then AtableQL() elseif sel == 2 then AtableJZ() elseif sel == 3 then AtableBaoPo() elseif sel == 4 then YeRenZhuiJi() elseif sel == 5 then QiangZhan() end end, function() gg.toast("开启成功")end}, { "人物大小", function()local App=gg.prompt({"修改的大小{推荐参数2.0}"},{[1]=""},{[1]="number"})[1] so=gg.getRangesList('libil2cpp.so')[2].start local addresses={ {address=so+0x2e6af00-0x1C,flags=4,value="~A8 LDR S0, [PC,#0xF844]"},--刷新头像Lod -1C {address=so+0x2e6af00-0x1C+0xf844,flags=16,value=App},} gg.setValues(addresses)gg.toast("开启成功") end, function()so=gg.getRangesList('libil2cpp.so')[2].start local addresses={ {address=so+0x2e6af00-0x1C+0xf844,flags=16,value=1}} gg.setValues(addresses)gg.toast("关闭成功") end}, { "人物自瞄", function() so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x29266f8+0x540,flags=4,value=505933827 },--FMOV S3, #0x41F80000 540 {address=so+0x29266f8+0x544,flags=4,value=506351620 },--FMOV S4, #0x3F900000 544 {address=so+0x29266f8+0x678,flags=4,value=505933827 },--FMOV S3, #0x41F80000 678 {address=so+0x29266f8+0x67C,flags=4,value=506351620 },--FMOV S4, #0x3F900000 67C } gg.setValues(addresses)gg.toast("开启成功")end, function()so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x29266f8+0x540,flags=4,value=-1119857053 },--FMOV S3, #0x41F80000 540 {address=so+0x29266f8+0x544,flags=4,value=-1119845788 },--FMOV S4, #0x3F900000 544 {address=so+0x29266f8+0x678,flags=4,value=-1119851933 },--FMOV S3, #0x41F80000 678 {address=so+0x29266f8+0x67C,flags=4,value=-1119845788 },--FMOV S4, #0x3F900000 67C } gg.setValues(addresses)gg.toast("关闭成功") end}, { "子弹据点", function() local t = {"libil2cpp.so", "Cd"} local tt = {0x623848, 0x1CC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 506335244}})gg.toast("开启成功") end, function()local t = {"libil2cpp.so", "Cd"} local tt = {0x623848, 0x1CC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 506335241}})gg.toast("关闭成功") end}, { "声音速度", function()so=gg.getRangesList('libunity.so')[2].start gg.setValues({ {address=so+0x9C22DC,flags=4,value=477260864}}) local Spp=gg.prompt({"请输入修改数值"},{[1]=""},{[1]="number"})[1] local t = {"libunity.so", "Cd"} local tt = {0x464B8, 0x1394} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = Spp}})gg.toast("开启成功") end, function() local t = {"libunity.so", "Cd"} local tt = {0x464B8, 0x1394} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})gg.toast("关闭成功")end}, { "子弹穿墙", function()so=gg.getRangesList('libunity.so')[2].start local addresses={{address=so+0x1058A70,flags=4,value=-698416192},}--RET gg.setValues(addresses)gg.toast("开启成功") end, function()so=gg.getRangesList('libunity.so')[2].start local addresses={{address=so+0x1058A70,flags=4,value=-65138710},}--STR D10, [SP,#-0x20]! gg.setValues(addresses)gg.toast("关闭成功")end}, { "无限子弹", function() so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1f60e64,flags=4,value=-763363296 },-- 检查是否有无限弹药 {address=so+0x1f60e64+0x4,flags=4,value=-698416192 },-- {address=so+0x1f60eec,flags=4,value=-763363296 },--检查是否有无限后备弹药 {address=so+0x1f60eec+0x4,flags=4,value=-698416192 }, {address=so+0x1e045d4,flags=4,value=-698416192 },}--成本枪弹药 gg.setValues(addresses)gg.toast("开启成功")end, function()so=gg.getRangesList('libil2cpp.so')[2].start local addresses = { {address=so+0x1f60e64,flags=4,value=-1447145484 },-- 检查是否有无限弹药 {address=so+0x1f60e64+0x4,flags=4,value=-1459520515 },-- {address=so+0x1f60eec,flags=4,value=-1447145484 },--检查是否有无限后备弹药 {address=so+0x1f60eec+0x4,flags=4,value=-1459520515 }, {address=so+0x1e045d4,flags=4,value=-1447145484 },}--成本枪弹药 gg.setValues(addresses) gg.toast("关闭成功") end}, }) }, { -- 3 竞技2 linmo.text("美化功能", 0xFF000000, "20sp", "center"), linmo.box({ '勋章美化', linmo.MaterialButton('基础勋章', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201001}}) gg.toast("开启成功") end), linmo.MaterialButton('枪神之辉', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201002}}) gg.toast("开启成功") end), linmo.MaterialButton('胜利荣光', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201003}}) gg.toast("开启成功") end), linmo.MaterialButton('无畏战魂', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201004}}) gg.toast("开启成功") end), linmo.MaterialButton('独行侠', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201005}}) gg.toast("开启成功") end), linmo.MaterialButton('迷斯拉', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201006}}) gg.toast("开启成功") end), linmo.MaterialButton('时序猎手', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201007}}) gg.toast("开启成功") end), linmo.MaterialButton('梦幻激斗', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201008}}) gg.toast("开启成功") end), linmo.MaterialButton('天音净语', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201009}}) gg.toast("开启成功") end), linmo.MaterialButton('蒸汽之星', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201010}}) gg.toast("开启成功") end), linmo.MaterialButton('葫芦七绝', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201011}}) gg.toast("开启成功") end), linmo.MaterialButton('纸上战争', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201012}}) gg.toast("开启成功") end), linmo.MaterialButton('帝皇侠', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201013}}) gg.toast("开启成功") end), linmo.MaterialButton('猪猪侠', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201014}}) gg.toast("开启成功") end), linmo.MaterialButton('月冕之狼', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201015}}) gg.toast("开启成功") end), linmo.MaterialButton('花序狂想', function() local so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address=so+0x1f2624c+0x68,flags=4,value="~A8 LDR W1, [PC,#0x52B8]"},-- 回合状态已更改 +刷新零件展示 68 {address=so+0x1f2624c+0x68+0x52B8,flags=4,value=82201016}}) gg.toast("开启成功") end), }) }, { -- 4 linmo.text("音乐播放", 0xFF000000, "20sp", "center"), linmo.MaterialButton('搜索音乐', 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), linmo.MaterialButton('暂停音乐', function()gg.toast("正在停止音乐") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end), }, { -- 5 退出/设置 linmo.text("设置页面", 0xFF000000, "20sp", "center"), linmo.MaterialSwitch( "音量键隐藏UI ", function() 音量键 = true end, function() 音量键 = false end ), linmo.MaterialSwitch( "退出", function() 退出() end, function() end ) }, { -- 6 } })