明日方舟辅助脚本,当然只是开发阶段
基于夜神模拟器集成了多种adb操作方法,可以进行安卓辅助开发。当然你要在电脑端跑
分辨率
在config.config 下还有一个参数,为ADB_HOST 夜深模拟器第一个模拟器的HOST 是 127.0.0.1:62001 如果是其他模拟器,则需要修改。当然你也可以留空,系统会自动检测 由于该脚本没有做适配,仅仅测试了夜神模拟器,其他模拟器请自行测试。
另外,请确定夜神模拟器的分辨率是否调整为1280*720
。由于作者精力有限,只做了绝对坐标的,欢迎大家重写模块
在运行过程中,请不要对模拟器进行缩放,以免造成不必要的麻烦
非常重要的路径设置 在config.py底下要改一个路径,如下所示
- ADB_ROOT 这个路径为你 安卓模拟器adb工具的路径 (一般安卓电脑模拟器都有,所以设置成模拟器路径即可)
STORAGE_PATH也就是目录底下的 storage 文件夹,请确保是绝对路径SCREEN_SHOOT_SAVE_PATH也就是目录底下的 screen_shoot 文件夹,用来存放一些截图
有人问我为啥是绝对路径,因为之后会有 os.chdir()的操作,所以建议全部写成绝对路径,就像如下所示:
ADB_ROOT = r"D:\Program Files\Nox\bin"
# ADB_HOST = "127.0.0.1:62001" # 如果你不想用多开器的功能,请用此行配置
ADB_HOST = "" # 如果你想用多开器的功能,请使用此行配置,并手动选择或在启动时自行添加HOST。
# 另外推荐将这里的ADB_HOST 赋值为空字符串,如果仅有一台设备连接,系统会自动读取到设备名称
# 目前多开设备可能存在读写问题。后期会调整路径设置。
OCR高级选项设置 注意:以下选项如果要开启的话,请使用前确认已经安装 中文识别 或者 启动百度API
# 启动ocr来检测关卡后是否升级;默认方法为子图识别
enable_ocr_check_update = True
# 启动ocr来检测关卡是否结束;默认方法为子图识别
enable_ocr_check_end = True
# 启用ocr来DEBUG;默认方法为子图识别
enable_ocr_debugger = True
# 启用ocr输出,建议重定向到 Null。不然你的命令行输出会非常好看
enable_rebase_to_null = True
# 是否启用百度api作为ocr识别方案,需要自行注册,不启用则使用默认方案(OCR的方案)
Enable_api = False
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
**所有的设置可以在config/default_setting.json
**下修改
# python 版本 3.6 +
Package Version
---------- --------
baidu-aip 2.2.13.0
certifi 2019.3.9
chardet 3.0.4
idna 2.8
mp3play 0.1.15
numpy 1.16.4
Pillow 6.0.0
pip 10.0.1
requests 2.21.0
setuptools 39.1.0
six 1.12.0
soupsieve 1.9.1
urllib3 1.24.2
wxPython 4.0.6
一键安装所有依赖
$ pip install -r requirement.txt
- ADB 指令
- 点击动作
- 拖动动作
- 截图动作
- 获取子图
- 子图与目标子图比较
- OCR 检测识别
- 百度OCR (感谢群友的贡献,目前该功能基本完善,如有BUG请多多包涵)
- 待开发的 GUI 功能
需要安装OCR模块;感谢群友的贡献!
之后通过这样的代码就可以迅速开始战斗,你需要手动选关。到如下画面,活动关卡你也可以这么刷
from Arknights import ArknightsHelper
Ark = ArknightsHelper()
Ark.module_battle_slim(c_id='4-8', set_count=8)
# c_id 是战斗章节
# set_count 是战斗次数
理论上该模块比完整的模块稳定并且不容易被系统检测。并且该模块所有的点击序列都是随机化的,不容易被检测
关于多开器的用法 请在初始化前,带入 ADB_HOST。如果你不知道你的 ADB_HOST 是多少,就带入一个空值。系统会自动检测,并让你手动选择。
[!] 检测到多台设备,根据 ADB_HOST 参数将自动选择设备
[*] 0 127.0.0.1:62025 device
[*] 1 127.0.0.1:62001 device
系统未检测到设备名称,请根据上述内容自行输入数字并选择
>0
127.0.0.1:62025
请不要直接带入和你另一个设备同样的ADB_HOST,这样会导致连到另一台设备上去
from Arknights import ArknightsHelper
ADB_HOST = "127.0.0.1:62025"
# OR ADB_HOST = ""
Ark = ArknightsHelper(adb_host=ADB_HOST)
Ark.module_battle_slim(c_id='CE-3', set_count=50, set_ai=True)
通过传入任务清单可以执行一系列任务。 目前支持的关卡请看在click_location.LIZHI_CONSUME中的关卡章节。 基本上里面的所有章节都测试过,但是总有一些奇奇怪怪的状况发生。并且请不要让你的自律翻车。不然就没了
from Arknights import ArknightsHelper
from collections import OrderedDict
TASK_LIST = OrderedDict()
TASK_LIST['LS-4'] = 10
Ark = ArknightsHelper()
Ark.main_handler(TASK_LIST)
⚠ 由于脚本逐渐完善化以及日趋增加的错误处理能力。在之后的版本中将会逐渐废弃未安装OCR模块的支持。 为此希望能够自行安装OCR模块或者调用百度API来识别。关于OCR的安装可以看 OCR_install.md
如果你没有安装OCR模块,需要在初始化时候赋予初值,该值为你当前的理智。 由于系统不知道你啥时候升级,所以减好了还需要重新设置。
from Arknights import ArknightsHelper
from collections import OrderedDict
TASK_LIST = OrderedDict()
TASK_LIST['LS-4'] = 10
Ark = ArknightsHelper(100)#
Ark.main_handler(TASK_LIST)
目前GUI功能还在测试中,会在之后的时日里日渐完善。现在的样子如下所示.
启动方法很简单,执行 GUI_start.py即可
from GUI import start_app
start_app()
- 利用抓包获取升级等信息
- GUI 功能完善化
- config 文件设置 GUI化
- 更多的主线关卡支持
- 自动访问好友基建的支持
- 自动1-11支持【提issue的朋友我觉得你可以试试按键精灵】
- 坐标相对化
详情请联系作者或者提出你的issue!祝大家玩的愉快 欢迎来加好友QQ 2454225341
在自定义开发之前,请把config/__init__.py
改正为
from config.config import *
# 备注:为了开发方便,应该将上面一行注释打开,不然你会看到你的编译器一片冒红
# 为此你需要同步 setting 文件的配置
from config.shell_color import ShellColor, BufferColor
# from config.load_settings import *
不然你会看见你的IDE一片红。这么写的原因是方便GUI来进行设置。
请对所有的类和函数在最外层进行调用。不然路径会出错
- 分辨率/模拟器/路径问题 请看README
- 我想跑一些别的关卡,但是提示我关卡不支持。 修改click_location中的LIZHI_CONSUME,添加你需要的关卡 你添加的关卡只能通过slim模式来启动
- OCR 模块可以不装嚒? 可以不装,但是在使用脚本的时候请初始化理智值。目前而言,如果没有装OCR模块,你不能用GUI的版本。我之后会添加支持。 推荐安装GUI模块。因为这样能让一些地方的容错率变高。关于OCR的安装可以看文档。有人提议咱们可以用抓包来做。之后我会考虑这个功能,如果时间充裕的话(很显然是不充足的)
- 我不会python|我电脑里没装Python,我能用这个嚒? 不能。我没有精力去给你整个exe文件。但是你也许可以通过我的代码学习一些Python的小技巧。