Princess-connection-farm:一个国服公主连结R的自动化脚本

公主连结R,是由 Cygames 公司开发的动画抽卡角色扮演类游戏,简体中文官服由 Bilibili 于2020年4月代理发行。

这个游戏呢,如果是跟着开服的进度慢慢发展的话,还是基本上不用特别肝或者氪金的;但是在现在这个时间点上再入坑,进度属实有点难赶,需要很长时间了。这个脚本设立的初衷,就是:把个人时间花在其他有用的地方,让脚本帮你养老婆养女儿

按照 Github 里的教程是可以部署的,但是其教程撰写得过于繁琐、冗长,对新手及其不友好的,发 issue 基本没什么用,除非用英语。所以,Never. 尽量以一个小白的角度来叙述这个脚本的安装过程。

需要:Windows 10 或 11,可以流畅运行安卓模拟器的机器。

本篇文章环境基于 Windows 10 下,系统中未安装任何版本的 python。

系统中未安装任何版本的 python

在该情况下,一切都变得简单起来~

首先,将项目下载到本地,然后解压。如果不能正常访问 github,点这个链接下载。这里我们解压到 C 盘用户中的下载目录里的“PCRFarm”,也可以解压到其他目录,这个项目安装完之后差不多一两个G。

打开解压后的文件夹,点一下上方的地址栏,被选中的路径就是该项目在我们电脑中的绝对路径了:

接下来就要安装 python 了,这里项目组给出了两个方法,一是安装项目组给出的 python 虚拟环境(venv),二是走 pip install 来安装项目依赖。为了简单,我们走安装虚拟环境。

虚拟环境中,项目组给出了两个包:

我们选择“依赖单体包”,下载链接:https://www.123pan.com/s/dDG9-Mc3WA 提取码:mK4h。

下载后,打开压缩包,双击进入 .venv 目录:

请一定确保进入 .venv 目录(如上图所示),然后单击最上面的“..”,解压至项目的主目录里的 .venv 目录下(例如,我的就是 C:\Users\Never\Downloads\PCRFarm\.venv):

解压说明:先找到项目的主目录(例如,PCRFarm),然后单击主目录,再点“新建文件夹”,将“新建文件夹”重命名为“.venv”,进行解压。

解压完成后,目录结构应是这样的:

请务必要确保 .venv 目录中仅为上图所示的那些文件和文件夹,而不是仅为一个“venv”或”.venv”的文件夹而且,确保 .venv 目录与 “main_new.py”文件两者处于一个文件夹中

接下来,安装安卓模拟器。项目组叙述说:“雷电4,蓝叠,雷神,夜神,逍遥模拟器均可以使用。一般来说,只要支持adb连接的模拟器都可以使用(建议非雷电模拟器,打开自动搜寻模拟器),甚至可以混合搭配使用(adb端口不冲突的情况下)。” 这里,我们使用蓝叠国际版(Nougat, 64位),可以点这儿下载。

安装完成后,进入模拟器的设置界面:

在“显示”栏目,需要将显示设置调整为“竖屏”,分辨率为“540×960”,像素密度为“240 DPI(中)”,然后点击保存,重启模拟器:

重启完成后,继续打开设置,点击“高级”栏目,将“Android 调试(ADB)”打开,然后点击保存,重启模拟器:

Bilibili服的公主连结可以通过 Taptap 下载,Taptap官网下载界面点这儿,下载apk后安装在模拟器上,然后打开taptap搜公主连结下载即可。第一次进游戏需要下载约12GB的数据。

接下来就要对脚本下功夫了,打开主目录下的 .venv 目录,打开“python-3.8.10-amd64.exe”安装 python,请注意,一定要勾选“Add Python 3.8 to PATH”!!

安装完成后,重启一下电脑,然后回到 .venv 目录,按住 Shift,同时在空白区域右键单击,在右键菜单中选择“在此处打开 PowerShell 窗口”或“在此处打开 Windows 终端”。

请确保 PowerShell 是在 .venv 目录下运行的:

输入以下命令来安装“poetry”:

pip install poetry

如果有如上图所示的回显即为安装完成,接下来,输入以下命令来验证 poetry 是否成功安装:

poetry -V

若有回显显示 poetry 的版本号,如上图,则为安装成功。

返回到项目主目录(PCRFarm),在此打开 PowerShell 或 Windows 终端窗口,输入以下命令来更改 poetry 的运行环境:

poetry env use "python 安装的路径"

python3.8 默认安装在 C:\Users\“你的用户名”\AppData\Local\Programs\Python\Python38 下,以我自己为例,该命令应为:

poetry env use C:\Users\Never\AppData\Local\Programs\Python\Python38\python.exe

如果报错,如下图所示:

打开 .venv 目录中的“pyvenv.cfg”(可以用记事本来编辑),将C:\Users\KLest\AppData\Local\Programs\Python\Python38 替换成 C:\Users\“你的用户名”\AppData\Local\Programs\Python\Python38。以我的为例,修改完应为下图所示:

保存退出,接着在项目主目录(PCRFarm)下运行终端窗口,输入以下命令来启动脚本:

poetry run python .\main_new.py

等待检测完毕:

此时打开安卓模拟器,然后在终端中输入以下命令来初始化脚本:

init

完成后,模拟器桌面上会出现“ATX”应用,打开应用,检查工作是否正常:

接下来就是最繁琐的阶段了,配置账号、分组、创建任务与分配任务。项目组在这几个部分中的说明过于冗余。

配置账号

该脚本识别用户名和密码的格式为“用户名1 密码1”(用户名+一个空格+密码)。我们需要在项目主目录(与main_new.py 同级)中创建“zhanghao.txt”,文本文档中一行一个用户名和密码:

user1 passcode1
user2 passcode2
...
userx passcodex

项目组推荐将大号放在第一的位置。

回到终端,输入 edit 进入项目编辑菜单,再输入以下命令导入账号密码:

user -c -file zhanghao.txt 

输入 user? 可以获取有关 user 的更多示例用法:

Edit> user?

        帮助: user
        user -l 列举全部用户列表
        user Account 显示某用户的所有信息
        user -c Account Password 创建一个新用户。
            Account: 用户名    Password: 密码
            对已经存在的用户将覆盖原本的信息
        user -c -file Filename 从指定文件Filename创建用户
            该文件每一行要求分隔符(空格或Tab)隔开的两个元素 Account Password
            对已经存在的用户将覆盖原本的信息。
        user -d Account 删除指定Account的账户
        user -d -file Filename 从指定文件Filename删除用户
            该文件每一行为一个Account,表示要删除的用户
        user -d -all 删除全部用户
        user Account [-p Password] 更改某一账户的密码

分组

一般地,我们期望小号1~15打本,攒装备,小号16~30给公会里的成员点赞、捐玛娜等或者全部小号都打本等,这个时候就涉及到分组了,如果一次只对一个小号下放任务,效率会很低,分组则可以让该组里的账号全部做同样的计划任务。

在项目主目录(与main_new.py 同级)中,创建新文件夹,命名为“groups”,在里面创建个文本文档,命名为“tuitu.json”,文件名可自定义(最好用英文),但是后缀要为 .json。我们定义这个组别里面的账号均要推图和做一些日常任务。

打开这个文件(可以用记事本打开),在里面输入要推图和做一些日常任务的账号的用户名,每行一个,例如:

user1
user2
user3
...
user15

小号16~30给公会里的成员点赞、捐玛娜,我们再新建一个文本文档,命名为“gonghui.json”,在里面输入小号16~30的用户名,每行一个,例如:

user16
user17
user18
...
user30

假如全部小号都做一个任务,则可以将全部小号的用户名都放在一个 .json 文档里,以此类推。

此时,我们在终端中输入 group -l,即可向脚本中加载全部组别:

输入 group? 可以获取有关 group 的更多示例用法:

Edit> group?

        帮助:group
        group -l 列举全部组列表
        group GroupName [-g] 显示某个组的全部成员,输入-g后还会显示其成员全部所在组
        group的创建:非常简单,不写方法了。
        Step 1. 前往./groups 文件夹
        Step 2. 创建一个.json文件,文件名为组名
        Step 3. 在该json文件内每行一个用户名,表示该组的成员  <- 由于某些原因,它其实以txt结尾最好,毕竟一行一个明显不是json吧……
        [新增方法] 以下方法中如果组不存在将被自动创建
        group add (GroupName) (UserName1) [(UserNameN) ...]
            将UserName或一系列空格隔开的UserNames添加到组GroupName
        group add (GroupName) *TargetGroup
            将TargetGroup中的用户添加到组GroupName,注:*TargetGroup表示在名称前加*号,如*xiaohao。
        group del (GroupName) (UserName1) [(UserNameN) ...] 从组GroupName中移除一个或多个空格隔开的UserName
        group del (GroupName) * 删除GroupName中全部组成员
        group del (GroupName) *TargetGroup 删除GroupName中全部TargetGroup中的组成员
        group move (GroupName1) (GroupName2) (UserName1) [(UserNameN) ...] 将一个或多个用户从组GroupName1移动到GroupName2
        group move (GroupName1) (GroupName2) * 将GroupName1中组成员全部移动至GroupName2
        group move (GroupName1) (GroupName2) *TargetGroup 将GroupName1中TargetGroup中的组成员全部移动至GroupName2
        group user (UserName) 显示某一个用户所在的全部组

#这个时候也就是最矛盾的地方,项目组在 github 的使用方法中要用 .json 格式来配置组别,而在终端中又说 .txt 最好。而且还重复说明 json 一行一行很奇怪。不懂项目组的意思,想彰显自己学问渊博?

创建任务

最最最最麻烦的地方来了。

首先,我们以小号1~15(推图,刷装备)的角度来看,上号之后的流程为:

账号设置初始化—抽取免费扭蛋和免费十连(如果当期有提供)—>领取礼物—>领取每日任务奖励—>刷主线普通/推图—>刷主线困难/推图—>领取每日任务奖励

在这个游戏里面,每个账号都有自己的设定档,所以我个人推荐每个账号的第一个任务就是先初始化设置,以防止脚本卡顿。

脚本的任务进行顺序与我们添加的顺序一致,所以我们要按序添加,也可以后期输入命令更改排位。

在终端中输入 task -c tuitu,创建一个 tuitu 任务,然后输入 task -e tuitu,进入 tuitu 任务的编辑界面:

可以输入 help 来获取任务设定帮助:

Task[tuitu]> help
add (Type) 根据提示增加一个缩写为Type的指令
del (ID) 删除指定ID的任务
move (ID1) (ID2) 将原来编号为ID1的任务移动至ID2
detail [(ID)] 查看指定ID的详细参数,若ID不指定,查看全部任务的详细参数
moredetail [(ID)] 查看指定ID的更详细参数,若ID不指定,查看全部任务的更详细参数
edit (ID) [-s] 修改某一个任务 设置了-s后,不会显示具体数值。
list -[前缀] 显示以[前缀]开头的全部任务
list -h 显示行会指令 (和活动指令,因为hd也是h开头的……)
list -hd 显示活动指令
list -d 显示地下城指令
list -j 显示竞技场指令
list -r 显示日常指令
list -t 显示工具指令
list -s 显示刷图指令
list -f 显示好友指令
enable (ID) 启用编号为ID的任务
disable (ID) 禁用编号为ID的任务
flag (flagname) (ID) 当flagname被激活时,禁用编号为ID的任务(详见switch)
show 显示现在的任务情况及其ID
帮助: help  退出: exit  保存:save  重载:load 重写: clear
== 一定记住:先保存,再退出!!==

#此时又来一个矛盾的地方,行会里面也有活动指令,而下面又单出个活动指令。

所有指令附在本教程最后。
所以对于小号1~15,我们首先就是要设置初始化,对应的任务编号为 t10,即要在终端中输入 add t10 来增加任务。接下来是扭蛋和抽奖,对应任务编号为 r2r3,依序、单个增加,在终端中输入 add r2,执行,再输入 add r3,执行,以此类推。

在添加一些任务时,脚本可能会让我们选择某些选项,一般都能读懂,但是实在不能理解的,可以参阅项目组对于 schedule 的说明,点这儿查看

添加任务完毕后,输入 save 保存,再输入 exit 退出任务编辑界面。

也可以通过手动编辑 tasks 目录下的 xxx.json 来手动编辑/调序任务:

创建完 tuitu 任务后,可以给小号16~30添加对应的任务,步骤和上面相同,只需要一下任务名称即可~

分配任务

加油!就快到最后了!!

在这里我们需要定义哪个组干哪些活儿,哪个组要干的活儿的优先权最高等等。

这里,脚本使用了 batch 命令,每个 batch 仅对应一组 tasks

以 tuitu 的任务为例,在终端中输入 batch -c tuitu,创建一个对小号1~15的任务批次,然后输入 batch -e tuitu,进入 tuitu 批次的编辑界面。

在此界面,可以输入 help 获取帮助:

Batch[tuitu]> help
add account task [priority=0]
    增加一个优先级为priority的account做task的任务
add -g group task [priority=0]
    增加一个优先级为priorityd的组group做task的任务
add -file filename
    从文件中添加一组任务
    该文件由若干行组成,每一行应填入四个空格隔开的元素:
    若添加单独任务,则第一列写字母A,后面三个空依次填入account,task,priority。
    若添加组任务,则第一列写字母G,后面三个空依次填入group,task,priority
random enable/disable (ID)  随机编号为ID的batch的优先级(优先级将±0.5浮动)
show 显示现在的任务情况
帮助: help  退出: exit  保存:save  重载:load 重写: clear
什么是batch:  what
== 一定记住:先保存,再退出!!==

然后我们把之前创建的 tuitu 任务和 小号1~15 所对应的 tuitu 组绑定在一个批次中:

add -g tuitu tuitu

上面一条命令,前面的“tuitu”代表是分组,后面的“tuitu”代表是任务

然后输入 show 查看是否绑定成功:

有上图类似的回显则代表成功,我这里的组的名称是 richang,大家根据自己的进行修改即可。

然后输入 save 保存,exit 退出。

也可以通过手动编辑 batches 目录下的 xxx.json 来手动编辑/调序任务:

有多 batches 的小伙伴,重复上述步骤新建修改即可。

执行任务时间

到最后了!!

我们可能需要对某组执行的任务有时间限制,例如早上执行公会点赞,捐玛娜等的一组,晚上再执行推图,刷装备等的一组。这时候就需要用到 schedule 了。

tuitu 一组为例让其晚上进行,在终端中输入 schedule -c tuitu,创建 tuitu 的计划,然后输入 schedule -e tuitu,进入计划的编辑界面:

在此界面,输入 help 可以获取帮助:

Schedule[tuitu]> help
add asap           按照提示添加一个立即执行的任务
add wait           按照提示增加一个等待执行的任务
add config         按照提示增加一个schedule配置
enable name        激活名称为name的子计划
disable name       禁用名称为name的子计划
flag flagname name 当flag设置为真时,禁用名称为name的子计划(详见switch)
show 显示现在的计划情况
帮助: help  退出: exit  保存:save  重载:load 重写: clear
什么是batch:  what
== 一定记住:先保存,再退出!!==

#这儿又有个问题,在 schedule 中输入 help,里面有“什么是 batch”…

输入 add wait 进入配置界面,这里以批次 batch 中只含有单一任务 tuitu、在19~24时、循环运行为例:

Schedule[tuitu]> add wait
-- 批配置名称 --
请为这个子计划起个名字: tuitu   #计划名称
-- 批配置模式 --
0: 只包含一个批配置(适用于大多数情况)
1: 多个批配置依次执行(适用于40to1等)
>0        #一般选0
-- 批配置文件 --
请输入批配置文件:tuitu  #与在 batch 中设置的名称一致
-- 条件设置 --
0 退出设置
1 条件:指定时间段
2 条件:可以捐赠
>1    #设置指定时间段进行该任务
请输入起始小时: (0~23的整数)19
请输入结束小时:(0~23的整数)0
-- 条件设置 --
0 退出设置
1 条件:指定时间段
2 条件:可以捐赠
>0        #设置完毕后输入0
-- 记录设置 --
0 正常运行(默认)
1 持久运行:不受到first或restart的影响,除非使用restart schedule name单独指定。
2 循环运行:适用于装备捐赠等条件,运行完毕后自动执行restart。
>2       #设置运行条件,根据个人设置的任务来选择

大家可以依据自己创建的任务的条件来自定义该项。完成后,输入 save 保存,exit 退出。

也可以通过手动编辑 schedules 目录下的 xxx.json 来手动编辑/调序任务:

有多 schedules 的小伙伴,重复上述步骤新建修改即可。

可以将许多 batches 与同一个 schedule 绑定(创建多个子计划),以达到在终端上绑定一个计划就全部运行的目的。

绑定 schedule

完成上述步骤,在启动脚本前我们还需要一步:绑定 schedule 以让脚本了解要干什么。

输入以下命令来绑定 schedule:

bind "schedule 名称"

以上面创建的 tuitu schedule 为例,该条命令应为:

bind tuitu

然后,我们就可以在终端上输入 help 来查看有关运行命令:

Main[tuitu]> help
脚本控制帮助 ()内的为需要填写的参数,[]内的参数可以不填写(使用默认参数)
bind (schedule) 绑定一个计划
first 清除计划 tuitu 的运行记录并重新执行
continue 继续执行计划 tuitu
state 显示计划 tuitu 的运行状态
clear (name) 清除计划 tuitu 中名为Name的子计划的错误,name设置为-all时,全部清除。
restart (name) 清除计划 tuitu 中名为Name的子计划的运行记录,name设置为-all时,全部清除。
unbind 解除与计划 tuitu 的绑定。
state -tuitu 显示所有用户推图的状态

运行脚本前,请确保安卓模拟器已开启,在桌面上。

第一次运行的话,输入 first 开始:

如果中间出错导致脚本停止运行,重新打开终端,输入 poetry run python .\main_new.py 重新打开脚本,输入 continue 来从上次出错的地方继续运行脚本。

快速启动

可以输入以下命令重新开始或继续运行某个schedule:

poetry run python .\main_new.py first(或continue) "schedule 名称"

例如,要重新开始/第一次运行名字为 tuitu 的 schedule,输入以下命令:

poetry run python .\main_new.py first tuitu

要从上次中断的地方继续运行名字为 tuitu 的 schedule,输入以下命令:

poetry run python .\main_new.py continue tuitu

报错处理

运行的脚本若在某个账号中出现错误,停止运行,出错的账号将无法继续运行(即使使用 firstrestart 命令)。出错的账号会显示在终端中,相应的日志储存在项目主目录下的 log 目录中。在 error_screenshot 目录中可以找到出错时的截图。排查完问题后,在终端中输入 clear -all 清除错误信息,再输入 continue 即可继续运行计划。

至此,脚本就安装完毕了。最后很想感慨几句,总感觉一部分国内开发者在 github 上po一些项目,教程写得很是深奥,如果没有点基础可能会看不懂,而这种情况在国外开发者比较少见。另外,投 issue 也是一样,部分国内开发者只是会很敷衍的回复,除非用英语,就搞得很像崇阳媚外一样。既然你把这个项目po出来,分享给大家,那么我认为开发者也有责任去撰写一篇通俗易懂的教程,而不是在教程上展现出开发者有多高知识水平,教程不是面试。

今后 Never. 有可能写一篇针对机上运行了有 anaconda 3中环境下部署此脚本的教程,发 issue 问是问不出来的,毕竟问题还没解决人家就先把 issue 给关了。

封面及终端插图来源于 Pixiv 画家 @mocha@新刊委託中(ID: 648285)。

本教程允许转载,但须注明来源。

附:任务列表

行会任务指令

list -h
h1   :   行会捐赠
  * 小号进行行会自动捐赠装备
h2   :   踢出行会
  * 将战力排名第一人踢出行会
h3   :   邀请行会
  * 邀请指定成员进入行会
h4   :   接受行会
  * 接受行会的邀请信息
h5   :   加入行会【不推荐使用】,建议使用h8
  * 主动搜索并加入行会
h6   :   行会点赞
  * 给指定人点赞
h7   :   支援设定
  * 按照战力排行设定支援(最高的)
h8   :   加入行会
  * 主动搜索并加入行会(全识图版),已在行会会跳过
h9   :   发起捐赠
  * 自动发起装备捐赠,需要自行截装备图。
h10   :   自动摸会战
  * 自动用完公会战次数

活动指令

list -hd
hd01   :   推活动普通图
  * 用于推N1-15。
hd02   :   推活动困难图
  * 用于推H1-5。
hd03   :   推/刷活动Boss(N or H or VH),
  * 刷活动Boss,用完挑战券,一次打不死会直接退出。
hd04   :   推/刷活动VHBoss
  * 刷活动VHBoss图
hd05   :   推/刷活动1-1
  * 推/刷活动1-1图,可以借人。
hd06   :   刷活动Hard图
  * 刷活动Hard图,要求已经全部三星。
hd07   :   刷指定活动普通图(必须打过)
  * 一般用来刷1-5或者1-15
hd08   :   交换讨伐证(试验性)
  * 交换讨伐证,不中途重置
hd09   :   获取活动任务奖励
  * 活动任务奖励
hd10   :   获取活动剧情奖励
  * 获取活动剧情奖励
hd11   :   获取活动信赖奖励
  * 获取活动信赖奖励

地下城指令

list -d
d1   :   地下城(使用OCR)
  * 小号地下城借人换mana
d2   :   地下城
  * 【不推荐使用】小号地下城借人换mana
d5   :   通关地下城OCR
  * 【适合大号,借人可能有BUG】通用的打通地下城函数

竞技场指令

list -j
j1   :   竞技场
  * 竞技场白给脚本
j2   :   公主竞技场
  * 公主竞技场白给脚本

日常指令

list -r
r1   :   家园领取
  * 收取公会之家的奖励
r2   :   免费扭蛋
  * 抽取免费扭蛋
r3   :   免费10连
  * 抽取免费十连(如果有的话)
r4   :   收取礼物
  * 收取全部礼物
r5   :   收取任务
  * 收取全部任务奖励。
    如果日常任务和主线任务都存在,需要收取两遍。
r6   :   购买体力
  * 购买一定次数的体力
r7   :   购买MANA
  * 购买指定次数的mana
r8   :   购买经验
  * 买空商店里的经验药水
r9   :   探索【不推荐】
  * 【非OCR,不推荐使用】进行探索活动
r9-n   :   可推图探索【不推荐】
  * 【非OCR,不推荐使用】进行探索活动
r9-ocr   :   可推图探索OCR【推荐】
  * 进行探索活动
r10   :   圣迹调查
  * 进行圣迹调查
r10-n   :   圣迹调查新版
  * 进行圣迹调查(可选关)
r11   :   收取女神祭
  * 收取女神祭
r12   :   神殿调查
  * 进行神殿调查
r12-n   :   神殿调查新版
  * 进行神殿调查(可选关)

工具指令

list -t
t1   :   批量重命名
  * 随机+批量给自己换个名字,建议配合OCR识别信息更佳
t2   :   box截图
  * 按照战力/等级/星数截屏前两行box
t3   :   OCR获取账号信息【识别精度较低】
  * 识别会单独消耗时间,大约几分钟
    利用OCR获取等级/名字/行会名/mana/宝石/战力/扫荡券,并输出成xls表格到xls文件夹
    注意:请不要在生成表格的期间打开表格!
t4   :   小号卖装备【别用】
  * 卖出数量前三的装备(如果数量大于1000)(无需OCR)
t5   :   暂停
  * 暂停脚本,弹出弹窗,直到手动点击弹窗才结束
t6   :   库存识别
  * 识别装备库存并输出到outputs文件夹。
t7   :   角色识别
  * 识别角色信息并输出到outputs文件夹。
t8   :   过主线剧情
  * 过主线剧情,不包含角色剧情和活动剧情。
t9   :   碎片购买
  * 根据角色名称使用代币购买商店碎片
t10   :   设置初始化
  * 初始化设置,例如跳过动画,隐藏外传等,,提升脚本运行效率。
t11   :   按角色名称选取角色,并存入编队
  * 自动编队后存储,支持缺失位置自动补完或指定替补池
t12   :   六星开花
  * 自选指定4人,进行6星开花

刷图指令

list -s
s1   :   刷经验1-1【别用,除非OCR】
  * 刷图1-1,经验获取效率最大。
s1-3   :   刷经验3-1【别用,除非OCR】
  * 刷图3-1,比较节省刷图卷。
s1-s   :   超级刷1-1【别用】
  * 【可能有BUG】扫荡券用完了就采用手刷,有扫荡券就再用扫荡券
    一直刷到倾家荡产,体力耗尽!
s2   :   刷N图【别用,除非OCR】
  * 使用扫荡券刷指定普通副本
s3   :   刷H图【别用,除非OCR】
  * 使用扫荡券刷指定困难副本
s5   :   初始化【已经修复】
  * 从1-3自动推到3-1,已经推过的部分不会再推。
s5-2   :   快速初始化【已经修复】
  * 从1-3自动推到3-1,已经推过的部分不会再推。
    先刷经验后推图,效率更高,但是会刷很多次1-1.
s6   :   自动推Normal图【已经修复】
  * 使用等级前五的角色自动推Normal图
    如果某一关没有三星过关,则强化重打。
    若强化了还是打不过,则退出。
    若没体力了,也退出。
s6-h   :   自动推Hard图【已经修复】
  * 使用等级前五的角色自动推Hard图
    如果某一关没有三星过关,则强化重打。
    若强化了还是打不过,则退出。
    若没体力了,也退出。
s7   :   每日H图
  * 每天按照顺序依次扫荡H图,直到体力耗尽。
    扫过的图当日不会再扫,第二天重置。
s7-ocr   :   每日H图OCR
  * 【使用OCR】每天按照顺序依次扫荡H图,直到体力耗尽。
    扫过的图当日不会再扫,第二天重置。
s7-a   :   每日H图全刷
  * 从H1-1开始一直往后刷直到没法刷为止。
s7-a-ocr   :   每日H图全刷OCR
  * 【使用OCR】从H1-1开始一直往后刷直到没法刷为止。
s8   :   自动升级【已重写】
  * 此功能为自动升级角色功能
s8-a   :   自动升级前几个角色
  * 不能指定角色升级,但能升级前几个角色。
s9   :   OCR主线通用刷图推图
  * 使用OCR辅助的稳定的通用主线刷图/推图
s9-t   :   OCR主线推图
  * s9,但是专门用于一个一个图的推
s9-auto   :   大号自动规划刷N图
  * 每日刷图,但是基于角色识别和装备识别自动规划要刷的normal图!
    *你需要在data中事先设定角色的追踪*
    大号专用,默认所有图均三星可扫荡。
s10   :   好友快速借人
  * 借好友随便推一关,点进去什么图就推它的第一关。
s11-n   :   借人推普通图
  * 借好友或别人的进行推普通图。
s11-h   :   借人推困难图
  * 借好友或别人的进行推普通图。
s12   :   推外传,获取奖励
  * 简单获取外传的一次性奖励

好友指令

list -f
f1   :   添加好友
  * 按照ID添加好友。
f2   :   通过申请
  * 处理全部的好友申请,可以指定按前缀过滤。

#这一会儿走拼音第一个字母,一会儿走单词第一个字母,真是服了。

Digiprove sealCopyright secured by Digiprove © 2023 Never.