Skip to content
This repository has been archived by the owner on Mar 1, 2020. It is now read-only.

Latest commit

 

History

History
72 lines (44 loc) · 3.02 KB

README.md

File metadata and controls

72 lines (44 loc) · 3.02 KB

fgo-bot

fgo自动脚本

原理

  • 通过adb连接安卓设备/模拟器,实现模拟点击、滑动、截取屏幕,支持后台运行
  • 使用opencv提供的模板匹配来快速找图、定位
  • 按照用户定义的策略来进行自动战斗等操作

安装

安装adb

如果已经安装adb,请跳过此步骤。

http://adbshell.com/downloads下载adb kits,解压,并加入PATH。

在命令行中输入adb,出现帮助信息则说明安装成功。

安装本体

下载这个项目,在根目录下运行

python3 setup.py install

使用前的准备

  • 推荐使用模拟器进行游戏,并调整分辨率为1280x720使用真机可能导致分辨率和连接等问题。

  • 构筑所用的队伍。由于当前版本不支持获取敌方信息,建议选择稳定的宝具速刷队。

  • 在设置中关闭“灵基再临第四阶段展示”选项,可以减少助战识别的工作量

  • 在助战界面选择好想要的职介,确保(在线的)好友可以大概率刷出期望的助战。

  • 手动进行一场对战。(非必须,用于选中队伍以及调整相关设置)

  • 在战斗菜单中关闭“技能使用确认”和“宝具匀速”,打开“缩短敌人消失时间。

  • 在选择指令卡界面调整游戏速度为2倍速。

  • 在设备/模拟器上对要打的副本和期望的助战截图,放在脚本的同级目录下,可以参考/qp.png/friend_qp.pngquest

    friend

    注意:尽量截取更多的信息,但不要超出可点击的范围。

  • 将游戏置于进入任务前的界面。

使用教程

编写你自己的脚本

在任意目录下创建一个python源文件,导入fgobot这个模块。

fgobot.BattleBot类提供了@at_stage()装饰器,只需要在你自己的python源文件中实例化一个bot,然后将函数注册到对应的战斗阶段,接着运行bot.run(),就可以实现自动战斗。

具体例子可以参考项目根目录下的/my_bot.py

API参考

BattleBot.use_skill(servant, skill, obj=None)

使用(从左往右)第servant个从者的第skill个技能,施放对象为第obj个从者(如果是指向性)

BattleBot.use_master_skill(skill, obj=None, obj2=None)

使用第skill个御主技能,作用对象为从者obj(如果是指向性)。

如果使用换人技能,还需要指定obj2作为被换上的从者。注意obj2需要在4~6之间。例如obj=3,obj2=4代表使用换人技能,交换第3(场上第3)和第4(场下第1)个。

BattleBot.attack(cards)

选取指令卡并攻击。

cards需要为有三个整数作为元素的list,按照顺序表示出的卡。其中1~5表示从左往右的常规卡,6~8表示从左往右的宝具卡。

例如[6, 1, 2]表示先使用从者1的宝具卡,再使用指令卡1和指令卡2。