function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end
--配置↑↑↑勿修改，调用方法   xqmnb(qmnb)


function CSM(C,S,M)if M~=nil then if C==nil then gg.toast(M..'开启失败\n原因：无主特种码')elseif C==false then gg.toast(M..'开启失败\n原因：无副特征码')else local x,d={},{}for i=1,#C do for k,w in ipairs(S)do local t={}t['address']=C[i]+w[1]*4 t['flags']=w[2]t['value']=w[3]if(w[4]==true)then t['freeze']=true d[#d+1]=t else x[#x+1]=t end end end gg.setValues(x)gg.addListItems(d)gg.toast(M..'\n开启成功')end elseif S~=nil then gg.clearResults()gg.setRanges(C[1])gg.searchNumber(C[2],C[3],false,gg.SIGN_EQUAL,C[4],C[5],C[6])local SL=gg.getResultCount()local SS=gg.getResults(SL)gg.clearResults()local DZ={}if(SL>0)then for i,v in ipairs(SS)do v.isUseful=true end for k=1,#S do local tmp={}local num=S[k][2]for i,v in ipairs(SS)do tmp[#tmp+1]={}tmp[#tmp].address=v.address+S[k][1]*4 tmp[#tmp].flags=v.flags end tmp=gg.getValues(tmp)for i,v in ipairs(tmp)do if (v.value~=num)then SS[i].isUseful=false end end end for i,v in ipairs(SS)do if(v.isUseful)then DZ[#DZ+1]=v.address end end if DZ[1]==nil then return false else return DZ end else return nil end end end
local function hqsj(dz,sj)local t={}for i,v in ipairs(sj)do t[i]={}t[i].address=dz+sj[i][1]*4 t[i].flags=sj[i][2]end local ss=gg.getValues(t)local s={}for i,v in ipairs(ss)do s[i]=ss[i]['value']end return s end
local function DXWJ(l,m,n)
if m==1 then
local c=io.open(l,'r')
if c==nil then
return c
else
local c=io.open(l,'r')
g=c:read('*a')
c:close()
end
return g
elseif m==2 then
local file=io.open(l,'w')
file:write(n)
file:close()
end
end

function dqzdy(l)
local jjj=DXWJ(l,1)
if jjj==nil then 
ZDYZB={}
else
local sss=DXWJ(l,1)
if load("ZDYZB="..sss)==nil then ZDYZB={}else 
load("ZDYZB="..sss)()
end
end
end

      local wxzdy="/sdcard/Android/csmwxzdy"
      dqzdy(wxzdy)
      function wxgn181()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("134,658", gg.TYPE_DWORD)
      gg.refineNumber("134,658", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("131,586", gg.TYPE_DWORD)
      gg.refineNumber("131,586", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("131,842", gg.TYPE_DWORD)
      gg.refineNumber("131,842", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("132,098", gg.TYPE_DWORD)
      gg.refineNumber("132,098", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("70,658", gg.TYPE_DWORD)
      gg.refineNumber("70,658", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("133,378", gg.TYPE_DWORD)
      gg.refineNumber("133,378", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("134,914", gg.TYPE_DWORD)
      gg.refineNumber("134,914", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.clearResults()
      gg.setRanges(gg.REGION_C_ALLOC)
      gg.setVisible(false)
      gg.searchNumber("133,634", gg.TYPE_DWORD)
      gg.refineNumber("133,634", gg.TYPE_DWORD)
      gg.getResults(50000)
      gg.setVisible(false)
      gg.editAll("0", gg.TYPE_DWORD)
      gg.setVisible(false)
      gg.clearResults()
      gg.toast("ID:界面防封\n"..string.format("耗时: %.2f", os.clock() ))
end


function wxgn4()
jll={}
p=1
jll[p]={}
local sjk={
{"---------------矿物---------------",101},
{"棕树",800,801,802},
{"善树",901,902,903,904,905,906},
{"古椰",810,811,812},
{"铁树",820,821,822},
{"长叶(芯木)",840,841,842},
{"杨树",952},
{"幽兰",1301},
{"莽草",1302},
{"龙骨",1303},
{"枇华",1306,5655},
{"灵芝",1308},
{"铁矿",1201,1221,1231},
{"铜矿",1202,1222,1232},
{"银矿",1203,1223,1233},
{"仓石",1211},
{"瑶石",1212},
{"玄石",1213},
{"珚玉",1214},
{"璇玉",1215},
{"瑾瑜玉",1216},
{"黏土",3155},
{"宝箱",42},
{"银宝箱",43},
{"金宝箱",44},
{"贝壳",4180,4053,4004},
{"血蛋",4749},
{"狩猎图腾",46},
{"蛋",4741,4742,4743,4744,4745}
}
local m={} for x=1,#sjk do m[x]=sjk[x][1] end
local zylx=gg.multiChoice(m,nil,"脚本会无限循环(死亡复活不影响脚本运行)，再次点击悬浮窗即可结束循环，可多选。")
if zylx~=nil then
local sj={} for x=1,#m do
if zylx[x]==true then
for h=1,#sjk[x] do
sj[#sj+1]=sjk[x][h]
end
end
end
while(true)do
if gg.isVisible(true) then break else
local zbd={}
gg.toast("开始搜索过滤附近物资")
local tz=CSM({WXNC,999,4},{
{-83,335544320},{-81,5},
})
 zbk={}
for x=1,#tz do
 zb=hqsj(tz[x],{{-62,16},{-61,16},{-60,16},{-82,4}})
for h=1,#sj do
if zb[4]==sj[h]then 
local j=#zbk+1
zbk[j]={}
zbk[j][1],zbk[j][2],zbk[j][3]=zb[1],zb[2],zb[3]
--CSM(zb,{{[[-82]],[[16]],[[0]]},{[[-81]],[[16]],[[0]]},},"修改重复")

end
end
end
--[[
for i=1,#jll do     --清理 数组
jll[#jll]=nil
end
]]--
jll={}
zp=hqsj(ZZB[1],{{19,64},{21,64},{23,64}})  --初始自身坐标
 v=1
 ff=1
   gg.toast("扒")
   gg.sleep(50)
X=zp[1]   Z=zp[2]  Y=zp[3]   --初始目的地坐标
 p=0    --计算次数
gg.sleep(50)
 --创建数组
for x=1,#zbk do   --循环获取自身与目的地距离
p=p+1
WX=zbk[p][1]   WY=zbk[p][3]
gg.toast("重建数组"..x.."/"..#zbk)
--gg.sleep(20)
panduan=0
jll[p]=math.sqrt((X -WX)^2+(Y-WY)^2)
gg.sleep(10)
--gg.toast(jll[p])      --显示距离
end
p=0
table.sort(jll)    --从小到大排序
numm=jll[1]
gg.toast("匹配"..numm)
p=0
gg.sleep(500)
gg.toast("准备筛选")
for yui=1,#zbk do   --循环对比相同点
p=p+1
WX=zbk[p][1]  WY=zbk[p][3]
gg.sleep(20)
gg.toast("筛选数组"..yui.."/"..#zbk.."|"..math.sqrt((X -WX)^2+(Y-WY)^2))
if  numm==math.sqrt((X -WX)^2+(Y-WY)^2) then
gg.toast("规划路线"..v.."/"..#zbk)
ff=p
break
end
end
v=v+1


for x=1,#zbk do
zp=hqsj(ZZB[1],{{19,64},{21,64},{23,64}})
local X=zp[1]   local Z=zp[2]  local Y=zp[3]
  WX=zbk[ff][1]     WZ=zbk[ff][2] 
  WY=zbk[ff][3]     panduan=0
  zque=0
local xiahu=0
  local time=150
pdjl=math.sqrt((math.abs(zp[1] -zbk[ff][1] ))^2+(math.abs(zp[3] -zbk[ff][3] ))^2)
gg.toast(pdjl)
--if pdjl<=200 then 
zque=1
xiahu=pdjl/1
local ce=0
--end
--gg.toast(zque)
gg.toast(pdjl)
if gg.isVisible(true) then break else
 
 
 if zque==1 then
 CSM(ZZB,{{19,64,X},{21,64,0},{23,64,Y},},"班长の遁地已开启")
gg.sleep(time)
if X>=WX and Y>= WY and panduan==0 then   --两个大
local juli=math.sqrt((math.abs(X -WX))^2+(math.abs(Y-WY))^2)
local WXW=math.abs(X-WX)/xiahu
local WYW=math.abs(Y-WY)/xiahu
CSM(ZZB,{{19,64,X},{21,64,0},{23,64,Y},},"班长の遁地已开启")
gg.sleep(time)
   for h=0,xiahu do
   CSM(ZZB,{{19,64,X-WXW},{23,64,Y-WYW},},"距离物资有"..juli.."米")
   gg.sleep(time)
   X=X-WXW
   Y=Y-WYW
   juli=juli-1
   end
      CSM(ZZB,{{19,64,WX},{23,64,WY},},"距离物资有"..juli.."米")
else
panduan=panduan+1
end


if X<=WX and Y<= WY and panduan==1 then    --两个小
local juli=math.sqrt((math.abs(X -WX))^2+(math.abs(Y-WY))^2)
local WXW=math.abs(X-WX)/xiahu
local WYW=math.abs(Y-WY)/xiahu
CSM(ZZB,{{19,64,X},{21,64,0},{23,64,Y},},"班长の遁地已开启")
gg.sleep(time)
   for h=0,xiahu do
   CSM(ZZB,{{19,64,X+WXW},{23,64,Y+WYW},},"距离物资有"..juli.."米")
   gg.sleep(time)
   X=X+WXW
   Y=Y+WYW
   juli=juli-1
   end
      CSM(ZZB,{{19,64,WX},{23,64,WY},},"距离物资有"..juli.."米")
else
panduan=panduan+1
end
if X>=WX and Y<= WY and panduan==2 then    --X大Y小
local juli=math.sqrt((math.abs(X -WX))^2+(math.abs(Y-WY))^2)
local WXW=math.abs(X-WX)/xiahu
local WYW=math.abs(Y-WY)/xiahu
CSM(ZZB,{{19,64,X},{21,64,0},{23,64,Y},},"班长の遁地已开启")
gg.sleep(time)
   for h=0,xiahu do
   CSM(ZZB,{{19,64,X-WXW},{23,64,Y+WYW},},"距离物资有"..juli.."米")
   gg.sleep(time)
   X=X-WXW
   Y=Y+WYW
   juli=juli-1
   end
      CSM(ZZB,{{19,64,WX},{23,64,WY},},"距离物资有"..juli.."米")
else
panduan=panduan+1
end
if X<=WX and Y>= WY and panduan==3 then    --X小Y大
local juli=math.sqrt((math.abs(X -WX))^2+(math.abs(Y-WY))^2)
local WXW=math.abs(X-WX)/xiahu
local WYW=math.abs(Y-WY)/xiahu
CSM(ZZB,{{19,64,X},{21,64,0},{23,64,Y},},"班长の遁地已开启")
gg.sleep(time)
   for h=0,xiahu do
   CSM(ZZB,{{19,64,X+WXW},{23,64,Y-WYW},},"距离物资有"..juli.."米")
   gg.sleep(time)
   X=X+WXW
   Y=Y-WYW
   juli=juli-1
   end
      CSM(ZZB,{{19,64,WX},{23,64,WY},},"距离物资有"..juli.."米")
      else
panduan=panduan+1
end

CSM(ZZB,{{19,64,X},{21,64,zbk[ff][2]+7},{23,64,Y},},"共有"..#zbk.."个物资\n第"..x.."个物资")
zbk[ff][3]=100000
jll={}

zp=hqsj(ZZB[1],{{19,64},{21,64},{23,64}})  --初始自身坐标
X=zp[1]   Z=zp[2]  Y=zp[3]   --初始目的地坐标
 ff=1
 p=0    --计算次数
 --创建数组
for x=1,#zbk do   --循环获取自身与目的地距离
p=p+1
WX=zbk[p][1]   WY=zbk[p][3]
gg.toast("重建数组"..x.."/"..#zbk)
--gg.sleep(20)
jll[p]=math.sqrt((X -WX)^2+(Y-WY)^2)
--gg.sleep(10)
--gg.toast(jll[p])      --显示距离
end
p=0
table.sort(jll)    --从小到大排序
numm=jll[1]
gg.toast("匹配"..numm)
p=0
gg.toast("准备筛选")
for yui=1,#zbk do   --循环对比相同点
p=p+1
WX=zbk[p][1]  WY=zbk[p][3]
gg.toast("筛选数组"..yui.."/"..#zbk.."|"..math.sqrt((X -WX)^2+(Y-WY)^2))
if  numm==math.sqrt((X -WX)^2+(Y-WY)^2) then
gg.toast("规划路线"..v.."/"..#zbk)
ff=p
break
end
end
v=v+1
gg.sleep(8000)
end

local jc=0
while(true)do
jc=jc+1
if gg.isVisible(true)then break else
--if hqsj(4,{{-31,4}})[1]=="0" or jc==wxszjl[1][6] then 
gg.toast("无物资或超时。")
break 
--end
gg.sleep(10000)
end
end

end
end
end
end
end
end

function wxgn10()
            gg.clearResults()
            gg.setRanges(gg.REGION_C_ALLOC)
            gg.searchNumber("10.0F;0.89999997616F;0.69999998808F;0.39999997616F", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
            gg.searchNumber("0.7", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
            gg.getResults(20)
            gg.editAll("-0.1",gg.TYPE_FLOAT)
            gg.toast("人物穿墙开启成功")
            end

function wxgn11()
            gg.clearResults()
            gg.setRanges(gg.REGION_C_ALLOC)
            gg.searchNumber("10.0F;0.89999997616F;0.39999997616F;-0.1F", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
            gg.searchNumber("-0.1", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
            gg.getResults(20)
            gg.editAll("0.69999998808",gg.TYPE_FLOAT)
            gg.toast("人物穿墙恢复成功")
            end

function wxgn12()
    gg.setRanges(gg.REGION_CODE_APP)
    gg.searchNumber("1.5707962513;0.30000001192;0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.searchNumber("0.30000001192", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    a1 = gg.getResultsCount()
    if a1 == 0 then
      gg.toast("开启成功")
      wxsh()
    end
    gg.getResults(9999)
    gg.editAll("-99", gg.TYPE_FLOAT)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.toast("ID:笛子全屏\n" .. string.format("耗时: %.2f", os.clock()))
  end

  function wxgn13()
    gg.setRanges(gg.REGION_CODE_APP)
    gg.searchNumber("1.5707962513;999;0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.searchNumber("-99", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    a1 = gg.getResultsCount()
    if a1 == 0 then
      gg.toast("开启失败")
      wxsh()
    end
    gg.getResults(99999)
    gg.editAll("0.30000001192", gg.TYPE_FLOAT)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.toast("ID:关闭全屏\n" .. string.format("耗时: %.2f", os.clock()))
  end
  
  function wxgn9()
    gg.setRanges(gg.REGION_CODE_APP)
    gg.searchNumber("1,000.0F;0.00100000005F;1,000,000,000.0F", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.searchNumber("1000", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    a1 = gg.getResultsCount()
    if a1 == 0 then
      gg.toast("开启失败")
      wxsh()
    end
    gg.getResults(100)
    gg.editAll("500", gg.TYPE_FLOAT)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.toast("ID:全局加速开启\n" .. string.format("耗时: %.2f", os.clock()))
  end
  
  function wxgn101()
    CSM(CSM({
      "16384",
      "1132396544",
      "4"
    }, {
      {"-1", "0"},
      {"-2", "0"},
      {"-3", "1120403456"}
    }), {
      {
        "-4",
        "16",
        "3"
      },
      {
        "1",
        "16",
        "3"
      }
    }, "近战范围")
  end
  
  function wxgn102()
    CSM(CSM({
      "16384",
      "1132396544",
      "4"
    }, {
      {"-1", "0"},
      {"-2", "0"},
      {"-3", "1120403456"}
    }), {
      {
        "-4",
        "16",
        "0.1"
      },
      {
        "1",
        "16",
        "0.1"
      }
    }, "近战范围")
  end  
  
  function wxgn212()
    gg.clearResults()
    gg.setRanges(16)
    gg.searchNumber("16384;16384;16384;16384;16384;16384;16384;16384;16384;16384;16384", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
    gg.refineNumber("16384", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
    revert = gg.getResults(10000, nil, nil, nil, nil, nil, nil, nil, nil)
    for _FORV_4_, _FORV_5_ in ipairs((gg.getResults(10000, nil, nil, nil, nil, nil, nil, nil, nil))) do
      if _FORV_5_.flags == gg.TYPE_DWORD then
        _FORV_5_.value = "70012"
        _FORV_5_.freeze = true
      end
    end
    gg.addListItems((gg.getResults(10000, nil, nil, nil, nil, nil, nil, nil, nil)))
    gg.alert("防封开启成功，请勿切换应用，否则游戏会卡死。")
  end

  function wxgn20()
    gg.setValues({
      [1] = {
        address = gg.getRangesList("libSandbox.so")[1].start + 7118732,
        value = 872415336,
        flags = 4
      }
    })
  end
  
  function wxgn21()
    gg.setRanges(4)
    gg.searchNumber("1.0F;0.64278763533F;0.08765000105F;0.5F::17", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    gg.searchNumber("1", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    gg.getResults(100)
    gg.editAll("5", gg.TYPE_FLOAT)
    gg.toast("御剑攻速开启成功")
  end
  
  function wxgn16()
    CSM(CSM({
      16384,
      925353388,
      4
    }, {
      {1, 1114636288}
    }), {
      {
        1,
        4,
        1008981770
      }
    }, "弓弩射速")
  end
  
  
function wxgn140()
            gg.clearResults()
            gg.setRanges(gg.REGION_C_ALLOC)
            gg.searchNumber("10.0F;0.89999997616F;0.69999998808F;0.39999997616F", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
            gg.searchNumber("0.7", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
            gg.getResults(20)
            gg.editAll("-0.1",gg.TYPE_FLOAT)
            gg.toast("人物穿墙开启成功")
            end
            
            
function wxgn141()
            gg.clearResults()
            gg.setRanges(gg.REGION_C_ALLOC)
            gg.searchNumber("10.0F;0.89999997616F;0.39999997616F;-0.1F", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
            gg.searchNumber("-0.1", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
            gg.getResults(20)
            gg.editAll("0.69999998808",gg.TYPE_FLOAT)
            gg.toast("人物穿墙恢复成功")
            end
            
  function wxgn150()
    gg.setRanges(gg.REGION_CODE_APP)
    gg.searchNumber("1.5707962513;0.30000001192;0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.searchNumber("0.30000001192", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    a1 = gg.getResultsCount()
    if a1 == 0 then
      gg.toast("开启失败")
      wxsh()
    end
    gg.getResults(9999)
    gg.editAll("999", gg.TYPE_FLOAT)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.toast("ID:琵琶全屏\n" .. string.format("耗时: %.2f", os.clock()))
  end
  
  function wxgn151()
    gg.setRanges(gg.REGION_CODE_APP)
    gg.searchNumber("1.5707962513;999;0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.searchNumber("999", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    a1 = gg.getResultsCount()
    if a1 == 0 then
      gg.toast("开启失败")
      wxsh()
    end
    gg.getResults(99999)
    gg.editAll("0.30000001192", gg.TYPE_FLOAT)
    if gg.isVisible(true) then
      gg.alert("请勿在执行过程中打开", "是的")
      os.exit()
    end
    gg.toast("ID:关闭全屏\n" .. string.format("耗时: %.2f", os.clock()))
  end

function wxsh()
local m={
"主要防封",
"次要防封",
"辅助防封",
"穿墙打开",
"穿墙关闭",
"初始坐标",
"连点采集 ",
"弩类加速",
"笛子全屏",
"关闭全屏",
"全局加速",
"琵琶范围",
"范围关闭",
"近战范围",
"范围关闭",
"变态功能",
"退出软件"

}local g=gg.multiChoice(m,nil,"567GG--群958493787",DQSJ)
if g~=nil then 
if g[1]==true then wxgn1()end
if g[2]==true then wxgn181()end
if g[3]==true then wxgn212()end
if g[4]==true then wxgn140()end
if g[5]==true then wxgn141()end
if g[6]==true then wxgn2()end
if g[7]==true then if ZZB==nil then gg.alert("请初始化坐标")else wxgn4()end end
if g[8]==true then wxgn16()end
if g[9]==true then wxgn12()end
if g[10]==true then wxgn13()end
if g[11]==true then wxgn9()end
if g[12]==true then wxgn150()end
if g[13]==true then wxgn151()end
if g[14]==true then wxgn101()end
if g[15]==true then wxgn102()end
if g[16]==true then wxgn111()end
if g[17]==true then wxgn222()end



end 
kg=-1 
end
function WXSH()
while(true)do if gg.isVisible(true)then 
kg=1 gg.setVisible(false)end if
kg==1 then 
wxsh()
end 
end
end




local wxzdy="/sdcard/Android/csmwxzdy"
dqzdy(wxzdy)



function wxgn1()
function FF()
local DZ=CSM({16,16384,4},{{12,16384},{22,16384},{38,16384},{50,16384},{62,16384},{74,16384},{84,16384},{98,16384},{110,16384},{122,16384},})
CSM(DZ,{{0,4,65538,true},{12,4,70012,true},{22,4,65538,true},{38,4,70012,true},{50,4,70012,true},{62,4,70012,true},{74,4,70012,true},{84,4,70012,true},{98,4,70012,true},{110,4,70012,true},{122,4,70012,true},},"防封")
return DZ
end
function SQ(nc)
local DZ=CSM({nc,1134034944,4},{{1,1065353216},{-1,1140457472},{-2,1121714176},})
return DZ
end
function YS(nc)
local DZ=CSM({nc,1085276160,4},{{-2,1082130432},{-4,1073741824},{-6,1069547520},{-7,1112014848},{2,1065353216},{4,1073741824},{6,1092616192},{7,1112014848},{8,1120403456},{9,1082130432},{10,1082130432},{11,1086324736},{12,1065353216},{13,1073741824},{14,1077936128},{15,1067869798},{16,1082130432},})
return DZ
end
if type(FF())=="table"then
WXNC=4
c1=YS(WXNC)
c2=SQ(WXNC)
if type(c1)~="table"or type(c2)~="table"then
WXNC=32
gg.toast("切换云手机模式")
c1=YS(WXNC)
c2=SQ(WXNC)
end
if type(c1)~="table"or type(c2)~="table"then
gg.alert("获取状态信息失败，部分功能将无法正常运行。")
end
gg.alert("防封开启成功，请勿切换应用，否则游戏会卡死。")
else
gg.alert("防封开启失败了！请退出游戏，否则进入地图会封的！")
end
end



function wxgn2()
local qpc=CSM({WXNC,1109393408,4},{{-1,1097859072},{-3,1101004800},{1,1084227584},})
if type(qpc)=="table"then
local zb=hqsj(qpc[1],{{-32,16},{-31,16},{-30,16}})
local xzb={}
xzb[1],xzb[2],xzb[3],xzb[4],xzb[5],xzb[6]=zb[1]-10,zb[1]+10,zb[2]-10,zb[2]+10,zb[3]-10,zb[3]+10
local ZB=CSM({WXNC,1035174360,4},{{1,1056964608},{7,1069547520},{39,1092616192},{40,1063675494},{47,1060320051},{48,1053609164},{-84,1056964608},{-85,1035174360},{-86,1059360187},{-90,1060439283},})
for x=1,#ZB do
local zzb=hqsj(ZB[x],{{19,64},{21,64},{23,64}})
if zzb[1]>xzb[1] and xzb[2]>zzb[1]then 
if zzb[2]>xzb[3] and xzb[4]>zzb[2]then
if zzb[3]>xzb[5] and xzb[6]>zzb[3]then
gg.toast("坐标初始化成功")
ZZB={ZB[x]}
break
end
end
end

end
else
gg.toast("坐标初始化失败")
end
end

function wxgn3()
local DZ=CSM({WXNC,1045220556,4},{{-1,1086324736},{-2,1084227584},{-3,1084227584},{-4,11},})
CSM(DZ,{{-3,16,20},},"人物高跳")
end


function wxgn41()
local sz=gg.prompt({"添加坐标","删除坐标","添加坐标数据","分享坐标数据","遁地深度(值越大遁越深)","打工人超时时间(单位：秒)","打工人检测物资时间(传送完成后多久开始检测有没有物资，云手机加载物资比较慢，可以设置久一点。单位：秒)"},wxszjl[1],wxszjl[2])
if sz~=nil then
if sz[1]==true then
local zb=hqsj(ZZB[1],{{19,64},{21,64},{23,64}})
local zdymc=gg.prompt({"设置坐标名字："},{""},{"text"})
if zdymc~=nil then
ZDYZB[#ZDYZB+1]={string.format('%.2f',zb[1]),string.format('%.2f',zb[2]),string.format('%.2f',zb[3]),zdymc[1]}
DXWJ(wxzdy,2,tostring(ZDYZB))
end
end
if sz[2]==true then
if #ZDYZB==0 then gg.alert("无坐标")else
local zdymc={}
for x=1,#ZDYZB do 
zdymc[x]=ZDYZB[x][4]
end
local zbxz=gg.multiChoice(zdymc,nil,"选择要删除的坐标，可多选。")
if zbxz~=nil then
local scdzb={}
local XZB={}
for x=1,#ZDYZB do
if zbxz[x]~=true then XZB[#XZB+1]=ZDYZB[x] end
end
ZDYZB=XZB
DXWJ(wxzdy,2,tostring(ZDYZB))
end
end
end
if sz[3]==true then
local tj=gg.prompt({"输入坐标数据"},{""},{"text"})
if tj~=nil then
local sj=tj[1]:gsub("|",",")
if load("xzb="..sj)==nil then gg.alert("数据有误")else
load("xzb="..sj)()
for x=1,#xzb do
ZDYZB[#ZDYZB+1]={xzb[x][1],xzb[x][2],xzb[x][3],xzb[x][4]}
end
DXWJ(wxzdy,2,tostring(ZDYZB))
end
end
end
if sz[4]==true then
if #ZDYZB==0 then gg.alert("无坐标")else
local zdymc={}
for x=1,#ZDYZB do 
zdymc[x]=ZDYZB[x][4]
end
local zbxz=gg.multiChoice(zdymc,nil,"选择要复制的坐标，可多选。")
if zbxz~=nil then
local fx=""
for x=1,#zdymc do
if zbxz[x]==true then
fx=fx.."{"..ZDYZB[x][1].."|"..ZDYZB[x][2].."|"..ZDYZB[x][3].."|'"..ZDYZB[x][4].."'}|"
end
end
fx="{"..fx.."}"
gg.copyText(fx)
gg.alert("已复制您的坐标数据，赶快发给好友吧！")
end
end
end


for x=5,7 do
wxszjl[1][x]=sz[x]
end
end
end





function wxgn5()
CSM(ZZB,{
{-88,16,wxszjl[1][5]},
},"遁地开")
end
function wxgn6()
CSM(ZZB,{
{-88,16,1},
},"遁地关")
end
wxszjl={
{false,false,false,false,5,10,3},
{"checkbox","checkbox","checkbox","checkbox","number","number","number"}
}

function wxgn7()
Qk()
Nc(Ca)
So('2000',D,false,gg.SIGN_EQUAL,0, -1)
So('2000',D,false,gg.SIGN_EQUAL,0, -1)
Fw(999)
cx=Xg('0',D)
Ts("合成无时间开启成功\n共修改"..cx.."条数据")
end

function wxgn8()
Qk()
Nc(Ca)
So('3500',D,false,gg.SIGN_EQUAL,0, -1)
So('3500',D,false,gg.SIGN_EQUAL,0, -1)
Fw(200)
cx=Xg('0',D)
Ts("工作台无时间开启成功\n共修改"..cx.."条数据")
end




function wxgn222()
gg.kill()
end



Jh=gg.REGION_JAVA_HEAP--Jh 内存
Ch=gg.REGION_C_HEAP--Ch 内存
Ca=gg.REGION_C_ALLOC--Ca 内存
Cd=gg.REGION_C_DATA--Cd 内存
Cb=gg.REGION_C_BSS--Cb 内存
PS=gg.REGION_PPSSPP--PS 内存
A=gg.REGION_ANONYMOUS--A 内存
J=gg.REGION_JAVA--J 内存
S=gg.REGION_STACK--S 内存
As=gg.REGION_ASHMEM--As 内存
V=gg.REGION_VIDEO--V 内存
O=gg.REGION_OTHER--O 内存
B=gg.REGION_BAD--B 内存
Xa=gg.REGION_CODE_APP--Xa 内存
Xs=gg.REGION_CODE_APP--Xs 内存
----------类型简化配置参考区----------
AU=gg.TYPE_AUTO--A类型搜索
D=gg.TYPE_DWORD--D类型搜索
F=gg.TYPE_FLOAT--F类型搜索
E=gg.TYPE_DOUBLE--E类型搜索
W=gg.TYPE_WORD--W类型搜索
B=gg.TYPE_BYTE--B类型搜索
Q=gg.TYPE_QWORD--Q类型搜索
X=TYPE_XOR--X类型搜索
-----------------------------------
Qk=gg.clearResults--清空搜索列表
Nc=gg.setRanges
So=gg.searchNumber
Fw=gg.getResults
Xg=gg.editAll
Ts=gg.toast
-----------------------------------
Qk=gg.clearResults--清空搜索列表
Nc=gg.setRanges--内存
So=gg.searchNumber--搜索/改善
Fw=gg.getResults--修改范围
Xg=gg.editAll--修改值
Ts=gg.toast--修改后的提示


function CSM(C,S,M)if M~=nil then if C==nil then gg.toast(M..'开启失败\n请重新开启：或者重启游戏')elseif C==false then gg.toast(M..'开启失败\n请重新开启：或者重启游戏')else local x,d={},{}for i=1,#C do for k,w in ipairs(S)do local t={}t['address']=C[i]+w[1]*4 t['flags']=w[2]t['value']=w[3]if(w[4]==true)then t['freeze']=true d[#d+1]=t else x[#x+1]=t end end end gg.setValues(x)gg.addListItems(d)gg.toast(M..'\n开启成功')end elseif S~=nil then gg.clearResults()gg.setRanges(C[1])gg.searchNumber(C[2],C[3],false,gg.SIGN_EQUAL,C[4],C[5],C[6])local SL=gg.getResultCount()local SS=gg.getResults(SL)gg.clearResults()local DZ={}if(SL>0)then for i,v in ipairs(SS)do v.isUseful=true end for k=1,#S do local tmp={}local num=S[k][2]for i,v in ipairs(SS)do tmp[#tmp+1]={}tmp[#tmp].address=v.address+S[k][1]*4 tmp[#tmp].flags=v.flags end tmp=gg.getValues(tmp)for i,v in ipairs(tmp)do if (v.value~=num)then SS[i].isUseful=false end end end for i,v in ipairs(SS)do if(v.isUseful)then DZ[#DZ+1]=v.address end end if DZ[1]==nil then return false else return DZ end else return nil end end end
local function hqsj(dz,sj)local t={}for i,v in ipairs(sj)do t[i]={}t[i].address=dz+sj[i][1]*4 t[i].flags=sj[i][2]end local ss=gg.getValues(t)local s={}for i,v in ipairs(ss)do s[i]=ss[i]['value']end return s end
local function DXWJ(l,m,n)
if m==1 then
local c=io.open(l,'r')
if c==nil then
return c
else
local c=io.open(l,'r')
g=c:read('*a')
c:close()
end
return g
elseif m==2 then
local file=io.open(l,'w')
file:write(n)
file:close()
end
end

function dqzdy(l)
local jjj=DXWJ(l,1)
if jjj==nil then 
ZDYZB={}
else
local sss=DXWJ(l,1)
if load("ZDYZB="..sss)==nil then ZDYZB={}else 
load("ZDYZB="..sss)()
end
end
end

function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end
--配置↑↑↑勿修改，调用方法   xqmnb(qmnb)


function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then gg.toast(Name.."  修改"..#data.."条数据") local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item)end end end gg.setValues(t) else gg.toast(Name.."   开启失败", false) return false end else gg.toast(Name.."   开启失败") return false end end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条ΔΘ") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end 
local kqgn=" [开启]"
local gbgn=" [关闭]"
local gn1=kqgn
local gn2=kqgn
local gn3=kqgn
local gn4=kqgn
local gn5=kqgn
local gn6=kqgn
local gn7=kqgn
local gn8=kqgn
local gn9=kqgn
local gn10=kqgn
function wxgn111()
Interface = gg.choice({
"笛子全屏. "..gn1,
"笛子刷图腾范围. "..gn2,
"琴秒回血. "..gn3,
"元荣驽千机3倍射速. "..gn4,
"锤子挖矿范围. "..gn5,
"飞镖手统十倍射速. "..gn6,
"近战御剑攻速. "..gn7,
"御剑范围. "..gn8,
"踏空飞天. "..gn9,
"传送月球. "..gn10,
"返回主业",}, nil)
if Interface ==1 then a1()end
if Interface ==2 then a2()end
if Interface ==3 then a3()end
if Interface ==4 then a4()end
if Interface ==5 then a5()end
if Interface ==6 then a6()end
if Interface ==7 then a7()end
if Interface ==8 then a8()end
if Interface ==9 then a9()end
if Interface ==10 then a10()end
if Interface ==11 then wxsh() end XGCK = -1 end







function a1()
if(gn1==" [开启]")then
gn1=gbgn
gg.setRanges(16384)
Name="开启笛子全屏范围"
gg.searchNumber("1.5707962513;-99;0.07999999821", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber("-99", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
gg.getResults(80)
gg.editAll("0.30000001192",gg.TYPE_FLOAT)
gg.toast("开启成功")
elseif(gn1==" [关闭]")then
gg.setRanges(16384)
Name="关闭笛子全屏范围"
gg.searchNumber("1.5707962513;-99;0.07999999821", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber("-99", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
gg.getResults(80)
gg.editAll("0.30000001192",gg.TYPE_FLOAT)
gg.toast("关闭成功")
gn1=kqgn
end
end

function a2()
if(gn2==" [开启]")then
gn2=gbgn
gg.setRanges(16384)
Name="开启笛子刷图腾范围"
gg.searchNumber("1.5707962513;0.30000001192;0.07999999821", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber("0.30000001192", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
gg.getResults(80)
gg.editAll("-9",gg.TYPE_FLOAT)
gg.toast("开启成功")
elseif(gn2==" [关闭]")then
gg.setRanges(16384)
Name="关闭笛子刷图腾范围"
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("1.5707962513;-99;0.07999999821", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber("-9", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
gg.getResults(80)
gg.editAll("0.30000001192",gg.TYPE_FLOAT)
gg.toast("关闭成功")
gn2=kqgn
end
end

function a3()
if(gn3==" [开启]")then
gn3=gbgn
gg.setRanges(16384)
Name="开启琴秒回血"
gg.searchNumber("1.5707962513;0.30000001192;0.07999999821", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber("0.30000001192", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
gg.getResults(80)
gg.editAll("999",gg.TYPE_FLOAT)
gg.toast("开启成功")
elseif(gn3==" [关闭]")then
gg.setRanges(16384)
Name="关闭琴秒回血"
gg.searchNumber("1.5707962513;-99;0.07999999821", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber("999", gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
gg.getResults(80)
gg.editAll("0.30000001192",gg.TYPE_FLOAT)
gg.toast("关闭成功")
gn3=kqgn
end
end


function a4()
if(gn4==" [开启]")then
gn4=gbgn
gg.setRanges(16384)
Name="开启元荣驽射速"
  gg.searchNumber("0.00001;60::5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("60", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("30", gg.TYPE_FLOAT)
  gg.toast("开启成功")
elseif(gn4==" [关闭]")then
gg.setRanges(16384)
Name="关闭元荣驽射速"
  gg.searchNumber("0.00001;30::5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("30", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("60", gg.TYPE_FLOAT)
  gg.toast("关闭成功")
gn4=kqgn
end
end

function a5()
if(gn5==" [开启]")then
gn5=gbgn
gg.setRanges(16384)
Name="开启挖矿范围"
	gg.searchNumber('255;100;0.1',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
	gg.searchNumber('0.1',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
	gg.getResults(100)
	gg.editAll('6',gg.TYPE_FLOAT)
	gg.toast('挖矿范围开启成功')
elseif(gn5==" [关闭]")then
gg.setRanges(16384)
Name="关闭挖矿范围"
	gg.searchNumber('255;100;6',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
	gg.searchNumber('6',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1)
	gg.getResults(100)
	gg.editAll('0.10000000149',gg.TYPE_FLOAT)
	gg.toast('挖矿范围关闭成功')
gn5=kqgn
end
end


function a6()
if(gn6==" [开启]")then
gn6=gbgn
gg.setRanges(16384)
Name="开启弓弩手统射速"
  gg.searchNumber("0.00001;60::5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("60", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("0.0001", gg.TYPE_FLOAT)
  gg.toast("开启成功")
elseif(gn6==" [关闭]")then
gg.setRanges(16384)
Name="关闭弓弩手统射速"
  gg.searchNumber("0.00001;0.0001::5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("0.0001", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("60", gg.TYPE_FLOAT)
  gg.toast("关闭成功")
gn6=kqgn
end
end



function a7()
if(gn7==" [开启]")then
gn7=gbgn
gg.setRanges(4)
Name="开启御剑攻速"
  gg.searchNumber("5.0F;0.64278763533F;0.08765000105F;0.5F::17", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("1", gg.TYPE_FLOAT)
  gg.toast("开启成功")
elseif(gn7==" [关闭]")then
gg.setRanges(4)
Name="关闭御剑攻速"
  gg.searchNumber("1.0F;0.64278763533F;0.08765000105F;0.5F::17", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("1", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("5", gg.TYPE_FLOAT)
  gg.toast("关闭成功")
gn7=kqgn
end
end




function a8()
if(gn8==" [开启]")then
gn8=gbgn
gg.setRanges(16384)
Name="开启御剑范围"
  gg.searchNumber("1.5707962513;9999;0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("9999", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("0.30000001192", gg.TYPE_FLOAT)
  gg.toast("开启成功")
elseif(gn8==" [关闭]")then
gg.setRanges(16384)
Name="关闭御剑范围"
  gg.searchNumber("1.5707962513;0.30000001192;0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.searchNumber("0.30000001192", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
  gg.getResults(100)
  gg.editAll("9999", gg.TYPE_FLOAT)
  gg.toast("关闭成功")
gn8=kqgn
end
end



function a9()
if(gn9==" [开启]")then
gn9=gbgn
gg.setRanges(gg.REGION_C_ALLOC)
Name="开启踏空飞天"
So('10.0F;7.0F;0.19999998808F;3.5F;1.0F',F,false,gg.SIGN_EQUAL,0, -1)
So('1',F,false,gg.SIGN_EQUAL,0, -1)
Fw(999)
cx=Xg('0',F)
Ts("飞天开启成功\n共修改"..cx.."条数据")
elseif(gn9==" [关闭]")then
gg.setRanges(gg.REGION_C_ALLOC)
Name="关闭踏空飞天"
So('10.0F;7.0F;0.19999998808F;3.5F;0',F,false,gg.SIGN_EQUAL,0, -1)
So('0',F,false,gg.SIGN_EQUAL,0, -1)
Fw(999)
cx=Xg('1',F)
Ts("飞天恢复成功\n共修改"..cx.."条数据")
gn9=kqgn
end
end

function a10()
if(gn10==" [开启]")then
gn10=gbgn
gg.setRanges(gg.REGION_C_ALLOC)
Name="开启传送月球"
So('10.0F;7.0F;0.19999998808F;3.5F;1.0F',F,false,gg.SIGN_EQUAL,0, -1)
So('1',F,false,gg.SIGN_EQUAL,0, -1)
Fw(999)
cx=Xg('-5000',F)
Ts("直达月球开启成功\n共修改"..cx.."条数据")
elseif(gn10==" [关闭]")then
gg.setRanges(gg.REGION_C_ALLOC)
Name="关闭传送月球"
So('10.0F;7.0F;0.19999998808F;3.5F;-5000F',F,false,gg.SIGN_EQUAL,0, -1)
So('-5000',F,false,gg.SIGN_EQUAL,0, -1)
Fw(999)
cx=Xg('1',F)
Ts("直达月球恢复成功\n共修改"..cx.."条数据")
gn10=kqgn
end
end

function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end
--配置↑↑↑勿修改，调用方法   xqmnb(qmnb)

local CSMS,CSMD,CSMX=function(C,S,M)gg.clearResults()gg.setRanges(C[1])gg.searchNumber(C[3],C[2],false,gg.SIGN_EQUAL,C[4],C[5],C[6])local SL=gg.getResultCount()local SS=gg.getResults(SL)gg.clearResults()local DZ={}if(SL>0)then for V,W in ipairs(SS)do W.ZJ=true end for K=1,#S do local Y={}local Z=S[K][3]for V,W in ipairs(SS)do Y[#Y+1]={}Y[#Y].address=W.address+S[K][1]*4 Y[#Y].flags=S[K][2]end local Y=gg.getValues(Y)for V,W in ipairs(Y)do if (W.value~=Z)then SS[V].ZJ=false end end end for V,W in ipairs(SS)do if(W.ZJ)then DZ[#DZ+1]=W.address end end end return DZ end,function(C,S,M)local D={}for V,W in ipairs(S)do D[V]={}D[V].address=C+W[1]*4 D[V].flags=W[2]end local D,Q=gg.getValues(D),{}for V,W in ipairs(D)do Q[V]=W.value end return Q end,function(C,S,M)if type(C)~=[[table]]then gg.toast("格式错误")else if #C==0 then if M~=nil then gg.toast(M.."开启失败")end else local X,D={},{}for V,W in ipairs(C)do for v,w in ipairs(S)do local T={}T.address=W+w[1]*4 T.flags=w[2]T.value=w[3]if w[4]==true then T.freeze=w[4]D[#D+1]=T else X[#X+1]=T end end end gg.setValues(X)gg.addListItems(D)if M~=nil then gg.toast(M.."开启成功")end end end end
local function DXWJ(l,m,n)
if m==1 then
local c=io.open(l,'r')
if c==nil then
return c
else
local c=io.open(l,'r')
g=c:read('*a')
c:close()
end
return g
elseif m==2 then
local file=io.open(l,'w')
file:write(n)
file:close()
end
end

function JSJL(X,Q)
return math.sqrt(math.pow(Q[1]-X[1],2)+math.pow(Q[3]-X[3],2))
end

function xxxx1()
local NCZ={}
for V,W in ipairs(gg.getRangesList())do
if W.state=="Ca"then
NCZ[#NCZ+1]=W["end"]
end
end

FFNC="0x"..string.format([[%#x]],NCZ[#NCZ/2])

ZZB=CSMS({4,4,1035174360,0,FFNC},{{1,4,1056964608},{7,4,1069547520},{39,4,1092616192},{40,4,1063675494},{47,4,1060320051},{48,4,1053609164},{-84,4,1056964608},{-85,4,1035174360},{-86,4,1059360187},{-90,4,1060439283},})
if #ZZB>0 then 
gg.toast("初始化1成功")
else
gg.toast("初始化1失败")
end

CZS=CSMS({4,4,1134034944,0,FFNC},{{1,4,1065353216},{-1,4,1140457472},{-2,4,1121714176},})
if #CZS>0 then 
gg.toast("初始化2成功")
else
gg.toast("初始化2失败")
end

end

function xxxx2()
local sjk={
{"---------------矿物---------------",101},
{"荒石",3472,3442,3372,3272,3172,3450,3448,3446,3464,3432},
{"铁矿",1201,1221,1231},
{"铜矿",1202,1222,1232},
{"银矿",1203,1223,1233},
{"苍石",1211},
{"化石",3636,3746},
{"河边礁石",3156,3157},
{"火山火晶",3001,3002,3003,3004,3005},
{"海边瑶石",1212},
{"沙漠玄石",1213},
{"沙漠璇玉",1215},
{"雪山冰块",1453,1452},
{"雪山冰晶",3013,3012,3010},
{"雪山胭玉",1214},
{"雪山瑾瑜玉",1216},
{"雪山寒冰化石",3650},
{"雪山凛冰化石",5551,5552},
{"火山炽焰化石",3770,3765,3766,3776},
{"腿化石",3601},
{"头化石",3622,3625,3626,3636,3638,3640,3648,3654,3740},
{"尾化石",3633},
{"脊化石",3606,3645,3745},
{"肋化石",3642},
{"盆化石",3663},
{"太空星石",2301,2302,2303,2304},
{"海里水晶",3051,3052,3053,3054,3055,3056,3057,3058,3059,3050},
{"海里碧水珠",3081,3082,3083,3084,3085,3086,3087,3088,3089,3090},
{"----------树木----------",101},
{"棕树",800,801,802},
{"古椰",810,811,812},
{"铁树",820,821,822},
{"诸树",830,831,832},
{"禅树",891,894,899},
{"长叶树",840,841,842},
{"松树",870,871,872},
{"黄棘树",1021,1015,1003},
{"寒木",5508},
{"扭树",1084,1081},
{"杨树",952,953,954,955,957,960,961},
{"散落木枝",3511,3213,3215,3227,3554,3556,3564,3572,3580},
{"樱花树",1051},
{"红韵树",1344},
{"竹子(芯材)",750},
{"栯木(芯材)",911,912,913,915},
{"火山烬木",1163,1165,1133,1143},
{"----------草药----------",101},
{"幽兰",1301},
{"莽草",1302},
{"沙漠龙骨",1303},
{"沙漠枇华",1306},
{"雪山嘉荣",1304},
{"雪山灵芝",1308},
{"----------花+果类----------",101},
{"彼岸花",2201},
{"丹顶红",2203},
{"朝阳花",2204},
{"如意金钩",2202},
{"芙蓉",2205},
{"青菩",1345},
{"薏苡",1471,1472,1473,1474,1475,1476,1477,1478,1479,1480},
{"山蒜",1491,1492,1493,1494,1495,1496,1497,1498,1499,1500},
{"淡树淡果",1341,1342,1343,1344,1346,1347,1348,1349,1350},
{"苹果",1341,1342,1343,1344,1345,1346,1347,1348,1349,1350},
{"秦椒",1461,1462,1463,1464,1465,1466,1467,1468,1469,1470},
{"詹棘",1481,1482,1483,1484,1485,1486,1487,1488,1489,1490},
{"----------其他----------",101},
{"散装备",36018},
{"烧鸡",35000},
{"黏土",3155},
{"粪便",40101},
{"血蛋",4749},
{"粉菌",4451,4456},
{"蘑菇",4604,4657,4658},
{"山海通鉴",101},
{"海里弯角澡",4200,4201,4203,4205},
{"海里鹿角珊瑚",4001,4002,4003,4004,4005,4006,4007},
{"海里樱花海葵",4100,4102},
{"海里细管海葵",4141,4131,4143,4137,4130,4136,4134},
{"海里柳珊瑚",4051,4052},
{"铜箱子",42},
{"银箱子",43},
{"金箱子",44},
{"战斗图腾",45},
{"高等战斗图腾",47},
{"狩猎图腾",46},
{"高等狩猎图腾",48},
{"首领图腾",49},
{"神兽图腾1",50},
{"神兽图腾2",53},
{"秘境入口",52},
{"荣誉图腾",54},
{"高等荣誉图腾",55},
}
local m={}
for x=1,#sjk do
m[x]=sjk[x][1]
end
local sj={}
local zylx=gg.multiChoice(m,nil,"可多选，不选则是全物资(所有能搜索到的物资)，注：选择的物资越多，规划路线的时间越长。")
if zylx~=nil then
for x=1,#m do
if zylx[x]==true then
for h=1,#sjk[x] do
sj[#sj+1]=sjk[x][h]
end
end
end

while(true)do
if gg.isVisible(true) then break else
local zbd={}
gg.toast("客官\n搜索物资")
local tz=CSMS({4,4,999,0,FFNC},{
{-83,4,335544320},
})
local zbk={}
if #sj==0 then
for x=1,#tz do
local zb=CSMD(tz[x],{{-62,16},{-61,16},{-60,16},{-82,4}})
zbk[x]={}
zbk[x][1],zbk[x][2],zbk[x][3]=zb[1],zb[2],zb[3]
end
else
for x=1,#tz do
local zb=CSMD(tz[x],{{-62,16},{-61,16},{-60,16},{-82,4}})
for h=1,#sj do
if zb[4]==sj[h]then 
local j=#zbk+1
zbk[j]={}
zbk[j][1],zbk[j][2],zbk[j][3]=zb[1],zb[2],zb[3]
end
end
end
end


gg.toast("客官\n规划路线，请稍候。")
local XZB=CSMD(ZZB[1],{{19,64},{21,64},{23,64}})
local xzbk={}
local cs=#zbk
local jsgh=nil
for h=1,#zbk do
zxz,dng=nil,nil
for x=1,#zbk do
local jl=JSJL(XZB,zbk[x])
if zxz==nil then zxz=jl dng=x end
if jl<zxz then zxz=jl dng=x end
end
if zxz>SZXX[1] then break else
xzbk[h]=zbk[dng]
XZB=zbk[dng]
table.remove(zbk,dng)
end
end


local cs=#xzbk
for x=1,#xzbk do
if gg.isVisible(true)then break else
gg.toast("客官\n共有"..cs.."个坐标\n前往第"..x.."个坐标")
local XZB=CSMD(ZZB[1],{{19,64},{21,64},{23,64}})
local QZB=xzbk[x]
if JSJL(XZB,QZB)>SZXX[1]then gg.toast("状态异常，重新搜索。")CSMX(ZZB,{{21,64,0},})break 
else
local ZBC={}
ZBC[1]=math.ceil(QZB[1]-XZB[1])
ZBC[2]=math.ceil(QZB[3]-XZB[3])
local CZ={}
CZ[1]=math.abs(ZBC[1])
CZ[2]=math.abs(ZBC[2])
local S={}
if CZ[1]>CZ[2]then
CS=CZ[1]
if ZBC[1]<0 then Y=-1 elseif ZBC[1]>0 then Y=1 else Y=0 end
S[1],S[2]=Y,ZBC[2]/CZ[1]
else
CS=CZ[2]
if ZBC[2]<0 then Y=-1 elseif ZBC[2]>0 then Y=1 else Y=0 end
S[1],S[2]=ZBC[1]/CZ[2],Y
end
CSMX(ZZB,{{21,64,0},})
gg.sleep(1000)
for x=1,CS do
if gg.isVisible(true) then break else
XZB[1]=XZB[1]+S[1]
XZB[3]=XZB[3]+S[2]
CSMX(ZZB,{{19,64,XZB[1]},{23,64,XZB[3]},})
end
gg.sleep(130)
end
CSMX(ZZB,{{21,64,QZB[2]+5},})
local XZB=CSMD(ZZB[1],{{19,64},{21,64},{23,64}})
if JSJL(XZB,QZB)>5 then gg.toast("状态异常，重新搜索。")CSMX(ZZB,{{21,64,0},})break 
else
gg.sleep(SZXX[2]*1000)
local jc=0
while(true)do
jc=jc+1
if gg.isVisible(true)then break else
if CSMD(CZS[1],{{-31,4}})[1]==0 or jc==SZXX[3] then 
gg.toast("无物资或超时，等待"..SZXX[4].."秒")
gg.sleep(SZXX[4]*1000)
break 
end
gg.sleep(1000)
end
end

end


end
end
end
end
end
end
end

SZXX={5000,2,15,1}
function xxxx3()
local m={
"设置距离(规划路线时，超过此距离将直接剔除，增加效率。)",
"设置检测(移动完成，多少秒后开始检测附近是否有可操作元素?)",
"设置超时(如果检测有物资但操作无效，多久去下一个物资。)",
"检测后呢(如果检测到无物资或超时，可停留一段时间，捡取掉落物等。)",
}
local szjl=gg.prompt(m,SZXX,{number,number,number,number})
if szjl~=nil then
for x=1,#m do
SZXX[x]=szjl[x]*1
end
end
end

function hhhh()
 local m={"1.手机初始化","2.打工采集","3.采集设置"}
 local gm=gg.choice(m,nil,"第二版本使用 ")
 if gm==1 then xxxx1() end
 if gm==2 then if ZZB==nil or CZS==nil then gg.alert("请初始化")else xxxx2()end end
 if gm==4 then xxxx3() end
 end





local bm=gg.getTargetPackage()
if bm=="com.tencent.tmgp.djsy"then gg.setVisible(true)WXSH()
elseif bm=="com.miHoYo.Yuanshen"then gg.setVisible(true)YS()
elseif bm=="com.miHoYo.ys.bilibili"then gg.setVisible(true)YS()
elseif bm=="com.hero.sm.android.hero"then gg.setVisible(true)CZYMF()
elseif bm=="com.hero.sm.aligames"then gg.setVisible(true)CZYMF()
elseif bm=="com.hero.sm.vivo"then gg.setVisible(true)CZYMF()
else
local wcjc=gg.alert("请进入游戏后在启动软件！请选择进程后执行！","知道了","","复制进程包名")
if wcjc==3 then gg.copyText(bm)print("已复制进程包名")end
end