SYTK=[[
【使用条款】
登陆界面开启一次初始化
游戏里面在开启一次初始化
不用管他是否失败。
是否同意使用条款内容？
]]
if gg.alert(SYTK,[[同意]],[[不同意]])~=1 then
os.exit()
end

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 wxgn1()
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 wxgn2()
local sjk={
{"棕树",800,801,802},
{"古椰",810,811,812},
{"铁树",820,821,822},
{"铁矿",1201,1221,1231},
{"铜矿",1202,1222,1232},
{"银矿",1203,1223,1233},
{"仓石",1211},
{"瑶石",1212},
{"玄石",1213},
{"幽兰",1301},
{"莽草",1302},
{"龙骨",1303},
{"枇华",1306},
{"-----矿物-----",101},
{"铁矿",1201,1221,1231},
{"铜矿",1202,1222,1232},
{"银矿",1203,1223,1233},
{"仓石",1211},
{"瑶石",1212},
{"玄石",1213},
{"珚玉",1214},
{"璇玉",1215},
{"瑾瑜",1216},
{"黏土",3155},
{"星石",2301,2302,2303,2304},
{"水晶",3051,3052,3053,3054,3055,3056,3057,3058,3059,3060},
{"避水珠",3081,3082,3083,3084,3085,3086,3087,3088,3089,3090},
{"-----草药-----",101},
{"幽兰",1301},
{"莽草",1302},
{"龙骨",1303},
{"嘉荣",1304},
{"枇华",1306},
{"-----果蔬-----",101},
{"淡树青浦",1341,1342,1343,1344,1345,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},
{"意以",1471,1472,1473,1474,1475,1476,1477,1478,1479,1480},
{"詹棘",1481,1482,1483,1484,1485,1486,1487,1488,1489,1490},
{"山蒜",1491,1492,1493,1494,1495,1496,1497,1498,1499,1500},
{"-----树木-----",101},
{"棕树",800,801,802},
{"古椰",810,811,812},
{"铁树",820,821,822},
{"楮树",830,831,832},
{"长叶",840,841,842},
{"松树",870,871,872},
{"黄棘",1210},
{"栯木（芯材）",913},
{"竹子(芯材)",750},
{"杨树",961},
{"樱花",1051},
{"扭树",931},
{"-----花类-----",101},
{"彼岸花",2201},
{"丹炉花",2203},
{"朝阳花",2204},
{"如意金钩",2202},
{"芙蓉",2205},
{"-----其他-----",101},
{"血蛋",4749},
{"粪便",40101},
{"铜宝箱",042},
{"银宝箱",043},
{"金宝箱",044},
{"山海通鉴",101},
{"战斗图腾",45},
{"狩猎图腾",46},
{"高等战斗图腾",47},
{"高等狩猎图腾",48},
{"神人",49},
{"神兽图腾",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 wxgn3()
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 wxsh()
local m={
"1.初始化",
"2.打工人",
"3.设置",
"4.退出"
}local g=gg.multiChoice(m,nil,"现仅适配真机，可能有些bug")
if g~=nil then 
if g[1]==true then wxgn1()end
if g[2]==true then if ZZB==nil or CZS==nil then gg.alert("请初始化")else wxgn2()end end
if g[3]==true then wxgn3()end
if g[4]==true then os.exit()end
end 
kg=-1
end
while(true)do if gg.isVisible(true)then 
kg=1 gg.setVisible(false)end if
kg==1 then 
wxsh()
end 
end
--[[
易神牛逼
]]