找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 87326|回复: 21

[教程源码] 【紫猫学院】支持多组颜色的超级多点找色——紫猫插件

[复制链接]
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
发表于 2018-2-14 10:42:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
插件下载地址:https://zimaoxy.com/m/post/zm.about/
超级多点找色文档:https://zimaoxy.com/m/post/zm.findmulticolor/

紫猫插件是一款综合型插件,拥有诸多强大的功能命令,本文介绍的是超级图色系列中的超级多点找色命令。

超级图色系列命令用法有点类似于面向对象编程中的封装、继承、多态特性。
传送门:
01. [独有]支持多组多点找色数据并返回找到的序号
02. 最简洁的参数
03. 最灵活的返回值
04. 限时循环实现查找动态画面
05. 找到后自动点击与延时
06. 找到后等待画面消失
07. 全自动智能调整相似度
08. 调试分析纠错利器
09. [特殊]强大的对象参数使用
10. 定制属于自己的默认值
楼主热帖
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 11:15:22 | 显示全部楼层

支持多组多点找色数据并返回找到的序号

按键自带的找图支持多图,找色支持多色,找字支持多字,唯独多点找色不支持多组数据!

但是现在我们可以通过超级多点找色实现了这个功能了!

实现方法非常简单,直接把所有多点数据都丢到命令参数里即可。

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次zm.Init  //初始化插件,只需执行一次

'通过按键抓抓采集多点找色里的颜色描述数据, 例如:
'第1组:"0000FF","157|-190|1592FF"
'第2组:"FFFFFF","-142|-4|0CBE00,-376|8|1592FF"
'第3组:"1592FF","-39|144|070203,199|60|0CB900,-128|42|393535"
'以相似度0.9的方式, 全屏查找以上3组多点找色数据
Dim ret
ret = zm.FindMultiColor("0000FF","157|-190|1592FF","FFFFFF","-142|-4|0CBE00,-376|8|1592FF","1592FF","-39|144|070203,199|60|0CB900,-128|42|393535")
If ret Then 
    TracePrint "找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
    TracePrint "没找到任何数据"
End If

'也可以将多组多点数据保存到数组中, 采用超级图色的对象参数实现查找
Dim 多点数据数组 = {"0000FF","157|-190|1592FF","FFFFFF","-142|-4|0CBE00,-376|8|1592FF","1592FF","-39|144|070203,199|60|0CB900,-128|42|393535"}
ret = zm.FindMultiColor(多点数据数组)
If ret Then 
    TracePrint "对象找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
    TracePrint "没找到任何数据"
End If

  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 12:39:15 | 显示全部楼层

最简洁的参数

新手刚看到超级图色系列命令的时候,肯定会觉得,我的天啊,这么多参数,好复杂之类的。

其实非常非常非常简单,因为它的绝大多数参数都是可选的,并且只要记住下面3点,就可以随意打乱参数顺序:
1. 若填写对象参数,则必须放在第一个参数位置。
2. 若填写范围参数,则范围参数必须在相似度参数与超时时间参数前面。
3. 若填写返回值参数,则不能放在第一个参数位置。

另外,如果觉得参数的省略默认值不满意,还可以通过zm.SetFindMultiColor()命令修改默认值!

就拿上面的查找多组多点颜色数据来讲,范围和相似度这些参数全部都被省略了,所以只填写了多点颜色数据就实现了多点找色功能,下面举几个简单例子。

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

Dim ret //定义返回值

//==============例子1==============//
'只填写多点数据参数, 其他参数全部用省略默认值
'范围默认是全屏
'相似度默认0.9
'方向默认从左到右,从上到下
ret = zm.FindMultiColor("1592FF", "-39|144|070203,199|60|0CB900,-128|42|393535")
If ret Then 
        TracePrint "找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
        TracePrint "没找到"
End If

//==============例子2==============//
'如果全屏查找不满意, 那么就加上范围参数
'实现在左上角100,200,右下角400,600范围内查找数据
ret = zm.FindMultiColor(100, 200, 400, 600, "1592FF", "-39|144|070203,199|60|0CB900")
If ret Then 
        TracePrint "找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
        TracePrint "没找到"
End If

//==============例子3==============//
'觉得相似度太低, 那么就加上相似度参数
'实现相似度1.0方式查找数据
ret = zm.FindMultiColor("1592FF", "-39|144|070203,199|60|0CB900", 1.0)
If ret Then 
        TracePrint "找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
        TracePrint "没找到"
End If

//==============例子4==============//
'觉得范围与相似度都要改动, 那么就都写上
'实现在左上角100,200,右下角400,600范围内以相似度1.0方式查找数据
ret = zm.FindMultiColor(100, 200, 400, 600, "1592FF", "-39|144|070203,199|60|0CB900", 1.0)
If ret Then 
        TracePrint "找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
        TracePrint "没找到"
End If

//==============例子5==============//
'参数多了,顺序记不住?那么就随意填写吧, 只需注意以下几点即可:
'1. 若填写对象参数, 则必须放在第一个参数位置
'2. 若填写范围参数, 则范围参数必须在相似度参数与超时时间参数前面
'3. 若填写返回值参数, 则不能放在第一个参数位置
'以下功能还是实现在左上角100,200,右下角400,600范围内以相似度1.0方式查找数据
ret = zm.FindMultiColor("1592FF", "-39|144|070203,199|60|0CB900", 100, 200, 400, 600, 1.0)
If ret Then 
        TracePrint "找到了, 序号=", ret(0), ", x=", ret(1), ", y=", ret(2)
Else 
        TracePrint "没找到"
End If


  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 16:03:19 | 显示全部楼层

最灵活的返回值

我们不仅把参数玩出了新花样,而且还对返回值做了进一步优化。

你可以用等于号对返回值进行赋值,也可以将返回值写到参数中。

无论你喜欢用哪一种写法,都可以体验到最灵活的代码。

[按键精灵] 纯文本查看 复制代码
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
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 17:52:00 | 显示全部楼层

限时循环实现查找动态画面

脚本中查找的时机很重要,有时候屏幕上还没出现这画面,你就开始查找的话,肯定找不到。

但是如果加延时后再查找的话,效率就太慢了。

这时候就需要限时循环查找登场了,他可以在指定时间内不断的查找,如果找到就立即停止查找,否则等超时后自动停止并返回没有找到。

另外,当你想查找一些动态变化的界面时,也可以使用本功能,因为在查找的瞬间,画面是固定的,只要循环查找过程中,找到任何一个数据,都表示找到动态画面了。

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

Dim tMul() '定义默认返回数组
zm.SetFindPic {"ret":tMul, "showlog":"显示"} '设置默认返回值与显示日志

'在5000毫秒内不断查找多点颜色
'只要找到了, 就立即返回结果
If zm.FindMultiColor("0000FF", "157|-190|1592FF", 5000, tMul) Then 
        TracePrint "找到了, 序号=", tMul(0), ", x=", tMul(1), ", y=", tMul(2)
Else 
        TracePrint "没找到任何数据"
End If
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 17:52:00 | 显示全部楼层

找到后自动点击与延时

一般我们查找后常见的操作都是点击,所以本插件集成了自动点击功能。

更加强大的地方是,除了可以点击找到的坐标外,还可以点击偏移坐标、固定坐标、混合坐标、防检测随机坐标。

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

zm.SetFindMultiColor {"showlog":"显示"} '设置默认显示日志
 
//================例子1================//
'参数True表示开启点击找到坐标的功能, 默认为直接点击找到的坐标
'例如:找到坐标为(188,288), 则点击(188,288)
If zm.FindMultiColor("0000FF", "157|-190|1592FF", True) Then
    TracePrint "找到并自动点击"
Else
    TracePrint "没有找到, 不执行点击"
End If
 
//================例子2================//
'参数"+10,-20"表示找到后, 点击找到坐标x+10,坐标y-20的位置, 也就是偏移点击
'例如:找到坐标为(188,288), 则点击(188+10,288-20)
If zm.FindMultiColor("0000FF", "157|-190|1592FF", True, "+10,-20") Then
    TracePrint "找到并自动点击"
Else
    TracePrint "没有找到, 不执行点击"
End If
 
//================例子3================//
'参数"100,200"表示找到后, 点击固定坐标100,200的位置
'例如:找到坐标为(188,288), 则固定点击(100,200)
If zm.FindMultiColor("0000FF", "157|-190|1592FF", True, "100,200") Then
    TracePrint "找到并自动点击"
Else
    TracePrint "没有找到, 不执行点击"
End If
 
//================例子4================//
'参数"+0,-20,3000"表示找到后, 点击找到坐标x+0,坐标y-20的位置(也就是x不变, y移动-20)
'例如:找到坐标为(188,288), 则点击(188+0,288-20)
'点击后再延时3000毫秒
If zm.FindMultiColor("0000FF", "157|-190|1592FF", True, "+0,-20,3000") Then
    TracePrint "找到并自动点击"
Else
    TracePrint "没有找到, 不执行点击"
End If
 
//================例子5================//
'参数"100,+200,1500"表示找到后, 点击固定坐标x100,找到坐标y+200的位置(也就是x固定100,y移动200)
'例如:找到坐标为(188,288), 则点击(100,288+200)
'点击后再延时1500毫秒
If zm.FindMultiColor("0000FF", "157|-190|1592FF", True, "100,+200,1500") Then
    TracePrint "找到并自动点击"
Else
    TracePrint "没有找到, 不执行点击"
End If
 
//================例子6================//
'为了防止被行为检测发现用脚本挂机, 可以通过zm.SetTap()设置随机范围点击坐标
'设置点击坐标的随机浮动值, x浮动在[-10,15], y浮动在[5,20]
'举个例子, 点击坐标100,200时, x随机范围是[100-10, 100+15], y随机范围是[200+5, 200+20]
'该浮动设置对所有超级图色命令有效, 对点击参数True和点击坐标参数也都有效
zm.SetTap {"minx":-10, "maxx":15, "miny":5, "maxy":20}
If zm.FindMultiColor("0000FF", "157|-190|1592FF", True) Then
    TracePrint "找到并随机点击[x-10,x+15],[y+5,y+20]"
Else
    TracePrint "没有找到, 不执行点击"
End If
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 21:05:06 | 显示全部楼层

找到后等待画面消失

一般当我们找到坐标,执行完点击,画面应该会发生变化,如果这时候再去查找变化前的画面,那么肯定是找不到的。

所以等待画面消失可以用于验证点击是否成功。

另外,有时候我们可能需要统计在变化的画面中,某个画面出现多少次,那么也可以利用这个等待画面消失功能来计算。

它的返回结果保存在clear键名中,返回值与返回参数都有该键。

当没找到时,返回键值为null,如果找到了并且也消失了,那么返回键值为true,否则为false。

可能比较拗口,下面以代码来演示

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

Dim tMul() '定义默认返回数组
zm.SetFindMultiColor {"ret":tMul, "showlog":"显示"} '设置默认返回值与显示日志
 
//================例子1================//
'参数-2表示开启等待消失功能, 填写-1为禁用该功能
'默认等待消失超时时间为-2000, 即2000毫秒
If zm.FindMultiColor("0000FF", "157|-190|1592FF", tMul, True, -2) Then
    If tMul["clear"] Then 
            TracePrint "找到后点击, 并且画面已发生变化"
    Else
            TracePrint "找到后点击, 但是画面未发生变化"
    End If
Else
    TracePrint "没有找到, 不执行点击, 不等待消失"
End If

//================例子2================//
'参数2000表示限时2秒内查找, 参数-2表示开启等待消失, 参数-5000表示消失超时5秒
'以下功能为统计某画面出现后消失次数
Dim counts = 0 '定义出现次数
Do
        If zm.FindMultiColor("0000FF", "157|-190|1592FF", 2000, tMul, -2, -5000) Then
            If tMul["clear"] Then 
                    counts = counts + 1
                    TracePrint "找到了, 并且5秒消失了, 当前出现后消失次数", counts
            Else
                    TracePrint "找到了, 但是持续时间超过5秒未消失, 当前出现后消失次数", counts
            End If
        Else
            TracePrint "2秒内没有找到, 不执行点击, 不等待消失, 当前出现后消失次数", counts
        End If
Loop
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 21:17:36 | 显示全部楼层

全自动智能调整相似度

在脚本参数中,相似度参数永远是模糊的,无法计算准确合适的相似度值,只能凭借经验去填写。

如果相似度过高了,会导致查找不到坐标,但是如果太低了,又会找到不符合要求的坐标,非常烦恼。

我们的超级图色命令针对这一现象,加入了智能相似度的功能,帮你在指定范围的相似度内找到最佳相似度并返回坐标!

它的参数格式为"最小相似度-最大相似度-步长",其中步长默认为0.05,详见下面例子。

注意:该命令对查找效率有一定的影响,合理相似度范围与步长,可以提高效率。

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次zm.Init  //初始化插件,只需执行一次

Dim tMul() '定义默认返回数组
zm.SetFindMultiColor {"ret":tMul, "showlog":"显示"} '设置默认返回值与显示日志

//================例子1================//
'在相似度0.8到0.9中查找合适的相似度, 默认变化步长为0.05
If zm.FindMultiColor("0000FF", "157|-190|1592FF", 5000, tMul, "0.8-0.9") Then 
        TracePrint "找到了, 序号=", tMul(0), ", x=", tMul(1), ", y=", tMul(2)
Else 
        TracePrint "没找到任何数据"
End If

//================例子2================//
'在相似度0.7到1.0中查找合适的相似度, 变化步长为0.1
If zm.FindMultiColor("0000FF", "157|-190|1592FF", 5000, tMul, "0.7-1.0-0.1") Then 
        TracePrint "找到了, 序号=", tMul(0), ", x=", tMul(1), ", y=", tMul(2)
Else 
        TracePrint "没找到任何数据"
End If
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 21:41:23 | 显示全部楼层

调试分析纠错利器

开发脚本过程中,TracePrint的调试输出必不可少,但是每次找图命令后面都加一个输出就太麻烦了,不加又不好分析代码。

超级图色提供详细的内置日志输出显示功能,可以让我们很直观的看到脚本每次查找的结果,方便查找出错的原因。

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

//================例子1================//
'可以直接用TracePrint()调用超级图色命令输出返回结果
'但是这种输出不够详细直观, 并且不便用于赋值或者判断
'注意: 这里不能有等于号, 等于号在这里是比较是否相等的意思, 并非赋值变量!
TracePrint zm.FindMultiColor("0000FF", "157|-190|1592FF")
 
//================例子2================//
'参数"显示"表示开启内置日志输出, 也可以使用"show"来代替
'可以通过输出内容查看详细返回结果与参数数据
zm.FindMultiColor "0000FF", "157|-190|1592FF", "显示"
 
//================例子3================//
'每次都填写"显示"会很麻烦, 可以通过zm.SetFindMultiColor()设置为默认显示日志
'也可以使用zm.SetShowLog()开启所有超级图色的日志显示
zm.SetFindMultiColor {"showlog":"显示"}
zm.FindMultiColor "0000FF", "157|-190|1592FF"
'如果开启后, 某些查找不想显示输出, 那就选择"隐藏", 也可以填写"hide"
zm.FindMultiColor "0000FF", "157|-190|1592FF", "隐藏"
 
//================例子4================//
'默认输出格式会比较混乱, 不方便识别对应代码, 所以我们可以加入备注参数
'备注参数格式为@开头的字符串, 如果填写@@的话, 还会浮窗显示日志
'注意, 只有开启日志输出显示后, 备注才有效
zm.FindMultiColor "0000FF", "157|-190|1592FF", "@寻找史莱姆"
zm.FindMultiColor "0000FF", "157|-190|1592FF", "@@在浮窗显示"
 
//================例子5================//
'除了备注可以美化输出外, 也可以指定输出行号来对应代码
'行号参数格式以_开头, 后面跟数字行号
'该参数使用局限性较大, 因为如果前面代码变动导致行号变化, 那么就要手动修改行号参数
zm.FindMultiColor "0000FF", "157|-190|1592FF", "_34"
  • 打卡等级:开宗立派

1087

主题

2141

回帖

4335

积分

院长

鲜花
9
猫粮
7444
QQ
 楼主| 发表于 2018-2-14 22:06:34 | 显示全部楼层

**强大的对象参数使用**

特殊之处:超级多点找色的多点颜色数据参数是属于追加,并非覆盖!

在小脚本开发过程中,命令都是信手拈来,参数也是随手填写的。

但是开发大型脚本的时候,必须要管理好每一个变量数据,如果所有代码都分散在各行中,想要查找并修改某一处代码,是很困难的。

这里我们可以使用对象参数,把每一条的图色参数都收集起来,存放在table数组中,然后命令直接使用这个table数组作为参数使用,我们称之为对象参数。

将对象作为第一个参数传入后,如果后面还跟其他参数,那么除了多点数据参数是追加外,其他参数都是覆盖形式处理的。

注意:对象参数必须放在第一个参数位置!

[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次
 
Dim tMul() '定义默认返回数组
zm.SetFindMultiColor {"ret":tMul, "showlog":"显示"} '设置默认返回值与显示日志
 
//================例子21================//
'定义史莱姆对象数组, 将超级图色要用到的所有参数都丢进来, 顺序规则与命令参数相同
Dim 史莱姆 = {"@找史莱姆","0000FF", "157|-190|1592FF", 100,200,500,600,true,"0.9-1.0",5000}
If zm.FindMultiColor(史莱姆) Then
    TracePrint "找到了, 序号=" & tMul(0), ", x=" & tMul(1), ", y=" & tMul(2), ", 首点颜色=" & tMul(3)
Else
    TracePrint "没找到"
End If
 
//================例子22================//
'定义对象使用后, 如果个别代码需要改动部分参数, 可以直接在命令中加入对应参数
'但是多点颜色参数属于追加的
'下面代码实现了关闭点击, 修改范围, 查找"0000FF"和"1592FF"两组多点颜色
Dim 黑龙 = {"@找黑龙", "0000FF", "157|-190|1592FF", true, "0.9-1.0", 5000}
If zm.FindMultiColor(黑龙, 100, 300, 500, 700, false, "1592FF", "-39|144|070203,199|60|0CB900") Then
    TracePrint "找到了, 序号=" & tMul(0), ", x=" & tMul(1), ", y=" & tMul(2), ", 首点颜色=" & tMul(3)
Else
    TracePrint "没找到"
End If
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-12-2 15:34

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表