Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function searchMethodOffset(Method,Xs)
- local x64 = gg.getTargetInfo().x64
- local libil2cpp, metadata = gg.getRangesList("libil2cpp.so")[(x64 and 2 or 1)], gg.getRangesList("global-metadata.dat")[1]
- local off1, typ = x64 and -16 or -8, x64 and 32 or 4
- local Moffset = {}
- gg.clearResults()
- gg.setRanges(gg.REGION_OTHER|gg.REGION_C_ALLOC|gg.REGION_ANONYMOUS)
- gg.searchNumber(":"..Method,1,nil,gg.SIGN_EQUAL,metadata["start"],metadata["end"])
- gg.searchPointer(0,typ)
- local xpoint=gg.getResults(gg.getResultsCount())
- gg.clearResults()
- for i, v in pairs(xpoint) do v.address, v.flags = v.address + off1, typ end
- for i, v in pairs(gg.getValues(xpoint)) do
- xadd = tonumber((x64 and v.value or "0x"..string.sub(tostring(string.format("%X",tonumber(v.value)) ), -8,-1)))
- if xadd > libil2cpp["start"] and (not Xs or xadd < libil2cpp["end"]) then table.insert(Moffset,string.format("0x%X",xadd-libil2cpp["start"])) end
- end
- return Moffset
- end
- function valueFromClass(Class, offset, refineNumber)
- local x64 = gg.getTargetInfo().x64
- local metadata = gg.getRangesList("global-metadata.dat")[1]
- local typlist = {D = "DWORD", F = "FLOAT", E = "DOUBLE", W = "WORD", B = "BYTE", Q = "QWORD", X = "XOR"}
- local c0 = string.char(0)
- local PointerSize, typ = (x64 and 8 or 4), (x64 and 32 or 4)
- local unsignedFixers = {[4] = 0xFFFFFFFF, [8] = -1}
- local xOffset, Xn, min, max, Xnum = {}, 0, 3e38, 0
- local x1, x2, Xr = {}, {}, {}
- gg.setRanges(gg.REGION_ANONYMOUS|gg.REGION_OTHER|gg.REGION_C_ALLOC)
- gg.clearResults()
- if metadata then
- gg.searchNumber(":"..c0..Class..c0,1,nil,gg.SIGN_EQUAL,metadata["start"],metadata["end"])
- elseif not metadata then
- gg.searchNumber(":"..c0..Class..c0,1)
- end
- gg.searchPointer(0,typ)
- for i, v in pairs(gg.getResults(gg.getResultsCount())) do
- table.insert(x1,{address = v.address + (x64 and 0x30 or 0x18),flags = typ})
- table.insert(x1,{address = v.address + (x64 and 0x38 or 0x1C),flags = typ})
- end
- x1 = gg.getValues(x1)
- 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
- gg.clearResults()
- gg.setRanges(gg.REGION_ANONYMOUS)
- for i, v in pairs(x1) do
- if v.value then gg.searchNumber(v.value,typ) end
- for i, v in pairs(gg.getResults(gg.getResultsCount())) do table.insert(Xr,v) end
- gg.clearResults()
- end
- x1 = {}
- for v in offset:gmatch("%S+") do
- if v:find("0[Xx].-") then
- Xn, min, max = Xn + 1, min > tonumber(v) and tonumber(v) or min, max < tonumber(v) and tonumber(v) or max
- Xnum = max == tonumber(v) and Xn or Xnum
- end
- table.insert(xOffset,(v:find("0[Xx].-") and v or typlist[v:sub(1,1)]))
- end
- for i, v in pairs(Xr) do
- for i, v2 in pairs(xOffset) do
- if not v2:find("0[Xx].-") then
- for v3 = i - 1, 1, -1 do
- if not xOffset[v3]:find("0[Xx].-") then break end
- table.insert(x1,{address = v.address + xOffset[v3], offset = xOffset[v3], flags = _G["gg"]["TYPE_"..v2]})
- end
- end
- end
- end
- for i = (Xn - Xnum) + 1, #x1, Xn do
- local Xclass, Xadds, fixedPointer = {}, {}, x1[i].address - (x1[i].address%PointerSize)
- for off = 0, max, PointerSize do table.insert(Xadds,{address = fixedPointer - off,flags = typ}) end
- for _, v in pairs(gg.getValues(Xadds)) do table.insert(Xclass,{address = v.value + (PointerSize*2),flags = typ}) end
- for _, v in pairs(gg.getValues(Xclass)) do
- v.value = v.value < 0 and v.value & unsignedFixers[PointerSize] or v.value
- if metadata and (v.value > metadata["start"] and v.value < metadata["end"]) then
- if x1[i].address - Xadds[_].address == x1[i].offset then
- for v1 = 0, Xn - 1 do table.insert(x2,x1[i + (Xn - Xnum) + v1]) end
- end
- break
- elseif not metadata then
- for v1 = 0, Xn - 1 do table.insert(x2,x1[i + (Xn - Xnum) + v1]) end
- end
- end
- end
- gg.loadResults(x2)
- if refineNumber then
- if refineNumber:find("%:") and not refineNumber:find(".-:[0-9]") then
- refineNumber = refineNumber:match("(.-)%:")..refineNumber:match("%:.")..((max - min) + 1)
- end
- gg.refineNumber(refineNumber)
- end
- return gg.getResultsCount() > 0
- end
- function refineOffset(offset)
- local metadata = gg.getRangesList("global-metadata.dat")[1]
- local x64 = gg.getTargetInfo().x64
- local typ, PointerSize = x64 and 32 or 4, x64 and 8 or 4
- local x1, x2 = gg.getResults(gg.getResultsCount()), {}
- for i, v in pairs(x1) do
- local class, adds = {}, {}
- local fixedPointer = v.address - (v.address%PointerSize)
- for off = 0, offset, PointerSize do table.insert(adds,{address = fixedPointer - off,flags = typ}) end
- for _, v1 in pairs(gg.getValues(adds)) do table.insert(class,{address = v1.value + (PointerSize*2),flags = typ}) end
- for _, v1 in pairs(gg.getValues(class)) do
- if (v1.value > metadata["start"] and v1.value < metadata["end"]) then
- if v.address - adds[_].address == offset then table.insert(x2,v) end
- break
- end
- end
- end
- return x2
- end
- function SetValues(offset,value,typ)
- local Xr = {}
- gg.setRanges(gg.REGION_CODE_APP)print(offset)
- for i1 = 1 , #offset - 1, #value do
- for i2 = #value - 1, 0, -1 do
- table.insert(Xr,{
- address = _G[offset[#offset]]["start"] + offset[i1 + i2],
- value = value[i2 + 1],
- flags = typ,
- freeze = true
- })
- end
- end
- gg.addListItems(Xr)
- gg.removeListItems(Xr)
- end
- function update()
- local x64 = gg.getTargetInfo().x64
- libil2cpp, libunity = gg.getRangesList("libil2cpp.so")[(x64 and 2 or 1)], gg.getRangesList("libunity.so")[1]
- local Aoffset, Moffset, Xoffset = {}, {}, {}
- local Aoff, Moff, Xoff = {}, {}, {}
- local AMtyp, Xtyp = 4, {16,16,16,16,16,4}
- local Alist, Mlist, Xlist = {
- {"get_IsBanned",true},
- {"add_CheatChecked",true},
- {"set_LastOnlineTimeResult",true},
- {"get_IsCheckingForCheat",true},
- {"set_IsCheckingForCheat",true},
- {"SpeedHackDetectorExample",true},
- {"InjectionDetectorExample",true},
- {"ObscuredCheatingDetectorExample",true},
- {"TimeCheatingDetectorExample",true},
- {"ForceTimeCheatingDetectorCheck",true},
- {"ForceCheck",true},
- {"IsReadyForForceCheck",true},
- {"CheckForCheat",true},
- {"remove_CheckPassed",true},
- {"SetErrorCallback",true},
- {"set_IsCheatDetected",true},
- {"IsCheatActivated",true},
- {"IsRoomBanned",true},
- {"toMainMenu",true},
- {"CheckIfIDExistsInRoom",true},
- {"ShouldBeRemovedFromRoom",true},
- {"OnRemoveFromRoom",true},
- {"OnReport",true},
- {"KickedFromCar",true},
- {"resetAfter",true},
- {"StopFullingFuel",true},
- {"UpdateMoney",true},
- },{--Alist^
- {"CanEnterAsDriver"},
- {"CanEnterAsPassenger"},
- {"SendCarExit"},
- {"TowCarMultiplayer"},
- {"UnTowCarMultiplayer"},
- {"PlayerExitFromCar"}
- },{--Mlist^
- {"90F;100F::5",1e2,"libil2cpp"},
- {"6000",6e3,"libil2cpp"},
- {"1E7",1e7,"libunity"},
- {"-1E3F;1E3F::5",1e3,"libil2cpp"},
- {"1E32;5e-5::5",1e32,"libunity"},
- {"1D;2D;3D;4D;5D;6D;7D;8D;9D;16D::37",5,"libil2cpp"}
- }--Xlist^
- for i, v in pairs(Alist) do
- for _, v1 in pairs(searchMethodOffset(v[1],v[2])) do
- local x1 = gg.getValues({{address = libil2cpp["start"] + v1,flags = 4},{address = libil2cpp["start"] + v1 + 0x4,flags = 4}})
- table.insert(Aoffset,string.format("0x%X",v1))
- table.insert(Aoffset,string.format("0x%X",v1 + 0x4))
- table.insert(Aoff,string.format("0x%X",x1[1].value))
- table.insert(Aoff,string.format("0x%X",x1[2].value))
- end
- end
- table.insert(Aoffset,"\"libil2cpp\"")
- for i, v in pairs(Mlist) do
- table.insert(Moffset,{})table.insert(Moff,{})
- for _, v1 in pairs(searchMethodOffset(v[1],v[2])) do
- local x1 = gg.getValues({{address = libil2cpp["start"] + v1,flags = 4},{address = libil2cpp["start"] + v1 + 0x4,flags = 4}})
- table.insert(Moffset[#Moffset],string.format("0x%X",v1))
- table.insert(Moffset[#Moffset],string.format("0x%X",v1 + 0x4))
- table.insert(Moff[#Moff],string.format("0x%X",x1[1].value))
- table.insert(Moff[#Moff],string.format("0x%X",x1[2].value))
- end
- table.insert(Moffset[#Moffset],"\"libil2cpp\"")
- end
- gg.setRanges(gg.REGION_CODE_APP)
- for _, v in pairs(Xlist) do
- gg.clearResults()
- gg.searchNumber(v[1],Xtyp[_],nil,gg.SIGN_EQUAL,_G[v[3]]["start"],_G[v[3]]["end"])
- gg.refineNumber(v[2])
- table.insert(Xoffset,{})table.insert(Xoff,{})
- for _, v2 in pairs(gg.getResults(gg.getResultsCount())) do
- table.insert(Xoffset[#Xoffset],string.format("0x%X",v2.address - _G[v[3]]["start"]))
- end
- table.insert(Xoffset[#Xoffset],"\""..v[3].."\"")
- table.insert(Xoff[#Xoff],v[2])
- gg.clearResults()
- end
- Xout = {}
- table.insert(Xout,"_ = (function()")
- table.insert(Xout," Mtyp, Xtyp = 4, {16,16,16,16,16,4}")
- table.insert(Xout," Aoffset, Moffset, Xoffset = {"..table.concat(Aoffset,",").."},{")
- for i, v in pairs(Moffset) do table.insert(Xout," {"..table.concat(v,",").."},") end
- table.insert(Xout," },{")
- for i, v in pairs(Xoffset) do table.insert(Xout," {"..table.concat(v,",").."},") end
- table.insert(Xout," }")
- table.insert(Xout," Aoff, Moff, Xoff = {"..table.concat(Aoff,",").."},{")
- for i, v in pairs(Moff) do table.insert(Xout," {"..table.concat(v,",").."},") end
- table.insert(Xout," },{")
- for i, v in pairs(Xoff) do table.insert(Xout," {"..table.concat(v,",").."},") end
- table.insert(Xout," }")
- table.insert(Xout," return")
- table.insert(Xout,"end)([[\n\n"..Xinfo.."[Script-v1]\n\n]])")
- gg.saveList(Qfile)--print(Xout)
- io.open(Qfile,"w"):write(string.dump(load(table.concat(Xout,"\n")),true))
- return true
- end
- function Data()
- local x64 = gg.getTargetInfo().x64
- local Xversion = gg.getTargetInfo().versionName
- libil2cpp = gg.getRangesList("libil2cpp.so")[2]
- libunity = gg.getRangesList("libunity.so")[1]
- Qfile = "/sdcard/Q/file/t.V _ V.t"
- Mon = {'h200080D2','hC0035FD6'}
- if #gg.getRangesList("libil2cpp.so") < 1 then
- print("[ERROR]")
- print("If the game is split, Anti split it.")
- repeat os.exit() until nil
- end
- local file = loadfile(Qfile) and io.open(Qfile,"r"):read("*all") or ""
- Code = file:match("CPM2%[.-%]%[x.-%](%[.-%])") or "NaN"
- Qinfo = file:match("CPM2%[.-%]%[x.-%]") or "CPM[NaN][NaN]"
- Xinfo = "CPM2["..Xversion.."][x"..(x64 and 64 or 32).."]"
- if loadfile(Qfile) then loadfile(Qfile)() end
- gg.setVisible(false)
- if Qinfo ~= Xinfo or not Aoffset or Code ~= "[Script-v1]"then
- Qinfo = "请更新脚本\n"..Qinfo.." > "..Xinfo
- else
- SetValues(Aoffset,Mon,Mtyp)
- end
- gg.toast(Qinfo)
- gg.setVisible(true)
- end
- function sleep(t)
- for i = 1, t do
- if gg.isVisible() then return false end
- gg.sleep(1)
- end
- return true
- end
- function f2_1()
- repeat
- if not sleep(50) then break end
- gg.toast("ON")
- SetValues(Xoffset[2],{50},Xtyp[2])
- if not sleep(50) then break end
- gg.toast("OFF")
- SetValues(Xoffset[2],Xoff[2],Xtyp[2])
- until gg.isVisible()
- SetValues(Xoffset[2],Xoff[2],Xtyp[2])
- end
- function f2_2()
- Xa, Xb = {}, {}
- for i = 1, #Xoffset[1] - 1 do table.insert(Xa,{address = libil2cpp["start"] + Xoffset[1][i],value = 100,flags = 16,freeze = true}) end
- for i = 1, #Xoffset[2] - 1 do table.insert(Xb,{address = libil2cpp["start"] + Xoffset[2][i],value = 6000,flags = 16,freeze = true}) end
- repeat
- local Xr = {}
- for i, v in pairs(Xa) do v.value = 99.46 table.insert(Xr,v) end
- for i, v in pairs(Xb) do v.value = 6024.5 table.insert(Xr,v) end
- gg.addListItems(Xr)
- sleep(500)
- local Xr = {}
- for i, v in pairs(Xa) do v.value = 100 table.insert(Xr,v) end
- for i, v in pairs(Xb) do v.value = 6010 table.insert(Xr,v) end
- gg.addListItems(Xr)
- sleep(500)
- local Xr = {}
- for i, v in pairs(Xa) do v.value = 100.54 table.insert(Xr,v) end
- for i, v in pairs(Xb) do v.value = 5975.5 table.insert(Xr,v) end
- gg.addListItems(Xr)
- sleep(500)
- local Xr = {}
- for i, v in pairs(Xa) do v.value = 100 table.insert(Xr,v) end
- for i, v in pairs(Xb) do v.value = 5990 table.insert(Xr,v) end
- gg.addListItems(Xr)
- sleep(500)
- until gg.isVisible()
- for i, v in pairs(Xa) do v.value = 100 end
- for i, v in pairs(Xb) do v.value = 6000 end
- gg.addListItems(Xa)
- gg.addListItems(Xb)
- gg.removeListItems(Xa)
- gg.removeListItems(Xb)
- last[1] = 0
- end
- function f2_3()
- repeat
- gg.toast(">")
- for i = Xoff[2][1] - 25, Xoff[2][1] + 25, 5 do
- if not sleep(50) then break end
- SetValues(Xoffset[2],{i},Xtyp[2])
- end
- gg.toast("<")
- for i = Xoff[2][1] + 25, Xoff[2][1] - 25, -5 do
- if not sleep(50) then break end
- SetValues(Xoffset[2],{i},Xtyp[2])
- end
- until gg.isVisible()
- SetValues(Xoffset[2],Xoff[2],Xtyp[2])
- end
- function f6(value,new)
- R6 = R6 or {}
- if new and #R6 < 1 then
- gg.setRanges(32)
- gg.clearResults()
- gg.searchNumber("-2097152000",4)
- R6 = gg.getResults(gg.getResultsCount())
- gg.clearResults()
- for i, v in pairs(R6) do v.address, v.flags = v.address + 0xA8, 16 end
- gg.loadResults(R6)
- gg.refineNumber(1e32)
- R6 = gg.getResults(gg.getResultsCount())
- gg.clearResults()
- end
- for i, v in pairs(R6) do v.value, v.freeze = value, true end
- gg.addListItems(R6)
- gg.removeListItems(R6)
- R6 = new and R6 or {}
- end
- function f7(value)
- R7 = R7 or {}
- if #R7 < 1 or value:find("[Xx]")then
- gg.clearResults()
- gg.setRanges(gg.REGION_ANONYMOUS)
- gg.searchNumber(1,64)
- R7 = gg.getResults(gg.getResultsCount())
- for i, v in pairs(R7) do v.address, v.flags = v.address - 0xC, 16 end
- gg.loadResults(R7)
- gg.sleep(300)
- gg.searchFuzzy("0", gg.SIGN_FUZZY_NOT_EQUAL, 16, 0, -1, 0)
- R7 = gg.getResults(gg.getResultsCount())
- for i, v in pairs(R7) do v.address, v.flags = v.address + 0xC, 64 end
- Xn = 1
- end
- gg.loadResults(R7)
- gg.refineNumber(Xn)
- R7, Xn = gg.getResults(gg.getResultsCount()), tostring(value):gsub("[A-Za-z]","")
- gg.clearResults()
- for i, v in pairs(R7) do v.value, v.freeze = value, true end
- gg.addListItems(R7)
- gg.removeListItems(R7)
- end
- function f8(value)
- R8 = R8 or {}
- if #R8 < 1 or value:find("[Xx]") then
- valueFromClass("SellCarTrigger", "0x40 D","0~40")
- R8 = gg.getResults(gg.getResultsCount())
- for i, v in pairs(R8) do v.address = v.address + 0x1C end
- gg.clearResults()
- end
- local Xr = {}
- for i, v in pairs(R8) do
- table.insert(Xr,{address = v.address - 0x4,value = 0,flags = 4,freeze = true})
- table.insert(Xr,{address = v.address,value = value:gsub("[A-Za-z]",""),flags = 4,freeze = true})
- end
- gg.addListItems(Xr)
- end
- function f9(value)
- 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))
- for i = #value - 2, 1, -1 do on = on + (x1[#value - i + 1]*tonumber(value:sub(i,i))) end
- SetValues(Xoffset[6],({Xoff[6],{on}})[(#value < 1 and 1 or 2)],Xtyp[6])
- end
- function f10()
- t10 = t10 or os.time()
- repeat
- local t = t10 - (os.time() - 50)
- gg.toast("幽灵模式将在"..t.."秒后关闭")
- if not sleep(1000) then break end
- until t < 1 or gg.isVisible()
- if not gg.isVisible() then
- SetValues(Xoffset[4],Xoff[4],Xtyp[4])
- t10, last[10] = nil, nil
- end
- end
- function f12(value,new)
- R12 = R12 or {}
- if new and #R12 < 1 then
- valueFromClass("CarDynamics", "0xD8 F","-1~1")
- R12 = gg.getResults(gg.getResultsCount())
- gg.clearResults()
- elseif #R12 > 0 then
- gg.loadResults(R12)
- R12 = refineOffset(0xD8)
- gg.clearResults()
- end
- for i, v in pairs(R12) do v.value, v.freeze = value, true end
- gg.addListItems(R12)
- gg.removeListItems(R12)
- R12 = new and R12 or {}
- end
- function f13(value)
- valueFromClass("UIInput","0x34 D","8~150")
- local Xt = gg.getResults(gg.getResultsCount())
- for i, v in pairs(Xt) do v.value, v.freeze = value, true end
- gg.addListItems(Xt)
- gg.removeListItems(Xt)
- gg.clearResults()
- gg.copyText(("҈"):rep(999),true)
- end
- function f14()
- gg.setVisible(true)
- repeat
- repeat until gg.isVisible()
- gg.setVisible(false)
- 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"})
- if menu then
- 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
- 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]}
- if menu[14] then break end
- if menu[13] or R14 == nil then
- gg.clearList()
- R14 = {x = {},y = {},z = {},X = {}, Y = {}, Z = {}}
- end
- if #R14.x < 1 then
- local x1, x2 = {}, {}
- gg.setRanges(32)
- gg.clearResults()
- gg.searchNumber("-2097152000",4)
- x1 = gg.getResults(gg.getResultsCount())
- gg.clearResults()
- for i, v in pairs(x1) do v.address, v.flags = v.address + 0xA8, 16 end
- for i, v in pairs(gg.getValues(x1)) do
- if v.value == 1.0000000331813535E32 or v.value == 10 then
- table.insert(x2,{address = v.address - 0xA8,flags = 16})
- table.insert(x2,{address = x2[#x2].address + 0x68,flags = 16})
- table.insert(x2,{address = x2[#x2-1].address + 0x6C,flags = 16})
- table.insert(x2,{address = x2[#x2-2].address + 0x70,flags = 16})
- else
- table.insert(x2,{address = 0x0,flags = 1})
- table.insert(x2,{address = 0x1,flags = 1})
- table.insert(x2,{address = 0x2,flags = 1})
- table.insert(x2,{address = 0x3,flags = 1})
- end
- end
- x2 = gg.getValues(x2)
- for i = 4, #x2, 4 do
- if x2[i].flags == 16 and (x2[i-2].value ~= 0 or x2[i-1].value ~= 0 or x2[i].value ~= 0) then
- local address = x2[i-3].address
- table.insert(R14.x,{address = address + 0x68,flags = 16,value = 0,freeze = true})
- table.insert(R14.y,{address = address + 0x6C,flags = 16,value = 0,freeze = true})
- table.insert(R14.z,{address = address + 0x70,flags = 16,value = 0,freeze = true})
- table.insert(R14.X,{address = address + 0x78,flags = 16,value = 0,freeze = true})
- table.insert(R14.Y,{address = address + 0x7C,flags = 16,value = 0,freeze = true})
- table.insert(R14.Z,{address = address + 0x80,flags = 16,value = 0,freeze = true})
- end
- end
- end
- for i, v in pairs(R14.x) do v.value = menu[1] end
- for i, v in pairs(R14.y) do v.value = menu[2] end
- for i, v in pairs(R14.z) do v.value = menu[3] end
- for i, v in pairs(R14.X) do v.value = menu[4] end
- for i, v in pairs(R14.Y) do v.value = menu[5] end
- for i, v in pairs(R14.Z) do v.value = menu[6] end
- gg.setValues(R14.x)
- gg.setValues(R14.y)
- gg.setValues(R14.z)
- gg.setValues(R14.X)
- gg.setValues(R14.Y)
- gg.setValues(R14.Z)
- if menu[7] then gg.addListItems(R14["x"]) else gg.removeListItems(R14["x"]) end
- if menu[8] then gg.addListItems(R14["y"]) else gg.removeListItems(R14["y"]) end
- if menu[9] then gg.addListItems(R14["z"]) else gg.removeListItems(R14["z"]) end
- if menu[10] then gg.addListItems(R14["X"]) else gg.removeListItems(R14["X"]) end
- if menu[11] then gg.addListItems(R14["Y"]) else gg.removeListItems(R14["Y"]) end
- if menu[12] then gg.addListItems(R14["Z"]) else gg.removeListItems(R14["Z"]) end
- end
- until nil
- end
- Data()
- last = {}
- repeat
- repeat until gg.isVisible()
- gg.setVisible(false)
- local UserInput
- UserInput = gg.prompt({
- "隐形 | 隐形+传送[0;2]",--1
- "闪现 | 转圈圈 | 扫地[0;3]",--2
- "旋转 | 摇摆[0;2]",--3
- "(强制上车)1主 | 2副 | 3主+霸占 | 4副+霸占 | 5主副 | 6主副+霸占[0;6]",--4
- "关闭拖车功能 | 关闭放车功能[0;2]",--5
- "(穿墙)房外启动有效 | 房内启动有效[0;2]",--6
- "人物加速(1~10000倍) 重搜后面输入x",--7
- "免费买车 重搜后面输入x",--8
- "发钱(只需发500到599之间)",--9
- "幽灵模式",--10
- "踢人下车",--11
- "不倒翁",--12
- "聊天室炸弹",--13
- "重力控制器",--14
- "更新脚本",--15
- "返回"--16
- },last,{
- "number",--1
- "number",--2
- "number",--3
- "number",--4
- "number",--5
- "number",--6
- "text",--7
- "text",--8
- "number",--9
- "checkbox",--10
- "checkbox",--11
- "checkbox",--12
- "checkbox",--13
- "checkbox",--14
- "checkbox",--15
- "checkbox",--16
- })
- if UserInput then
- last = {}
- for i, v in pairs({1,2,3,4,5,6,7,8,9,10,11,12}) do table.insert(last,UserInput[v]) end
- if UserInput[16] then break end
- if UserInput[15] or Qinfo ~= Xinfo then
- if gg.alert("是否要更新","是","否") == 1 then
- if Qinfo == Xinfo then SetValues(Aoffset,Aoff,Mtyp) end
- if update() then Data() end
- end
- end
- if Qinfo == Xinfo then
- t10 = UserInput[10] and t10 or nil
- SetValues(Xoffset[1],({[0]=Xoff[1],{1e15},{7e2}})[tonumber(UserInput[1])],Xtyp[1])--1
- SetValues(Xoffset[3],({[0]=Xoff[3],{-20},{-1}})[tonumber(UserInput[3])],Xtyp[3])--3
- SetValues(Moffset[1],({[0]=Moff[1],Mon,Moff[1],Mon,Moff[1],Mon,Mon})[tonumber(UserInput[4])],Mtyp)--4
- SetValues(Moffset[2],({[0]=Moff[2],Moff[2],Mon,Moff[2],Mon,Moff[2],Mon})[tonumber(UserInput[4])],Mtyp)--4
- SetValues(Moffset[3],({[0]=Moff[3],Moff[3],Moff[3],Mon,Mon,Moff[3],Mon})[tonumber(UserInput[4])],Mtyp)--4
- SetValues(Moffset[4],({[0]=Moff[4],Mon,Moff[4]})[tonumber(UserInput[5])],Mtyp)--5
- SetValues(Moffset[5],({[0]=Moff[5],Moff[5],Mon})[tonumber(UserInput[5])],Mtyp)--5
- SetValues(Xoffset[5],({[0]=Xoff[5],{1},Xoff[5]})[tonumber(UserInput[6])],Xtyp[5])--6
- SetValues(Xoffset[4],({[0]=Xoff[4],{7e2}})[(UserInput[10] and 1 or 0)],Xtyp[4])--10
- SetValues(Moffset[6],({[0]=Moff[6],Mon})[(UserInput[11] and 1 or 0)],Mtyp)--11
- f9(UserInput[9])--9
- end
- f6(({[0]=Xoff[5][1],Xoff[5][1],10})[tonumber(UserInput[6])],tonumber(UserInput[6]) > 1)
- if UserInput[7]:find("[0-9]") then f7(UserInput[7]) end--7
- if UserInput[8]:find("[0-9]") then f8(UserInput[8]) end--8
- f12(({-0.30500000715,10})[(UserInput[12] and 2 or 1)],UserInput[12])--12
- if UserInput[13] then f13(2147483647) end--13
- if UserInput[14] then f14() end--14
- end
- if Qinfo == Xinfo then
- if last[10] then f10()
- elseif (last[2] ~= nil and last[2]:find("[0-9]") and tonumber(last[2]) > 0) then _G["f2_"..last[2]]()
- end
- end
- until nil
- SetValues(Aoffset,Aoff,Mtyp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement