背景:

Dnf的周年庆活动之一,鬼才策划为了在线率想的活动,规律如下

1.在线1分钟可以生成1根竹子,领取竹子以后可以获取到积分,积分满足活动要求后可以领取相应档位的奖励

2.玩家不在线期间,不会生成新竹子(最坑的一点)

3.竹子的存储上限为20,也就是说20分钟就要收割一次

为了最快领取到奖励,只好出个下策,自动化领竹子,晚上挂通宵,写文章的这会已经完成指标....

思路

运用python中的pyautogui模块控制鼠标自动打开活动界面,点击领取,关闭界面,为了方便写了死循环,所以需要利用cmd打开py脚本,需要结束运行脚本时ctrl+c停止运行即可

优势:在不移动游戏界面的情况下游戏内窗口控件所处的相对位置不会改变,利用pyautogui模块点击相应坐标即可实现自动化

劣势:游戏断线重连,直接扑街·。

难处:游戏在12点会弹出公告界面,若不处理公告界面,养竹活动的界面层级并没有公告界面高,脚本会被遮挡,无法运行

解决方案:定时执行关闭公告界面的脚本,执行完毕后继续执行挂机领竹脚本

代码:

获取鼠标当前位置信息,代码如下

import pyautogui
print(pyautogui.position())

使用cmd运行上述脚本,在运行前将鼠标移动到需要定位的坐标,然后直接回车,会打印当前的鼠标坐标

领取代码如下

import datetime
import pyautogui
import time
import random def time_timer(now_time):
next_time = datetime.datetime.strptime("2019-6-21 0:00:00", "%Y-%m-%d %H:%M:%S")
timer_start_time = (next_time - now_time).total_seconds()
return timer_start_time def pyautogui_dnf(now_time):
#主体:打开养竹活动界面,领取竹子,退出界面
print("开始执行,当前系统时间: %s" % now_time)
#坐标1:点击竹子的小图标
pyautogui.click(1025, 855)
pyautogui.mouseDown()
pyautogui.mouseUp()
time.sleep(5)
# 坐标2:点击领取按钮
pyautogui.click(1034, 723)
pyautogui.mouseDown()
pyautogui.mouseUp()
# 坐标3:点击关闭按钮关闭活动界面
pyautogui.click(1320, 248)
pyautogui.mouseDown()
pyautogui.mouseUp()
c = random.randint(600,1200)
print("执行完毕,开始休眠,%s"%(datetime.timedelta(seconds=c)))
time.sleep(c) def tomrrow_Refresh(now_time):
#点击公告下的确定按钮
pyautogui.click(944, 713)
pyautogui.mouseDown()
pyautogui.mouseUp()
print("已关闭公告,继续执行")
time.sleep(5)
#死循环继续执行领竹子的脚本
while True:
pyautogui_dnf(now_time) def main_pyauto():
while True:
now_time = datetime.datetime.now()
d = time_timer(now_time)
if d > 0:
print("距离公告弹窗时间还有%s秒" % (int(d)))
pyautogui_dnf(now_time)
else:
print("关闭公告")
tomrrow_Refresh(now_time) if __name__ == "__main__":
main_pyauto()

之所以使用随机数,是因为如果20分钟点一下太稳定,我怕被封号....

总之,两天领完了所有奖励,可喜可贺....吧

利用pyautogui自动化领取dnf的在线养竹活动的竹子的更多相关文章

  1. 利用JavaFx开发RIA桌面应用-在线资料

    转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/52805751 1.前言 虽说java已经不是主流的桌面应 ...

  2. 利用 Ansiable 自动化部署 Veeam Backup & Replication 9.5U4b

    利用 Ansiable 自动化部署 Veeam Backup & Replication 9.5U4b 前言 上周出差期间接到一个做CMP(云管平台)Partner的需求,要在无人值守的安装 ...

  3. 利用Selenium自动化web测试

    简介: Selenium 是一个没有正式指导手册的开源项目,这让测试人员的问题调查很费时间.本文为基于 Selenium 1.0(发布于 2009 年 6 月)的测试期间的常见问题提供最佳实践. 简介 ...

  4. 利用mtd工具实现嵌入式设备在线升级

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   主要思路是:通过web post方式将升级文件交给CGI程序处理,然后通过mtd工具实现设备在线升级. 1.页面部分 & ...

  5. spring boot利用swagger和spring doc生成在线和离线文档

    参考博客地址: 在线文档:http://blog.didispace.com/springbootswagger2/ 离线文档:http://www.jianshu.com/p/af7a6f29bf4 ...

  6. 利用fis3自动化处理asp.net项目静态资源时遇到的一个编码问题

    fis3是一款强大的前端自动化构建工具,提供了很多非常实用的功能,具体参考http://fis.baidu.com/,使用该工具需要安装node环境. 最近在部署网站的时候尝试了一下使用该工具对前端资 ...

  7. 利用selenium自动化登录淘宝

    #encoding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import A ...

  8. selenuim自动化爬取汽车在线谷米爱车网车辆GPS数据爬虫

    #为了实时获取车辆信息,以及为了后面进行行使轨迹绘图,写了一个基于selelnium的爬虫爬取了车辆gps数据. #在这里发现selenium可以很好的实现网页解析和处理js处理 #导包 import ...

  9. Headless MSBuild Support for SSDT (*.sqlproj) Projects [利用msbuild自动化部署 .sqlproj]- 摘自网络

    Update: breaking change: http://sqlproj.com/index.php/2012/10/dacfx-sept-2012-updates-break-headless ...

随机推荐

  1. 查看mysql状态

    命令:mysqladmin -uroot -p -h172.16.0.20 status Uptime: 14317755  Threads: 61  Questions: 187732924  Sl ...

  2. 任务41:Individual authentication 模板

    使用命令行创建项目 会自动加上ef core和Identity core代码的示例 默认创建mvc是不带Identity的 dotnet new -help:查看可用的命令: -au:Individu ...

  3. NYOJ1——A+B Problem NYOJ2——括号配对问题

    A+B Problem 时间限制:3000 ms  |  内存限制:65535 KB 难度:0   描述:此题为练手用题,请大家计算一下a+b的值  输入:输入两个数,a,b 输出:输出a+b的值 样 ...

  4. Cardboard profile的修改

    Cardboard盒子中,手机屏幕大小.镜片离屏幕距离,屏幕分辨率等都会影响配戴者的眼中成像,通过对生成图像的变形可以部份解决这一问题,cardboard sdk中提供了cardboardprofil ...

  5. winform 屏蔽 空格键

    private void call_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Space) ...

  6. lightoj1079【背包】

    题意: 哈利波特抢银行... 给出n个银行,每个银行有a[i]百万和b[i]的风险.然后再给一个风险值P,不能超过P. 思路: 如果告诉你概率的小数的位数,可能这个就会不一样了... 慨率的计算,风险 ...

  7. CentOS7下如何正确安装并启动Docker(图文详解)

    我使用了CentOS 7操作系统,可以非常容易地安装Docker环境.假设,下面我们都是用root用户进行操作,执行如下命令进行准备工作: yum install -y yum-utils yum-c ...

  8. web.xml中classpath*:与classpath:的区别

    classpath对应src目录,该目录下的文件会在编译后被存放到WEB-INF文件夹下的classes目录. classpath:只会到你的class路径中查找配置文件,对于多个同名的配置文件,只会 ...

  9. the little schemer 笔记(1)

    第 1 章 玩具 这是原子atom吗?atom是的,因为atom是一个字母a开头的字符串. 这是原子atom吗?turkey是的,因为atom是字母开头的字符串. 这是原子atom吗?1492是的,因 ...

  10. magento 开启 3D secure credit card validation

    因为国外盗刷严重,于是得开启验证. 首先可以去 https://developer.cardinalcommerce.com/try-it-now.shtml.这上面有测试账号,截图如下: