Advertisement
pinenxu

[CPM][All-In-One][Fun]

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