如何入门
经常看到有人在群里感慨说想学脚本开发却不知道如何下手,虽然很多人都强调要先学 Lua 基础,但是仍然有很多人相信直接看别人的源码更高效。
然而当你连字母都不会的时候,再好看的英文小说也是看不懂的吧?
写脚本就像写作文,必要的基础还是要学的,下面是根据我自己的体会和观察写的学习脚本的流程,给大家参考。
新手学习指南
触动精灵脚本开发指南:https://helpdoc.touchsprite.com/dev_docs/233.html
该文档提供了学习脚本编写的 “正确” 流程和相关文档,遇到问题多看文档,自己搜索寻找答案,所有人都是这么熬过来的,不要抱怨问问题别人不回答或者只给只言片语,别人拿着英语课本来问你 A 怎么写你也不会有耐心一遍一遍的回答的。
尤其是当别人给了提示之后,不懂请谦虚的询问而不是嫌弃人家没丢给你源码,大家都是社会人,伸手党在编程领域是会被鄙视的。
微信公众号:脚本开发小百科,不定期更新越狱和脚本相关知识,欢迎订阅
越狱知识大全
丸子 iOS 越狱知识大全:https://www.touchsprite.com/docs/7996
该文档记录了丸子两年半以来遇到过的越狱相关问题,从完全不知道越狱是啥到可以解决各种 Cydia 问题所需要掌握的越狱知识。
安卓篇
安卓手机要想做脚本开发,必须要 root,跟苹果系统需要越狱一样,首先要确保触动精灵能获取到最高系统权限,才能去模拟点击。
当然因为安卓模拟器本身自带 root 权限,即使没有安卓手机,也一样可以开发脚本。
当然编辑器和抓色器连接模拟器会比较麻烦,接下来会做介绍。
如何 root
因为国产手机的安卓系统大多是定制或者修改过而不是原生系统,也就造成获取 root 权限的方法并不统一。比如小米手机需要刷开发版系统,华为需要到官网去获取权限,而有的手机呢,也许就没法成功 root。
所以只能多多尝试了,实在不行还是乖乖用模拟器吧。
常用的 root 工具有 Kingroot、奇兔、360 等,总的来说,root 还是比越狱要简单很多的,基本都是一键 root。
开启悬浮窗权限
不管是触动的悬浮窗还是脚本里的 showUI,都需要手机给触动精灵悬浮窗权限才能够显示。
当你写了一个有 showUI 的脚本,一运行发现脚本配置界面并没有弹出,就要看看是不是手机没给触动精灵悬浮窗权限了。
和 root 一样,不同的安卓手机开启悬浮窗权限的方法都不一样,有的手机不需要给权限也一样可以显示。
一般悬浮窗设置都在系统设置 - 应用中,如果找不到可以在其他地方翻一翻或者百度。
详见:https://www.touchsprite.com/docs/2961
安卓模拟器
导入脚本的方法大同小异,都是通过模拟器的共享文件夹导入文件,然后用文件管理器选中文件,找到触动安卓的脚本路径 /sdcard/TouchSprite/lua,打开菜单栏,选择复制选择项。
海马玩、猩猩、夜神、逍遥模拟器导入和使用脚本教程
作为脚本开发者,频繁的修改调试的话,使用手动导入脚本的方法还是很麻烦的,这个时候就需要把一种能够将抓色器和编辑器连接模拟器调试脚本的方法了。
编辑器、抓色器连接模拟器教程
脚本开发软件
编辑器
下载链接: https://www.touchsprite.com/download
使用手册:https://www.touchsprite.com/docs/4967
注意: v3.0 版本 IDE 已内置抓色器,欢迎使用。
常用功能:创建工程、脚本打包、连接设备、发送脚本到设备并运行、暂停运行、停止运行、查看脚本调试日志 nLog。
创建工程
会在工程目录创建一个工程文件夹,里面包含脚本主文件 main.lua、音频图片资源、其他工程文件等。
脚本调试
- 在设备面板中右键,搜索设备或使用 IP 添加设备(设备和电脑需要在同一个 WiFi 下)
- 连接到设备,查看输出面板中是否提示设备连接成功
- 在工程面板中右键发送工程到设备或者打开脚本文件,点击菜单栏中的
开始/继续远程运行该文件
(Alt + R)
- 脚本中的 nLog 左下方日志输出面板中
注意事项:
- 很多人使用绿色三角按钮的调试功能会提示需要触动精灵授权,在此提示,不建议大家使用这个功能,请使用后面带电脑标志的调试(需要先连接设备)。
- 如果设备和编辑器连接不成功,请尝试切换触动精灵服务开关状态、重启编辑器、重启路由,但是最重要的是,确保你的手机和电脑在同一个无线网下。
- 如果本地打开了 VPN 或其他代理工具,请关闭后再使用编辑器的脚本调试功能。
- 触动精灵 iOS 脚本路径为 /var/mobile/Media/TouchSprite/lua
- 安卓脚本路径为/mnt/sdcard/TouchSprite/lua
抓色器
下载:https://www.touchsprite.com/download
使用手册:http://www.touchsprite.com/docs/4955
注意: v3.0 版本 IDE 已内置抓色器,欢迎使用。
主要功能:远程连接设备并截图、抓取坐标和颜色值、生成常用找色代码
连接设备
- 点击菜单栏中的截图及联机设置
- 在下拉菜单中选择设备,或输入手机 IP 地址
- 选择截图默认旋转方向,是否保存截图到本地,点击确定
- 如果没有弹出报错窗口,那么就是连接成功了,如果弹出下面的报错窗口,请点击确定多试几遍
从设备截图
- 点击菜单栏中的最后一个按钮:于设备截图。
注意事项
- 不要在脚本运行时截图,否则截图中会出现不规则黑色线条
- 大分辨率设备截图传输的时间稍长,请耐心等待
抓点取色
- 打开取色面板
- 在取色面板中查看当前取色位置的坐标和颜色值
- 将鼠标移动到要取色的位置,只单击鼠标左键,再使用方向键可以对取色位置进行微调
- 按下 CTRL 键的同时单击鼠标左键进行取色
- 在英文输入状态下敲R键可以看到取色位置标记
- 在取色面板最上方可以设置生成代码的格式
- 点击生成脚本,可以生成包含取色信息的代码
脚本打包
上传到开发者平台(脚本分发、触动小精灵、企业版)的文件格式必须是 zip,并且包含一个 main.lua 文件。
脚本要用到的图片、音频、文本等文件和 main.lua 一起打包即可,在运行时会自动释放到文件目录的 res 文件夹下。
由于工程文件夹中包含一个 TSProject.lua 文件,在使用压缩工具打包时注意不要将此文件打包进去。
脚本加密和分发
- 目前最安全的方式就是上传到触动精灵开发者平台,自动生成 tsp 格式的脚本文件。
- 触动开发者平台分为 3 个子平台,分别是:触动脚本分发、小精灵和企业版。
- 脚本分发平台提供了脚本在线加密、二维码分发、授权码生成等功能,目前完全免费。
- 营销类脚本可以上传到小精灵平台,生成自己的软件安装包进行分发。小精灵可以自定义图标、启动图,相当于定制版触动,无需用户再安装触动精灵就可以独立运行。
相关文档
- 开发者平台使用手册:https://www.touchsprite.com/docs/5981
- 小精灵平台使用手册:https://www.touchsprite.com/docs/4971
- 企业版平台使用手册:https://www.touchsprite.com/docs/5005
开发者实名认证
- 要想把脚本上传到开发者平台,首先需要申请一个实名认证的开发者账号。
- 访问开发者平台, 注册一个账号
- 提供真实姓名、身份证号和支付宝账号申请实名认证也可以通过芝麻信用认证。
- 将脚本文件压缩成 zip 格式
- 登录开发者平台,新建脚本,填写脚本名称和其他信息
- 上传脚本 zip 文件
注意事项
- 脚本压缩包内的脚本主文件必须命名为 main.lua
- 脚本分发平台的脚本一旦创建成功不可更改脚本名称
- 为了方便用户反馈问题或联系开发者进行购买,请填写真实有效的联系方式
- 触动开发者平台支持远程调用,开发者可以将部分代码加入远程调用,不更新版本也能随时更新脚本
上传脚本
- 将脚本文件压缩成 zip 格式
- 登录开发者平台,新建脚本,填写脚本名称和其他信息
- 上传脚本 zip 文件
注意事项
- 脚本压缩包内的脚本主文件必须命名为 main.lua
- 脚本分发平台的脚本一旦创建成功不可更改脚本名称
- 为了方便用户反馈问题或联系开发者进行购买,请填写真实有效的联系方式
- 触动开发者平台支持远程调用,开发者可以将部分代码加入远程调用,不更新版本也能随时更新脚本
下载安装脚本
在脚本列表点击生成二维码并使用触动精灵客户端扫描二维码下载,或者直接在网页上下载 tsp 格式文件
注意事项
- 触动精灵 iOS 脚本路径为 /var/mobile/Media/TouchSprite/lua
- 安卓脚本路径为 /mnt/sdcard/TouchSprite/lua
脚本授权码
在授权管理页面生成脚本授权码,将授权码二维码发给用户,使用客户端扫描即可。
生成授权码
学习资源
触动精灵函数扩展库
为了进一步降低脚本开发者门槛,触动精灵提供了丰富的扩展库,包含一系列实用函数和实例代码供开发者使用。
函数库下载地址及使用说明:https://helpdoc.touchsprite.com/dev_docs/2184/1.html
对于小白来说,自己封装点击、找色函数不太现实,尤其是滑动,很多人都搞不明白,不如直接用封装好的函数更有效率。
教学视频
本教程适合入门新手学习,所有视频教学课程由 五毛君 和 菲佣编写及制作,在此感谢 五毛君和 菲佣 为触动精灵及广大开发者做出的贡献。
建议大家先学习 Lua 语言基础教程,再配合手册详解视频学习开发手册,否则在看手册的时候会有很多不能理解的地方哦~
在能够写出简单的脚本后,再学习菲佣的脚本进阶教程。
教程地址:https://www.touchsprite.com/video
实用技巧
新手在学习使用触动精灵开发脚本的时候,总会进入一些误区,或者会有一些迷惑的点,觉得无从下手,本人总结了一些自己在学习过程中遇到的问题和经验技巧,欢迎大家一起交流分享。
文档地址:https://www.touchsprite.com/docs/5026
学习脚本的正确方法
相信很多新人都会有这个疑问,虽然我自己也还是个渣渣,但是在群里观察了一年大概总结了点心得。
有的人先去研究别人的源码,有的人先去买了本 Lua 基础,有的人在认真看五毛或者菲佣的视频,有的人呢,写几行代码就跑来群里问。
俗话说,条条大路通罗马,其实没有什么正确的方法,适合自己的才是最好的。
如果你有编程基础,先看一下 Lua 基本概念,再把开发手册看一下,当然那么多字很少有人会从头看到尾,于是就经常出现明明手册里写的清清楚楚的内容还是有人一遍一遍的去群里问。
问得多了也就没人愿意回答了,其实看手册有个技巧,你可以只看目录,大概知道有什么函数都是什么作用,等你需要的时候再去看具体用法尤其是注意事项。
触动精灵的开发手册中安卓和 iOS 绝大部分函数都是通用的,但是有些函数的细微差别如果写错了也是不行的,比如 init 函数,在安卓上只需要填写一个参数即可。
作为一个新人,参考别人的源码,有利有弊。
如果你有幸看到大神写的源码,结构清晰,便于维护,有些思路确实很有启发。
但是初期不要过分纠结于写法,只要学会思路和使用方法即可。
随时总结调整,形成适用于自己的风格才是最终目的。
触动精灵提供了函数库和 UI 库,对于不会自己封装高效函数的新手来说,能极大的提高学习进度和写脚本的效率。
常见问题
运行脚本无反应
首先,需要确认脚本代码没有问题,经常发生的超低级错误就是
- 写了按下 touchDown 没有写对应的抬起 touchUp
- 按下 touchDown 和抬起 TouchUp 之间没有写延迟 mSleep
- 在执行点击动作前没有加 mSleep
- 滑动 touchMove 之间的坐标离得太远,不能实现连续滑动
如果你的错误是上面的一条或多条,没别的了,继续看Lua 手册和开发手册吧~
代码没有问题还是不能实现点击和滑动的话,需要检查是否有下面的问题
- 设备上装了和触动精灵冲突的插件导致服务无法启动或者点击失效了
- 安装了触动精灵之后没有重启设备
- 安装触动精灵的正式版和测试版之前没有彻底卸载已安装版本或卸载后没有重启设备
- Cydia 里有一些依赖插件需要更新了
- Cydia Substrate 插件需要卸载重新安装
适配不同手机分辨率
虽然有缩放函数,但实际效果并不理想,最实际的适配方案就是将不同分辨率分别截图取色替换坐标,
点击查看。
先适配好一个主流分辨率,比如 iPhone 5 或者 6,再将主要逻辑复制粘贴几份分别用其他分辨率的取色坐标代替即可。
不同系统版本之间的差异
其实要不要考虑适配完全看游戏,有的游戏就是不同系统版本的字体不一样你不适配也不行。尤其是 iOS 9,系统字体的变化导致很多游戏脚本都不通用了。
首先在脚本开发过程中尽量不要在字上取色,如果实在没办法,当遇到同样的分辨率结果脚本在部分设备上运行正常部分设备不行的问题的时候,就要考虑下是不是系统版本的影响了。
判断卡屏
在一个画面上取 10 个点的颜色值。
间隔检查,颜色是否和之前取的值一样,如果颜色一直没变,超过多久时间即判断为脚本卡住了。
showUI 返回值调用
相信很多新手都和我一样,在刚开始接触 showUI 的时候会被抽象的返回值弄的焦头烂额,好不容易弄明白什么是返回值,又发现没法和自己写的脚本连接起来。
要怎么做到选择了一个选项就执行某一段代码呢?
下面丸子就来说一说我当初是怎么理解才学会简单的使用 showUI 返回值的。
其实 showUI 的返回值和你在脚本其他地方的找色、赋值原理是一样的,只不过抽象了点儿容易把人绕进去。
下面是我写的一段简单的代码:
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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
local sz = require("ts") local json = ts.json init(0) w,h = getScreenSize(); MyTable = { ["style"] = "default", ["width"] = w*0.9, ["height"] = h*0.9, ["config"] = "wanzi.dat", ["timer"] = 15, views = { { ["type"] = "Label", ["text"] = "触动小精灵脚本演示", ["size"] = 25, ["align"] = "center", ["color"] = "118,198,38", }, { ["type"] = "Label", ["text"] = "触动小精灵目前仅支持 iOS 平台,使用过程中有任何问题请加群:298722759", ["size"] = 18, ["align"] = "center", ["color"] = "255,36,101", }, { ["type"] = "Label", ["text"] = "小精灵平台", ["size"] = 20, ["align"] = "center", ["color"] = "74,169,170", }, { ["type"] = "RadioGroup", ["list"] = "iOS,安卓,WP",--单选,input1,第一个选项 iOS 编号为 0,安卓编号为 1,依此类推 ["select"] = "0",--默认选项为编号 0:iOS }, { ["type"] = "Label", ["text"] = "小精灵类型", ["size"] = 20, ["align"] = "center", ["color"] = "74,169,170", }, { ["type"] = "CheckBoxGroup",--多选,input2 ["list"] = "基础版(无网络模块无打码),云打码,网络插件,自定义插件", ["select"] = "0",--默认选项为编号 0:基础版 }, { ["type"] = "Label", ["text"] = "友情提示:不同类型的小精灵生成授权码的价格不同,勾选类型越多价格越高, ["size"] = 20, ["align"] = "center", ["color"] = "74,169,170", } } } local MyJsonString = json.encode(MyTable); ret, input1, input2 = showUI(MyJsonString); if ret == 0 then--如果选择【取消】,脚本退出 lua_exit() mSleep(0) mSleep(0) end if input1 == "0" then--小精灵支持平台 toast("你选择了 iOS 哟") mSleep(3000) elseif input1 == "1" then toast("你选择了安卓哟") mSleep(3000) elseif input1 == "2" then toast("触动小精灵不支持 WP 系统哟") mSleep(3000) end str = input2 if string.find(str, "0") then--小精灵类型选了基础版 jcb = 11 else jcb = 0 end if string.find(str, "1") then--小精灵类型选了云打码 ydm = 1 else ydm = 0 end if string.find(str, "2") then--小精灵类型选了网络查件 wlcj = 3 else wlcj = 0 end if string.find(str, "3") then--小精灵类型选了自定义插件 zdycj = 10 else zdycj = 0 end dialog("您生成小精灵月卡的价格为:"..jcb.."+"..ydm.."+"..wlcj.."+"..zdycj.."=?软妹币") |
友情提示:
本实例代码为完整的可执行代码,适合新手理解返回值之用。在实际使用中,还是建议使用官方提供的 UI 库,更加简洁和高效。
安卓手机使用触动输入法,不显示键盘,解锁屏幕无法输入密码,怎么办?
- 将您的手机连接电脑 下载 adb 工具
- 执行命令
ime list -s
列出设备上的输入法(如下图中的画红线部分是两种输入法) - 执行命令
ime set com.android.inputmethod.latin/.LatinIME
切换设备的输入法为列表中带有 Android 关键字的默认输入法(建议使用复制粘贴功能)
触动精灵 Lua 脚本开发常用英文词汇大全
触动精灵开发手册单词
showUI 单词
触动精灵客户端报错单词
https://www.touchsprite.com/docs/900
SSH 设备管理工具 Putty
链接:http://video.touchsprite.com/帮助文档/相关工具/Putty/putty.zip
Cydia deb 安装包列表
链接:http://apt.saurik.com/cydia/debs/
开发工具
触动精灵脚本编辑器
远程调试、运行脚本
下载地址:https://www.touchsprite.com/download
抓色器
远程截图、取色、生成代码
下载地址:https://www.touchsprite.com/download
触动精灵脚本开发手册
https://helpdoc.touchsprite.com/dev_docs/598.html
触动精灵脚本开发函数扩展库
https://helpdoc.touchsprite.com/dev_docs/2184/6.html
触动精灵脚本开发视频教程
https://www.touchsprite.com/video
已知与触动精灵冲突的插件列表
showUI 不能弹出、点击没反应、滑动失效等问题有可能是由于安装了冲突插件引起的
https://www.touchsprite.com/docs/536
触动精灵脚本开发实例代码
https://www.touchsprite.com/docs/9161
触动精灵官方源
下载、安装触动精灵 iOS,欢迎添加官方推荐软件源
触动精灵官方源:http://apt.touchsprite.com
触动精灵测试源:http://apt-test.touchsprite.com
触动精灵 iOS 使用教程
专业版 iOS 使用手册
https://www.touchsprite.com/docs/4875