Skip to content

基于 airtest 的 fgo iOS 全自动 3T 脚本模板,可抽无限池

Notifications You must be signed in to change notification settings

Sansui233/fgo-airtest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FGO-Airtest

FGO 全自动刷本 3T 脚本模板,速度接近手刷。对手机的控制依赖于 Airtest,Airtest 能连接到的手机即可使用,理论上不限平台。但安卓已经有更方便的脚本了,所以这里主要针对 iOS。

主要优点

  • 高度自定义 3T,适合宝具队
  • 速度还不错,稍微逊色于手势录制,优于全图像匹配
  • 不开虚拟机与模拟器,较小的 CPU 和内存负担

缺点

  • 环境部署麻烦
  • 首次录入屏幕坐标麻烦
不同平台可使用的自动刷本方法汇总

使用前先部署好环境(这一步需要花亿些时间)。airtest IDE 可以不用装,但得确保安装 airtest 的 python 模块。

运行方式

下载此仓库。打开daily.py,参考已有例子编写自己编队的 3T 操作。编队的入口为助战选择界面,需要进入游戏的助战选择界面后开始运行。

然后运行 main.py 即可。运行前一定先**修改编队,不要直接运行在你的编队上**(也没事最多浪费 40AP

python3 main.py 编队函数名 运行次数

运行截图:

修改编队

由于每个人 3T 的差异很大,需要根据自己的编队完全重写操作。

点击操作主要分为两种:

  • 图像匹配后点击
  • 根据坐标点击

1. 坐标点击

个人推荐能使用坐标点击的部分就直接点坐标,因为刷起来快。并且以后编写脚本也更快速。缺点是开始的工作量多一些。你需要获取所有用到的按钮的位置。

1.1 修改 actions.py

战斗中会用到的所有操作(令咒除外)已经封装到 lib/actions.py 中的 op 类。根据此文件的 API 可以足够简洁地编写 3T 脚本。

由于不同手机的分辨率不同,使用时需要先更改为自己手机的坐标。此仓库包含 iPhone7 Plus 与 iPhone13 Pro 的坐标。如果您愿意贡献其他 iPhone 型号的坐标,欢迎 PR。

1.2 如何获取按钮坐标

个人推荐的方法是,手机截图后,用 Photoshop、Mac 自带的 preview 一类的工具查看。Preview 在框选图片时会显示框选大小,从左上角开始框选则可取得按钮坐标。其他方法可以网上查阅。

用到的坐标 / 需要截图的界面有:

  • 助战选择
  • 助战选择确认
  • 编队界面
  • 开始战斗界面,同时展开御主技能
  • 技能确认界面
  • 技能选人界面(技能给别人的时候)
  • 换人选择界面
  • 结束战斗时的“下一步”
  • 结束战斗时的“连续出击”
  • 无限池重置确认、道具补充完成页(活动用)

上述截图准备好后,在 lib/iphone_example.py 中填入自己手机型号的坐标,并在 action.py 中 import 自己的手机坐标为 iphone 变量。

2. 图像匹配

如果选择用图像匹配点击为主,最好准备 AirTest IDE 编写代码(运行仍然不推荐开着 IDE,速度慢)。

此类教程 B 站很多。不再赘述。

需要的注意的是图像置信度,实测默认的 0.7 置信度(不带 RGB)下会把师匠的脸识别为 C呆。确保图像可以在任何情况下准确识别是稳定运行的关键。常见的方法是打开 RGB 校验以及提高置信度到 0.8 以上。

Template(r"20212020圣诞/lls.png",threshold=0.9,rgb=True)

参考:Airtest API

修改 daily.py

根据已有的编队写法,增加自己的编队。需要修改的部分为

  • 助战选择
  • 战斗打法

并一定要以 op.ending(left_round>0) 结尾,此函数会处理最后的动画并自动吃苹果。

意外情况

对于一些额外情况,比如手机断开连接、网络长时间加载、fgo 闪退等等……此类错误会可能让脚本停止运行,并且无法手动恢复。

对于网络长时间加载,解决方法是在需要网络连接的地方使用 airtest 的 wait,并且增加等待时长。以B服的情况,等上一分钟都是可能的。

对于断开连接重试,可另起线程检测截屏是否出现重试按钮。抽无限池的函数中已经带有此功能,实测检测时会卡约 1s 的操作时间。

另外,助战需要的从者如果比较少,选择助战可能会花费较长时间,这时请勿手动加速,可能会导致错误的点击影响 3T(除非你明白如何不会让程序误点)。

About

基于 airtest 的 fgo iOS 全自动 3T 脚本模板,可抽无限池

Topics

Resources

Stars

Watchers

Forks

Languages