300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python安卓脚本精灵使用教程_按键精灵安卓按键初体验—乱斗西游2自动签到

python安卓脚本精灵使用教程_按键精灵安卓按键初体验—乱斗西游2自动签到

时间:2023-05-24 04:08:17

相关推荐

python安卓脚本精灵使用教程_按键精灵安卓按键初体验—乱斗西游2自动签到

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.

纵观现在的游戏市场,手机游戏现在占有的比重越来越高,在按键精灵推出安卓版本之后,也越来越多人去转战写手游脚本了,小编最近也刚开始学习和了解安卓版命令,为了加深理解尝试去写了个乱斗西游2的手游脚本,其中感觉自动签到思路是在大部分手游里算是比较通用的,特此分享下

思路

在制作一款游戏的脚本某个功能的时候,首先我们需要知道这个功能如果让我们手动操作的话具体应该是怎样做的,然后尽可能的让脚本模拟人为手动去操作就好了,就拿我们手游乱斗西游2最简单的自动签到功能来说

代码思路:

1、判断游戏是否在主界面,即签到图标是否正常显示

2、签到图标存在则判断是否已经签到过,已经签到则直接跳过该功能,没有签到则点击签到图标

3、判断弹出的签到界面上哪一天可以进行签到,点击签到

4、弹出签到成功获取了某某物品,确认点击后返回主界面继续下一个功能

1.判断游戏是否在主界面

要判断游戏是否处于主界面的话,我们肉眼一看就知,但是脚本就完全不知道,所以我们初始应该先找一个主界面固有的特征让脚本启动后就先去找下这个固有特征,能找到就说明在主界面,没有找到就说明不在,在我们安卓按键命令中判断一个固定的特征是否存在一般都是用CmpColorEx多点比色命令

命令名称CmpColorEx命令功能同时比较指定的多个坐标点的颜色,支持多色、偏色、相似度比较命令参数mul_color:字符串,需要对比的点xy坐标和16进制颜色,格式为(X坐标|Y坐标|16进制颜色),多个颜色用“|”号分隔,需要偏色用“-”号分隔,多个点信息用“,”号分隔,比如"100|200|FFFFFF|123456-000000,300|500|FFFFFF"sim:双精度浮点数,相似度,取值范围0-1

该命令是脚本中要经常用到的命令所以我们把它封装成一个单独的函数,需要的时候直接调用下即可,同理多点找色、单点找色、单点比色命令也是挺经常用到的都可以考虑把它们封装起来

相关代码Dim 签到图标

签到图标 = "584|54|2B4380,583|61|8BBDD1,603|37|5DAECA,603|62|80E2EE"

Call 判断是否处于游戏主界面()

If 多点比色(签到图标, 0, 582, 52) = True Then

TracePrint "在游戏主界面"

Else

ShowMessage "不在游戏主界面,请返回到游戏主界面再启动脚本"

EndScript

Delay 3000

End If

Function 多点比色(坐标颜色组, 模式, x坐标, y坐标)

多点比色=False

Dim 对比结果

对比结果 = CmpColorEx(坐标颜色组, 0.9)

If 对比结果 = 1 Then

多点比色=true

If 模式 = 1 Then

Tap x坐标, y坐标

End If

End If

End Function

复制代码

2.判断是否已签到过

如图没签到过这边会有个圆形的红点且这个红点是固定位置的,所以我们这边可以考虑用单点比色命令来判断它某点坐标的颜色值是否近似等于红色,等于的话就点击签到图标的位置,弹出签到界面,同样的把单点比色封装成一个函数

相关代码If 单点比色(607, 81, "周签到状态", "0C0CFF-050505") = true Then '判断是否已进行过周签到

Call 自动周签到()

Delay 1500

End If

Function 单点比色(横坐标x, 纵坐标y,输出内容,颜色值)

单点比色=False

Dim 对比结果

对比结果 = CmpColor(横坐标x,纵坐标y,颜色值, 0.9)

If 对比结果 > -1 Then

单点比色=true

TracePrint "找到:" & 输出内容

End If

End Function

复制代码

3.签到界面进行签到

如图签到界面是这样的,可以进行签到的地方相比其他地方只有一个特效光圈会一直转动,所以小编这边用的是区域模糊找色(找多个颜色)命令来查找,为防止误判,相似度弄得比较高

相关代码Call 区域找色(197,448,535,963,"D3FFFF|D4FEFE|D0FDFF",0.99) '进行签到

Function 区域找色(左上角X坐标,左上角Y坐标,右下角X坐标,右下角Y坐标,颜色组,相似度)

Dim intX, intY, 序号

Do

序号 = FindColor(左上角X坐标, 左上角Y坐标, 右下角X坐标,右下角Y坐标, 颜色组, 1, 相似度, intX, intY)

If 序号 > -1 Then

TracePrint "找到的颜色序号为:", 序号, ",坐标在", intX & ", " & intY

Tap intX, intY

Exit Do

End If

Delay 1000

Loop

End Function

复制代码

4.返回游戏主界面

是通过判断游戏箭头的状态,循环点击某个可对话坐标点,如果发现箭头就点击箭头返回主界面

相关代码返回箭头="697|31|A8790F,681|56|6B4B1B,671|34|4C3B19,702|56|DED239"

Function 返回主界面(横坐标,纵坐标)

Do

If 多点比色(返回箭头, "点击返回箭头", 1, 695, 41) = true Then

Exit Function

Else

Tap 横坐标,纵坐标

End If

Delay 1000

Loop

End Function

复制代码

整体代码Dim 结果1,结果2,签到图标,领取按钮,返回箭头,闯关按钮,关卡锁,闯关4,自动挂机按钮

签到图标 = "584|54|2B4380,583|61|8BBDD1,603|37|5DAECA,603|62|80E2EE"

返回箭头="697|31|A8790F,681|56|6B4B1B,671|34|4C3B19,702|56|DED239"

//结果1 = ReadUIConfig("自动领取任务奖励")

//结果2 = ReadUIConfig("自动闯关")

Call 判断是否处于游戏主界面()

If 单点比色(607, 81, "周签到状态", "0C0CFF-050505") = true Then '判断是否已进行过周签到

Call 自动周签到()

Delay 1500

End If

If 单点比色(606, 231, "活动状态", "0202FA-050505") = true Then '判断是否已进行过月签到

Call 自动月签到()

Delay 1500

End If

Function 自动周签到

Call 多点比色(签到图标, 1, 582,52)'点击签到图标

Delay 1000

Call 区域找色(80,243,456,980,"D3FFFF|D4FEFE|D0FDFF",0.99) '进行签到

Delay 1000

Call 返回主界面(525,608)

End Function

Function 自动月签到

Tap 577, 205 '点击活动图标

Delay 2000

If 单点比色(599,428, "月签到状态", "1B1BFF-050505") = true Then

Call 区域找色(197,448,535,963,"D3FFFF|D4FEFE|D0FDFF",0.99) '进行签到

Delay 1500

Tap 524, 625

Delay 1500

tap 337,200

Delay 500

Else

TracePrint "已签到过"

Delay 1000

Tap 372,227

Exit Function

End If

End Function

Function 判断是否处于游戏主界面()

If 多点比色(签到图标, 0, 582, 52) = True Then

TracePrint "在游戏主界面"

Else

ShowMessage "不在游戏主界面,请返回到游戏主界面再启动脚本"

EndScript

Delay 3000

End If

End Function

Function 返回主界面(横坐标,纵坐标)

Do

If 多点比色(返回箭头, 1, 695, 41) = true Then '判断箭头是否存在,存在则点击返回

Exit Function

Else

Tap 横坐标,纵坐标

End If

Delay 1000

Loop

End Function

Function 多点比色(坐标颜色组, 模式, x坐标, y坐标)

多点比色=False

Dim 对比结果

对比结果 = CmpColorEx(坐标颜色组, 0.9)

If 对比结果 = 1 Then

多点比色=true

If 模式 = 1 Then

Tap x坐标, y坐标

End If

End If

End Function

Function 单点比色(横坐标x, 纵坐标y,输出内容,颜色值)

单点比色=False

Dim 对比结果

对比结果 = CmpColor(横坐标x,纵坐标y,颜色值, 0.9)

If 对比结果 > -1 Then

单点比色=true

TracePrint "找到:" & 输出内容

End If

End Function

Function 找多点(数组,输出内容,模式)

找多点 = False

Dim arr,intX,intY

arr = 数组

FindMultiColor arr(0), arr(1), arr(2), arr(3), arr(4), arr(5), 0, 0.9, intX, intY

If intX > -1 Then

找多点 = True

TracePrint 输出内容

If 模式 = 1 Then

Tap intX, intY

End If

Else

TracePrint "找多点没找到"

End If

End Function

Function 区域找色(左上角X坐标,左上角Y坐标,右下角X坐标,右下角Y坐标,颜色组,相似度)

Dim intX, intY, 序号

Do

序号 = FindColor(左上角X坐标, 左上角Y坐标, 右下角X坐标,右下角Y坐标, 颜色组, 1, 相似度, intX, intY)

If 序号 > -1 Then

TracePrint "找到的颜色序号为:", 序号, ",坐标在", intX & ", " & intY

Tap intX, intY

Exit Do

End If

Delay 1000

Loop

End Function

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。