--模板-------------奕神 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 Ranges=gg.getRangesList('/') local function Read(module,type) for k,v in pairs(Ranges) do if v['internalName']:match('[^/]*$')==module and v['type']==type then return v['start'] end end end--配置 local 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 local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value 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 local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end --[[ 手持 0x742A70,0x30,0x440,0x27F0,0x9D0,0x11C 枪 0x742A70,0x30,0x440,0x27F0,0x9D0,0xA4 机苗 0x742A70,0x30,0x440,0x27F0,0x9D0,0x7C 枪托 0x742A70,0x30,0x440,0x27F0,0x9D0,0x54 弹匣 0x742A70,0x30,0x440,0x27F0,0x9D0,0x04 枪口 0x742A70,0x30,0x440,0x27F0,0x9D0,0x2C 握把 0x742A70,0x30,0x440,0x90,0x1768--淘汰播报 0x742A70,0x30,0x440,0x90,0x176c--圣装播报 --数主 0xC5A40,0x558,0x20,0x38,0x38,0xE10 --A内存范围 0x742A70,0x30,0x440,0x498,0x630,0x3A0,0x138,0x38,0x70,0x38,0x88--头部 0x742A70,0x30,0x440,0x498,0x630,0x3A0,0x138,0x38,0x70,0x38,0x8C--身体 0x742A70,0x30,0x440,0x498,0x630,0x3A0,0x138,0x38,0x70,0x38,0x90--脚 --这个数据仅供参考,因为新赛季的末尾偏移不固定了--除枪械 --意思就是比如上个赛季衣服最后偏移就是70头发就是E0 --而这个赛季就是第一个值是70第二个值是E0 --而且这些值是0都要穿戴才会变--初始化 衣服:0x742A70,0x30,0x440,0x2B58,0x388,0x70 裤子:0x742A70,0x30,0x440,0x2B58,0x388,0x38 鞋子:0x742A70,0x30,0x440,0x2B58,0x388,0xA8 头发:0x742A70,0x30,0x440,0x2B58,0x388,0xE0 脸:0x742A70,0x30,0x440,0x2B58,0x388,0x0 头盔:0x742A70,0x30,0x440,0x2B58,0x388,0x118 背包:0x742A70,0x30,0x440,0x2B58,0x388,0x150 防弹衣:0x742A70,0x30,0x440,0x2B58,0x388,0x188 口罩:0x742A70,0x30,0x440,0x2B58,0x388,0x1C0 手部:0x742A70,0x30,0x440,0x2B58,0x388,0x130 ]] function Zcd() --主菜单 local meun={ "衣服美化", "手持美化", "手持配件", "圣装播报", } --主菜单功能名(table) local funct={A,B,C,D} --主菜单对应的功能(table) return meun,funct --返回主菜单的功能名和对应的功能,必须为table表格式 end function A()---泛滥频道@ZQPUBG local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(纵秋人物.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {474031, 1402613, 1400779, 404019, 1404138, 1502003093, 1501003503, 54188, 54188, true} end h= gg.prompt({ "头发修改", "脸部修改", "上衣修改", "裤子修改", "鞋子修改", "头盔修改", "背包修改", "口罩修改", "手部修改", },cfg,{"text","text","text","text","text","text","text","text","text"}) if h == nil then else gg.saveVariable(h, cfg_file) if h[1] == true then h1() end if h[2] == true then h2() end if h[3] == true then h3() end if h[4] == true then h4() end if h[5] == true then h5() end if h[6] == true then h6() end if h[7] == true then h7() end if h[8] == true then h8() end if h[9] == true then h9() end local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0xE0}---头发 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x0}---脸部 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[2]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x70}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[3]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x38}--裤子 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[4]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0xA8}---鞋子 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[5]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x118}--头盔 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[6]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x150}--背包 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[7]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x1C0}--口罩 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[8]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x2B58,0x388,0x150}--手部 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[9]}}) gg.toast("开启成功") end-- return Main(meun,funct,1) --返回给开始调用的主函数Main(),注意,子菜单必须返回3个参数,就是后面1,填其他的也可以,主要不为假,就是nil,其它随便填,一个字符串也行,不知道的就随便填一个数字,必须是返回主函数Main() end function B() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(纵秋人物.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {5418888, true} end h= gg.prompt({ "手持枪械", },cfg,{"text"}) if h == nil then else gg.saveVariable(h, cfg_file) if h[1] == true then h11() end local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x27F0,0x9D0,0x11C}--枪械 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[11]}}) gg.toast("开启成功") end end function C() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(纵秋人物.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {5418888, 541888, 541888, 541888, 16845, true} end h= gg.prompt({ "手持机瞄", "手持枪托", "手持弹夹", "手持枪口", "手持握把", },cfg,{"text","text","text","text","text"}) if h == nil then else gg.saveVariable(h, cfg_file) if h[1] == true then h12() end if h[2] == true then h13() end if h[3] == true then h14() end if h[4] == true then h15() end if h[5] == true then h16() end local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x27F0,0x9D0,0xA4}--鸡苗 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[12]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x27F0,0x9D0,0x7C}--枪托 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[13]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x27F0,0x9D0,0x54}--弹夹 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[14]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x27F0,0x9D0,0x04}--枪口 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[15]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x27F0,0x9D0,0x2C}--握把 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[16]}}) gg.toast("开启成功") end end --[[ 0x742A70,0x30,0x440,0x27F0,0x9D0,0x7C 枪托 0x742A70,0x30,0x440,0x27F0,0x9D0,0x54 弹匣 0x742A70,0x30,0x440,0x27F0,0x9D0,0x04 枪口 0x742A70,0x30,0x440,0x27F0,0x9D0,0x2C 握把 ]] function D() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(纵秋人物.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {5418888, 88888, true} end h= gg.prompt({ "淘汰播报", "圣装播报", },cfg,{"text","text"}) if h == nil then else gg.saveVariable(h, cfg_file) if h[1] == true then h21() end if h[2] == true then h20() end local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x90,0x1768}--枪械 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[21]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x742A70,0x30,0x440,0x90,0x176c}--枪械 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = h[20]}}) gg.toast("开启成功") end end --[[ 0x742A70,0x30,0x440,0x90,0x1768--淘汰播报 0x742A70,0x30,0x440,0x90,0x176c--圣装播报 ]] function Exit()--退出 print("模板独家") gg.setVisible(true) os.exit() end --以下都为核心配置,不懂得就不要动了 function Ssgn(tab,str,fun,bool) --这里搜索功能,不懂不要动 local a={} a[1]={"搜索[\""..str.."\"]的结果:\n重新搜索?"} a[2]={} a[3]={} local b local c local d={} local t=0 if #tab>0 then for i=1,#tab do if string.match(tab[i],str) then table.insert(a[1],tab[i]) t=i end d[tab[i]]={} d[tab[i]]=fun[i] end end if t==0 then local b=gg.prompt({"未找到功能:[\""..str.."\"]\n重新搜索?","返回上级"},{str,false},{"text","checkbox"}) if b then if b[2] then return Main(tab,fun,bool) elseif not (b[1]=='' or b[1]==str) then Ssgn(tab,b[1],fun) else gg.alert('这多没意思!') end end return Main() end table.insert(a[1],"返回上级") for i=1,#a[1] do if i==1 then table.insert(a[2],'') table.insert(a[3],'text') else table.insert(a[2],false) table.insert(a[3],"checkbox") end end local c=gg.prompt(table.unpack(a)) if c==nil then return Main() end if c[#a[1]] then return Main(tab,fun,bool) end if not (c[1]=='' or c[1]==str) then return Ssgn(tab,c[1],fun) end for i=1,#c do if not (i==1 or i==#c) then if c[i] then d[a[1][i]]() end end end end function Main(hqcd,hqgn,hqbs,pdqf,hqxz) if (hqcd==nil or hqgn==nil) then hqcd,hqgn=Zcd() end --接收传递过来的功能名和功能函数等信息,若为nil则获取主菜单的信息 if (hqcd==nil or hqgn==nil) then gg.alert("配置错误!") gg.setVisible(true) os.exit(print("配置错误!")) end --若主菜单函数也返回nil则退出脚本,所以要配置好 local sztf={} if pdqf then if not (pdqf==2 or hqxz==nil) then sztf={table.unpack(hqxz)} --这里有些人可能认为多此一举,那么可以大可以试试改掉 if hqxz then if #hqxz~=0 then for i=1,#hqxz do if pdqf==1 then sztf[i]=true elseif pdqf==3 then if sztf[i] then sztf[i]=false else sztf[i]=true end end end end end end end local meun={} meun[1]={table.unpack(hqcd)} --这里跟上面的一样 meun[2]={} meun[3]={} if hqbs then table.insert(meun[1],1,"搜索此页功能:") table.insert(meun[1],"返回主页") else table.insert(meun[1],1,"[帕瓦美化]\n你想要的这里都有@WSNBYYDS\n搜索此页功能:") table.insert(meun[1],"退出脚本") end table.insert(meun[1],2,"全选<==>反选[1;3]") for i=1,#meun[1] do if i==1 then table.insert(meun[2],i,'') table.insert(meun[3],i,'text') end if i==2 then table.insert(meun[2],i,2) table.insert(meun[3],i,'number') end if i>2 then if not (pdqf==2 or pdqf==nil) then table.insert(meun[2],i,sztf[i-2]) if i==#meun[1] then table.insert(meun[2],i,false) end else table.insert(meun[2],i,false) end table.insert(meun[3],i,'checkbox') end end local lx=gg.prompt(table.unpack(meun)) if lx==nil then return end local tfcs={} for i=1,#lx do if not (i<=2 or i==#lx) then table.insert(tfcs,lx[i]) end end if tonumber(lx[2])~=2 then return Main(hqcd,hqgn,hqbs,tonumber(lx[2]),tfcs) end --print() if lx[1]~='' then return Ssgn(hqcd,lx[1],hqgn,hqbs) end for i=1,#lx do if not (i<=2 or i==#lx) then if lx[i] then hqgn[i-2]() end end end if lx[#meun[1]] then if hqbs then return Main() else return Exit() end end end repeat if gg.isVisible() then gg.setVisible(false) Main() end until false