背景:

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. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时4

    课时4 数据驱动的图像分类:K最邻与线性分类器(上) 图像分类之前,我们需要将图片转换成一张巨大的数字表单,然后从所有种类中,给这个表单选定一个标签. 为什么分类问题是个困难的问题:图像分类难点是,当 ...

  2. HDOJ1584蜘蛛牌【DFS】

    10张牌,大的只能跟小的跑,可以针对每一个状态进行搜索,求一个最小的移动距离. 但是不会怎么遍历整个状态是硬伤? 因为只能大的跟着小的. 先把小的标记,去寻找大的点,最终一定是满足的吧. 比如先标记1 ...

  3. P2579 [ZJOI2005]沼泽鳄鱼

    传送门 话说邻接矩阵居然还能快速幂的么-- 把原图的邻接矩阵\(G\)打出来,那么\(G[u][v]\)表示一秒后\(u\)到\(v\)的方案数,\(G^2[u][v]\)表示\(2\)秒后的方案数- ...

  4. 【UVA - 10474 】Where is the Marble?(排序)

    Where is the Marble? Descriptions: Raju and Meena love to play with Marbles. They have got a lot of ...

  5. python之文件的读写

    读  r   读写模式   r+     如果打开文件时没有指定模式,默认只读,如果使用r或r+,文件不存在时会报错 写  w  写读模式  w+    w模式会清空原有的文件内容 追加 a  追加读 ...

  6. Educational Codeforces Round 20 A

    Description You are given matrix with n rows and n columns filled with zeroes. You should put k ones ...

  7. HTML中div的悬浮标题

    <div title="我是鼠标悬停文字">我是一个DIV</div> <div class="diggao" title=&qu ...

  8. Hacker的社交礼仪与自我修养【转】

    Hacker School是位于纽约的一所特殊的编程“学校”,他们的目标是帮助参与者变成“更好的程序员”,之所以说他们特殊是因为这所“学校”没有老师,没有考试,也不会颁发证书,他们信奉三人行必有我师, ...

  9. 盘点那些年,被Oracle收购的公司

    微博上看到一图,很清晰.盘点那些年,被Oracle收购的公司,Oracle日益强大,都收购了哪些公司呢?别再以为只有Sun啦...看看你都知道哪些? ps:Strategic Acquisitions ...

  10. std::map插入已存在的key时,key对应的内容不会被更新

    std::map插入已存在的key时,key对应的内容不会被更新,如果不知道这一点,可能会造成运行结果与预期的不一致 “Because element keys in a map are unique ...