之前电脑系统崩了,重装之后就直接安装Anaconda来使用Python语言(装的时候记得把添加路径勾上,不想装Anaconda可参考之前的Python环境搭建),咱们还是先用Sublime来写脚本吧。在Sublime上使用Anaconda里的Python需要先配置插件,这个有百度经验,大概步骤如下:

ctrl+shift+p-->打开Package Control

输入ip--)选择Package Control:install package

新的框里输入:Anaconda 安装(如图即为安装成功)

首选项-->插件设置-->Anaconda-->settings default里搜索python_interpreter后面填上Anaconda文件夹安装位置。

然后再在 首选项-->插件设置-->Anaconda-->settings user里键入以下数据。保存,重启ST3后即可发现编写python代码时具有提示功能(编译的时候可能还需要手动选一下python)。

接下来可以开始写游戏脚本了,用到的库有opencv、numpy、pywin32、Pillow、tkinter等,都可以用pip install 的方式安装,制作痒痒鼠的脚本,建议在模拟器上测试避免被封号,我用的是逍遥安卓如下:

没错我们这次计划做一个清结界的脚本,重要性你懂得,进入到个人结界页面后图像识别匹配出有几个结界被攻破,如已攻破三个,则点击刷新,如没有就依次突破(若未能攻破三个就直接刷新)。

Pywin32为python提供访问Windows API的扩展,可以用来定位窗口,模拟鼠标键盘操作。定位模拟器窗口之前需要知道窗口名称和类名,首先运行下面这几行代码查看当前的活动窗口和类名:

找到 逍遥模拟器 Qt5QWindowIcon 就是模拟器的窗口名称和类名,把他们填入下面代码中就可以定位窗口范围坐标(318 142 1638 896),和鼠标所在位置(1170 577),ps:学过h5的都知道坐标原点是从左上角开始的。

下面这段代码就是获取模拟器窗口并截图:

接下来先取样本(笔者截图了每个格子玩家姓名上面的部分作为待突破样本0.png)和已突破样本1.png,然后用opencv做图像匹配识别截图中有多少对应结界,如图用红色框标记了出来:

用opencv模板识别并标记的代码:

(0.92和0.95是测试时的相关系数阈值,nu1和nu2是计算出的待突破和已突破结界个数)

在测试的时候还需要调整样本和相关系数阈值,看起来识别准确度还不错后,就可以添加模拟鼠标操作了:

笔者的屏幕分辨率(即坐标范围是1920*1080,模拟器分辨率是1280*720 192dpi),以上操作都是根据对应的坐标计算得来的,这是用来计算鼠标所在点位置和颜色的小工具:

细节难点有:1.对opencv模板匹配出的多余坐标点近似过滤;2.通过标记方法测试确定合适的样本和阈值;3.根据像素点对比判断是否结束战斗以及查找各模块功能和修复各种bug。优化后的完整代码如下,实现的功能是在个人结界突破界面锁定好阵容,启动脚本可依次突破,直至清空结界券。

为了让它看起来更像一个“脚本”,接下来我们还可以做成图形化的界面:

先写一个如图的模板出来,以上用到了tkinter做脚本界面和多线程开关控制的逻辑:

添加上要运行的脚本函数和优化好各种逻辑bug后的完整代码如下:

python可以写脚本_Python写一个痒痒鼠脚本相关推荐

  1. 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...

    通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本   版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...

  2. python批量上传执行脚本_python 写的批量操作远程主机脚本(命令执行,上传、下载文件)...

    本帖最后由 Matthew0701 于 2011-4-28 21:45 编辑 最近在学习python,借助fabric模块写了个批量操作服务器的脚本,在此分享给大家,如有不足之处,欢迎大家指正 准备工 ...

  3. python创建数字列表_Python 生成一个从0到n个数字的列表4种方法小结

    Python 生成一个从0到n个数字的列表4种方法小结 我就废话不多说了,直接上代码吧! 第一种 def test1(): l = [] for i in range(1000): l = l + [ ...

  4. python开发游戏脚本_Python开发游戏开服脚本

    #!/usr/bin/env python #coding:utf-8 from pymongo import MongoClient import datetime import random im ...

  5. 我的shell脚本实战-编写一个系统发布脚本

    平常我们会使用Jenkins发布系统,Jenkins可以从代码更新,编译到发布这样的一条龙服务.操作成本很低,作为程序员,肯定不满足于简单的界面操作. 于是我决定使用shell写一个自动发布的脚本,既 ...

  6. python写简单脚本_python写一个最简单的可执行脚本

    这周一直在折腾一个很常见的需求.打算做成脚本和批处理,将策划从人肉手工和低效中解救出来. 尝试了windows下cmd的批处理.linux shell脚本.实则是多位程序员和我讲,为什么不用pytho ...

  7. 用python写一个自动注册脚本_python写的自动登录人人网的脚本

    我今天给大家分享一个我自己用 #!/usr/bin/env python #encoding=utf-8 import sys import re import urllib2 import urll ...

  8. python 京东 抢券_Python写一个京东抢券脚本

    最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. ##几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如Burp ...

  9. python抢券代码_Python写一个京东抢券脚本

    最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. 几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如BurpSu ...

最新文章

  1. php登录失败后,php – X尝试失败后阻止登录
  2. 科幻作文计算机,种子科幻作文
  3. 原生JavaScript---字符串[3]
  4. python连接neo4j
  5. FZU 1402 猪的安家 中国剩余定理
  6. zabbix使用Omsa来监控Dell服务器的硬件信息
  7. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第1天
  8. 关于Meta标签中format-detection属性及含义
  9. 关于C#的GetHashCode
  10. 部署和操作 Enterprise Library 加密应用程序块
  11. 噪声报警c语言程序,环境噪声监测器(软件部分).doc
  12. Matlab中erf函数的用法
  13. np.array()函数
  14. 利用Landsat8数据的不同波段组合监测冰雪分布情况
  15. 10分钟!Mac配置Win主机上的共享打印机
  16. 【产品志】全白色 MATX 方案
  17. 九大背包问题专题--有依赖的背包问题(树形Dp结合)
  18. 第十三天 06-文本编辑器VI的使用修改网卡等
  19. JAVA上加密算法的实现用例(转)
  20. 学习BoundsChecker

热门文章

  1. 微信H5网页唤起 跳转APP
  2. 【程序员创业】商业计划书怎么写才能与众不同?
  3. SDL系列讲解(二) 环境搭建
  4. 网页游戏一个服务器多少人,网页游戏开服数据报告
  5. 智能光伏汇流箱用裸板式汇流采集装置AGF
  6. C++ 编译FreeCAD
  7. Adobe Acrobat DC无法生成pdf:an unexpected error occurred pdfmaker was unable to produce the adobe pdf
  8. 全面NodeJs学习教程
  9. android Bitmap和Drawable的区别
  10. 思讯服装之星V8盘点机条码数据采集器无线条码扫描枪智能终端PDA-汉码盘点机无缝对接