本帖最后由 1398088805 于 2022-8-17 09:45 编辑
--发呆检测,提取2次相同坐标的颜色对比,提取一次经过延迟在提取一次
--提取多个坐标颜色更精准
--我这里只提取了2个坐标对比
function 发呆检测(x1,y1,x2,y2)
pixel1 = getPixelColor(x1,y1)
pixel3 = getPixelColor(x2,y2)
sleep(100)
pixel2 = getPixelColor(x1,y1)
pixel4= getPixelColor(x2,y2)
if pixel1==pixel2 or pixel3==pixel4 then
print("正在发呆","Yes")
return 0
else
print("正在移动","Yes")
return 1
end
end
--多功能点击
--(x+10,y+10)偏移点击
--(x,y)点击找到的x,y坐标
--(100,100)点击指定的坐标
function 点击(x1,y1)
local a=x1+rnd(-10,10)--x随机范围
local b=y1+rnd(-10,10)--y随机范围
local c=rnd(60,120)--随机按住时间
local gesture = Gesture:new()
local path = Path:new()
path:setStartTime(20)
path:setDurTime(c)
path:addPoint(a,b)
path:addPoint(a,b)
gesture:addPath(path)
gesture:dispatch(onFinishEvent)
sleep(600)
print("点击",a,b,c)
end
--多点找色
function 找色(v)
x,y=findMultiColor(v[2],v[3],v[4],v[5],v[6],v[7],v[8],v[9])
if x>-1 and y>-1 then
print(v[1],"Yes")--这里的[v1]主要为了显示每一步执行的状态
toast(""..v[1].."")--设备端显示状态
return 1
else
print(v[1],"No")
return 0
end
sleep(600)
end
正在战斗={"正在战斗",21,38,52,69,"FFD388","-11|-14|FFEB9E|-11|14|FFC87E|4|0|FFCF85",0,0.98}
工坊购买={"工坊购买",1008,628,1039,655,"6F340C","15|0|6F340C|8|-6|783C12|3|-13|84481C|14|-13|84481C",0,0.98}
sm完成={"sm完成",670,536,693,559,"7C4521","-7|-4|804B26|-7|4|804B26|1|9|7B4520|8|-4|8C5B39|435|-401|FFE7B9",0,0.98}
sm任务={"sm任务",1062,185,1083,310,"F0E81F","0|9|F1E920|17|8|F3EA1D|17|-2|F3EA1D",0,0.98}
去完成={"去完成",413,427,1076,453,"7E4822","0|7|6E340D|12|7|6E340D|11|0|7E4822",0,0.98}
选择要做的事={"选择",1232,21,1253,375,"E4DE98","0|6|E5DE98|-7|5|E2DB95|-10|2|E2DB95|-13|-6|E8E199|-6|-6|E8E199",0,0.98}
点击继续={"点击继续",1026,50,1055,76,"E1D4C3","-4|6|E6DAC8|4|6|E6DAC8|-5|-4|DCD0BF|6|-4|DCD0BF",0,0.98}
摆摊购买={"物品购买",1023,637,1059,664,"FCFBFA","18|0|FCFBFA|9|-6|F7F2EF|5|-13|EBDFD7|14|-13|EBDFD7",0,0.98}
药店购买={"药店购买",976,568,1014,595,"F1E9E4","17|0|F1E9E4|9|-6|FFFFFF|2|-13|F6F1EE|15|-13|F6F1EE",0,0.98}
物品上交={"物品上交",1033,569,1056,597,"794013","-7|-5|773D11|-7|7|773D11|-12|14|814818|0|14|814818",0,0.98}
BB上交={"BB上交",822,571,852,601,"794013","-7|-5|773D11|-7|7|773D11|-12|14|814818|0|14|814818",0,0.98}
使用={"使用",1090,562,1137,592,"783F12","0|-6|6E330B|10|-6|6E330B|5|11|6F340C|15|-3|6F340C",0,0.98}
武器上交={"武器上交",1031,569,1059,599,"844C1B","-7|-4|753B10|-7|7|753B10|-13|14|70350D|1|14|70350D",0,0.98}
local i=0
while true do
sleep(300)
if 发呆检测(740,1,740,700)==0 and 找色(正在战斗)==0then
--只有人物没动也没有战斗才会运行下面代码
--防止不必要的代码运行
if 找色(sm任务)==1then
点击(x+26,y+33)
end
if 找色(去完成)==1then
点击(x+29,y+7)
end
::重复运行::
if 找色(选择要做的事)==1then
点击(x-188,y+103)
goto 重复运行
elseif 找色(点击继续)==1then
点击(x,y)
goto 重复运行
elseif 找色(使用)==1then
点击(x,y)
goto 重复运行
end
if 找色(摆摊购买)==1then
点击(x,y)
elseif 找色(工坊购买)==1then
点击(x,y)
elseif 找色(药店购买)==1then
点击(x,y)
elseif 找色(物品上交)==1then
点击(x,y)
elseif 找色(BB上交)==1then
点击(x,y)
elseif 找色(武器上交)==1then
点击(x,y)
end
--有时候会出现一个需要点击空白地方的页面
--我这里设置3秒后人物没移动会点击(750,550)
if 发呆检测(740,1,740,700)==0then
i=i+1
sleep(300)
else
i=0--当人物在移动重置i=0
end
if i>10then--也可以i==10
点击(750,550)
end
if 找色(去完成)==0 and 找色(sm完成)==1then
点击(1116,146)
print("sm完成")
toast("sm完成")
break
end
end
end
师门需要选择自动师门一次
只在模拟器测试通过测了采用无障碍模式
分辨率720x1280
全部采用找色,非常简单
如果任务栏看不到师门任务需要手动滑倒顶端
|