fgo.air
一个基于图像识别的fgo脚本。
ios没法像安卓那么容易调试,安卓有各种模拟器连上pc就可以进入开发者模式,而ios要想调试首先要有苹果的mac。因为没有mac我另辟蹊径找了黑雷ios模拟器再加上airtest(一个自动化脚本测试工具)进行fgo脚本编写。airtest支持python语言,所以用他来写脚本非常方便,使用airtest捕捉ios模拟器的界面然后再在上面做一些基于图像识别或者像素点坐标的点击,而黑雷ios模拟器则可以在windows机器上运行一个ios模拟器,最后的两者结合的效果有点类似于在windows机器上运行按键精灵。
其实黑雷ios模拟器运行起来是很卡的,比真机慢好几倍,甚至常常整个模拟器会卡住,但是我在网上找不到更好的了,如果有更好的模拟器请告诉我。
最近回坑了,不知道什么时候开始ios和安卓互通了(指ios可以登录安卓账号,反之亦可),所以用安卓模拟器也可以登录ios的帐号了。这次还做了屏幕适配,理论上只要是16:9的屏幕都能正常使用。
事先须知:
- 需要下载安卓模拟器(推荐mumu)和Airtest。
- 本脚本要求宝具三连,第三回合如果没秒掉敌方会进入补刀程序,补刀规则是随机选3张指令卡,所以仍有翻车风险。前两面不支持补刀,为了防止翻车,请计算好每一面的np和宝具伤害。
- 本脚本只支持打通关过的日常本,不适合主线/活动主线,幕间等,因为不支持切换关卡。
- 如果用pc运行模拟器,本脚本运行期间会强制控制鼠标点击,所以期间你不能用你的电脑做其他事情了。
- 使用之前先把战斗倍率调快,技能使用确认关闭。
下面介绍如何使用我的脚本:
脚本项目的地址如下:https://github.com/SammyXue/fgo.air
拉下代码后直接用airtest打开这个项目:
-
打开项目
打开airtest后,选择菜单-文件-打开脚本
-
进入游戏选择关卡
打开模拟器进入游戏,选择你要打的关卡并且选择助战职阶。要注意必须从助战界面开始,并且调到你需要的助战从者所在职介界面,因为找不到相应的助战程序会出错。默认的助战是杀狐,所以需要调到杀阶。
-
选择游戏画面
点击设备窗上的选择游戏画面然后选择相应的模拟器画面
-
脚本代码相关
大概介绍一些脚本中需要频繁改动的参数。
-
start_FGO_process
将脚本编辑窗中的代码移到最后,找到这一行代码
start_FGO_process(Daily, 2, Apple.JIN, FriendServant.Koyanskaya)
这个函数有4个参数,参数意义分别是:
- 备战类型,每回合的技能和宝具使用配置,后续详细介绍
- 打本次数
- 体力不足时使用苹果种类,01234依次表示不用苹果或使用金银铜青苹果
- 选择的助战从者,不填表示默认选择第一个助战 现在提供了5个可选助战,
-
CBA
表示斯卡哈・斯卡蒂 -
Caber
表示阿尔托莉雅·卡斯特 -
Malin
表示梅林 -
Koumei
表示诸葛孔明〔埃尔梅罗Ⅱ世〕 -
Koyanskaya
表示光之高扬斯卡娅
-
综上start_FGO_process(Daily, 2, Apple.JIN, FriendServant.Koyanskaya)
的整体含义是,使用Daily备战,打两次本,体力不足时使用金苹果,要求助战是杀狐。各位在使用中,各项参数可以按需调整。
-
备战类型BattlePlan
每回合的技能,包括从者技能和御主礼装的技能,和宝具使用配置
找到Daily = BattlePlan()
,表示123回合使用的技能和宝具。
# 90本及以下 摩根1号位 双杀狐 奥伯龙(4号位)
Daily = BattlePlan()
Daily.roundConfig1 = RoundConfig().addSkill(1, 1).addSkill(1, 2, 1).addSkill(2, 3, 1).addSkill(3, 3, 1).addHogu(1)
Daily.roundConfig2 = RoundConfig().addSkill(2, 1, 1).addSkill(3, 1, 1).addHogu(1)
Daily.roundConfig3 = RoundConfig().addSkill(1, 1).addSkill(2, 1).addSkill(2, 2, 1).addMasterSkill(1).addHogu(1)
以Daily.roundConfig1
为例,回合一的操作是:
- 从者使用的技能是:1号从者使用1技能,1号从者使用2技能对1号从者生效,2号从者使用3技能对1号从者生效,3号从者使用3技能对1号从者生效。
- 使用御主礼装:无。
-
使用宝具:1号从者使用宝具。
说的这么绕是为了尽量贴合程序里面的参数顺序。如果结合实际配置会更容易理解,比如我的配置如下,摩根带30NP礼装,双杀狐奥伯龙换人礼装:
如果你的配置和我一样,那么整场战斗的操作逻辑就是
回合一:摩根1,2给自己,双杀狐狸3技能给摩根,摩根宝具。
回合二:双杀狐1技能给摩根,御主礼装order change奥伯伦(4号位)换杀狐(2号位), 摩根宝具。
回合三:摩根1,奥伯伦1,2给摩根,御主礼装1技能,摩根宝具
注:为什么要在第二回合换人?因为此脚本的操作顺序是先角色技能再御主技能,如果不在第二回合换人,第三回合的角色技能会混乱。
以上配置均可以根据自己box调整。-
运行脚本
程序运行结束后还会同时在C:\fgoLog
输出日志文件
AfterStory
我所使用的系统是win10,模拟器MuMuPlayer-12.0,airtest版本是AirtestIDE-win-1.2.15。因为条件和时间限制没有再在其他环境中测试过,可能有不适配等问题。
当然还可以优化的地方,之后会随着游戏进程(如果我不退坑的话),会同步更新脚本。
有任何问题或者疑问,欢迎留言。