- 前言
- iOS免越狱使用教程(必看)
- 全局变量
- 触摸命令
- 颜色命令
- 图像命令
- 其他命令
- 设备命令
- 智图UI API (请勿测试,未开发完成)
- json
- UI.创建
- UI.显示
- UI.设置背景颜色
- UI.设置显示范围
- UI.设置ID
- UI.删除
- UI.设置字体尺寸
- UI.设置字体加粗
- UI.设置字体样式
- UI.设置参数
- UI.设置滑动范围
- UI.设置滑动指定位置
- UI.设置按钮标题
- UI.设置按钮已选择标题
- UI.设置按钮标题颜色
- UI.设置已选择标题颜色
- UI.设置按钮点击事件
- UI.设置按钮选择状态
- UI.设置按钮图片
- UI.设置按钮已选择图片
- UI.设置标签文本
- UI.设置标签文本颜色
- UI.设置单行编辑框边框风格
- UI.设置单行编辑框提示文字
- UI.设置单行编辑框文本颜色
- UI.设置单行编辑框文本密文
- UI.设置单行编辑框键盘类型
- UI.设置多行编辑框代理函数
- UI.设置多行编辑框文本
- UI.获取编辑框文本
- UI.获取父视图
- UI.获取屏幕尺寸
- UI.获取屏幕分辨率
- UI.获取字体尺寸
- UI.获取ID
- UI.获取显示范围
- UI.获取背景颜色
- UI.获取参数
- UI.获取按钮选择状态
- UI.录制按钮
- UI.设置UI阻塞
- UI.设置退出UI阻塞
智图脚本
引擎版本:1.0.0(15)
-
前言
智图脚本使用 Lua 语言进行编写,支持Lua的所有语法与基本函数,配合智图脚本特有的函数命令,实现找图、找色、触摸等高级功能。
智图脚本兼容叉叉脚本,编写脚本前请先学习 Lua 基本语法 和 叉叉脚本。 - 叉叉脚本入门教程
-
iOS免越狱使用教程(必看)
- iOS手机鼠标设置(鼠标显示功能、鼠标跟踪速度)
- 硬件设备配网教程(初始密码:00000000)
- 硬件设备手机测试
- git和github代码托管教程
全局变量
| 变量名 | 类型 | 说明 | | :—-: | :—-: | :—-: | | ZHITU_home | 整数型 | 0 - 竖屏 ,1 - 横屏 | | ZHITU_width | 整数型 | 当前手机分辨率宽(竖屏) | | ZHITU_height | 整数型 | 当前手机分辨率高(竖屏) | | ZHITU_KAIFAZHE | 布尔值型 | 开发者模式 - true,普通模式 -false | | ZHITU_KAIFAZHE_IMG | 布尔值型 | 允许发送图片 - true,禁止发送图片 - false | | ZHITU_KAIFAZHEPC | 文本型 | 电脑IP地址 | | ZHITU_TABLE_IP | 文本型 | 硬件设备IP地址 | | ZHITU_TABLE_POST | 整数型 | 硬件设备TCP端口 - 4444(默认) | | ZHITU_TABLE_X | 整数型 | 当前鼠标位置X | | ZHITU_TABLE_Y | 整数型 | 当前鼠标位置Y | | ZHITU_touchinit | 整数型 | 0 - 不初始化,1 - 初始化鼠标位置 | | ZHITU_path | 文本型 | 项目main.lua所在iOS目录(每次重启都会变) | | ZHITU_HTTP_response | 整数型 | HTTP状态码 成功 = 200 | | ZHITU_HTTP_data | 文本型 | HTTP 返回成功 data数据 | | ZHITU_HTTP_Error | 文本型 | HTTP 返回失败 报错信息 |
触摸命令
init 初始化
函数功能:初始化屏幕取色方向、鼠标位置
返回值:无
语法说明:init(appid, rotate)
| 参数 | 类型 | 说明 |
|---|---|---|
| appid | 文本型 | 只为兼容叉叉,暂时没有任何意义 |
| rotate | 整数型 | 屏幕方向,0 - 竖屏, 1 - Home键在右边 |
脚本实例:
init("0",0); --竖屏 取色时用的方向init("0",1); --横屏 home 在右 取色时用的方向
原理介绍:
1.截图统一是竖屏,init(“0”,1) 表示将自动转换横屏坐标成竖屏。init(“0”,0)为不转换。 2.涉及函数:findColor、findColor_vs、getColorRGB
touchDown 鼠标按下
函数功能:发送鼠标蓝牙指令先移动,再按下事件
返回值:无
语法说明:touchDown(i, x, y)
| 参数 | 类型 | 说明 |
|---|---|---|
| i | 整数型 | 兼容叉叉,没有作用 |
| x, y | 整数型 | 屏幕坐标 |
脚本实例:
touchDown(1,100,100)
mSleep(50)
touchMove(1,100,100)
mSleep(50)
touchUp(1,100,100) --鼠标抬起
注意事项:
1.点击位置与初始化位置过远,移动需要一点时间,内置
mSleep(100)延时100毫秒后才会按下 2.内置 TCP 通讯,如果设备断开连接,会一直循环直到连接成功.
touchMove 鼠标移动
函数功能:发送鼠标蓝牙指令移动事件
返回值:无
语法说明:touchMove(i, x, y)
| 参数 | 类型 | 说明 |
|---|---|---|
| i | 整数型 | 兼容叉叉,没有作用 |
| x, y | 整数型 | 屏幕坐标 |
touchDown(1,100,100)
mSleep(50)
touchMove(1,150,150) --每次运行都会自动进行鼠标位置初始化
mSleep(100) --移动需要时间,延时越久越稳
touchUp(1,150,150) --鼠标抬起 + 初始化
--移动距离过远,需要分段使用
touchDown(1,100,100)
mSleep(50)
touchMove(1,150,150) --每次运行都会自动进行鼠标位置初始化
mSleep(100) --移动需要时间,延时越久越稳
touchMove(1,200,200)
mSleep(100) --移动需要时间,延时越久越稳
touchUp(1,200,200) --鼠标抬起 + 初始化
注意事项:
1.使用鼠标移动,全局变量
ZHITU_touchinit = 12.移动可能会导致鼠标结束的位置不确定性,内置初始化鼠标位置 3.内置 TCP 通讯,如果设备断开连接,会一直循环直到连接成功.
touchUp 鼠标抬起
函数功能:发送鼠标蓝牙指令抬起事件,会进行一次初始化(默认左下角)
返回值:无
语法说明:touchUp(i, x, y)
| 参数 | 类型 | 说明 |
|---|---|---|
| i | 整数型 | 兼容叉叉,没有作用 |
| x, y | 整数型 | 兼容叉叉,没有作用 默认固定参数 x=0,y=0 原地抬起 |
touchUp(1,0,0) --鼠标抬起 + touchinit() 自动初始化
注意事项:
1.
ZHITU_touchinit = 1会调用touchinit(1,-3000,3000)初始化鼠标位置 2.ZHITU_touchinit = 0不会调用touchinit(1,-3000,3000)初始化鼠标位置 3.内置 TCP 通讯,如果设备断开连接,会一直循环直到连接成功. 4.需要注意的是在使用 touchUp 函数时,中间一定要插入一定的延时,建议大于 200毫秒,否则可能会出现点击无效等异常情况。
颜色命令
findColor 区域多点找色(推荐使用)
函数功能:在指定区域,根据颜色以及其周边点的颜色,寻找符合条件的点的坐标**(相对坐标)**,第一个颜色点使用模糊算法查找。
返回值:x, y
| 返回值 | 类型 | 说明 |
|---|---|---|
| x,y | 整数型 | 找到的点第一个坐标,如未找到则返回 -1,-1 |
语法说明:
x, y = findColor(
{left, top, right, bottom},
“x0|y0|color0,x1|y1|color1,x2|y2|color2,…”,
degree,
hdir,
vdir,
priority
)
x, y = findColor(
{left, top, right, bottom},
“x0|y0|color0,x1|y1|color1(|degree1),x2|y2|color2(-offset2),…”,
degree,
hdir,
vdir,
priority
)
x, y = findColor(
{left, top, right, bottom},
{
{x = x0,y = y0,color = color0},
{x = x1,y = y1,color = color1,(degree = degree1)},
{x = x2,y = y2,color = color2,(offset = offset2)},
…
},
degree,
hdir,
vdir,
priority
)
| 参数 | 类型 | 说明 |
|---|---|---|
| left, top | 整数型 | [必填]寻找区域左上角顶点屏幕坐标 |
| right, bottom | 整数型 | [必填]寻找区域右下角顶点屏幕坐标 |
| x0,y0 | 整数型 | [必填]起始点坐标值,填写0,0时使用相对坐标体系,填写非0坐标则根据所填绝对坐标换算 |
| color | 整数型 | [必填]起始点颜色的十六进制颜色值 |
| x1,y1 | 整数型 | [选填]偏移位置的坐标值 |
| color1 | 整数型 | [选填]偏移位置需要匹配颜色的十六进制颜色值 |
| degree | 整数型 | [必填]全局找色精度,范围:1 ~ 100,当是100时为完全匹配 |
| hdir | 整数型 | [选填]水平搜索方向,0表示从左到右,1表示从右到左,默认为0 |
| vdir | 整数型 | [选填]垂直搜索方向,0表示从上到下,1表示从下到上,默认为0 |
| priority | 整数型 | [选填]搜索优先级,0表示水平优先,1表示垂直优先,默认为0 |
说明:
1.起始点坐标值填写0,0时,偏移位置坐标值使用相对坐标;填写为非0,0的坐标时,则认为偏移位置坐标为绝对坐标,找色时,将根据填写的绝对坐标换算出的相对坐标进行寻找。
2.偏移位置颜色的偏色值或精度可任意选用,同时填写了偏色值和精度时,将以偏色为准,忽略精度值。
3.个别偏移位置颜色偏色值或精度优先于全局找色精度,全局找色精度对未指定偏色或精度的颜色有效。
应用上述坐标写成多点找色脚本(以下6种任选1种):
- 相对坐标的写法: ```lua keepScreen(true);—开 搭配保持屏幕,可提高效率
x, y = findColor( {0, 0, 639, 959}, “0|0|0x181F85,29|1|0x00BBFE|90,103|-4|0x0B6BBE-0x050505,65|9|0x150972”) x, y = findColor( {0, 0, 639, 959}, { {x = 0, y = 0, color = 0x181F85}, {x = 29, y = 1, color = 0x00BBFE, degree = 90}, {x = 103, y = -4, color = 0x0B6BBE, offset = 0x050505}, {x = 65, y = 9, color = 0x150972} })
keepScreen(false);—关 搭配保持屏幕,可提高效率
- **绝对坐标的写法:**
```lua
keepScreen(true);--开 搭配保持屏幕,可提高效率
x, y = findColor(
{0, 0, 639, 959},
"268|802|0x181F85,297|803|0x00BBFE|90,371|798|0x0B6BBE-050505,333|811|0x150972")
x, y = findColor(
{0, 0, 639, 959},
{
{x = 268, y = 802, color = 0x181F85},
{x = 297, y = 803 color = 0x00BBFE, degree = 90},
{x = 371, y = 798 color = 0x0B6BBE, offset = 0x050505},
{x = 333, y = 811 color = 0x150972}
})
keepScreen(false);--关 搭配保持屏幕,可提高效率
- 偏色/精度值的写法:
```lua keepScreen(true);—开 搭配保持屏幕,可提高效率
—样式1 颜色-偏色 x, y = findColor({0, 0, 749, 1333}, “0|0|0xf12735-0x202002,387|-553|0x3eeb5d-0x555555,268|-148|0x2178fa”, 95, 0, 0, 0) if x > -1 then
end —样式1 颜色|相似度 x, y = findColor({0, 0, 749, 1333}, “0|0|0xf12735|80,387|-553|0x3eeb5d|75,268|-148|0x2178fa”, 95, 0, 0, 0) if x > -1 then
end
keepScreen(false);—关 搭配保持屏幕,可提高效率
- **关于搜索方向:**
| **hdir** | **vdir** | **priority** | **区域搜索路径** |
| :---: | :---: | :---: | :---: |
| 0 | 0 | 0 | 左上角👉右上角👉左下角👉右下角 |
| 0 | 0 | 1 | 左上角👉左下角👉右上角👉右下角 |
| 0 | 1 | 0 | 左下角👉右下角👉左上角👉右上角 |
| 0 | 1 | 1 | 左下角👉左上角👉右下角👉右上角 |
| 1 | 0 | 0 | 右上角👉左上角👉右下角👉左下角 |
| 1 | 0 | 1 | 右上角👉右下角👉左上角👉左下角 |
| 1 | 1 | 0 | 右下角👉左下角👉右上角👉左上角 |
| 1 | 1 | 1 | 右下角👉右上角👉左下角👉左上角 |
**注意事项:**<br />**1.未找到则返回 (-1, -1) ,所以找到时 x, y 均不等于 -1,~= 为不等于操作符,是 Lua 基本语法, 属于逻辑控制。**<br />**2.该代码应用过程中,建议使用"保持屏幕"优化找色速度。**<br />**3.颜色值的十六进制文本中,其顺序为RGB。**<br />**4.相对坐标为偏移位置坐标相对于第一个点的坐标,即用这个点的横坐标、纵坐标分别减去第一个点的横坐标、纵坐标,可以为负数。**<br />**5.使用此函数时精度参数设置过低或允许的偏色多大,会导致性能大幅下降。**
<a name="ECBG6"></a>
### findColors 高级区域多点找色
**函数功能:在指定区域,根据颜色以及其周边点的颜色,寻找符合条件的点的坐标****(相对坐标)****,第一个颜色点使用模糊算法查找。**<br />**返回值:point **<br />**返回的 table 为key-value的形式,如下:**<br />**point = {**<br />** {x = 100,y = 110},**<br />** {x = 200,y = 210},**<br />** {x = 300,y = 310},**<br />** ...**<br />**}**
| 返回值 | 类型 | 说明 |
| :---: | :---: | :---: |
| point | table型 | 以 table 形式返回所有符合条件的参照点的坐标,如未找到则返回的table为空表 |
**语法说明:**<br />**point = findColors(**<br />** {left, top, right, bottom},**<br />** "x0|y0|color0,x1|y1|color1,x2|y2|color2,...",**<br />** degree,**<br />** hdir,**<br />** vdir,**<br />** priority**<br />** )**<br />**point = findColors(**<br />** {left, top, right, bottom},**<br />** "x0|y0|color0,x1|y1|color1(|degree1),x2|y2|color2(-offset2),...",**<br />** degree,**<br />** hdir,**<br />** vdir,**<br />** priority**<br />** )**<br />**point = findColors(**<br />** {left, top, right, bottom},**<br />** {**<br />**{x = x0,y = y0,color = color0},**<br />**{x = x1,y = y1,color = color1,(degree = degree1)},**<br />**{x = x2,y = y2,color = color2,(offset = offset2)},**<br />**...**<br />**},**<br />** degree,**<br />** hdir,**<br />** vdir,**<br />** priority**<br />** )**<br />**参数说明:**<br />**与 findColor 区域多点找色 一致**<br />**脚本实例:**
```lua
point = findColors(
{0, 0, 639, 959},
0x181F85)
if #point ~= 0 then --如果找到符合条件的点
for var = 1, #point do
print(point[var].x..":"..point[var].y)
end
end
point = findColors(
{0, 0, 639, 959},
"0|0|0x181F85,29|1|0x00BBFE|90,103|-4|0x0B6BBE-050505,65|9|0x150972")
if #point ~= 0 then --如果找到符合条件的点
for var = 1, #point do
print(point[var].x..":"..point[var].y)
end
end
注意事项**:
高级区域多点找色函数目前最多支持返回99个。**
getColorRGB 获取颜色RGB值
函数功能:在指定区域,根据颜色以及其周边点的颜色,寻找符合条件的点的坐标(相对坐标),支持模糊查找
语法说明:color_r, color_g, color_b = getColorRGB(x, y)
| 返回值 | 类型 | 说明 |
|---|---|---|
| color_r, color_g, color_b | 整数型 | 该点颜色的RGB值 |
| 参数 | 类型 | 说明 |
|---|---|---|
| x,y | 整数型 | 获取颜色值的屏幕坐标 |
脚本实例:_
function 多点比色(color,s) --固定坐标 多点比色
s = s or 95 --相似度
s = math.floor(0xff*(100-s)*0.01) --浮点数
for var =1, #color do
local lr,lg,lb = getColorRGB(color[var][1],color[var][2]) --游戏颜色
local rgb = color[var][3] --脚本颜色
local r = math.floor(rgb/0x10000) --脚本颜色RGB
local g = math.floor(rgb%0x10000/0x100)
local b = math.floor(rgb%0x100)
if math.abs(lr-r) > s or math.abs(lg-g) > s or math.abs(lb-b) > s then --绝对值
return false
end
end
return true
end
--使用
local color = {
{540,498,0xffffff},
{519,235,0x0a67c9},
{607,238,0x0d6fd2}
}
keepScreen(true);--开 搭配保持屏幕,可提高效率
if 多点比色(color,95) then
print("找到")
end
keepScreen(false);--关
图像命令
keepScreen 保持屏幕
函数功能:在脚本中保持当前屏幕内容不变,多次调用取色、找色、截图、找图等函数时,直接调用保持的屏幕内容。该函数主要用于优化找图找色函数的效率。
语法说明:keepScreen(flag)
| 参数 | 类型 | 说明 |
|---|---|---|
| flag | 整数型 或 布尔值型 | 保持开关 0 - 关 1 - 开 |
脚本实例:
--不使用保持屏幕 100次找色
local a = mTime()
for i = 1,100 do
x, y = findColor({0, 0, 749, 1333},
"0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a",
95, 0, 0, 0)
if x > -1 then
print("找到x:"..x..",y:"..y)
break;
end
end
local b = mTime()
print("消耗时间:"..((b-a)/1000).."秒") --一共消耗24秒
--使用保持屏幕 100次找色
local a = mTime()
keepScreen(true)
--keepScreen(1)
for i = 1,100 do
x, y = findColor({0, 0, 749, 1333},
"0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a",
95, 0, 0, 0)
if x > -1 then
print("找到x:"..x..",y:"..y)
break;
end
end
keepScreen(false)
--keepScreen(0)
local b = mTime()
print("消耗时间:"..((b-a)/1000).."秒") --一共消耗1.5秒
其他命令
print 万能打印
(支持开发模式,端口:9999)
函数功能:控制台输出,开发者模式输出到电脑端
返回值:无
语法说明:print(…)
t={1,2,3}
print(t) --支持打印表
str=1
num=2
print(str,num) --支持多个参数,多个表同时打印
mSleep 延时(毫秒)
函数功能:发送系统等待事件
语法说明:mSleep(interval)
| 参数 | 类型 | 说明 |
|---|---|---|
| interval | 整数型 | 单位为毫秒,脚本暂停执行的时间长度 |
脚本实例:
延迟5秒
mSleep(5000);长按3秒
touchDown(1, 200, 300); --按下 mSleep(50); touchMove(1, 200, 300); mSleep(3000); --延迟 3 秒 touchUp(1, 200, 300); --抬起注意事项:
1.延迟函数一般是用来模拟人在界面上的操作,因此要考虑人在各种情况下的延迟、界面加载时的响应时间。 2.延迟间隔不可过短,当 interval <= 50 ms 时,延迟精确度大幅下降,interval > 100 ms (推荐)。 3.请勿将此函数用于长时间的精确计时。 4.1 秒 (s) = 1000 毫秒 (ms)。
lua_exit 退出脚本执行
http httpGET/httpPOST 网络请求
函数功能:发送httpGET请求/发送httpPOST请求
语法说明:Response,Data,Error = http(url, httpMethod, data, time)
| 返回值 | 类型 | 说明 |
|---|---|---|
| Response | 整数型 | 返回状态码 成功 = 200 |
| Data | 文本型 | 返回内容 |
| Error | 文本型 | 请求失败报错信息 |
| 参数 | 类型 | 说明 |
|---|---|---|
| url | 文本型 | 请求 URL |
| httpMethod | 文本型 | 请求类型:”POST” / “GET” |
| data | 文本型 | POST 发送内容,GET不需要 |
| time | 数值型(支持小数) | 超时时间,默认5秒 |
脚本实例:
local res,data,err = http("http://192.168.3.3:9999","POST","打印信息",2) --POST 发送到智图学院 PC端 打印输出 以实际电脑ip为准 端口:9999
print(res,data,err)
local res,data,err = http("http://www.baidu.com","GET") --GET
print(res,data,err)
base64encode 编码
函数功能:base64编码
语法说明:base64_str = base64encode(str)
base64decode 解码
函数功能:base64解码
语法说明:str = base64decode(base64_str)
设备命令
getScreenSize 获取屏幕分辨率(竖屏)
函数功能:获取手机屏幕竖屏的宽和高(像素)
语法说明:width,height = getScreenSize()
| 返回值 | 类型 | 说明 |
|---|---|---|
| width,height | 整数型 | 屏幕宽(竖屏),屏幕高(竖屏) |
mTime 获取Unix时间戳(毫秒)
函数功能:显示从1970年到现在经过的毫秒数
语法说明:t = mTime()
| 返回值 | 类型 | 说明 |
|---|---|---|
| t | 整数型 | 表示从1970年到现在经过的毫秒数 |
脚本实例:
--使用保持屏幕 100次找色
local a = mTime()
keepScreen(true)
for i = 1,100 do
x, y = findColor({0, 0, 749, 1333},
"0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,0|0|0xfffeff,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a,-55|0|0x1a091b,-56|75|0x1a091b,30|74|0x1f081c,-20|55|0x2e0620,42|-10|0x17091a",
95, 0, 0, 0)
if x > -1 then
print("找到x:"..x..",y:"..y)
break;
end
end
keepScreen(false)
local b = mTime()
print("消耗时间:"..((b-a)/1000).."秒") --一共消耗2秒
以下未开发完成,请勿测试
showUI 叉叉脚本自定义UI界面(请勿测试,还未开发完成)
函数功能:显示一个自定义的界面,用来接收用户相关的自定义配置。
返回值:ret,results
| 返回值 | 类型 | 说明 |
|---|---|---|
| ret | 整数型 | 返回用户按下的按钮 0 - 取消;1 - 确定 |
| results | table型 | 返回用户输入的多项数据 |
语法说明:showUI(ui_json)
| 参数 | 类型 | 说明 |
|---|---|---|
| ui_json | 文本型 或table型 | 自定义界面json格式字符串或table,或与main.lua目录下json文件名称 |
showUI("ui.json") --与main.lua同目录下
showUI({
--json 格式 table
})
showUI([[
--json 格式 string
]])
主视图
| 参数 | 类型 | 说明 |
|---|---|---|
| width | 整数型 | 屏幕物理尺寸 - 区域滑动宽度(非分辨率) |
| height | 整数型 | 屏幕物理尺寸 - 区域滑动高度(非分辨率) |
| cancelname | 文本型 | 取消 - 按钮名称 |
| okname | 文本型 | 确定 - 按钮名称 |
| bg | 文本型 | 背景图片文件名 “a.png” 与main.lua放在同一个目录下。 “str/b.jpg” 与main.lua内str文件夹下。 宽、高与width和height一致 |
| views | 文本型 | 数组则是界面上的全部控件,要根据views数组的长度来生成若干个可切换的tab |
{
"width" : "540", //自动适配当前屏幕
"height" : "960",
"cancelname" : "取消",
"okname" : "确定",
"views" : [
]
}
Page 页面选项卡
{
"text" : "基本设置",
"type" : "Page",
"views" : [
]
}
{
"cancelname" : "取消",
"okname" : "确定",
"views" : [
{
"text" : "基本设置",
"type" : "Page",
"views" : [
]
},
{
"text" : "基本设置2",
"type" : "Page",
"views" : [
]
}
]
}
RadioGroup 单选框
| 参数 | 类型 | 说明 |
|---|---|---|
| id | 文本型 | 不能重复,用户选择后点击确定返回该id |
| list | 文本型 | 单选框名称 |
| select | 文本型 | 默认选中值,单选框名称对应的key值,第一个为”0” |
| type | 文本型 | 单选框类型 RadioGroup |
| orientation | 文本型 | 水平布局 horizontal,垂直布局 vertical |
| color | 文本型 | 名称颜色(r, g, b) |
{
"id" : "RadioGroup1",
"list" : "单选框1,单选框2,单选框3",
"select" : "0",
"size" : 30,
"type" : "RadioGroup",
"orientation" : "horizontal",
"color" : "0,0,225"
}
脚本界面通过json格式存储 ,以下是一个包含所有控件及其属性的例子:
//ui.json 例子1
{
"width" : "540", //自动适配当前屏幕
"height" : "960",
"cancelname" : "取消",
"okname" : "确定",
"views" : [
{
"id" : "RadioGroup1",
"list" : "单选框1,单选框2,单选框3",
"select" : "0",
"size" : 30,
"type" : "RadioGroup",
"orientation" : "horizontal",
"color" : "0,0,225"
}
]
}
//ui.json 例子2
{
"width" : "540", //自动适配当前屏幕
"height" : "960",
"cancelname" : "取消",
"okname" : "确定",
"views" : [
{
"text" : "基本设置",
"type" : "Page",
"views" : [
{
"id" : "RadioGroup1",
"list" : "单选框1,单选框2,单选框3",
"select" : "0",
"size" : 30,
"type" : "RadioGroup",
"orientation" : "horizontal",
"color" : "0,0,225"
}
]
},
{
"text" : "基本设置2",
"type" : "Page",
"views" : [
{
"id" : "RadioGroup2",
"list" : "2单选框1,2单选框2,2单选框3",
"select" : "0",
"size" : 30,
"type" : "RadioGroup",
"orientation" : "horizontal",
"color" : "0,0,225"
}
]
}
]
}
LinearLayout 水平布局
| 参数 | 类型 | 说明 |
|---|---|---|
| id | 文本型 | id暂时没有作用 |
| width | 整数型 | 视图宽度,宽度不足会导致控件显示不全 |
| height | 整数型 | 视图高度,高度不足会导致控件显示不全 |
| type | 文本型 | 水平布局类型 LinearLayout |
| orientation | 文本型 | 默认:水平布局 horizontal,垂直布局 vertical |
| views | table型 | 可放置单选框,多选框,下拉框等 |
{
"id" : "group1",
"width" : 400,
"height" : 300,
"type" : "LinearLayout",
"views" : [
//LinearLayout 控件内的所有子控件都需要加入width属性指定宽度,如果没有width属性则按水平布局width计算
]
}
get_iPhone 获取iPhone型号(未发布)
函数功能:获取iPhone手机型号
返回值:string
| 返回值 | 类型 | 说明 |
|---|---|---|
| string | 字符型 | 返回的各种型号格式:https://www.jianshu.com/p/71904446adf9 |
语法说明:string = get_iPhone()
string = get_iPhone()
--string = "iPhone 8"
