[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次
//=================例子1=================//
'采用最普通的等于号赋值返回值方法
'找到返回坐标数组, 找不到返回NULL, 所以可以直接写返回变量名, 不需要写对比符号
Dim ret //定义返回值
ret = zm.FindMultiColor("1592FF", "-39|144|070203,199|60|0CB900,-128|42|393535")
If ret Then
TracePrint "多点数据找到了, 返回值有以下3种使用方法, 任选一种使用"
TracePrint "数组方式: 序号=" & ret(0), ", 坐标x=" & ret(1), ", 坐标y=" & ret(2), ", 首点颜色=" & ret(3)
TracePrint "表下标方式: 序号=" & ret[1], ", 坐标x=" & ret[2], ", 坐标y=" & ret[3], ", 首点颜色=" & ret[4]
TracePrint "表键名方式: 序号=" & ret["id"], ", 坐标x=" & ret["x"], ", 坐标y=" & ret["y"], ", 首点颜色=" & ret["name"]
TracePrint "另外还有几个不常用的数据: 找到相似度=" & ret["sim"], ", 查找耗时=" & ret["time"], ", 查找次数=" & ret["counts"]
Else
TracePrint "没找到"
End If
//=================例子2=================//
'把返回值保存在数组参数中, 称为返回参数
'这种写法可以少写一行赋值代码, 美化脚本结构
'可以直接判断命令返回值, 也可以单独调用后判断返回参数
'注意: 在没找到的情况下, 返回值与返回参数结果不一样, 返回参数的值为{-1,-1,-1}
'下面与例子1相似, 区别在于返回结果保存在了数组t中
Dim t() //定义返回参数数组, 注意: 必须定义成数组
'下面将数组作为参数传入时, 不要带括号, 只有定义时候才需要括号
If zm.FindMultiColor("1592FF", "-39|144|070203,199|60|0CB900,-128|42|393535", t) Then
TracePrint "多点数据找到了, 返回数组有以下3种使用方法, 任选一种使用"
TracePrint "数组方式: 序号=" & t(0), ", 坐标x=" & t(1), ", 坐标y=" & t(2), ", 首点颜色=" & t(3)
TracePrint "表下标方式: 序号=" & t[1], ", 坐标x=" & t[2], ", 坐标y=" & t[3], ", 首点颜色=" & t[4]
TracePrint "表键名方式: 序号=" & t["id"], ", 坐标x=" & t["x"], ", 坐标y=" & t["y"], ", 首点颜色=" & t["name"]
TracePrint "为了提高效率, 返回参数里不包含相似度, 次数与耗时"
Else
TracePrint "没找到"
End If
//================例子3================//
'由于大部分返回结果只使用一次后, 就不会再使用了
'所以我们可以设置统一默认返回值, 让它保存最近一次查找结果
'通过使用zm.SetFindMultiColor()设置默认返回参数数组tMul
'如果zm.FindMultiColor()命令没有指定返回参数数组, 则默认保存在tMul中
Dim tMul() //定义默认返回参数数组, 注意: 必须定义成数组
zm.SetFindMultiColor {"ret":tMul} //设置默认返回参数数组为tMul
'下面代码中没有写任何返回值, 但是由于设置了默认返回参数数组tMul, 所以默认保存结果在该数组中
If zm.FindMultiColor("1592FF", "-39|144|070203,199|60|0CB900,-128|42|393535") Then
TracePrint "多点数据找到了, 默认返回数组有以下3种使用方法, 任选一种使用"
TracePrint "数组方式: 序号=" & tMul(0), ", 坐标x=" & tMul(1), ", 坐标y=" & tMul(2), ", 首点颜色=" & tMul(3)
TracePrint "表下标方式: 序号=" & tMul[1], ", 坐标x=" & tMul[2], ", 坐标y=" & tMul[3], ", 首点颜色=" & tMul[4]
TracePrint "表键名方式: 序号=" & tMul["id"], ", 坐标x=" & tMul["x"], ", 坐标y=" & tMul["y"], ", 首点颜色=" & tMul["name"]
TracePrint "为了提高效率, 返回参数里不包含相似度, 次数与耗时"
Else
TracePrint "没找到"
End If
'在以后的代码中, 除非指定返回数组参数, 否则一律覆盖保存到默认返回数组参数中
Dim tt() //定义返回参数数组
If zm.FindMultiColor("0000FF", "157|-190|1592FF", tt) Then
'由于指定返回参数为tt, 所以默认返回参数tMul保持上一次的值
TracePrint "本次结果tt:", zm.VarInfo(tt)
TracePrint "默认数组tMul:", zm.VarInfo(tMul)
Else
TracePrint "没有找到", zm.VarInfo(tt)
TracePrint "默认数组tMul:", zm.VarInfo(tMul)
End If