按键【第四篇】模块封装
随机数
随机数种子(Randomize)一定要放在函数外
Function 随机数(num1, num2) //要产生指定范围的随机整数,请使用以下公式: //Int((最大值 - 最小值 + 1) * Rnd() + 最小值) //例如产生num1到num2之间的随机数: If num1 > num2 Then 随机数 = Int(((num1 - num2 + 1) * Rnd()) + num2) Else 随机数 = Int(((num2 - num1 + 1) * Rnd()) + num1) End If End Function
随机延迟
Function 延迟(t) // 随机延迟 delay 随机数(t, t+100) End Function
随机点击
Function 点击(x, y) // 随机点击 Touch x + 随机数(-5,5), y + 随机数(-5,5), 随机数(10, 200) End Function
随机滑动
Function 滑动(x1, y1, x2, y2, t) // 随机滑动 TouchDown x1 + 随机数(-5, 5), y1 + 随机数(-5, 5) 延迟 t // 精准滑动: 两次滑动防止惯性 TouchMove x2 + 随机数(-5, 5), y2 + 随机数(-5, 5) 延迟 50 TouchMove x2 + 随机数(-5, 5), y2 + 随机数(-5, 5) 延迟 50 TouchUp End Function
找色块
Function 找色块(x1, y1, x2, y2, 颜色) 找色块 = GetColorNum(x1, y1, x2, y2, 颜色, 1) End Function
单点比色
Function 单点比色(x, y, 颜色) // 找到返回0,否则返回-1 单点比色 = False If CmpColor(x, y, 颜色, 1) = 0 Then 单点比色 = true End If End Function
多点比色
Function 多点比色(颜色组) // 找到返回1,否则返回0 // 颜色组(0):颜色 颜色组(1): 相似度 多点比色 = False // 格式:CmpColorEx(mul_color,sim) // 举例:CmpColorEx("300|500|FFFFFF|123456-102030,305|505|FFFFFF",0.9) If CmpColorEx (颜色组(0), 颜色组(1) ) = 1 Then 多点比色 = true End If End Function
高级版
Function 多点比色循环(颜色组, 次数) // 找到返回1,否则返回0 For 次数 * 10 多点比色循环 = False // 格式:CmpColorEx(mul_color,sim) // 举例:CmpColorEx("300|500|FFFFFF|123456-102030,305|505|FFFFFF",0.9) If CmpColorEx (颜色组(0), 颜色组(1) ) = 1 Then 多点比色循环 = true Exit For End If Delay 100 Next End Function
多点找色
Function 多点找色(颜色组, 模式) // 找到返回1,否则返回0 // 颜色组(0):颜色,模式:是否点击 多点找色 = False // 格式:FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY // 举例:FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY Dim intX,intY FindMultiColor 颜色组(0), 颜色组(1), 颜色组(2), 颜色组(3), 颜色组(4), 颜色组(5), 0, 颜色组(6), intX, intY If intX > -1 Then 多点找色 = true If 模式 = 1 Then 点击 intX,intY End If End If End Function
高级版
Function 多点找色循环(颜色组, 模式, 次数) // 找到返回1,否则返回0 // 颜色组(0):颜色,模式:是否点击 For 次数 * 10 多点找色循环 = False // 格式:FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY // 举例:FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY Dim intX,intY FindMultiColor 颜色组(0), 颜色组(1), 颜色组(2), 颜色组(3), 颜色组(4), 颜色组(5), 0, 颜色组(6), intX, intY If intX > -1 Then 多点找色循环 = true If 模式 = 1 Then 点击 intX,intY End If Exit For End If Next End Function
多点找色坐标
Function 多点找色坐标(颜色组) // 找到返回1,否则返回0 // 颜色组(0):颜色 dim 坐标 = Array(-1, -1) 多点找色 = False // 格式:FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY // 举例:FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY FindMultiColor 颜色组(0), 颜色组(1), 颜色组(2), 颜色组(3), 颜色组(4), 颜色组(5), 0, 颜色组(6), 坐标(0), 坐标(1) If 坐标(0) > -1 Then 多点找色坐标 = 坐标 End If End Function
找图
Function 找图(x1, y1, x2, y2, 图片, 模式) 找图 = False Dim intX, intY FindPic x1, y1, x2, y2, "Attachment:"&Replace(图片, "|", "|Attachment:") ","202020",0, 0.8, intX, intY If intX > -1 Then 找图 = True If 模式 = 1 Then 点击 intX,intY End If End If End Function
找图坐标
Function 找图坐标(x1, y1, x2, y2, 图片) dim 坐标 = Array(-1, -1) 找图坐标 = False FindPic x1, y1, x2, y2, "Attachment:"&Replace(图片, "|", "|Attachment:"),"202020",0, 0.8, 坐标(0), 坐标(1) If 坐标(0) > -1 Then 找图坐标 = 坐标(0), 坐标(1) End If End Function
插件

Import "zm.luae" //导入插件,只需执行一次 Randomize Function 找图坐标(x1, y1, x2, y2, 图片) dim 坐标 = Array(-1, -1) 找图坐标 = False FindPic x1, y1, x2, y2, "Attachment:" & Replace(图片, "|", "|Attachment:"), "202020", 0, 0.8, 坐标(0), 坐标(1) If 坐标(0) > -1 Then 找图坐标 = 坐标 End If End Function Function 找图循环(x1, y1, x2, y2, 图片, 模式, 次数) 找图循环 = False Dim intX, intY For 次数*10 FindPic x1, y1, x2, y2, "Attachment:"&Replace(图片, "|", "|Attachment:"), "202020",0, 0.8, intX, intY If intX > -1 Then 找图循环 = True If 模式 = 1 Then 点击 intX,intY End If Exit For End If Delay 100 Next End Function Function 找图(x1, y1, x2, y2, 图片, 模式) 找图 = False Dim intX, intY FindPic x1, y1, x2, y2, "Attachment:"&Replace(图片, "|", "|Attachment:"),"202020",0, 0.8, intX, intY If intX > -1 Then 找图 = True If 模式 = 1 Then 点击 intX,intY End If End If End Function Function 多点找色坐标(颜色组) // 找到返回1,否则返回0 // 颜色组(0):颜色 dim 坐标 = Array(-1, -1) 多点找色坐标 = False // 格式:FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY // 举例:FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY FindMultiColor 颜色组(0), 颜色组(1), 颜色组(2), 颜色组(3), 颜色组(4), 颜色组(5), 0, 颜色组(7), 坐标(0), 坐标(1) If 坐标(0) > -1 Then 多点找色坐标 = 坐标 End If End Function Function 多点找色循环(颜色组, 模式, 次数) // 找到返回1,否则返回0 // 颜色组(0):颜色,模式:是否点击 Dim intX,intY For 次数 * 10 多点找色循环 = False // 格式:FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY // 举例:FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY FindMultiColor 颜色组(0), 颜色组(1), 颜色组(2), 颜色组(3), 颜色组(4), 颜色组(5), 0, 颜色组(7), intX, intY If intX > -1 Then 多点找色循环 = true If 模式 = 1 Then 点击 intX,intY End If Exit For End If Next End Function Function 多点找色(颜色组, 模式) // 找到返回1,否则返回0 // 颜色组(0):颜色,模式:是否点击 多点找色 = False // 格式:FindMultiColor x1,y1,x2,y2,first_color,offset_color,dir,sim,intX,intY // 举例:FindMultiColor 0,0,0,0,"FFFFFF","4|1|2F9772-000000|123456-101010,3|7|378757",0,0.9,intX,intY Dim intX,intY FindMultiColor 颜色组(0), 颜色组(1), 颜色组(2), 颜色组(3), 颜色组(4), 颜色组(5), 0, 颜色组(7), intX, intY If intX > -1 Then 多点找色 = true If 模式 = 1 Then 点击 intX,intY End If End If End Function Function 多点比色循环(颜色组, 次数) // 找到返回1,否则返回0 For 次数 * 10 多点比色循环 = False // 格式:CmpColorEx(mul_color,sim) // 举例:CmpColorEx("300|500|FFFFFF|123456-102030,305|505|FFFFFF",0.9) If CmpColorEx (颜色组(0), 颜色组(1) ) = 1 Then 多点比色循环 = true Exit For End If Delay 100 Next End Function Function 多点比色(颜色组) // 找到返回1,否则返回0 // 颜色组(0):颜色 颜色组(1): 相似度 多点比色 = False // 格式:CmpColorEx(mul_color,sim) // 举例:CmpColorEx("300|500|FFFFFF|123456-102030,305|505|FFFFFF",0.9) If CmpColorEx (颜色组(0), 颜色组(1) ) = 1 Then 多点比色 = true End If End Function Function 单点比色(x, y, 颜色) // 找到返回0,否则返回-1 单点比色 = False If CmpColor(x, y, 颜色, 1) > -1 Then 单点比色 = true End If End Function Function 找色块(x1, y1, x2, y2, 颜色) 找色块 = GetColorNum(x1, y1, x2, y2, 颜色, 1) End Function Function 滑动(x1, y1, x2, y2, t) // 随机滑动 TouchDown x1 + 随机数(-5, 5), y1 + 随机数(-5, 5) 延迟 t // 精准滑动: 两次滑动防止惯性 TouchMove x2 + 随机数(-5, 5), y2 + 随机数(-5, 5) 延迟 50 TouchMove x2 + 随机数(-5, 5), y2 + 随机数(-5, 5) 延迟 50 TouchUp End Function Function 点击(x, y) // 随机点击 Touch x + 随机数(-5,5), y + 随机数(-5,5), 随机数(10, 200) End Function Function 延迟(t) // 随机延迟 delay 随机数(t, t+100) End Function Function 随机数(num1, num2) //要产生指定范围的随机整数,请使用以下公式: //Int((最大值 - 最小值 + 1) * Rnd() + 最小值) //例如产生num1到num2之间的随机数: If num1 > num2 Then 随机数 = Int(((num1 - num2 + 1) * Rnd()) + num2) Else 随机数 = Int(((num2 - num1 + 1) * Rnd()) + num1) End If End Function Function 随机数附近(val) // 左右偏差n元素 //要产生指定范围的随机整数,请使用以下公式: dim offset = 5 dim rnd_num = Rnd() If rnd_num > 0.5 Then 随机数附近 = Int(val + offset * rnd_num) Else 随机数附近 = Int(val - offset * rnd_num) End If End Function Function baiduOcr(x1, y1, x2, y2) zm.Init //初始化插件,只需执行一次 Dim APIKey="IAUexeHcOAIEzAkFvRUS7mkQ",SecretKey="Owe0kCeCn01Bb3UHK6NDE3vygpbpsn5f" Dim ret, t() //例子1: 设置默认通用文字识别 If Not zm.OcrBaiDuInit(APIKey, SecretKey) Then TracePrint "初始化设置百度云识别失败" EndScript End If ret = zm.OcrBaiDu(x1, y1, x2, y2) TracePrint "识别结果:", ret baiduOcr = ret End Function
谢谢