本帖最后由 打字的小强 于 2019-6-3 09:07 编辑
首先科普一下云手机和正常的手机还有模拟器是不同的,部分图色信息不能兼容,在编写按键精灵的时候是需要通过截图软件在云手机里面截屏然后然后通过QQ什么的软件把截屏的图片传出来在按键精灵手机助手多点取色获得图色信息。有时候游戏在云手机里面总是三天两头更新一些广告,这些广告也没有共通点,需要每次都要从云手机截图传出来然后写再更新脚本,很是麻烦。为了解决这个问题,就自己想出来了一个办法利用按键精灵脚本请求服务器远程静态资源来实现图色信息热更新。
首先就要把图色信息格式化。放在远程服务器上,远程服务器就在我前面的帖子写出来了,利用github pages来做一个静态资源被脚本获取,这次要把html网页改成json格式的。【按键精灵】按键精灵读取github page 网页,实现脚本远程控制功能
这样的格式
为什么要封装成这样的格式,还要看上一个帖子,利用果壳插件的封装图色信息【按键精灵】全军出击按键精灵发言脚本,快速写脚本的基本框架讲解,简化脚本。
接下来就要写代码请求这些数据,并把所有的图色信息都拿出来放到数组中都遍历找一下就达到我们的目的了,注意这是一个半成品,只是抛砖引玉的作用。
[Lua] 纯文本查看 复制代码
Dim res,键值表
Import "Cjson.lua"
Import "GK.lua"
Function 判断(fx, fy)
//进一步对果壳界面判断找图封装。找到图后加了false就不点击,但是返回函数的真假,后面要对这些函数返回值做出判断而做出相对应的操作
If (gk.full(fx)) Then
ms "在" & fy
判断 = True
Else
ms "不在" & fy
判断 = false
End if
End Function
Function ms(msg)
TracePrint msg
ShowMessage msg
End Function
res = URL.Get("https://koala9527.github.io/test/game.json")
//json数据 是 {"len":"2","data":{"v1":{"lx":"92","ly":"69","rx":"221","ry":"171","fc":"57B1FF","cr":"4|-3|C9E6FF,-5|-14|1592FF,-10|-4|1592FF,8|5|FBFDFF,6|-7|D8EDFF,-4|-15|1592FF,-4|1|5CB3FF,-9|-6|1592FF,-6|-24|1592FF","s":"0.9"},"v2":{"lx":"532","ly":"1049","rx":"656","ry":"1129","fc":"E4B697","cr":"7|-12|FEFBF9,12|-42|FCF6F2,16|-66|CF7E4C,22|-111|C57543,11|-136|BA6A38,0|55|DF9460","s":"0.9"}}}
TracePrint res
//将json数组转换成lua的字典
键值表 = Cjson.Decode(res)
//自己封装的json格式,不用计算,直接指出这个请求返回结果有几个图色信息
TracePrint "数组含有"&键值表["len"]&"个图色数据"
dim leng= CInt(键值表["len"])
Dim result =array()
//开始遍历这个table所包含的图色信息,还有图色信息所有的细节参数,注意lua的table是从1开始的,并不是从0开始的
For i = 1 To leng
Dim j = "v"&Cstr(i)
Dim tb1=键值表["data"][j]["lx"]
Dim tb2=键值表["data"][j]["ly"]
Dim tb3=键值表["data"][j]["rx"]
Dim tb4=键值表["data"][j]["ry"]
Dim tb5=键值表["data"][j]["fc"]
Dim tb6=键值表["data"][j]["cr"]
Dim tb7=键值表["data"][j]["s"]
//这些都是在果壳插件找图命令中的必要数组参数
TracePrint "第"&i&"个点的左上角X坐标:"& tb1
TracePrint "第"&i&"个点的左上角Y坐标:"& tb2
TracePrint "第"&i&"个点的右下角X坐标:"& tb3
TracePrint "第"&i&"个点的右下角Y坐标:"& tb4
TracePrint "第"&i&"图色数据的第一点颜色:"& tb5
TracePrint "第"&i&"图色数据的偏移点数据:"& tb6
TracePrint "第"&i&"图色数据的精度:"& tb7
// 遍历赋值到一个二维数组中
result[i] = Array(tb1,tb2,tb3,tb4,tb5,tb6,tb7)
Next
//接下来遍历输出一下这个二维数组检查一下看是什么东西
For i = 1 To UBOUND(result)+1
For j= 1 to UBound(result[i])+1
TracePrint result[i][j]
Next
Next
//最后遍历这个请求所有的图色信息找图
For i = 1 To UBOUND(result) + 1
判断 result[i],"牛皮"&i
Next
到此结束。 |