阴阳师_御魂_贪嗔痴_卑弥呼脚本

19年12月19日

之前看了很多别人写的代码 但是大多数都存在功能不全的问题

而且最近游戏也进行了更新游戏界面的改变导致很多之前的代码都无法使用

所以决定自己写了一个脚本使用

话不多说直接上代码

# coding=gbk
# 声明解码方式# 导入相关模块
import os
import cv2
import random
import time# -------------------功能介绍(必读)--------------------
'''
在游戏中进入挑战界面后运行代码可自动选择副本进行战斗 (输入数字进行选择即可)
如果选择的是御魂副本 会自动为玩家打开御魂加成  所以等待时间稍微长一些
此代码是闲暇时写来自己使用的 所以Settings中的范围都是我根据自己手机分辨率取的点 使用的工具是photoshop
运行代码需要安装cv2模块: pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ opencv-contrib-python
还需要安装adb调试工具:
一切准备就绪后使用数据线连接手机  手机打开开发者模式  usb调试
可在终端中使用adb devices查看手机是否与电脑连接成功
接下来的操作在文章结尾
'''
# -------------------Settings-----------------------
class Settings():"""储存所有阴阳师脚本的点击范围的类"""def __init__(self):# 点击挑战范围self.start_x = [1690, 1770]self.start_y = [915, 1000]# 结束点击范围self.end_x = [20, 1243]self.end_y = [677, 899]# 卑弥呼战斗开始时选择我方英雄的点击范围# 选择的是从左到右第二个式神self.start_RLZY_x = [620, 680]self.start_RLZY_y = [786, 890]# 左侧三个副本选项的范围self.q_option_x = [94, 140]self.y_option_y = [246, 400]self.t_option_y = [496, 654]self.b_option_y = [730, 880]# 开启加成点击范围self.jc_outer_x = [640, 680]self.jc_outer_y = [56, 110]self.jc_in_x = [1180, 1280]self.jc_in_y = [322, 340]# 悬赏任务接受按钮位置self.xs_x = [1250, 1310]self.xs_y = [600, 660]# -----------------y_functions--------------------
class Y_function(object):# 截屏并返回图片def get_screen(self):# 截屏口令cmd_get = 'adb shell screencap -p /sdcard/screen_img.png'# 发送图片口令cmd_send = 'adb pull sdcard/screen_img.png ./img'# 截屏和发送操作os.system(cmd_get)os.system(cmd_send)img = cv2.imread('./img/screen_img.png', 0)return img# 对比图片返回相似度def match(self, img1, template):"""img1代表待匹配图像, template代表模板, 模板是小图"""res = cv2.matchTemplate(img1, template, cv2.TM_CCOEFF_NORMED)# .max()方法返回的是一个类似匹配度的参数# mexres是匹配度  return maxres 是将匹配度返回  供调用函数者使用maxres = res.max()return maxres# 在范围内选择一个随机点def get_randxy(self, x, y):"""产生一个在x,y二维区域内的随机位置,x,y为两个元素的列表,变量范围"""xc = random.randint(x[0], x[1])yc = random.randint(y[0], y[1])return xc, yc# 随机选择间隔时间def get_randtime(self, a, b):"""产生a,b间的随机时间延迟"""time.sleep(random.uniform(a, b))# 对屏幕位置进行点击def click(self, x, y):"""输入两个二维列表,表示要点击的位置的x坐标,y坐标"""# 通过adb将要点击的点传入手机端  实现点击cmd_click = 'adb shell input tap {} {}'.format(x, y)os.system(cmd_click)
# ----------------click_sj------------------------------
settings = Settings()
yf = Y_function()
class Click_sj(object):# 对屏幕指定位置进行点击def perform_click(self, x_range, y_range):def click_range(x, y):xc = random.randint(x[0], x[1])yc = random.randint(y[0], y[1])return xc, ycxc, yc = click_range(x_range, y_range)def click_event(x, y):"""输入两个二维列表,表示要点击的位置的x坐标,y坐标"""# 通过adb将要点击的点传入手机端  实现点击cmd_click = 'adb shell input tap {} {}'.format(x, y)os.system(cmd_click)click_event(xc, yc)# 更改御魂加成状态def gaibian_jiacheng(self):self.perform_click(settings.jc_outer_x, settings.jc_outer_y)yf.get_randtime(1.5, 3)self.perform_click(settings.jc_in_x, settings.jc_in_y)yf.get_randtime(1.5, 3)self.perform_click(settings.q_option_x, settings.y_option_y)yf.get_randtime(1.5, 3)
# ----------------y_function2--------------------------------
cl = Click_sj()
class Y_function2(object):# 准备模块# 导入模板,设置刷御魂次数模块def begin(self):t_start = cv2.imread('./img/start.png', 0)# 日轮之陨进入后选择小天狗 需要识别的图片t_RLZY_start = cv2.imread('./img/start_RL.png', 0)t_end = cv2.imread('./img/end.png', 0)n = input("请输入刷副本次数:")n = int(n)return t_start, t_end, n, t_RLZY_start# 御魂副本等待时间  副本通关时间大概33秒def YH_sleep(self, t, x, y):time.sleep(random.uniform(40, 44))# 贪嗔痴副本等待时间def TCC_sleep(self, t, x, y):time.sleep(random.uniform(65, 70))# 日轮之陨副本等待时间def RLZY_sleep(self, t, x, y):time.sleep(random.uniform(4, 5.5))self.matchT(t, x, y)time.sleep(random.uniform(60, 65))# 开启或者关闭御魂加成def y_start(self):cl.perform_click(settings.jc_outer_x, settings.jc_outer_y)yf.get_randtime(1.5, 3)cl.perform_click(settings.jc_in_x, settings.jc_in_y)yf.get_randtime(1.5, 3)cl.perform_click(settings.q_option_x, settings.y_option_y)yf.get_randtime(1.5, 3)# 实现对副本的选择的点击方式 x轴固定  y轴变化def q_start(self, location_y):cl.perform_click(settings.q_option_x, location_y)yf.get_randtime(1.5, 3)# 通过用户的输入运行相应代码def judge_select(self, combat_option):# 通过判断给函数赋引用if combat_option == 1:self.q_start(settings.y_option_y)self.y_start()underway = self.YH_sleepreturn underwayelif combat_option == 2:self.q_start(settings.t_option_y)underway = self.TCC_sleepreturn underwayelif combat_option == 3:self.q_start(settings.b_option_y)underway = self.RLZY_sleepreturn underway# return underway# 匹配模块# 检测模板,点击屏幕def matchT(self, t, x, y):sd = 0while sd < 15:# get_screen方法实现的是截屏并保存 return imgimg1 = yf.get_screen()# matct返回的结果是cv2.max()方法的结果res = yf.match(img1, t)# >大于0.97代表图片匹配上了 跳出循环  出去执行点击方法# 0.97属于类似匹配度的参数  匹配度越高就是越像if res > 0.97:breakelse:# get_randtime方法是随机产生0.8到1.3中的随机数yf.get_randtime(0.8, 1.3)# 如果长时间匹配不上就判断下是否有协作任务窗口弹出# 简单实现  不进行图像对比直接点击if sd == 8:cl.perform_click(settings.xs_x,settings.xs_y)sd += 1# get_randxy函数实现在点击范围内随机点击sx, sy = yf.get_randxy(x, y)# 程序执行完等待的时间  图像匹配成功后等待的时间  可以短一点yf.get_randtime(0.1, 1.1)# 点击屏幕位置yf.click(sx, sy)print('匹配成功,共匹配{}次'.format(sd + 1))yf.get_randtime(3, 4)#------------------main--------------------------
yf2 = Y_function2()
def all_begin():combat_option = int(input('请输入要刷的副本:  1.御魂  2.贪嗔痴  3.日轮之陨:  '))xecutive_function = yf2.judge_select(combat_option)# 导入准备模板t_start, t_end, n, t_RLZY_start= yf2.begin()for k in range(n):print('开始运行第{}次'.format(k + 1))# 检测挑战模板yf2.matchT(t_start, settings.start_x, settings.start_y)# 执行代码xecutive_function(t_RLZY_start, settings.start_RLZY_x, settings.start_RLZY_y)# 检测结束模板yf2.matchT(t_end, settings.end_x, settings.end_y)if combat_option == 1:yf2.y_start()print('一共运行了{}次'.format(n))if __name__ == '__main__':all_begin()

检测开始的模板图片:

检测结束的模板图片:

检测卑弥呼战斗开始的模板图片:

在与代码平级的目录下创建img文件夹

将上面三个图片放到放到img文件夹中

都准备就绪就可以开始执行代码了

拿走了记得赞我

阴阳师自动战斗御魂贪嗔痴卑弥呼_python相关推荐

  1. java阴阳师抽卡概率_阴阳师抽卡概率公布 阴阳师SSR/御魂抽取概率

    网易阴阳师安卓版1.0.17.7 官方最新版 类型:角色扮演大小:623M语言:中文 评分:6.3 标签: 立即下载 根据最新的规定,网络游戏必须公布各类抽奖概率,阴阳师也不例外.那么玩家最关心的阴阳 ...

  2. Python实现阴阳师自动御魂和觉醒双开!我说了Python除了不能生孩子,其他都会!

    前言: 本项目任何桌面yys版本都可以用,电脑上开的安卓模拟器也可以用(内存消耗更大,不建议),但是如果游戏更新图标有变需要截图替换掉对应目录下的图标才能正常运行 本项目仅用于学习交流,不得用于出售外 ...

  3. 阴阳师自动御魂觉醒超鬼王脚本

    上回说到这个PyUserInput这个库能够模拟鼠标和键盘点击,今天老肥再来实战一波游戏脚本制作. 此游戏以爆肝著称,不如写个简单的小脚本解放一下双手.我们的目标就是为了能够在该点击某个按键的时候点击 ...

  4. 5月6阴阳师服务器维护,阴阳师5月6日维护更新公告 御魂加成开放购买

    阴阳师每周御魂加成本来每周只能领取2次,在每周六和周日.小伙伴们都会积攒体力或者在结界卡放置斗鱼卡,此次阴阳师更新了阴阳师商店中御魂和觉醒1小时加成,当时小伙伴们要跟寮会长商量好哦,不然会长买了,你们 ...

  5. python实现阴阳师自动刷御魂脚本_Python实现阴阳师电脑端自动组队刷御魂

    Python实现阴阳师电脑端自动组队刷御魂 1 开发环境搭建 Python3.7安装下载地址: https://www.python.org/ftp/python/3.7.0/python-3.7.0 ...

  6. sp工具中最疼的是_阴阳师打造完美的双面就业SP酒吞 说说最靠谱的御魂携带法...

    对于阴阳师近期讨论度极高的新SP式神鬼王酒吞童子,其具体的养成,也就是御魂携带方法估计很多玩家很感兴趣,本次就来教大家如何打造完美的双就业面SP酒吞,一起来看看吧. PVE 目前酒吞在PVE中的定位很 ...

  7. 阴阳师手游御魂怎么强化 御魂强化方法详解

     阴阳师手游御魂怎么强化?很多阴阳师手游中的新手玩家们根据游戏系统的指引知道御魂的玩法, 但是不知道在阴阳师手游中怎么强化御魂.下面小编就为玩家们带来御魂强化的详细方法步骤.    御魂强化方法步 ...

  8. 一个不成熟的阴阳师御魂配置程序(Python)

    居然有前端大佬早就写了御魂hub...溜了溜了.. ---------以上为更新,以下为原文------- 玩阴阳师的时候御魂太多,配得脑壳疼,所以撸了个python程序以便自动配御魂. 大致用法是: ...

  9. python实现阴阳师自动刷御魂脚本_自己写的yys御魂python脚本

    [Python] 纯文本查看 复制代码print("正在加载库") import win32api import win32con import time import rando ...

最新文章

  1. 【深度学习】基于Pytorch的softmax回归问题辨析和应用(一)
  2. python叫什么-python中什么叫类
  3. CodeForces - 566A Matching Names(字典树上贪心)
  4. 编译安装PHP出现configure: error: MySQL configure failed. Please check config.log的解决方法
  5. PostgreSQL 设置单条SQL的执行超时 - 防雪崩
  6. 因严重缺陷,Rust 撤销所有 Crates 包的 API 令牌
  7. ubuntu服务器开放端口_Docker服务开放了这个端口,服务器分分钟变肉机
  8. 【生信进阶练习1000days】day16~day22-RNA-seq data analysis with limma edgeR and Glimma
  9. 谷歌账号在谷歌浏览器无法登录,提示此浏览器或应用可能不安全的一种解决办法
  10. 多元统计分析基于r课后答案_智慧树多元统计分析及R语言建模课后答案
  11. Go 处理PCAP文件
  12. Delphi 生成二维码【PaintBox】并保存为本地文件添加至【Image】控件中
  13. Oracle SQL 基础要点
  14. 艾司博讯:在拼多多开店都有什么步骤
  15. js多维数组包含有children时,将数组平铺成一维数组
  16. [Python] 通过采集两万条数据,对《无名之辈》影评分析
  17. 深度学习需要的显卡配置
  18. 小程序调取相机照片添加水印(时间水印)
  19. 网页打印总是提示安装java_使用打印机打印网页时出现的脚本错误的办法
  20. mysql UNIX_TIMESTAMP时间差

热门文章

  1. 射灯安装方法图解_射灯怎么安装,这几点不得不注意
  2. Cadence Virtuoso 文件.cdsinit 修改提示
  3. 基于模拟退火和粒子群算法结合的MATLAB
  4. OI Journal
  5. ScrollView小拓展
  6. HmacSHA256 签名加密
  7. VMware虚拟机安装ubuntu20.04缓慢、卡顿
  8. 微信小程序 获取nickName为 “微信用户” 而且 头像 为null
  9. iOS学习爬坑记录18:ios获得设备cpu类型
  10. 5大绝招读中报 教你速成选股专家