Skip to content

fabiokilling/ArknightsAutoHelper

 
 

Repository files navigation

Arknghts Auto Helper

明日方舟辅助脚本,当然只是开发阶段

0x01 ADBShell

基于夜神模拟器集成了多种adb操作方法,可以进行安卓辅助开发。当然你要在电脑端跑

运行须知

config 设置

分辨率

在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 功能

0x02 ArknightsHelper

需要安装OCR模块;感谢群友的贡献!

快速启动!快乐护肝!

之后通过这样的代码就可以迅速开始战斗,你需要手动选关。到如下画面,活动关卡你也可以这么刷

from Arknights import ArknightsHelper
Ark = ArknightsHelper()
Ark.module_battle_slim(c_id='4-8', set_count=8)
# c_id 是战斗章节
# set_count 是战斗次数

TIM截图20190513101009.png-1013.8kB

理论上该模块比完整的模块稳定并且不容易被系统检测。并且该模块所有的点击序列都是随机化的,不容易被检测

多开启动!效率至上!

关于多开器的用法 请在初始化前,带入 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模块的支持。 为此希望能够自行安装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)

wxpython 的用法

目前GUI功能还在测试中,会在之后的时日里日渐完善。现在的样子如下所示.

TIM图片20190610221825.png-229.9kB

启动方法很简单,执行 GUI_start.py即可

from GUI import start_app
start_app()

关于后续的想法

  • 利用抓包获取升级等信息
  • GUI 功能完善化
  • config 文件设置 GUI化
  • 更多的主线关卡支持
  • 自动访问好友基建的支持
  • 自动1-11支持【提issue的朋友我觉得你可以试试按键精灵】
  • 坐标相对化

自定义开发与更多功能

详情请联系作者或者提出你的issue!祝大家玩的愉快 欢迎来加好友QQ 2454225341

也可以来加群 qrcode_1558871927006.jpg-60.7kB

在自定义开发之前,请把config/__init__.py改正为

from config.config import *
# 备注:为了开发方便,应该将上面一行注释打开,不然你会看到你的编译器一片冒红
# 为此你需要同步 setting 文件的配置
from config.shell_color import ShellColor, BufferColor
# from config.load_settings import *

不然你会看见你的IDE一片红。这么写的原因是方便GUI来进行设置。

请对所有的类和函数在最外层进行调用。不然路径会出错

0x03 关于一些常见的问题

  1. 分辨率/模拟器/路径问题 请看README
  2. 我想跑一些别的关卡,但是提示我关卡不支持。 修改click_location中的LIZHI_CONSUME,添加你需要的关卡 你添加的关卡只能通过slim模式来启动
  3. OCR 模块可以不装嚒? 可以不装,但是在使用脚本的时候请初始化理智值。目前而言,如果没有装OCR模块,你不能用GUI的版本。我之后会添加支持。 推荐安装GUI模块。因为这样能让一些地方的容错率变高。关于OCR的安装可以看文档。有人提议咱们可以用抓包来做。之后我会考虑这个功能,如果时间充裕的话(很显然是不充足的)
  4. 我不会python|我电脑里没装Python,我能用这个嚒? 不能。我没有精力去给你整个exe文件。但是你也许可以通过我的代码学习一些Python的小技巧。

About

Arknights Auto Helper based on ADB and Python | 基于python的明日方舟护肝助手

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%