紫猫学院社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 63854|回复: 20

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

[复制链接]

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

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

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

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

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

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

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

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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

回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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


回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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
回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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
回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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
回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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
回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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
回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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"
回复

使用道具 举报

526

主题

1776

帖子

1776

积分

院长

Rank: 9Rank: 9Rank: 9

猫粮
3060
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, 2020-2-26 23:56

Powered by Discuz! X3.4

© 2012-2018 紫猫编程学院

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