用python编写阴阳师自动刷图脚本


import pyautogui as sb #鼠标
import random
import time


# random.uniform  随机小数
def move(s,inta,intb,intc,intd):
    a=random.randint(inta,intb)  #长
    b=random.randint(intc,intd)  #高
    sj=random.uniform(0.8,1.3)   #时间
    s.moveTo(a, b,duration = sj)

move(sb,500,536,1044,1075)
sj=random.uniform(0.05,0.1)
sb.click(clicks = 1, button = 'left', interval = sj)# 点击进入单据
time.sleep(sj+1)
move(sb,960,1027,313,399)
sj=random.uniform(0.05,0.1)
sb.click(clicks = 1, button = 'left', interval = sj) #点击探索
time.sleep(sj+1)
move(sb,560,600,800,850)
sj=random.uniform(0.05,0.1)
sb.click(clicks = 1, button = 'left', interval = sj) #点击御魂
time.sleep(sj+1)
move(sb,867,1090,350,750)
sj=random.uniform(0.05,0.1) 
sb.click(clicks = 1, button = 'left', interval = sj) #点击大蛇
time.sleep(sj+1)
move(sb,1380,1440,758,808)
sj=random.uniform(0.05,0.1)
sb.click(clicks = 1, button = 'left', interval = sj)  #点击挑战
sj2=random.randint(4,5)
time.sleep(sj+sj2)
move(sb,1402,1457,700,767)
sj=random.uniform(0.05,0.1)
sb.click(clicks = 1, button = 'left', interval = sj)  #点击挑战
i=1
#接下来进入循环模式
while(i>0):
    sz=random.randint(100,120)
    time.sleep(sz)
    sj=random.uniform(0.05,0.1)
    sb.click(clicks = 1, button = 'left', interval = sj) #随便点一下
    sz=random.randint(3,5)
    time.sleep(sz)
    move(sb,1402,1457,700,767)
    sj=random.uniform(0.05,0.1)
    sb.click(clicks = 1, button = 'left', interval = sj)  #点击挑战
    i=i+1
首先放代码,简单说一下,使用的是pyautogui来控制鼠标滑动。
首先重要的一点,简单说一下目前阴阳师的机制,网上有很多已经提到因为使用了按键精灵一类的软件导致账号被封,而我仔细看了网上的评论什么的以后,发觉可能最终的被封原因是因为,鼠标一直处于不动并且只在固定的时间进行点击,那么阴阳师只需要判断使用者鼠标点击的间隔时间就可以轻松判断是否使用了作弊软件。
那么如果想要跨越这一步应该怎么做呢,我们可以让鼠标移动随机,鼠标点击间隔时间随机,大量使用random模块。
所以首先编写了一个单独的函数move,控制鼠标移动,四个参数分别是最左点最右点、最上点最下点,然后寻找一个中间点,实现全随机。
我给出的代码是刷贪瞋痴的,如果想要刷魂蛇或者魂土需要移一下位置,一个简单的方法,可以使用qq的对话截图,从最左上往下截,可以直接看到当前所在点的位置。
还有笔者的刷图速度较慢,所以打一把御魂让程序沉睡了100秒+,相当于等待御魂刷完以后再次让鼠标移动。
最后说一下,打开编译器的时候需要管理员权限,因为打开时当点开阴阳师程序以后,相当于进入了另一个程序如果没有管理员权限程序无法继续运行。
另。。其实如果真的采用数据挖掘。。这种脚本是完全可以被识别出的,目前来看官方并没有采用,判断方式还是很单一。
### 使用 Python 编写阴阳师游戏自动脚本 编写阴阳师游戏的自动脚本可以显著提高玩家的游戏效率,尤其是在处理重复性任务方面。下面介绍一种基于 `adb` 和 `subprocess` 库来实现这一目标的方法。 #### 准备工作 为了能够顺利运行自动脚本,需先确保设备已连接至电脑并通过 ADB 调试模式开启。此外,还需安装必要的库文件如 `subprocess` 来调用外部命令行指令[^4]。 #### 启动游戏实例 可以通过发送特定的 ADB 命令给安卓模拟器或真实手机终端来启动阴阳师应用程序: ```bash http://www.biyezuopin.vip adb shell am start -n com.netease.onmyoji.netease_simulator/com.netease.onmyoji.Client ``` 这段代码用于启动指定包名的应用程序,在这里是网易旗下的《阴阳师》手游客户端[^3]。 #### 实现基本交互逻辑 一旦游戏成功加载完毕后,则可通过截屏、像识别技术找到屏幕上对应按钮的位置坐标,并向这些位置发送点击事件完成操作流程。这里给出一段简单的例子展示如何利用 Python 结合ADB工具来进行屏幕截保存到本地磁盘中以便后续处理: ```python import os from PIL import Image import numpy as np import cv2 import time def capture_screen(): """Capture screen and save it locally.""" os.system('adb shell screencap -p /sdcard/screen.png') os.system('adb pull /sdcard/screen.png .') capture_screen() time.sleep(1) img_array = np.fromfile(r"./screen.png", dtype=np.uint8) image = cv2.imdecode(img_array, cv2.IMREAD_COLOR) cv2.imshow("Screen Capture", image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 上述代码片段实现了对当前显示画面进行捕捉的功能,并将其转换成 OpenCV 可读取的形式供进一步分析使用。 #### 发送触摸事件 当定位好所需操作的目标区域之后就可以通过下发相应的手势动作达到控制目的了。比如模拟一次轻触行为可参照如下方式编码: ```python os.system(f'adb shell input tap {x} {y}') ``` 其中 `{x}` 和 `{y}` 表示想要触发点击的具体像素点横纵坐标的数值;此方法适用于大多数情况下简单场景下的自动执行需求。 #### 完整的工作流设计思路 构建完整的自动化解决方案通常涉及多个模块协同作业,包括但不限于: - **环境初始化**:确认硬件设施正常运作状态; - **UI元素检测**:运用 OCR 或模板匹配算法精准获取界面控件信息; - **决策制定机制**:依据预定义策略规划下一步行动方针; - **反馈循环体系**:持续监控进程进展状况并对异常情况进行及时响应调整。 综上所述,借助于强大的编程语言特性加上丰富的第三方扩展支持,完全可以打造出一套高效稳定的阴阳师辅助系统以满足个人爱好或是更广泛的研究探索用途[^1]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值