智图脚本
引擎版本:1.0.0(15)

  • 智图脚本开发手册

    前言

      智图脚本使用 Lua 语言进行编写,支持Lua的所有语法与基本函数,配合智图脚本特有的函数命令,实现找图、找色、触摸等高级功能。
      智图脚本兼容叉叉脚本,编写脚本前请先学习 Lua 基本语法 和 叉叉脚本。

  • Lua语法基础教程

  • 叉叉脚本入门教程
  • 叉叉脚本开发手册

    iOS免越狱使用教程(必看)

  • 智图学院App 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键在右边

脚本实例:

  1. init("0",0); --竖屏 取色时用的方向
  2. 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 = 1 2.移动可能会导致鼠标结束的位置不确定性,内置初始化鼠标位置 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 退出脚本执行

函数功能:直接终止脚本

语法说明: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"

智图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阻塞