zm.FindStrYouTu 优图找字

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

功能

使用优图AI识别来实现找字功能, 对横屏识别效果不佳, 不需要字库, 字体颜色之类的参数, 必须先使用zm.OcrYouTuInit 初始化优图OCR进行初始化后使用, 默认参数使用zm.SetFindStr 设置FindStr默认参数修改

语法

结果 = zm.FindStrYouTu([对象][x1, y1, x2, y2, ]文字[, 查找超时][, 是否点击][, 点击坐标][, 显示日志][, 输出行号][, 备注][, 等待消失][, 消失超时][, 参数返回值])

参数

参数 数据类型 解释
对象 _表_ 可选, 把所有参数放入一个table中传入, 若后面跟有其他参数, 则会对应覆盖对象数据
x1 数值型 可选, 查找范围的左上角x坐标, 省略默认为0
y1 数值型 可选, 查找范围的左上角y坐标, 省略默认为0
x2 数值型 可选, 查找范围的右下角x坐标, 省略默认为0
y2 数值型 可选, 查找范围的右下角y坐标, 省略默认为0
文字 字符串 可选, 查找的文字内容, 多个文字用“|”隔开, 可以用$开头表示文字参数
超时时间 数值型 可选, 最大查找耗时, 单位毫秒, 如果一次找不到, 可以限时循环查找, 省略默认为1
是否点击 布尔型 可选, 是否需要找到后自动点击该坐标, 支持[true, false]这两个值, 省略默认为false
点击坐标 字符串 可选, 点击修改后的坐标, 格式"±x,±y,t", 省略为找到的坐标, t是可选的, 表示点击后延时毫秒, 例如"100,100"表示固定点击坐标100,100, "+10,-10"表示偏移点击找到的x+10,y-10位置, "10,10,2000"表示点击10,10坐标后延时2000毫秒, 该参数会受zm.SetTap 设置超级点击影响
显示日志 字符串 可选, 输出调试日志信息, 省略默认为”隐藏”, 支持["显示","隐藏","show","hide"]这几个值
输出行号 字符串 可选, 格式为"_"开头后跟行号, 比如"_10"表示第10行代码, 输出调试信息窗口显示第几行代码, 需开启显示日志才有效
备注 字符串 可选, 格式为"@"开头后跟内容, 比如"@拾取屠龙刀", 输出调试信息窗口就会增加这条内容, 若连续两个"@@"则表示在浮窗中显示信息, 需要开启显示日志才有效
等待消失 数值型 可选, 填写-1禁用或-2启用, -2表示找到后或点击后继续查找, 直到找不到或消失超时, 省略默认为-1, 启用后返回值将有miss键名, 值为true时表示成功消失, 值为false表示未消失
消失超时 数值型 可选, 填写负数, 表示等待消失的超时时间, 单位毫秒, 注意必须填写负数, 不可填-1和-2, 省略默认为-2000
参数返回值 _表_ 可选, 只能传入数组变量名, 用于保存查找结果, 格式与命令返回值相同

返回值

_表_, 找到返回结果保存到表中, 格式为{id, x, y, name, "id":id, "x":x, "y":y, "name":name, "miss":miss}, 没找到或出错返回null, 使用方法请看示例

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次

If zm.OcrYouTuInit("请修改成你的AppID", "请修改成你的AppKey") Then
TracePrint "设置优图AI识别成功"
Else
TracePrint "设置优图AI识别失败"
End If

Dim ret

//--------------------初级用法--------------------//
//默认全屏查找"紫猫学院"这4个字, 任何颜色都可以
ret = zm.FindStrYouTu("紫猫学院")
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"]
Else
TracePrint "没有找到"
End If

//--------------------中级用法--------------------//
Dim 返回数组()
//参数返回值必须是任意数组的变量名, 注意括号写法
//范围省略默认为全屏, 若填写, 则4个数字必须全写
If zm.FindStrYouTu(100, 200, 300, 400, "紫猫学院", 返回数组) Then
TracePrint "可以用以下3种格式获取返回值"
TracePrint "找到序号=" & 返回数组(0), "x=" & 返回数组(1), "y=" & 返回数组(2), "文字=" & 返回数组(3)
TracePrint "找到序号=" & 返回数组[1], "x=" & 返回数组[2], "y=" & 返回数组[3], "文字=" & 返回数组[4]
TracePrint "找到序号=" & 返回数组["id"], "x=" & 返回数组["x"], "y=" & 返回数组["y"], "文字=" & 返回数组["name"]
Else
TracePrint "没有找到"
End If

//--------------------高级用法--------------------//
//对象后面的可选参数全部可以打乱顺序任意填写或省略, 只要数据类型与格式正确即可
//这句代码意思如下:
//在范围(100,200,300,400)里, 限时30000毫秒内循环查找("紫猫|学院")
//找到任何一个后退出循环查找, 然后点击找到的坐标(True), 并将找到的序号与坐标结果保存到数组变量(ret)与(返回数组)中
//同时开启日志的输出("显示")功能, 在当前脚本第("_40")行输出备注("@怪物1"), 查找结果与其他参数信息
ret = zm.FindStrYouTu(100, 200, 300, 400, "紫猫|学院", 30*1000, True, "显示", "@怪物1", 返回数组, "_40")
If ret Then
TracePrint "找到了"
Else
TracePrint "没有找到"
End If

//--------------------对象用法--------------------//
//可以把所有参数放到一个表中, 可选参数一样可以打乱顺序任意填写或省略
//对象参数必须填写在第一个参数位置
Dim 史莱姆 = {"紫猫|学院", True, "显示", "@攻击史莱姆", 返回数组, "_36"}
zm.FindStrYouTu 史莱姆

//--------------------修改默认值--------------------//
Dim IXYs()
//设置默认参数返回值IXYs, 若命令不填写参数返回值, 则默认保存在该变量中
//设置默认日志输出为显示状态, 后面所有 zm.FindStrYouTu() 都默认输出调试信息
//更多修改默认设置详见 zm.SetFindStr() 命令帮助
zm.SetFindStr {"ret":IXYs, "showlog":"显示"}
If zm.FindStrYouTu("喵星人") Then
TracePrint "可以用以下3种格式获取返回值"
TracePrint "找到序号" & IXYs(0), "x=" & IXYs(1), "y=" & IXYs(2), "文字=" & IXYs(3)
TracePrint "找到序号" & IXYs[1], "x=" & IXYs[2], "y=" & IXYs[3], "文字=" & IXYs[4]
TracePrint "找到序号" & IXYs["id"], "x=" & IXYs["x"], "y=" & IXYs["y"], "文字=" & IXYs["name"]
Else
TracePrint "没有找到"
End If

备注

  • 本命令调用腾讯优图OCR的识别功能, 与百度云识别相比, 目前优图OCR完全免费使用
  • 本命令只适合正常屏幕方向使用, 横屏情况推荐使用zm.FindStrBaiDu 百度云找字
  • 获取优图AppID和AppKey的步骤:
    • 前往腾讯AI官网注册并登录
    • 打开控制台
    • 点击创建应用, 并输入相关资料, 记得勾选全部OCR接口
    • 查看刚刚创建的应用, 就可以查到AppID和AppKey
  • V3.1839: 加入命令
  • V3.1849: 支持超级缩放