python | lackey库实践 |自动化exe程序,完成王者荣耀人机模式获取金币
一个根据设定完成流水线工作的exe程序
比如说:自动打开王者荣耀选择人机模式,然后对战,最后结束游戏。起初我的想法是不断打人机赚金币,结果发现挂机都比程序打的赚的金币多,所有进入游戏一开始是程序操作的,最后是挂机模式,由AI去完成整个游戏,结束游戏后继续匹配。
请先看视频
python | 第3集 实现自动进入王者荣耀人机模式,不断进行游戏,完成赚取金币的任务
本场游戏中会从头到尾检查游戏是不是已完成状态,并且无论成功或者失败都会记录当前屏幕。
失败的截图
成功的截图
注意:必须是自己截图,截图当然都是自己电脑像素,我代码中截的图你可能用不了
大体思路还是我们常规的思维,人是怎么操作的,鼠标就是怎么操作的。
重点就是:观察自己定的流程会不会被其他乱七八糟的东西干扰了,这时候就需要枚举出所有的场景,但凡你碰到过得就需要记录下来,并且开启另外一个线程,干掉和主线无感的画面。
import datetime
import threading
import time
import PyQt5.uic.pyuicimport lackey
import pywinauto
from PIL import ImageGrabdef close_x():while True:try_lock_and_click(r'./photo/close_x.png', message='执行关闭操作中...')def get_info(message):return message + str(datetime.datetime.now()).replace(' ', '').replace('.', '').replace(':', '').replace('-', '')# 尝试锁定并点击 Try locking and clicking
def try_lock_and_click(png_path='', message='', button='left'):time_out = 120while time_out > 0:msg = get_info(message)try:screen = lackey.Screen()match = screen.findBest(pattern=lackey.Pattern(png_path))if button in 'left':screen.click(match)if button in 'right':screen.rightClick(match)print('锁定[' + message + ']成功!' + ' 请查看图片[' + './photo/success_png/' + msg + '.png]')ImageGrab.grab().save('./photo/success_png/' + msg + '.png')time.sleep(2)return Trueexcept Exception as e:print('锁定[' + message + str(time_out) + ']失败,请查看图片[' + './photo/fail_png/' + msg + '.png]')ImageGrab.grab().save('./photo/fail_png/' + msg + '.png')time.sleep(1)time_out -= 1if time_out == 0:print('锁定超时,退出锁定...')exit(0)def try_lock_and_click_close(png_path='', message=''):msg = get_info(message)try:screen = lackey.Screen()match = screen.findAll(pattern=lackey.Pattern(png_path))screen.click(match)print('锁定[' + message + ']成功!' + ' 请查看图片[' + './photo/success_png/' + msg + '.png]')ImageGrab.grab().save('./photo/success_png/' + msg + '.png')try_lock_and_click_close(png_path, message)except Exception as e:print('锁定[' + message + ']失败,请查看图片[' + './photo/fail_png/' + msg + '.png]')ImageGrab.grab().save('./photo/fail_png/' + msg + '.png')def run(exe_path=''):# 打开指定应用(夜神)pywinauto.Application(backend='win32').start(cmd_line=exe_path)# 锁定王者荣耀try_lock_and_click(r'./photo/wangzherongyao.png', message='王者荣耀')# 开始游戏try_lock_and_click(r'./photo/start_game.png', message='开始游戏')# 锁定 对战try_lock_and_click(r'./photo/battle.png', message='对战')# 锁定 5v5try_lock_and_click(r'./photo/arena.png', message='5v5 王者峡谷')# 锁定 人机try_lock_and_click(r'./photo/ai_mode.png', message='人机 AI MODE')# 锁定 倔强青铜IIItry_lock_and_click(r'./photo/qingtong_III.png', message='倔强青铜 III')# 锁定 锁定开始练习try_lock_and_click(r'./photo/start_practice.png', message='开始练习')for map_count in range(2):print('开始第' + str(map_count) + '次对战')# 锁定 开始匹配try_lock_and_click(r'./photo/start_map.png', message='开始匹配')# 锁定 确认进入游戏try_lock_and_click(r'./photo/ok_income_game.png', message='确认')# 锁定 点击右三角try_lock_and_click(r'./photo/right_sanjiao.png', message='三角符号')# # 锁定 选择刺客# try_lock_and_click(r'./photo/tanke.png', message='刺客')## 锁定 选择坦克try_lock_and_click(r'./photo/tanke.png', message='坦克')# 锁定 选择亚瑟try_lock_and_click(r'./photo/yase.png', message='亚瑟')# 锁定 确认选择百里玄策try_lock_and_click(r'./photo/ok_choose_hero.png', message='确认选择')# 锁定 完全确认 不需要等待try_lock_and_click(r'./photo/ok_choose_hero.png', message='确认开始游戏')# 检查是不是已经进入到游戏当中is_income = try_lock_and_click(r'./photo/is_income_game.png', message='检查是否进入游戏')if not is_income:print('没有进入游戏,无法进行下一步操作!')return# AI操作 每过一分钟检查一下对局是否完成while True:is_continue = try_lock_and_click(r'./photo/is_continue.png', message='检查当前游戏是否已完成对局')if is_continue:breaktime.sleep(60)# 点击继续#try_lock_and_click(r'./photo/is_continue.png', message='点击继续')# 点击返回房间try_lock_and_click(r'./photo/go_back_home.png', message='点击返回房间')if __name__ == '__main__':# 开启一个线程用来点Xthreading.Thread(target=close_x).start()run(exe_path=r'D:\Program Files\Nox\bin\Nox.exe')
python | lackey库实践 |自动化exe程序,完成王者荣耀人机模式获取金币相关推荐
- 程序人生 - 王者荣耀战队荣誉勋章获取途径
战队荣誉勋章是一个获取途径比较隐蔽的货币,很多召唤师在战队活跃宝箱中也找不到这种奖励.那么战队荣誉勋章在哪里可以获取呢?今日就为大家介绍战队荣誉勋章的获得方法,快来了解一番吧~ 途径一.战队赛宝箱 分 ...
- python | 自动化exe程序
自动化exe程序 简单介绍一下,这个exe原本是为闲鱼发布内容点击增加浏览量量身定做的. 应用程序路径:指的是你要打开的exe程序,例如夜神 图片文件路径:指的是自动化程序,要根据那个文件夹下的内容去 ...
- 独家 | 用Python Featuretools库实现自动化特征工程(附链接)
作者:Prateek Joshi 翻译:张玲 校对:李润嘉 本文约4000字,建议阅读10分钟. 本文简要介绍特征工程的基本组成部分,并用直观的示例理解它们,最后给出使用Python Featuret ...
- python rpa库_Automagica python RPA库实践
安装 # 需要python版本为3.7,系统为Win10 pip install https://github.com/OakwoodAI/automagica/tarball/master 功能使用 ...
- 微信小程序:王者荣耀改名神器
这是一款王者改名小程序 支持重复名改名 支持空白名改名 另外也支持特殊符合随机生成改名等等 该款小程序引流裂变的效果非常的好 支持流量主收益如激励视频获取改名次数等等 另外该小程序还有更多,支持推荐其 ...
- 微信小程序:王者荣耀出装与铭文推荐助手
这是一款王者荣耀助手的一款小程序源码 该小程序主要功能就是提供各个英雄出装和铭文查询 功能虽然单调但是对于玩王者的朋友来说还是挺实用的! 目前该小程序源码已支持多种流量主模式 小程序源码下载地址: 微 ...
- 微信小程序:王者荣耀战力查询微信小程序源码下载支持安卓苹果微信QQ等多区查询
这是一款战力查询的微信小程序源码 源码内自带了接口 目前支持了微信,QQ,苹果,安卓全区都可以查询 支持流量主收益,而且搭建安装简单 使用微信开发者工具打开源码然后设置一下合法域名上传审核即可 该小程 ...
- 微信小程序:王者荣耀改重复名,空白名最低战力查询助手
这是一款由重复名,空白名.和各区战力查询组合的一款微信小程序源码! 重复名支持一键生成几十个,就再也不怕都被别人用过了! 空白名支持多种空白名,王者荣耀空白名,贵族居中空白名,QQ微信专属空白名 战力 ...
- Python+Selenium 网页自动化 exe 程序编程实现(最全避坑指南)
前言 在我的日常工作中,经常需要在内网(不连接互联网)的网页版办公系统中进行抓取网页数据.修改表单等大量重复性的操作.我就想是否可以编写出自动化的工具,将这些日常琐碎的操作变得轻松而高效.虽然本人非计 ...
最新文章
- django_rest_framework之GenericAPIView(三)
- 【操作系统】系统引导
- TensorFlow第十步CNN BP 编程求解
- DBA的宿命(困兽之斗)
- CDNDrive 第一个版本发布 布客新知第二次备份完成
- linux mint关于web开发的相关环境配置
- win pe备份linux,Windows10操作系统如何使用微PE实现备份与恢复
- 2021南航计算机专硕上岸经验贴
- html - html5 audio 音乐自动播放,循环播放等9款播放器
- 网站实现支付宝第三方登陆详解
- Win7下装centos7
- in作为介词的用法_介词in重要用法归纳
- 三星带着Bixby搅局中国市场,还说自己是「一家AI技术公司」
- 计算机专业cad 办公 ps,厦门集美办公、商务办公、CAD、PS、平面设计培训
- ACM:搜索算法专题(1)——24点
- 网络原理TCP/UDP
- 什么是数据清洗?数据清洗的原理是什么?
- java.net.url 兼容_java.net.Url类的应用(网络编程)
- Navicat Premium 使用技巧
- 极智嘉拟科创板上市后再创发展里程:全球AMR销售突破2万台