首页 > Python资料 博客日记
python纯脚本搬砖DNF之深度学习,工作室适用
2024-07-18 17:00:05Python资料围观168次
这篇文章介绍了python纯脚本搬砖DNF之深度学习,工作室适用,分享给大家做个参考,收藏Python资料网收获更多编程知识
声明:
本文章仅作学习交流使用,对产生的任何影响,本人概不负责.
转载请注明出处:https://editor.csdn.net/md?articleId=103674748
主要功能
脚本已初步完成,可以上机实战了
1.搬砖研究所、海伯伦、深渊(均衡)(持续更新中)
2.自动分解史诗
3.自动出售白蓝紫装备
4.有点券购买免修,没有免修会自动修武器
5.自动收邮件
6.自动登录wegame
7.支持所有主流刷图职业
特色功能:
1.自动做日常活跃,如进入修炼场,领取每日奖励,打开商店,工会聊天,等
5.自动兑换灵魂之源
6.图内金币、装备自动拾取
7.自动切换角色、切换大区(支持3跨区)、切换QQ
8.急速刷图,刷图算法优化更高级,移动速度的高低决定跑图时间,伤害的高低,决定打怪时间,3.6及以上的角色可以体验到急速过图,和手动单刷一样的速度)
以下为156疲劳角色过图时间统计:
| 名望 | 单角色过图时间 |
| 3.4-3.5 | 20分钟左右 |
| 3.6-3.8 | 17分钟左右 |
| 3.9-4.0 | 15分钟以下 |
每台电脑3.6以上一天可以轻松刷70-90角色
运行要求
一.硬件配置要求
1.显卡,需要安装cuda所以要显卡不低于GTX750。标配GTX1050 2G(推荐),(不要买魔改卡)
2.CPU无要求,能带动游戏即可
3.内存不低于8G
4.硬盘空间不小于128G
5.专用的硬件键鼠(30米一个),如无硬件键鼠则自动加载虚拟键鼠(虚拟键鼠无法自动登录游戏,无法输入密码)
二.运行环境软件要求
1.安装CUDA驱动:
cmd 输入 nvidia-smi (查看显卡驱动版本) 根据驱动的版本,下载cuda:
安装教程参照:CUDA安装教程
2.安装python 版本3.11.5(安装过程中含有–PATH–的选项必须勾选)
安装教程参照:python安装教程
安装后查验是否成功及版本:
1.cuda查验 cmd黑窗口输入 nvcc --version
2.python查验 cmd黑窗口输入 python --version
弹出版本标识则安装成功。
代码依赖
1 识别使用最新的yolov8模型。
2 键鼠使用自研的硬件模拟。
class Auto:
def __init__(self):
self.se = Search()
self.boss = Boss()
self.ski = Ski()
self.move = Move()
self.denglu = DengLu() # 自动登录
self.town = Twon()
self.DATA = None
self.img0 = None
self.liefeng_num = 0
self.start, self.end = None, None
self.prev_start = [400, 450, 0, 0, 0, 0]
self.stop_time = 0
self.get_role_xinxi = 0
self.shouci = 0
def auto(self):
while True:
if not self.off_no():
continue
if not self.denglu():
continue
if not self.fuben_move_and_get_end(): # 副本中检测
continue
if self.town_res(): # 2.城镇检测
continue
self.boss_room() # 3.通关检测
def update_user(self):
# 获奖角色表所有数据
if web.role_all_data is True:
web.role_all_data = db.get_all_role()
if web.sy_all_data is True:
web.sy_all_data = db.get_conf_data('shouyi')
if web.new_role:
role = db.get_role_by_id(web.new_role.idx)
web.new_role.dis_col = role.dis_col
web.new_role.dis_row = role.dis_row
web.new_role.pwd = role.pwd
web.new_role.name = role.name
web.new_role.yisidalu = role.yisidalu
web.new_role.bkr = role.bkr
db.role_update_data(web.new_role)
web.new_role = None
if web.role_delete:
db.role_delete(web.role_delete)
web.role_delete = None
if web.qq_all_data is True:
web.qq_all_data = db.qq_get_all_qq()
if web.qq_update:
db.qq_update(web.qq_update)
web.qq_update = None
if web.qq_instert:
db.qq_insert(web.qq_instert)
web.qq_instert = None
if web.qq_delete:
db.qq_delete(web.qq_delete)
web.qq_delete = None
if web.role_conf_all:
db.add_conf(web.role_conf_all)
web.role_conf_all = None
def start_info(self, start):
if start is not None:
start[0] = start[0] + start[2] * 0.5
self.start = start
self.prev_start = self.start
return self.start
if act.find_img('sw', img=self.img0): # 死亡自动复活。
web.print_log('死亡复活')
k.down_up('x')
sleep(0.5)
self.ski.buff()
return self.prev_start
def sy_fuben(self):
if act.find_img('j_h', img=self.img0) is None:
return True
if self.town.jintu_time:
self.town.jintu_time = 0
if Map.is_boss and act.find_img('jixu'):
self.move.up_key()
if self.boss_room():
self.shouci = 0
Map.is_boss = None
Map.room_dix = 0
sleep(1)
return
if self.shouci == 1:
self.shouci = 2
sleep(0.5)
self.ski.buff()
if self.shouci == 0:
self.shouci = 1
return
boss_ = self.get_max_conf_point(6)
if boss_ is not None:
if boss_[4] > 0.9:
Map.is_boss = True
Map.room_dix = 1
self.start = self.start_info(self.get_max_conf_point(r_c.index))
if Map.buff:
Map.buff = None
r_c.is_fz = act.find_img('f_z', img=self.img0, threshold=0.83)
self.boss.xiu = act.find_img('xiu_li2', img=self.img0, threshold=0.8)
self.boss.kai_shi_time = time() # 每次时间
self.ski.buff()
self.end = self.se(self.DATA, self.start)
self.move_result(self.move(self.start, self.end))
def queren_t(self):
if act.find_img('queren', img=self.img0): # 弹窗检测
try:
act.esc()
except Exception as e:
IMG.get_handel_or_size()
web.print_log(e)
web.print_log('确认弹窗')
return True
def get_data(self, conf=0.6):
# x,y左上角坐标,wh宽高
x = fb.model.predict(source=self.img0)
self.DATA = copy(x)
def time_12(self):
current_time = localtime()
if current_time.tm_hour == 0 and 0 <= current_time.tm_min <= 1 and 0 <= current_time.tm_sec <= 20:
guanbi = act.find_img('guanbi')
if not guanbi:
return
web.print_log("凌晨页面弹窗关闭")
k.click_at(guanbi)
sleep(0.5)
return True
def fuben_move_and_get_end(self):
self.img0 = IMG.get_img()
if self.img0 is None:
return
if not fb.map_id:
min_name = 'boss'
if cfg.fuben_id == 1:
min_name = 'j_h'
if act.find_img(min_name):
web.print_log('请在通关后运行脚本')
sleep(5)
return True
self.get_data()
if fb.map_id == 1:
return self.sy_fuben()
if self.get_max_conf_point(fb.bosss) is None:
if not Map.map_num:
return True
if IMG.find_template('queren') or IMG.find_template('zbl'):
k.down_up('esc')
return
if Map.is_boss:
sleep(0.2)
self.liefeng_num = 0
self.move.up_key()
return True
if self.liefeng_num > 0:
self.liefeng_num = 0
self.start = self.start_info(self.get_max_conf_point(r_c.index))
if Map.map_main(self.get_max_conf_point(fb.min_me), self.start, self.end):
if self.time_12():
return
if self.queren_t():
return
return self.move.up_key()
self.get_role_info()
self.end = self.se(self.DATA, self.start)
if self.end[-1] == fb.jzb:
self.move.up_key()
self.ski.picking_up()
return
self.move_result(self.move(self.start, self.end))
def town_res(self):
if self.town(self.img0):
sleep(10)
if not self.denglu.dnf_over:
self.denglu.dnf_over = True
if not self.denglu.user and self.town.denglu_qq:
self.denglu.user = self.town.denglu_qq
return True
if self.denglu.user:
self.town.denglu_qq = self.denglu.user # 新增qq
def boss_room(self):
if fb.map_id == 1:
if not self.boss.sy_boss(self.img0):
return
else:
if not self.boss(self.img0):
return
if self.town.role:
self.boss.qiyue = self.town.role.x_l
web.datas.tg_num = self.boss.t_g_num
web.datas._time = strftime('%H:%M:%S', gmtime(self.boss.t))
web.datas.o_time = strftime('%H:%M:%S', gmtime(self.boss.role_time))
web.datas.zong_time = strftime('%H:%M:%S', gmtime(self.boss.zong_time))
return True
def get_role_info(self):
if Map.buff:
Map.buff = None
if r_c.is_fz:
r_c.is_fz = act.find_img('f_z', img=self.img0)
self.boss.xiu = act.find_img('xiu_li2', img=self.img0)
self.boss.kai_shi_time = time() # 每次时间
self.ski.buff()
if Map.map_num == Map.boss_num - 1:
if self.get_role_xinxi < 5:
self.get_role_xinxi += 1
r_c.is_fz = act.find_img('f_z', img=self.img0)
self.boss.xiu = act.find_img('xiu_li2', img=self.img0)
self.town.role.pl, _ = IMG.get_pl(self.img0)
self.boss.pl = self.town.role.pl
return
if self.get_role_xinxi > 0: self.get_role_xinxi = 0
def move_result(self, result):
if not result:
return
if result == fb.jhj:
self.ski.picking_up()
elif result in fb.guai:
if self.se.last_att:
k.down_up(self.se.last_att)
self.se.last_att = None
self.ski(self.img0)
elif result == 99: # 召唤释放技能
self.se.leixing = 100
self.ski(self.img0)
def get_max_conf_point(self, idx):
data = self.DATA[self.DATA[:, -1] == idx]
if not data.any():
return
if len(data) == 1:
return data[0]
return data[argsort(data[:, 4])][-1]
def off_no(self):
if self.stop_time == 0:
self.stop_time = time()
if time() - self.stop_time > 1800:
if not e.yanzheng():
exit(1)
self.stop_time = 0
if hot.START:
if not web.zt: web.zt = 1
return True
if web.zt: web.zt = 0
self.update_user() # 页面数据更新
sleep(0.5)
3.页面效果展示**
角色表
主控后台
信息提示
刷图选择
角色表
账号信息表
人工智能刷图
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 光流法结合深度学习神经网络的原理及应用(完整代码都有Python opencv)
- Python 图像处理进阶:特征提取与图像分类
- 大数据可视化分析-基于python的电影数据分析及可视化系统_9532dr50
- 【Python】入门(运算、输出、数据类型)
- 【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南
- 华为OD机试E卷 --第k个排列 --24年OD统一考试(Java & JS & Python & C & C++)
- Python已安装包在import时报错未找到的解决方法
- 【Python】自动化神器PyAutoGUI —告别手动操作,一键模拟鼠标键盘,玩转微信及各种软件自动化
- Pycharm连接SQL Sever(详细教程)
- Python编程练习题及解析(49题)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程