基于python的明日方舟自动刷取理智的脚本(一)—— 初始化环境
写在前面的话
身为一名计算机专业的懒鬼和明日方舟三年老博士(悲,在学习编程之后便一直有想法做一个脚本来解放我的双手。奈何此前一直没有多余的时间,放了假也是泡在网吧里。这学期接触了pyautogui库后,又恰逢期中考试结束,就萌生了写个脚本的想法,在经历各种艰难困苦之后,历时两星期半,完成了初步的脚本制作。
本脚本基于
import pyautogui
import time
from win32 import win32gui,win32api
import win32con
使用的模拟器为雷电模拟器(可更换,没打广告)
使用的编程平台vscode2022
思路
初始化
print("初始化正在进行中")a = pyautogui.prompt(text = "1. 激进策略(高级芯片),2.保守策略(普通芯片)",title = "请选择策略")b = pyautogui.password(text = '请输入验证口令',title = "源石访问验证",mask = "*")MoveAndClick('picture\search cusor.jpg',0.9)pyautogui.press('l')pyautogui.press('d')pyautogui.press('m')pyautogui.press('n')pyautogui.press('q')time.sleep(1)pyautogui.press('space')time.sleep(1)try:MoveAndClick('picture\Simulator.jpg',0.9)except:print("请将输入法切换小写或安装雷电模拟器")time.sleep(8)hwnd = change('雷电模拟器')#change为自定义函数
这一段思路为从搜索栏找到图片
并点击,然后使用库中对键盘的操作来搜索模拟器,再次点击。
点击函数
def MoveAndClick(a,c):x,y = pyautogui.locateCenterOnScreen(a,confidence=c)#confidence为图片可信度pyautogui.click(x,y)time.sleep(1)
Change 函数
def foo(hwnd,mouse):#获取当前标题global titlesif win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):#窗口存在,可视且窗口可使用titles.add( win32gui.GetWindowText(hwnd))#获取窗口标题
def change(Name):#本含要求要有元组接收win32gui.EnumWindows(foo, 0)#枚举当前窗口lt = [t for t in titles if t]lt.sort()for t in lt: if(t.find(Name)) >= 0: hwnd = win32gui.FindWindow(None, t)#得到窗口句柄#print(hwnd)#得到句柄win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,0,0,2000,1000,win32con.SWP_SHOWWINDOW)#win32con.HWND_TOPMOST将窗口至于所有窗口的最顶层,显示窗口hwnd = win32gui.FindWindow(None, t)#得到窗口句柄size = win32gui.GetWindowRect(hwnd)#获取窗口位置,返回左上角坐标和高及宽return hwnd
#------------------------------------------------
随后使用窗口句柄将模拟器放置在指定位置(方便后期图像识别取材及图像识别)(人话:固定位置,图长得一样,匹配成功率高)
time.sleep(3)try:MoveAndClick(r'\Arknight\picture\_20221123000957.jpg',0.8)#这里有一个问题,当前目录要加\except:try:print(' 当前神经传输存在波动')time.sleep(10)MoveAndClick(r'\Arknight\picture\_20221123000957.jpg',0.8)except TypeError:print('请检查精神状况')time.sleep(14)try:#检查更新MoveAndClick('\Arknight\picture\Start Arknight.jpg',0.9)except:print('检测到终端更新')time.sleep(10)try:MoveAndClick('\Arknight\picture\Start Arknight.jpg',0.9)except:passtime.sleep(20)
模拟点击明日方舟图标
模拟点击开始图标
接下来检查签到,检查系统公告,检查邮件,最后返回句柄和两个值
try:#检查月卡MoveAndClick('\Arknight\picture\daily sup.jpg',0.8)except:passtime.sleep(8)Is_Daily()time.sleep(8)Is_System_Bulletin()print('神经链接完成')time.sleep(8)Check_Email()print('邮件检查完成')print('初始化完成')#初始化调试完成return hwnd,a,b
Init_Exit函数 ——————————————————————————
def Init_Exit():pyautogui.press('esc')time.sleep(1)
按下一次esc键后休眠1秒
————————————————————————————————-——————
Is_Daily函数————————————————————
def Is_Daily():#签到初始化函数try:#检查每日签到x,y = pyautogui.locateCenterOnScreen('\Arknight\picture\Every Day.jpg',confidence=0.8)Init_Exit()except:pass
在全屏范围内查找
若存在则使用Init_Exit()函数退出
————————————————————————————————
Is_System_Bulletin函数————————————————————
def Is_System_Bulletin():#系统公告初始化函数try:#检查系统公告x,y = pyautogui.locateCenterOnScreen('\Arknight\picture\System bulletin.jpg',confidence=0.8)Init_Exit()except TypeError:try:x,y = pyautogui.locateCenterOnScreen(r'\Arknight\picture\activity bulletin.jpg',confidence=0.8)Init_Exit()except:passfinally:pass
识别到这个图片,执行Init_Exit函数
若报错,则识别,后同上。
最后无论如何均会跳过(对应一天内多次登录后不会有第二次弹出系统公告)
——————————————————————————————————
Check_Email函数————————————————————————
def Check_Email():try:#检查邮件x,y = pyautogui.locateCenterOnScreen('\Arknight\picture\Email.png')MoveAndClick('\Arknight\picture\Email.png',0.9)MoveAndClick('\Arknight\picture\Payemail.png',0.9)MoveAndClick('\Arknight\picture\Confirm.png',0.9)pyautogui.press('esc')except:pass
识别
这个图片(注意,为了不与没有邮件的情况混淆,图片识别可信度调为1(默认)
若存在点击
模拟点击
模拟点击,最后按下esc
若中间报错则直接退出(对应无最新邮件)
————————————————————————————
基于python的明日方舟自动刷取理智的脚本(一)—— 初始化环境相关推荐
- 明日方舟如何刷初始号,明日方舟如何刷初始号教程
相信大部分玩过明日方舟的玩家朋友都知道明日方舟可以刷初始,新手玩家刷到一个好的初始号可以比较轻松的度过新手期. 以前都是建立游客号过新手教程后刷初始的,但是现在明日方舟识别手机设备ID,导致15天内只 ...
- python图书馆管理系统实验报告_基于Python的图书馆业务报表自动生成研究
龙源期刊网 http://www.qikan.com.cn 基于 Python 的图书馆业务报表自动生成研 究 作者:辛海滨 来源:<电脑知识与技术> 2016 年第 27 期 摘要:针对 ...
- 基于python的今日头条文章抓取内含signature算法
基于python的今日头条文章抓取内含signature算法 扫二维码添加微信 备注:爬虫 , 拉你进爬虫交流群 或许你会成为第一个加群的人~ 刚有的创群想法! 1. 简单文字描述头条爬虫注意点 由于 ...
- python脚本案例-python+adb命令实现自动刷视频脚本案例
python小白第一次发博客,自己自学了一下写了一个demo,可能语法啥的不够标准,毕竟没有真正学过python 主要用到的是 import os #os包用于运行cmd命令 adb shell #这 ...
- python爬取微博用户正文_基于Python的新浪微博用户信息爬取与分析
基于 Python 的新浪微博用户信息爬取与分析 邓文萍 [摘 要] 摘要:本文设计并实现了一个微博用户信息爬取与分析系统 , 利用 Cookie 实现了用户的模拟登录 , 使用 Python 语言的 ...
- 基于python,实现简单的爬取基金净值的爬虫
Python 基金爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python的requests和进程池实现了简单的基金数据爬取脚本: imp ...
- python小爬虫SendKey自动刷博刷视频外挂
python小爬虫SendKey自动刷博刷视频 SendKeys简介 sendkeys是python的一个扩展包,其中有一些常用的符号来表示键盘的快捷键或者输入的字符,对于pywinauto来说,非常 ...
- Python用selenium实现自动登录和下单的脚本
前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一.Selenium 支持的语言包括C#,Java,Perl,PHP, ...
- 【python练习】支付宝自动偷取能量
支付宝自动偷取能量 借助Python的轻量级Uiautomator2第三方库方便快捷的编写支付宝蚂蚁森林偷取能量! 其相比appium相比其语法及用法更加简洁,当然相对于功能也的确没有appium更加 ...
最新文章
- 全国大学生智能车竞赛线上高校组合申请通知
- 【剑指offer-Java版】20顺时针打印矩阵
- 5.4 ~ 5.6 刷题记录
- mpvue 中控制swiper滑动,禁止滑动,只允许左滑动,不允许右滑
- 服务化改造实践(二)| Dubbo + Kubernetes
- java中的provide,vue3 provide ref
- 计算机负数次幂科学表示,负数的科学计数法怎么表示
- 还是不知道怎么用FreeTextBox 3.0,郁闷致死
- c语言flip用法,C ++ STL中的bitset :: flip()
- list删除数据的唯一正确写法
- 笔记-JavaScript高级程序设计-第六章思维导图
- 台式计算机如何连接手机热点上网,家里台式没有网络 想用手机热点来连接电脑上网 怎么处理?...
- Flink1.12 文档
- ArcGIS遇到严重的应用程序错误的解决办法
- 转 Theorem、Proposition、Lemma和Corollary等的解释与区别
- 【云原生之Docker实战】使用Docker部署ShowDoc文档工具
- CharacterController 人物移动、跳跃
- 臭鱼的产品交互设计分享
- 获取顺序栈的栈顶元素
- 阿里云dns 接口调用/代码
热门文章
- 上层应用程序是如何访问到底层驱动程序的呢?
- 世界上最经典的二十四句草根哲理
- 牛客bfs:工厂流水线
- IOS积分墙:末落贵族与新兴势力PK
- 3D建模角色男人头雕刻 | 不要再花钱买教程啦
- git更新项目失败报错 protocol error: bad line length character: Acti
- c语言整数大小越界,整数越界相加并求第n个斐波纳契数(C语言实现)
- C++求最大与最小值
- YOLO中对IOU、GIOU、DIOU、CIOU的理解
- 助记词(Mnemonics)生成种子,以及Public Key, Private key