Find.Mul 多点找色

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

在区域范围内,根据指定的多个点颜色寻找指定的坐标,支持多色、偏色、相似度,只返回第一个找到的坐标。

语法

结果 = Find.Mul([x1,y1,x2,y2,]颜色组[,属性表])

参数

参数 数据类型 解释
x1 数值型 可选参数,表示多点找色范围左上角x坐标,省略默认为0,即全屏找色。
y1 数值型 可选参数,表示多点找色范围左上角y坐标,省略默认为0,即全屏找色。
x2 数值型 可选参数,表示多点找色范围右下角x坐标,省略默认为0,即全屏找色。
y2 数值型 可选参数,表示多点找色范围右下角y坐标,省略默认为0,即全屏找色。
颜色组 字符串数组 待查找的多点找色颜色组,格式为{第一个颜色,偏移颜色组}。
属性表 _表_ 可选参数,用于设置多点找色模式,格式为{“属性名”:”属性值”,…},详见下方表。
属性名 数据类型 可选值列表 默认值 作用
dir 整数型 取值0到8 0 多点找色方向
sim 数值型 取值0到1之间 0.9 相似度,越高越相似
click 布尔型 任意值 False 注意非False和Null为真, 如果找到比色结果,是否点击第一个颜色点坐标
print 数值型,字符串型 任意值 “” 注意非False为真,当为真时输出此值(不支持数组型和布尔型),否则不输出内容;为调试输出

返回值

数值型,找到返回0,没找到返回-1, 多点找色的坐标保存在 Find.SetReturn() 设置的数组中。

示例

例子1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

Dim 颜色数据Tab()'里面只放多点找色的颜色数据的值
颜色数据Tab["登陆Mul"] = {"6CD2E4-151515", "-2|0|66D6E8-151515,-12|0|20C4D9-101010"}

If Find.Mul(颜色数据Tab["登陆Mul"]) = 1 Then
'XYA这里的值为 坐标X,坐标Y,0
TracePrint "全屏找到登陆界面,点击","多点找色的坐标为:",Join(XYA,", ")
'这里面XYA数组里面的元素值被函数Find.Mul改变成了坐标值
Tap XYA(0), XYA(1)
Else
'这里的值为 -1,-1,-1
TracePrint "没有找到登陆界面",Join(XYA,", ")
End If
例子2
1
2
3
4
5
6
7
8
9
10
11
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

Dim 颜色数据Tab()'里面只放多点找色的颜色数据的值
颜色数据Tab["登陆Mul"] = {"6CD2E4-151515", "-2|0|66D6E8-151515,-12|0|20C4D9-101010"}

'例子1与例子2实现的效果相同,只是代码精简了
Call Find.Mul(颜色数据Tab["登陆Mul"],{"click":True})
TracePrint "全屏多点找色的返回的坐标情况",Join(XYA,", ")
例子3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

Dim 颜色数据Tab()'里面只放多点找色的颜色数据的值
颜色数据Tab["登陆Mul"] = {"6CD2E4-151515", "-2|0|66D6E8-151515,-12|0|20C4D9-101010"}

'全屏查找多点颜色组(颜色数据Tab["登陆Mul"]),方向为1(同等 FindMultiColor 里面的向方,从中心向四周查找),sim是相似度为0.8
If Find.Mul(颜色数据Tab["登陆Mul"], {"dir":1,"sim":0.8}) > -1 Then
'XYA这里的值为:坐标X,坐标Y,找图的索引
TracePrint "全屏找到登陆界面,点击","多点找色的返回坐标为:",Join(XYA,", ")
'这里面XYA数组里面的元素值被函数Find.Img 改变成了坐标
Tap XYA(0), XYA(1)值
Else
'这里的值为 -1,-1,-1
TracePrint "没有找到登陆界面",Join(XYA,", ")
End If
例子4
1
2
3
4
5
6
7
8
9
10
11
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

Dim 颜色数据Tab()'里面只放多点找色的颜色数据的值
颜色数据Tab["登陆Mul"] = {"6CD2E4-151515", "-2|0|66D6E8-151515,-12|0|20C4D9-101010"}

'例子3与例子4实现的效果相同,只是代码精简了
Call Find.Mul(颜色数据Tab["登陆Mul"], {"click":True,"dir":1,"sim":0.8})
TracePrint "全屏多点找色返回的坐标情况",Join(XYA,", ")
例子5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'前三行代码必须在开头定义好,而且必须要有的
Import "Find.lua"
Dim XYA()
Call Find.SetReturn(XYA)

Dim 颜色数据Tab()'里面只放多点找色的颜色数据的值
颜色数据Tab["登陆Mul"] = {"6CD2E4-151515", "-2|0|66D6E8-151515,-12|0|20C4D9-101010"}

'在范围为100,100,200,300内找多点找色(颜色数据Tab["登陆Mul"])
If Find.Mul(100,100,200,300,颜色数据Tab["登陆Mul"]) > -1 Then
'XYA这里的值为:坐标X,坐标Y,0
TracePrint "范围内找到登陆界面,点击","范围内多点找色的返回坐标为:",Join(XYA,", ")
'这里面XYA数组里面的元素值被函数Find.Mul 改变成了坐标值
Tap XYA(0), XYA(1)
Else
'这里的值为 -1,-1,-1
TracePrint "没有找到登陆界面",Join(XYA,", ")
End If

备注

  • 找到的坐标和索引的值赋值到 Find.SetReturn 设置坐标返回值 设置的数组中
  • 使用本插件的三步骤(前三行代码)是
    • 第一行 : Import “Find.lua”
    • 第二行 : Dim XYA()
    • 第三行 : Call Find.SetReturn(XYA)
  • 在导入插件后,必须先定义返回坐标数组,并用 Find.SetReturn 设置坐标返回值 设置返回坐标数组