1 脚本精灵控制条

  为方便使用,脚本精灵所有的功能都集中在控制条上,控制条可任意拖动,缩放。并且不与其他应用或者游戏冲突,使用起来就像游戏自带的工具一样方便。
可随时切换脚本、测试脚本、导入脚本、播放脚本、录制脚本、截图等,不需要退出游戏。
	

1.1 改变控制条状态

  控制条分为两种状态:展开态、收缩态。在展开的状态下,点击控制条左边图标变为收缩态。
	
1.1.1 展开态
  1. 展开态下可以使用脚本精灵的各种功能,打开脚本精灵默认为展开态。
  2. 当前状态为收缩态时,只需要点击第一个按钮即可展开控制条

1.1.2 缩放态
  1. 缩放态下,控制条缩小到只有一个图标大小,主要目的是不影响下面的游戏或者应用的界面

1.2 脚本管理

  点击控制条的第二个按钮即可进入脚本管理面板,脚本分为二进制脚本和明文脚本,明文脚本一般为录制的脚本。
  二进制脚本是经过脚本精灵开发工具加密和压缩的脚本。脚本管理提供设置当前脚本、删除脚本、导入脚本、切换脚本等功能。
	
1.2.1 二进制脚本
  1. 二进制脚本是使用脚本精灵开发工具编译加密压缩后的脚本
  2. 点击一个脚本可打开管理选项,可以将其设置为当前脚本、长按删除或编辑该脚本

1.2.1 明文脚本
  1. 明文脚本是直接可以看见源代码的脚本,录制的脚本就是明文的
  2. 明文脚本保存在/sdcard/scriptelf/script下,导入脚本实际上就是复制脚本到该目录
  3. 点击一个脚本可打开管理选项,可以将其设置为当前脚本、长按删除或编辑该脚本

1.2.3 导入脚本
  1. 点击脚本管理面板的导入脚本按钮即可打开文件选择面板,你可以选择一个文件进行导入
  2. 建议使用脚本精灵开发工具进行远程管理和远程导入,比较方便

1.3 播放脚本

 控制条的第三个按钮为控制脚本播放的按钮,在播放前,先要设置一个当前脚本,明文脚本和二进制脚本都可以。
 点击播放后,可以选择播放一次或者循环播放。播放开始后播放按钮变为暂停按钮。播放结束后,重新变为播放按钮。
	
1.3.1 开始播放
  1. 选择一个明文脚本或者二进制脚本加载为当前脚本
  2. 点击控制条的第三个按钮即可播放
  3. 如果需要循环播放可在脚本代码内设置

1.3.2 播放一次
  1. 如果脚本默认播放一次,脚本仅会从头到尾执行一次,执行完后即停止播放

1.3.3 循环播放
  1. 选择循环播放,脚本从头到尾执行完后,又从头开始播放,直到用户点击停止播放按钮
  2. 循环播放需要自己在脚本中设置,由于脚本都是自己编写,所以自己控制循环比较灵活

1.3.4 停止播放
  1. 点击停止按钮,即可停止当前的脚本

1.4 录制脚本

  1. 脚本精灵可将用户的操作记录下来,保存为脚本文件
  2. 用户可播放此脚本,以完成动作回放
  3. 可循环播放
  4. 用于做简单的重复的动作有很好的效果
1.4.1 开始录制
  1. 点击控制条的第五个按钮即可开始录制脚本
  2. 开始录制后,将会隐藏控制条
  3. 此过程用户的动作都将会被记录下来,包括延迟操作

1.4.1 停止录制
  1. 在已经开始录制的状态下,按下音量下键即可停止录制
  2. 停止录制后,控制条将重新显示出来

1.4.1 保存脚本
  1. 停止录制后,输入脚本名称,点击保存即可将录制好的脚本保存在明文脚本列表

1.5 取素材

  1. 脚本精灵提供快捷的方式获取编写脚本需要的素材
  2. 由条件的话建议使用PC端脚本精灵开发平台获取脚本素材
1.5.1 全屏截图
  1. 点击控制条扩展栏的第二行第四个按钮即可进行全屏截图
  2. 截图保存在/sdcard/scriptelf/image下
  3. 截图是完整无损的按系统自己的坐标截取的
  4. 可根据截图图片的情况来判断是否支持脚本精灵优化模式,黑屏或者花屏请在程序配置中设置为兼容模式
  5. 强烈建议直接使用脚本精灵开发工具的远程屏幕功能

1.5.2 区域截图
  1. 先进行全屏截图
  2. 将图片传输保存到电脑,用电脑打开后,使用脚本精灵开发工具的截图功能进行截图
  3. 脚本精灵开发工工具的截图功能可以自己选择区域
  4. 强烈建议直接使用脚本精灵开发工具的远程屏幕功能

1.5.3 取色
  1. 先进行全屏截图
  2. 将图片传输保存到电脑,用电脑打开后,使用脚本精灵开发工具的取色功能进行取色
  3. 强烈建议直接使用脚本精灵开发工具的远程屏幕功能,可直接取色

1.5.3 取坐标
  1. 先进行全屏截图
  2. 用windows画板打开图片,鼠标放在图片的指定的位置上,windows画板右下角会显示该位置的坐标
  3. 强烈建议直接使用脚本精灵开发工具的远程屏幕功能,可直接取坐标

1.6 退出脚本精灵

  1. 点击控制条的最后一个按钮,即可退出脚本精灵。

2 脚本精灵开发工具

 脚本精灵提供一个电脑端的开发工具,提供一个脚本编辑器,具有工程管理、关键字高亮、函数库高亮、脚本检错、编译加密脚本、
 远程屏幕、远程截屏、远程取色、远程取坐标、远程导入等功能。如果有wifi支持,完全不需要用数据线。
	

2.1 基本介绍

2.1.1 开发工具介绍
  1. 脚本精灵开发工具仅支持Windows操作系统

2.1.2 各组成部分介绍
  1. 工程:可在此对脚本工程进行管理
  2. 编辑:提供搜索功能以对复杂代码进行方便的编辑
  3. 图像工具:提供方便处理图像的工具
  4. 构建脚本:可将工程编译成脚本
  5. 连接管理:连接设备与工具
  6. 插入:方便增加各类函数
  7. 教程和帮助

2.1.3 二进制脚本结构
  1. 二进制脚本格式是脚本精灵独有的脚本格式,只有脚本精灵能够识别
  2. 用脚本精灵开发工具编译后的脚本即为二进制脚本
  3. 二进制脚本为一个单独的文件,里面包含了脚本本身的代码、脚本所需要的图片和配置、脚本描述、脚本名称等信息
  4. 编译后的二进制脚本为加密压缩的脚本格式,无法查看和修改脚本内容和相关图片。只有拥有源代码的作者本人才能修改和重新编译脚本

2.1.3 明文格式脚本
  1. 明文脚本是文本格式的,直接用文本编辑器打开即可查看和编辑
  2. 录制的脚本为明文脚本
  3. 明文脚本可以用脚本精灵开发工具编译成二进制脚本

2.2 工程管理

2.2.3 新建工程
2.2.2 删除工程
2.2.3 脚本编辑
2.2.4 图片路径

2.3 远程设备管理

2.3.1 远程导入脚本

2.3.2 远程屏幕

2.3.3 远程截图

2.3.4 远程取色

2.3.5 远程取坐标

2.4 脚本编辑器

2.4.1 关键字高亮

2.4.2 脚本检错

2.4.3 编译脚本

3 脚本语言

脚本精灵的的脚本引擎基于Lua 5.2.2,并对其进行了一些修改,将编译器也集成在一起,并支持中文函数名、中文变量名。 保留了Lua 5.2.2所有的语法规范和内置库函数。


3.1 Lua中文教程


3.2 Lua在线解释器


3.3 Lua中文教程中的例子运行

3.4 Lua简明教程


4 脚本精灵库函数

4.1 基本函数

4.1.1 触摸点击

模拟点击屏幕


4.1.2 触摸按下

模拟按下手指


4.1.3 触摸弹起

模拟弹起手指


4.1.4 触摸滑动

模拟手指在屏幕上滑动,滑动前需要先调用触摸按下函数


4.1.5 输入文本

在当前屏幕上获得焦点的文本框中输入一个文本字符串(支持中文)


4.1.6 模拟按键

模拟点击设备上的按键,如0-9的数字,a-z的字母,返回键,确认键、HOME键等


4.1.7 获取颜色

获取屏幕上指定坐标的颜色值


4.1.8 普通寻色

在一个范围内寻找指定颜色,如果没有填写范围参数,则全屏找色


4.1.9 模糊寻色

在一个范围内寻找指定颜色,如果没有填写范围参数,则全屏找色,另外加一个相似值,表示相近的颜色也匹配,建议使用80


4.1.10 RGB颜色合成

使用指定的红绿蓝三种颜色合成一个颜色值


4.1.11 获取颜色RGB

获取屏幕上指定坐标的颜色的RGB值


4.1.12 判断颜色

判断指定坐标的颜色。PS:使用该函数(多点确定一个图或多个图)代替寻图函数可以大大的提高脚本的执行速度和性能。


4.1.13 精确寻图

在屏幕中寻找指定的图片,精确度为100%,即不能有一个字节的不匹配才算找到图片。 图片路径必须是相对脚本工程的路径,图片路径参考图片路径


4.1.14 点击图片

在屏幕中用精确寻图的方式寻找指定的图片,如果找到则自动计算该图片的中心坐标并点击


4.1.15 范围寻图

在屏幕中指定矩形范围内精确寻图,其他信息参见精确寻图


4.1.16 模糊寻图

在屏幕中模糊寻找指定图片,允许一定程度的不匹配


4.1.17 范围模糊寻图

在屏幕中指定矩形范围内模糊寻图,更多信息请参见模糊寻图


4.1.18 不规则寻图

在屏幕中寻找指定图片,可以忽略一个颜色值。也称为透明寻图、背景寻图。


4.1.19 范围不规则寻图

在屏幕中指定范围内不规则寻图。更多信息请参见不规则寻图。


4.1.20 模糊不规则寻图

在屏幕中指定范围内不规则寻图。更多信息请参见 模糊寻图 和 不规则寻图。


4.1.21 范围模糊不规则寻图

在屏幕中指定范围内模糊不规则寻图。更多信息请参见 模糊不规则寻图。


4.1.22 休眠

脚本休眠指定毫秒数。


4.1.23 获取屏幕分辨率

获取屏幕分辨率。


4.1.24 获取屏幕色位

获取屏幕色位,即获取当前屏幕设备一个颜色值占多少位。16/24/32


4.1.25 弹出文本提示

在屏幕中弹出文本提示,2.5秒后消失


4.1.26 震动

设备震动提示,只对支持震动的设备有效,一般对手机都有效,对平板无效。


4.1.27 记录日志

记录脚本中自定义的日志,日志自动保存在[/SD卡/ScriptElf/logs/[当天日期].log]下。日志会自动加上输出时间。该函数可支持开发平台的远程调试,在远程调试窗口中显示的文字为绿色。


4.1.28 记录错误日志

log()函数类似,区别是loge()函数在日志记录时间后面会加上“错误”两个字,在开发平台远程调试窗口中显示的文字为红色


4.1.29 查找某应用是否安装

查找一个应用是否已经在手机中安装


4.1.30 判断某应用是否正在运行

判断某应用是否正在运行


4.1.31 启动指定应用

启动指定应用


4.1.32 结束一个应用

结束一个正在运行的应用


4.1.33 退出当前脚本

停止当前脚本的运行


4.1.34 获取SD卡路径

获取设备上SD卡的绝对路径。


4.1.35 截图到文件

截取屏幕内容到图片文件,可指定范围截图。不指定范围则表示全屏截图。


4.1.36 拷贝文本到剪切板

拷贝文本到剪切板,可以配合输入法粘贴出来,支持中文。


4.1.37 播放音频

播放存储在手机里的音频文件(mp3等格式),函数后需要跟sleep函数,确定音频播放的时间,同时可以使用pauseMediaPlayer()[暂停播放]和stopMediaPlayer()[停止播放]控制播放进度


4.2 高级函数

4.2.1 获取设备UDID唯一串

获取设备综合唯一串,该串由脚本精灵根据当前设备硬件信息、操作系统信息、品牌数据综合计算而来,不同的两台设备得到的值必然不同


4.2.2 获取网卡MAC

获取设备网卡物理地址(MAC)


4.2.3 获取蓝牙设备MAC

获取蓝牙设备物理地址(MAC)


4.2.4 获取IMEI

获取设备IMEI串


4.2.5 获取设备信息串

获取脚本精灵根据设备信息计算而来的串


4.2.6 获取AndroidID

获取当前设备的AndroidID


4.2.7 随机触摸点击

触摸点击的扩展函数,点击的坐标在一个范围内随机,可以防止某些游戏对重复有规律的动作检测


4.2.8 随机触摸按下

触摸按下的扩展函数,按下的坐标在一个范围内随机,可以防止某些游戏对重复有规律的动作检测


4.2.9 随机触摸滑动

触摸滑动的扩展函数,滑动的坐标在一个范围内随机,可以防止某些游戏对重复有规律的动作检测


4.2.10 http访问

可以访问一个网址,抓取网页内容,获取远程服务器数据,提交本地数据等。可用于服务器验证,用户授权,远程代码等。


4.2.11 启动线程

启动一个线程,相当于同时运行多个脚本,注(脚本精灵3.0.5以后版本暂不支持多线程)


4.2.12 启动定时器

启动一个定时器


4.2.13 停止定时器

停止一个定时器


4.3 兼容模式相关函数

4.3.1 强制设置兼容模式

强制将当前脚本指定为兼容模式,只对当前脚本有效。


4.3.2 判断当前模式

判断当前是否为兼容模式。(包括用户设置的或者脚本通过setCompatMode()函数强制设置的)


4.3.3 设置自定义截屏

即设置是否自动获取屏幕比对数据,值在兼容模式下有效。在兼容模式下,寻图找色时需要大量拷贝内存,这样速度会很慢。实际情况下,比对图片或者找色不需要每次都重新截取屏幕数据,该函数设置为false后,所有的寻图找色函数都不再自动截屏,需要更新屏幕比对数据,调用screencap()函数即可


4.3.4 截取屏幕

截取当前屏幕更新到比对缓冲区。该函数只有在兼容模式下,setAutoScreencap(false)时才有效。


4.4 UI函数

4.4.1 创建静态文本框

创建一个静态文本框,用于显示文字,不可编辑,无边框


4.4.2 创建文本编辑框

创建一个可编辑的文本框,可用于输入文本、数字、密码等。


4.4.3 创建复选框

创建一个复选框,可同时选择多项。


4.4.4 创建单选框

创建一个单选框,name相同的单选框会互斥,单选框获得的最终值为选中的控件的文本值


4.4.5 创建按钮

创建一个按钮,该按钮可响应点击事件


4.4.6 创建扩展窗口

动态创建一个新窗口


4.4.7 创建WebView

在UI中创建html界面,必须要脚本精灵2.0.4及以上版本支持


4.4.8 设置是否显示循环播放选项

设置是否显示循环播放设置UI


4.4.9 ui换行

设置是否显示循环播放设置UI


4.4.10 动态获取文本

获取UI的文本内容。


4.4.11 动态设置文本内容

设置UI的文本内容


4.4.12 动态设置选中状态

设置复选框是否选中。


4.4.13 动态获取选择状态

设置UI的文本内容


4.5 输入法相关(支持中文输入)

4.5.1 切换输入法

脚本精灵3.0.6以后的版本,需要使用imeSwitch()函数切换到脚本精灵输入法才可以完成文本输入


4.5.2 输入文本

直接输入文本,支持中文,在使用之前需要用imeSwitch()函数切换到脚本精灵输入法


4.5.3 输入法 -- 删除文本

删除输入框中的已有内容


4.5.4 输入法--下一步

相当于输入法的下一步


4.5.5 输入法--完成

相当于输入法的完成


4.5.6 输入法--前往

相当于输入法的前往


4.5.7 输入法--搜索

相当于输入法的搜索


4.5.8 输入法--回车

相当于输入法的回车


5 使用技巧

5.1 如何模拟触摸操作


5.2 如何寻图


5.3 如何找色


5.4 如何记录日志

使用log()函数可以记录脚本普通日志。使用loge()函数可以记录脚本错误日志。


5.5 开发平台如何与手机建立连接


5.6 如何进行远程调试


5.7 如何输入中文文本


5.8 脚本优化原则


5.9 处理意外逻辑

意外逻辑是指在脚本正常流程之外的不一定经常发生但是必须处理的的逻辑,比如网络掉线、不定时弹窗、游戏进程意外结束等。对于这种情况很多人想到多线程。实际上多线程是很好的解决方法,但是在android平台下,脚本多线程会带来很多更麻烦的问题。目前脚本精灵暂不提供多线程,以后会陆续以更好的方式提供更简单易用的多线程。使用lua的协程,可以解决该问题,但没相应基础概念的人难学懂,代码也相对复杂。这里介绍一个比较简单的可以解决意外逻辑的方案,实际效果跟lua的协程一样。

示例

--该函数专门处理意外情况。
function fortuitousHandler()
  if [网络掉线] then
    ...
  elseif [游戏没有运行] then
    ...
  elseif [有人找你PK] then
    ...
  elseif [临时弹窗] then
    ...
  elseif [死亡] then
    ...
  end
end

--假设这里是循环战斗。
while true do
  fortuitousHandler();
  [找怪]
  [选怪]
  [接任务]
  [交任务]
end

--如果有操作是操作没完毕就不返回的死循环,因为出现意外情况可能导致该操作不返回,所以在这样的死循环里面也调用一下fortuitousHandler()来处理意外情况



6 附录

6.1 虚拟键对照表

虚拟码常量说明
0VK_UNKNOWN
1VK_MENU菜单键
2VK_SOFT_RIGHT
3VK_HOMEHOME键
4VK_BACK返回键
5VK_ENDCALL挂电话键
6VK_0数字0
7-16VK_0 - VK_9数字0-9
17VK_STAR
18VK_POUND
19VK_DPAD_UP
20VK_DPAD_DOWN
21VK_DPAD_LEFT
22VK_DPAD_RIGHT
23VK_DPAD_CENTER
24VK_VOLUME_UP音量+
25VK_VOLUME_DOWN音量-
26VK_POWER电源键
27VK_CAMERA照相键
28VK_CLEAR清除键
29-54VK_A - VK_Z字母A-Z
66VK_ENTER确认键
84VK_SEARCH搜索键