local res, w, h = sysgetscreen()
local screen = getscreendata(0,0,700,1040, 1) -- 720 * 1280 x0 y0最好从0, 0开始
print(#screen, #screen[1], res, w, h)
local max, min = { x = 1, y = 1, v = getgray(screen[1][1]) }, { x = 1, y = 1, v = getgray(screen[1][1]) }
for i = 1, #screen, 100 do
for j = 1, #screen[i], 100 do
local color = screen[i][j]
local gray = getgray(tonumber(color, 16))
if gray > 250 or gray == 0 then print(i - 1, j - 1, gray, color) end
if gray > max.v then
max.x, max.y, max.v = i - 1, j - 1, gray
elseif gray < min.v then
min.x, min.y, min.v = i - 1, j - 1, gray
end
end
end
print("Max")
XM.Print(max)
local colorHex = getcolor(max.x, max.y, 1)
local colorDec = getcolor(max.x, max.y, 0)
local gray = getgray(colorDec)
lineprint(string.format("%d %#x %d\n", tonumber(colorHex, 16), colorDec, gray))
print("Min")
XM.Print(min)
colorHex = getcolor(min.x, min.y, 1)
colorDec = getcolor(min.x, min.y, 0)
gray = getgray(colorDec)
lineprint(string.format("%d %#x %d\n", tonumber(colorHex, 16), colorDec, gray))
keepcapture 是截图,很坑的要注意
尽量避免使用,除非是要捕捉一瞬即逝的画面
keepcapture 的搭档就是 releasecapture 表示刷新数据
0 识图
1 字库
不用频繁创建账号:换区即可
新版字库的使用
下面的 0 是字库编号 0 ~ 19 这20个
一般用不了那么多,也可以把所有字都只放在一个字库文件里
同一字形不同颜色存在一个字库里
但是识字的时候用不同的参数
不同字形能否存在一个字库有待考证
local rc = getrcpath("rc:叹号任务字库.txt")
setnewdict(rc, 0)
usenewdict(0)
local val = ocrrec(74,1044,330,1074,"e7e7e7-222222|bdbabd-222222|b5b2b5-111111|ffffff-111111", 0.75)
print("ocrrec ", val)
安装安卓模拟器
ais/apk/dAisApp.apk
720p
(红手指云手机平台默认分辨率)指端精灵脚本调试
免脚本配置运行
(不用在手机里点击会自动运行脚本)floatwinrun
:是必须的,相当于主函数floatwinrun
本身会在另外的地方被调用图色助手
setrotatescreen
Ctrl+1
获取 绝对坐标 和 颜色值 到右边的 第 1 栏 总共有 1 ~ 0 十个tap(x, y)
多点找色
findmulticolor
、findmulticolorex
sim
、scantype
)findmulticolor(x1, y1, x2, y2, color, OffsetPos, sim, scantype)
sim
相似度scantype
扫描方式(一般选0就行)x, y
如果没找到则返回-1
解决Hyper-V和VT-x冲突的方法
XM插件使用技巧
导入XM插件
XM.lua
plugin
就会有floatwinrun
里require "XM"
多点找色
综合滑动
要模拟人的行为
同比例分辨率乘倍数即可
XM.SetScale(720, 1280)
封装好了的函数尽可能的减少色点检测功能
XM.RndTap
尽量封装自己的库
因为多语言的原因,能不取字尽量就不要取字
新版字库
点击时间很重要,不能太快,要有适当的延迟
上架
setrotatescreen
releasecapture(0)
releasecapture(1)
getscreendata 截取全屏像素点
#screen[1]
会报错(第1行,没有列,是空的)0, 0
相当于screen[1][1]
getgray
获得亮度值或灰度值0.3 * r + 0.6 * g + 0.1 * b
(有更优化的算法)tonumber("0xff")
tonumber("ff", 16)
(string.format("%#x", tonumber("ff", 16))
同理)keepcapture 是截图,很坑的要注意
keepcapture
的搭档就是releasecapture
表示刷新数据不用频繁创建账号:换区即可
新版字库的使用
编辑字库
的意思是 保存字库字库的制作
制作新字库(New)
打开/新建字库
新建一个字库xxx字库.txt
手机快照
在字里面选择一个点的颜色,粘贴到颜色窗口
选择偏色为111111
并勾上多个点阵
,然后看预览窗口是否清晰,不清晰的地方多取一个色定义文字
里一一添加编辑字库
意思就是保存字库颜色窗口
的截图范围和颜色描述很重要,是识字时的操作可以多点击的,尽量多点击,以免遗漏