Advertisement
pinenxu

顶级娱乐

May 25th, 2024 (edited)
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 23.46 KB | Gaming | 0 0
  1. function update()
  2.   local x64 = gg.getTargetInfo().x64
  3.   local libil2cpp, metadata = gg.getRangesList("libil2cpp.so")[(x64 and 2 or 1)], gg.getRangesList("global-metadata.dat")[1]
  4.   local function searchMethod(Method)
  5.     local off1, typ = x64 and -16 or -8, x64 and 32 or 4
  6.     local Moffset = {}
  7.     gg.clearResults()
  8.     gg.setRanges(gg.REGION_OTHER)
  9.     gg.searchNumber(":"..Method,1,nil,gg.SIGN_EQUAL,metadata["start"],metadata["end"])
  10.     gg.searchPointer(0,typ)
  11.     local xpoint=gg.getResults(gg.getResultsCount())
  12.     gg.clearResults()
  13.     for i, v in pairs(xpoint) do v.address, v.flags = v.address + off1, typ end
  14.     for i, v in pairs(gg.getValues(xpoint)) do
  15.       xadd = tonumber((x64 and v.value or "0x"..string.sub(tostring(string.format("%X",tonumber(v.value)) ), -8,-1)))
  16.       if xadd > libil2cpp["start"] and xadd < libil2cpp["end"] then table.insert(Moffset,string.format("0x%X",xadd-libil2cpp["start"])) end
  17.     end
  18.     return Moffset
  19.   end
  20.  
  21.   local Aoffset, Moffset, Xoffset = {}, {}, {}
  22.   local Aoff, Moff, Xoff = {}, {}, {}
  23.   local AMtyp = 4
  24.   local Xtyp = {16,16,16,16,16,4,16}
  25.   local Alist, Mlist, Xlist = {
  26.     "get_IsBanned",
  27.     "add_CheatChecked",
  28.     "set_LastOnlineTimeResult",
  29.     "get_IsCheckingForCheat",
  30.     "set_IsCheckingForCheat",
  31.     "ForceCheck",
  32.     "IsReadyForForceCheck",
  33.     "CheckForCheat",
  34.     "remove_CheckPassed",
  35.     "SetErrorCallback",
  36.     "set_IsCheatDetected",
  37.     "IsCheatActivated",
  38.     "IsRoomBanned",
  39.     "toMainMenu",
  40.     "CheckIfIDExistsInRoom",
  41.     "ShouldBeRemovedFromRoom",
  42.     "OnRemoveFromRoom",
  43.     "OnReport",
  44.     "KickedFromCar",
  45.     "resetAfter",
  46.     "StopFillFuel",
  47.     "StopFillFuelMultiplayerCar"
  48.   },{--Alist^
  49.     "CanEnterAsDriver",
  50.     "CanEnterAsPassenger",
  51.     "SendCarExit",
  52.     "TowCarMultiplayer",
  53.     "PlayerExitFromCar"
  54.   },{--Mlist^
  55.     {"90F;100F::5",1e2,"libil2cpp"},
  56.     {"6000",6e3,"libil2cpp"},
  57.     {"1E7",1e7,"libunity"},
  58.     {"-1E3F;1E3F::5",1e3,"libil2cpp"},
  59.     {"1E32;5e-5::5",1e32,"libunity"},
  60.     {"1D;2D;3D;4D;5D;6D;7D;8D;9D;16D::37",8,"libil2cpp"},
  61.     {"-0.14177720249 ",-0.14177720249,"libunity"}
  62.   }--Xlist^
  63.  
  64.   for _, v in pairs(Alist) do
  65.     table.insert(Aoffset,{})
  66.     table.insert(Aoff,{})
  67.     for _, v2 in pairs(searchMethod(v)) do
  68.       local Xv = gg.getValues({{address = libil2cpp["start"] + v2,flags = 4},{address = libil2cpp["start"] + v2 + 0x4,flags = 4}})
  69.       table.insert(Aoffset[#Aoffset],v2)
  70.       table.insert(Aoffset[#Aoffset],string.format("0x%X",v2 + 0x4))
  71.       table.insert(Aoff[#Aoff],Xv[1].value)
  72.       table.insert(Aoff[#Aoff],Xv[2].value)
  73.     end
  74.     table.insert(Aoffset[#Aoffset],"\"libil2cpp\"")
  75.   end
  76.  
  77.   for _, v in pairs(Mlist) do
  78.     table.insert(Moffset,{})
  79.     table.insert(Moff,{})
  80.     for _, v2 in pairs(searchMethod(v)) do
  81.       local Xv = gg.getValues({{address = libil2cpp["start"] + v2,flags = 4},{address = libil2cpp["start"] + v2 + 0x4,flags = 4}})
  82.       table.insert(Moffset[#Moffset],v2)
  83.       table.insert(Moffset[#Moffset],string.format("0x%X",v2 + 0x4))
  84.       table.insert(Moff[#Moff],Xv[1].value)
  85.       table.insert(Moff[#Moff],Xv[2].value)
  86.     end
  87.     table.insert(Moffset[#Moffset],"\"libil2cpp\"")
  88.   end
  89.  
  90.   gg.setRanges(gg.REGION_CODE_APP)
  91.  
  92.   for _, v in pairs(Xlist) do
  93.     gg.clearResults()
  94.     gg.searchNumber(v[1],Xtyp[_],nil,gg.SIGN_EQUAL,_G[v[3]]["start"],_G[v[3]]["end"])
  95.     gg.refineNumber(v[2])
  96.     table.insert(Xoffset,{})
  97.     table.insert(Xoff,{})
  98.     for _, v2 in pairs(gg.getResults(gg.getResultsCount())) do
  99.       table.insert(Xoffset[#Xoffset],string.format("0x%X",v2.address - _G[v[3]]["start"]))
  100.     end
  101.     table.insert(Xoffset[#Xoffset],"\""..v[3].."\"")
  102.     table.insert(Xoff[#Xoff],v[2])
  103.     gg.clearResults()
  104.   end
  105.  
  106.   Xout = {}
  107.   table.insert(Xout,"_ = (function()")
  108.   table.insert(Xout,"  AMtyp = "..AMtyp)
  109.   table.insert(Xout,"  Xtyp = {"..table.concat(Xtyp,",").."}")
  110.  
  111.   for i, v1 in pairs({Aoffset,Moffset,Xoffset}) do
  112.     table.insert(Xout,"  "..({"Aoffset","Moffset","Xoffset"})[i].." = {")
  113.     for _, v2 in pairs(v1) do
  114.       table.insert(Xout,"    {"..table.concat(v2,",").."},")
  115.     end
  116.     table.insert(Xout,"  }")
  117.   end
  118.  
  119.   for i, v1 in pairs({Aoff,Moff,Xoff}) do
  120.     table.insert(Xout,"  "..({"Aoff","Moff","Xoff"})[i].." = {")
  121.     for _, v2 in pairs(v1) do
  122.       table.insert(Xout,"    {"..table.concat(v2,",").."},")
  123.     end
  124.     table.insert(Xout,"  }")
  125.   end
  126.  
  127.   table.insert(Xout,"  return\n end)([[\n\n"..Xinfo.."\n\n]])")
  128.  
  129.   gg.saveList(Qfile)
  130.   io.open(Qfile,"w"):write(string.dump(load(table.concat(Xout,"\n")),true))
  131. end
  132.  
  133. function valueFromClass(class, offset, refineNumber)
  134.   local libil2cpp = {}
  135.   local c0 = string.char(0)
  136.   local metadata = gg.getRangesList("global-metadata.dat")[1]
  137.   local unsignedFixers = {[1] = 0xFF,[2] = 0xFFFF,[4] = 0xFFFFFFFF,[8] = 0xFFFFFFFFFFFFFFFF}
  138.   local typlist = {D = "DWORD", F = "FLOAT", E = "DOUBLE", W = "WORD", B = "BYTE", Q = "QWORD", X = "XOR"}
  139.   local x64 = gg.getTargetInfo().x64
  140.   local typ, PointerSize = x64 and 32 or 4, x64 and 8 or 4
  141.   local Xn, lr = 0, 0
  142.   local xOffset, x1, x2 = {}, {}, {}
  143.  
  144.   for i, v in pairs(gg.getRangesList(gg.getTargetInfo().packageName.."*.so")) do
  145.     if v.name:find("libil2cpp.so") then table.insert(libil2cpp,v) end
  146.   end
  147.  
  148.   gg.clearResults()
  149.   gg.setRanges(gg.REGION_OTHER)
  150.   gg.searchNumber(":"..c0..class..c0,1,nil,gg.SIGN_EQUAL,metadata["start"],metadata["end"])
  151.   gg.searchPointer(0,typ)
  152.   if x64 then--64bit
  153.     local s1 = {}
  154.     for _, v in pairs(gg.getResults(gg.getResultsCount())) do
  155.       table.insert(s1,{address = v.address + 0x38,flags = typ})
  156.       table.insert(s1,{address = v.address + 0x30,flags = typ})
  157.     end
  158.     s1 = gg.getValues(s1)
  159.     for i = 1, #s1, 2 do
  160.       if #tostring(s1[i].value) > 11 and s1[i].value == s1[i+1].value then table.insert(s1,s1[i].value) end
  161.       for v1 = 0, 1 do s1[i + v1] = nil end
  162.     end
  163.     gg.setRanges(gg.REGION_ANONYMOUS)
  164.     for _, v in pairs(s1) do
  165.       if v then
  166.         gg.clearResults()
  167.         gg.searchNumber(v,typ)
  168.         for _, v1 in pairs(gg.getResults(gg.getResultsCount())) do table.insert(x1,v1) end
  169.       end
  170.     end
  171.   else--32bit
  172.     local s1 = {}
  173.     for _, v in pairs(gg.getResults(gg.getResultsCount())) do table.insert(s1,{address = v.address - 8,flags = typ}) end
  174.     gg.setRanges(gg.REGION_ANONYMOUS)
  175.     gg.loadResults(s1)
  176.     gg.searchPointer(0,typ)
  177.     x1 = gg.getResults(gg.getResultsCount())
  178.   end
  179.  
  180.   gg.clearResults()
  181.   lr = #x1
  182.  
  183.   for v in offset:gmatch("%S+") do
  184.     if v:find("0[Xx].-") then Xn = Xn + 1 end
  185.     table.insert(xOffset,(v:find("0[Xx].-") and v or typlist[v:sub(1,1)]))
  186.   end
  187.   for v1 = 1, #x1 do
  188.     for i, v2 in pairs(xOffset) do
  189.       if not v2:find("0[Xx].-") then
  190.         for v3 = i - 1, 1, -1 do
  191.           if not xOffset[v3]:find("0[Xx].-") then break end
  192.           table.insert(x1,{address = x1[v1].address + xOffset[v3], offset = xOffset[v3], flags = _G["gg"]["TYPE_"..v2]})
  193.         end
  194.       end
  195.     end
  196.     x1[v1] = nil
  197.   end
  198.  
  199.   for i = lr + Xn, #x1, Xn do
  200.     local classname, adds = {}, {}
  201.     local fixedPointer = x1[i].address - (x1[i].address%PointerSize)
  202.     for off = 0, x1[i].offset, PointerSize do table.insert(adds,{address = fixedPointer - off,flags = typ}) end
  203.     for _, v in pairs(gg.getValues(adds)) do table.insert(classname,{address = v.value + (PointerSize*2),flags = typ}) end
  204.     for _, v in pairs(gg.getValues(classname)) do
  205.       if (v.value > metadata["start"] and v.value < metadata["end"]) then
  206.         if x1[i].address - adds[_].address == x1[i].offset then
  207.           for v1 = 0, Xn - 1 do table.insert(x2,x1[i - v1]) end
  208.         end
  209.         break
  210.       end
  211.     end
  212.   end
  213.  
  214.   gg.loadResults(x2)
  215.  
  216.   if refineNumber then
  217.     if refineNumber:find("%:") and not refineNumber:find(".-:[0-9]") then
  218.       refineNumber = refineNumber:match("(.-)%:")..refineNumber:match("%:.")..tonumber(xOffset[#xOffset - 1])
  219.     end
  220.     gg.refineNumber(refineNumber)
  221.   end
  222.   return gg.getResultsCount() > 0 and true or false
  223. end
  224.  
  225. function refineOffset(offset)
  226.   local metadata = gg.getRangesList("global-metadata.dat")[1]
  227.   local x64 = gg.getTargetInfo().x64
  228.   local typ, PointerSize = x64 and 32 or 4, x64 and 8 or 4
  229.   local x1, x2 = gg.getResults(gg.getResultsCount()), {}
  230.   for i, v in pairs(x1) do
  231.     local class, adds = {}, {}
  232.     local fixedPointer = v.address - (v.address%PointerSize)
  233.     for off = 0, offset, PointerSize do table.insert(adds,{address = fixedPointer - off,flags = typ}) end
  234.     for _, v1 in pairs(gg.getValues(adds)) do table.insert(class,{address = v1.value + (PointerSize*2),flags = typ}) end
  235.     for _, v1 in pairs(gg.getValues(class)) do
  236.       if (v1.value > metadata["start"] and v1.value < metadata["end"]) then
  237.         if v.address - adds[_].address == offset then table.insert(x2,v) end
  238.         break
  239.       end
  240.     end
  241.   end
  242.   return x2
  243. end
  244.  
  245. function lvalue(offset,value,typ)
  246.   local Xr = {}
  247.   gg.setRanges(gg.REGION_CODE_APP)
  248.   for i1 = 1 , #offset - 1, #value do
  249.     for i2 = #value - 1, 0, -1 do --print(offset[i1 - (i2 - 1)]) print(value)
  250.       table.insert(Xr,{
  251.         address = _G[offset[#offset]]["start"] + offset[i1 + i2],
  252.         value = value[i2 + 1],
  253.         flags = typ,
  254.         freeze = true
  255.       })
  256.     end
  257.   end
  258.   gg.addListItems(Xr)
  259.   --gg.removeListItems(Xr)
  260. end
  261.  
  262. function sleep(t)
  263.   for i = 1, t do
  264.     if gg.isVisible() then return false end
  265.     gg.sleep(1)
  266.   end
  267.   return true
  268. end
  269.  
  270. function f2()
  271.   repeat
  272.     if not sleep(50) then break end
  273.     gg.toast(ON)
  274.     lvalue(Xoffset[2],{50},Xtyp[2])
  275.     if not sleep(50) then break end
  276.     gg.toast(OFF)
  277.     lvalue(Xoffset[2],Xoff[2],Xtyp[2])
  278.   until gg.isVisible()
  279.   lvalue(Xoffset[2],Xoff[2],Xtyp[2])
  280. end
  281.  
  282. function f3()
  283.   repeat
  284.     gg.toast(">")
  285.     for i = Xoff[2][1] - 25, Xoff[2][1] + 25, 5 do
  286.       if not sleep(50) then break end
  287.       lvalue(Xoffset[2],{i},Xtyp[2])
  288.     end
  289.     gg.toast("<")
  290.     for i = Xoff[2][1] + 25, Xoff[2][1] - 25, -5 do
  291.       if not sleep(50) then break end
  292.       lvalue(Xoffset[2],{i},Xtyp[2])
  293.     end
  294.   until gg.isVisible()
  295.   lvalue(Xoffset[2],Xoff[2],Xtyp[2])
  296. end
  297.  
  298. function f6()
  299.   gg.setVisible(true)
  300.   repeat
  301.     repeat until gg.isVisible()
  302.     gg.setVisible(false)
  303.     local menu = gg.prompt({"1~9倍[1;9]","0~90[0;9]","100~900倍[0;9]","重置","返回"},L6,{"number","number","number","checkbox","checkbox"})
  304.       if menu then
  305.         if menu[5] then break end
  306.         if menu[4] or R6 == nil then R6 = {} end
  307.         if menu[1] or tonumber(menu[2]) > 0 or tonumber(menu[3]) > 0 then
  308.           if #R6 < 1 then
  309.             gg.clearResults()
  310.             gg.setRanges(gg.REGION_ANONYMOUS)
  311.             gg.searchNumber(1,64)
  312.             R6 = gg.getResults(gg.getResultsCount())
  313.             for i, v in pairs(R6) do v.address, v.flags = v.address - 0xC, 16 end
  314.             gg.loadResults(R6)
  315.             gg.sleep(300)
  316.             gg.searchFuzzy("0", gg.SIGN_FUZZY_NOT_EQUAL, 16, 0, -1, 0)
  317.             R6 = gg.getResults(gg.getResultsCount())
  318.             for i, v in pairs(R6) do v.address, v.flags = v.address + 0xC, 64 end
  319.             Xn = 1
  320.           else
  321.             Xn = L6[1] + (L6[2]*10) + (L6[3]*100)
  322.           end
  323.           gg.loadResults(R6)
  324.           gg.refineNumber(Xn)
  325.           R6 = gg.getResults(gg.getResultsCount())
  326.           gg.clearResults()
  327.           for i, v in pairs(R6) do v.value, v.freeze = menu[1] + (menu[2] * 10) + (menu[3] * 100), true end
  328.           gg.addListItems(R6)
  329.           gg.removeListItems(R6)
  330.           gg.toast("人物加速"..menu[1] + (menu[2] * 10) + (menu[3] * 100).."倍")
  331.           L6 = {menu[1],menu[2],menu[3]}
  332.         end
  333.       end
  334.   until nil
  335.   return L6 and L6[1] + (L6[2]*10) + (L6[3]*100) or 1
  336. end
  337.  
  338. function f7()
  339.   Xt = Xt or os.time()
  340.   repeat
  341.     local t = Xt - (os.time() - 50)
  342.     gg.toast("幽灵模式将在"..t.."秒后关闭")
  343.     if not sleep(1000) then break end
  344.   until t < 1 or gg.isVisible()
  345.   if not gg.isVisible() then
  346.     lvalue(Xoffset[4],Xoff[4],Xtyp[4])
  347.     Xt, Xs7 = nil, OFF
  348.   end
  349. end
  350.  
  351. function f13(x)
  352.   R13 = R13 or {}
  353.   if x or #R13 < 1 then
  354.     local x1, x2 = {}, {}
  355.     gg.setRanges(32)
  356.     gg.clearResults()
  357.     gg.searchNumber("-2097152000",4)
  358.     x1 = gg.getResults(gg.getResultsCount())
  359.     gg.clearResults()
  360.     for i, v in pairs(x1) do v.address, v.flags = v.address + 0xA8, 16 end
  361.     for i, v in pairs(gg.getValues(x1)) do
  362.       if v.value == 1.0000000331813535E32 or v.value == 1 then
  363.         table.insert(x2,{address = v.address - 0xA8,flags = 16})
  364.         table.insert(x2,{address = x2[#x2].address + 0x68,flags = 16})
  365.         table.insert(x2,{address = x2[#x2-1].address + 0x6C,flags = 16})
  366.         table.insert(x2,{address = x2[#x2-2].address + 0x70,flags = 16})
  367.       else
  368.         table.insert(x2,{address = 0x0,flags = 1})
  369.         table.insert(x2,{address = 0x1,flags = 1})
  370.         table.insert(x2,{address = 0x2,flags = 1})
  371.         table.insert(x2,{address = 0x3,flags = 1})
  372.       end
  373.     end
  374.     x2 = gg.getValues(x2)
  375.     for i = 4, #x2, 4 do
  376.       if x2[i].flags == 16 and (x2[i-2].value ~= 0 or x2[i-1].value ~= 0 or x2[i].value ~= 0) then
  377.         table.insert(R13,x1[(i/4)])
  378.       end
  379.     end
  380.   end
  381.   for i, v in pairs(R13) do v.value, v.freeze = (x and 1 or 1e32), true end
  382.   gg.addListItems(R13)
  383.   gg.removeListItems(R13)
  384.   if not x then R13 = nil end
  385. end
  386.  
  387. function f17(x)
  388.   if x then
  389.     valueFromClass("CarDynamics", "0xD8 F","-10~10")
  390.     if gg.getResultsCount() < 1 then return false end
  391.     R17 = gg.getResults(gg.getResultsCount())
  392.   elseif not x and #R17 > 0 then
  393.     gg.loadResults(R17)
  394.     R17 = refineOffset(0xD8)
  395.   end
  396.   gg.clearResults()
  397.   for i, v in pairs(R17) do v.value, v.freeze = x and 8 or -0.30500000715, true end
  398.   gg.addListItems(R17)
  399.   gg.removeListItems(R17)
  400.   if not x then R17 = nil end
  401.   return true
  402. end
  403.  
  404. function f18()
  405.   valueFromClass("UIInput","0x34 D","8~150")
  406.   local Xt = gg.getResults(gg.getResultsCount())
  407.   for i, v in pairs(Xt) do v.value, v.freeze = 2147483647, true end
  408.   gg.addListItems(Xt)
  409.   gg.removeListItems(Xt)
  410.   gg.clearResults()
  411.   gg.copyText(("҈"):rep(999),true)
  412. end
  413.  
  414. function f19()
  415.   gg.setVisible(true)
  416.   repeat
  417.     repeat until gg.isVisible()
  418.     gg.setVisible(false)
  419.     local menu = gg.prompt({"X(左右)(高速公路比赛方向)","Y(上下)","Z(前后)(城市1比赛方向)","X(上下)(高速公路比赛方向)","Y(左右)","Z(上下)(城市1比赛方向)","❄️X(左右)","❄️Y(上下)","❄️Z(前后)","❄️X(上下)","❄️Y(左右)","❄️Z(上下)","重置","返回"},L19,{"number","number","number","number","number","number","checkbox","checkbox","checkbox","checkbox","checkbox","checkbox","checkbox","checkbox","checkbox"})
  420.       if menu then
  421.         menu[1], menu[2], menu[3], menu[4], menu[5], menu[6] = tonumber(menu[1]) or 0, tonumber(menu[2]) or 0, tonumber(menu[3]) or 0, tonumber(menu[4]) or 0, tonumber(menu[5]) or 0, tonumber(menu[6]) or 0
  422.         L19 = {menu[1],menu[2],menu[3],menu[4],menu[5],menu[6],menu[7],menu[8],menu[9],menu[10],menu[11],menu[12]}
  423.  
  424.         if menu[14] then break end
  425.  
  426.         if menu[13] or R19 == nil then
  427.           gg.clearList()
  428.           R19 = {x = {},y = {},z = {},X = {}, Y = {}, Z = {}}
  429.         end
  430.  
  431.         if #R19.x < 1 then
  432.           local x1, x2 = {}, {}
  433.           gg.setRanges(32)
  434.           gg.clearResults()
  435.           gg.searchNumber("-2097152000",4)
  436.           x1 = gg.getResults(gg.getResultsCount())
  437.           gg.clearResults()
  438.           for i, v in pairs(x1) do v.address, v.flags = v.address + 0xA8, 16 end
  439.           for i, v in pairs(gg.getValues(x1)) do
  440.             if v.value == 1.0000000331813535E32 or v.value == 1 then
  441.               table.insert(x2,{address = v.address - 0xA8,flags = 16})
  442.               table.insert(x2,{address = x2[#x2].address + 0x68,flags = 16})
  443.               table.insert(x2,{address = x2[#x2-1].address + 0x6C,flags = 16})
  444.               table.insert(x2,{address = x2[#x2-2].address + 0x70,flags = 16})
  445.              else
  446.               table.insert(x2,{address = 0x0,flags = 1})
  447.               table.insert(x2,{address = 0x1,flags = 1})
  448.               table.insert(x2,{address = 0x2,flags = 1})
  449.               table.insert(x2,{address = 0x3,flags = 1})
  450.             end
  451.           end
  452.           x2 = gg.getValues(x2)
  453.           for i = 4, #x2, 4 do
  454.             if x2[i].flags == 16 and (x2[i-2].value ~= 0 or x2[i-1].value ~= 0 or x2[i].value ~= 0) then
  455.               local address = x2[i-3].address
  456.               table.insert(R19.x,{address = address + 0x68,flags = 16,value = 0,freeze = true})
  457.               table.insert(R19.y,{address = address + 0x6C,flags = 16,value = 0,freeze = true})
  458.               table.insert(R19.z,{address = address + 0x70,flags = 16,value = 0,freeze = true})
  459.               table.insert(R19.X,{address = address + 0x78,flags = 16,value = 0,freeze = true})
  460.               table.insert(R19.Y,{address = address + 0x7C,flags = 16,value = 0,freeze = true})
  461.               table.insert(R19.Z,{address = address + 0x80,flags = 16,value = 0,freeze = true})
  462.             end
  463.           end
  464.         end
  465.         for i, v in pairs(R19.x) do v.value = menu[1] end
  466.         for i, v in pairs(R19.y) do v.value = menu[2] end
  467.         for i, v in pairs(R19.z) do v.value = menu[3] end
  468.         for i, v in pairs(R19.X) do v.value = menu[4] end
  469.         for i, v in pairs(R19.Y) do v.value = menu[5] end
  470.         for i, v in pairs(R19.Z) do v.value = menu[6] end
  471.         gg.setValues(R19.x)
  472.         gg.setValues(R19.y)
  473.         gg.setValues(R19.z)
  474.         gg.setValues(R19.X)
  475.         gg.setValues(R19.Y)
  476.         gg.setValues(R19.Z)
  477.         if menu[7] then gg.addListItems(R19["x"]) else gg.removeListItems(R19["x"]) end
  478.         if menu[8] then gg.addListItems(R19["y"]) else gg.removeListItems(R19["y"]) end
  479.         if menu[9] then gg.addListItems(R19["z"]) else gg.removeListItems(R19["z"]) end
  480.         if menu[10] then gg.addListItems(R19["X"]) else gg.removeListItems(R19["X"]) end
  481.         if menu[11] then gg.addListItems(R19["Y"]) else gg.removeListItems(R19["Y"]) end
  482.         if menu[12] then gg.addListItems(R19["Z"]) else gg.removeListItems(R19["Z"]) end
  483.       end
  484.   until nil
  485. end
  486.  
  487. function f20()
  488.   repeat
  489.     repeat until gg.isVisible()
  490.     gg.setVisible(false)
  491.     menu = gg.prompt({"价格","搜寻","返回"},L20,{"text","checkbox","checkbox"})
  492.       if menu then
  493.         L20 = {menu[1]}
  494.         if menu[3] then break end
  495.         if menu[2] or R20 == nil or #R20 < 1 then
  496.           R20 = {}
  497.           valueFromClass("SellCarTrigger", "0x40 D","0~40")
  498.           R20 = gg.getResults(gg.getResultsCount())
  499.           gg.clearResults()
  500.           for i, v in pairs(R20) do v.address = v.address + 0x1C end
  501.         end
  502.         if menu[1] then
  503.           local Xr = {}
  504.           for i, v in pairs(R20) do
  505.             table.insert(Xr,{address = v.address - 0x4,value = 0,flags = 4,freeze = true})
  506.             table.insert(Xr,{address = v.address,value = menu[1],flags = 4,freeze = true})
  507.           end
  508.           gg.addListItems(Xr)
  509.         end
  510.       end
  511.   until nil
  512.   gg.clearList()
  513. end
  514.  
  515. ON , OFF, ERROR =  '『🔓』' , '『🔒』', '『ERROR』'
  516. for i = 1, 20 do _G["Xs"..i] = OFF end
  517. local x64 = gg.getTargetInfo().x64
  518. local Xversion = gg.getTargetInfo().versionName
  519. libil2cpp = gg.getRangesList("libil2cpp.so")[2]
  520. libunity = gg.getRangesList("libunity.so")[1]
  521. Qfile = "/sdcard/Q/file/t.V _ V.t"
  522.  
  523. Mon, Xon = {'h200080D2','hC0035FD6'},{
  524.   [1] = {2e15},
  525.   [4] = {-40},
  526.   [5] = {-1},
  527.   [7] = {7e2},
  528.   [8] = {7e2},
  529.   [12] = {1},
  530.   [13] = {1},
  531.   [15] = {10039638},
  532.   [16] = {5e2},
  533. }
  534.  
  535. if #gg.getRangesList("libil2cpp.so") < 1 then
  536.   print("[ERROR]")
  537.   print("If the game is split, Anti split it.")
  538.   return
  539. end
  540.  
  541. Qinfo = loadfile(Qfile) and io.open(Qfile,"r"):read("*all"):match("CPM%[.-%]%[x.-%]") or "CPM[NaN][NaN]"
  542. Xinfo = "CPM["..Xversion.."][x"..(x64 and 64 or 32).."]"
  543. if loadfile(Qfile) then loadfile(Qfile)() end
  544.  
  545. if Qinfo ~= Xinfo or Aoffset == nil then
  546.   Qinfo = "请更新脚本\n"..Qinfo.." > "..Xinfo
  547. else
  548.   gg.setVisible(false)
  549.   for i, v in pairs(Aoffset) do lvalue(v,Mon,AMtyp) end
  550. end
  551. --gg.clearList()
  552. gg.setVisible(true)
  553.  
  554. repeat
  555.   repeat until gg.isVisible()
  556.   gg.setVisible(false)
  557.   local menu = gg.choice({
  558.     Xs1.."隐形",--1
  559.     Xs2.."闪现",--2
  560.     Xs3.."扫地",--3
  561.     Xs4.."旋转",--4
  562.     Xs5.."摇摆",--5
  563.     Xs6.."人物加速",--6
  564.     Xs7.."幽灵模式",--7
  565.     Xs8.."传送",--8
  566.     Xs9.."强制上车",--9
  567.     Xs10.."霸占位置",--10
  568.     Xs11.."强制拖车",--11
  569.     Xs12.."穿墙[1]",--12
  570.     Xs13.."穿墙[2]",--13
  571.     Xs14.."踢人",--14
  572.     Xs15.."发钱",--15
  573.     Xs16.."游戏加速",--16
  574.     Xs17.."不倒翁",--17
  575.     Xs18.."聊天室炸弹",--18
  576.     Xs19.."重力控制",--19
  577.     Xs20.."免费买车",--20
  578.     "更新脚本",--21
  579.     "退出"--22
  580.   },nil,Qinfo)
  581.  
  582.     if menu == 22 then break
  583.     elseif menu == 6 then f6()
  584.     elseif menu == 13 then f13((Xs13 == OFF and true or false)) Xs13 = (Xs13 == OFF and ON or OFF) gg.toast(Xs13)
  585.     elseif menu == 17 and f17((Xs17 == OFF and true or false)) then Xs17 = (Xs17 == OFF and ON or OFF) gg.toast(Xs17)
  586.     elseif menu == 18 then f18()
  587.     elseif menu == 19 then f19()
  588.     elseif menu == 20 then f20()
  589.     elseif Qinfo ~= Xinfo or menu == 21 then
  590.       if gg.alert("是否要更新","是","否") == 1 then
  591.         if Qinfo == Xinfo then
  592.           for i, v in pairs(Aoffset) do lvalue(v,Aoff[i],AMtyp) end
  593.         end
  594.         update()
  595.         break
  596.       end
  597.     end
  598.  
  599.     if Qinfo == Xinfo then
  600.       --Xoffset Xon Xoff Xtyp
  601.       if menu == 1 then lvalue(Xoffset[1],(Xs1 == OFF and Xon[1] or Xoff[1]),Xtyp[1]) Xs1, Xs8 = (Xs1 == OFF and ON or OFF), OFF gg.toast(Xs1) end
  602.       if menu == 2 then Xs2, Xs3 = (Xs2 == OFF and ON or OFF), OFF end
  603.       if menu == 3 then Xs3, Xs2 = (Xs3 == OFF and ON or OFF), OFF end
  604.       if menu == 4 then lvalue(Xoffset[3],(Xs4 == OFF and Xon[4] or Xoff[3]),Xtyp[3]) Xs4, Xs5 = (Xs4 == OFF and ON or OFF), OFF gg.toast(Xs4) end
  605.       if menu == 5 then lvalue(Xoffset[3],(Xs5 == OFF and Xon[5] or Xoff[3]),Xtyp[3]) Xs5, Xs4 = (Xs5 == OFF and ON or OFF), OFF gg.toast(Xs5) end
  606.       if menu == 7 then lvalue(Xoffset[4],(Xs7 == OFF and Xon[7] or Xoff[4]),Xtyp[4]) Xs7, Xt = (Xs7 == OFF and ON or OFF), nil gg.toast(Xs7) end
  607.       if menu == 8 then lvalue(Xoffset[1],(Xs8 == OFF and Xon[8] or Xoff[1]),Xtyp[1]) Xs8, Xs1 = (Xs8 == OFF and ON or OFF), OFF gg.toast(Xs8) end
  608.       if menu == 12 then lvalue(Xoffset[5],(Xs12 == OFF and Xon[12] or Xoff[5]),Xtyp[5]) Xs12 = (Xs12 == OFF and ON or OFF) gg.toast(Xs12) end
  609.       if menu == 15 then lvalue(Xoffset[6],(Xs15 == OFF and Xon[15] or Xoff[6]),Xtyp[6]) Xs15 = (Xs15 == OFF and ON or OFF) gg.toast(Xs15) end
  610.       if menu == 16 then lvalue(Xoffset[7],(Xs16 == OFF and Xon[16] or Xoff[7]),Xtyp[7]) Xs16 = (Xs16 == OFF and ON or OFF) gg.toast(Xs16) end
  611.       --Moffset Mon Moff Mtyp
  612.       if menu == 9 then
  613.         lvalue(Moffset[1],(Xs9 == OFF and Mon or Moff[1]),AMtyp)
  614.         lvalue(Moffset[2],(Xs9 == OFF and Mon or Moff[2]),AMtyp)
  615.         Xs9 = (Xs9 == OFF and ON or OFF)
  616.         gg.toast(Xs9)
  617.       end
  618.       if menu == 10 then lvalue(Moffset[3],(Xs10 == OFF and Mon[10] or Moff[3]),AMtyp) Xs10 = (Xs10 == OFF and ON or OFF) gg.toast(Xs10) end
  619.       if menu == 11 then lvalue(Moffset[4],(Xs11 == OFF and Mon[11] or Moff[4]),AMtyp) Xs11 = (Xs11 == OFF and ON or OFF) gg.toast(Xs11) end
  620.       if menu == 14 then lvalue(Moffset[5],(Xs14 == OFF and Mon[14] or Moff[5]),AMtyp) Xs14 = (Xs14 == OFF and ON or OFF) gg.toast(Xs14) end
  621.  
  622.       if Xs7 == ON then f7()
  623.       elseif Xs2 == ON then f2()
  624.       elseif Xs3 == ON then f3()
  625.       end
  626.     end
  627. until nil
  628.  
  629. if Qinfo == Xinfo then
  630.   for i, v in pairs(Aoffset) do lvalue(v,Aoff[i],AMtyp) end
  631. end
  632.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement