FGO-py 全自动 FGO 助手:免配置跨平台智能战斗与日常托管实战指南
【免费下载链接】FGO-py自动爬塔! 自动每周任务! 全自动免配置跨平台的Fate/Grand Order助手.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?项目地址: https://gitcode.com/GitHub_Trending/fg/FGO-py
FGO-py 是一个面向 Fate/Grand Order(命运-冠位指定)的全自动辅助程序,以「智能战斗不间断,不靠礼装不用拐」为设计理念,能够在无人值守的情况下识别战斗局势、自动筛选助战、释放技能与宝具、吃苹果并选择指令卡,无需手工配置即可通过绝大多数非高难关卡。本文以仓库根目录的 readme.md 为主干,结合 fgo.py、fgoCli.py、fgoConst.py 等源码,系统讲解 FGO-py 的多平台部署、设备连接、CLI 指令、战斗机制与配置文件,帮助读者快速上手并实现 7×24 小时全托管刷本。
项目定位与核心设计思想
FGO-py 一经立项,就将「打破当前游戏版本下想尽办法 3t 速刷的固有思维,回归刚开服时克制队 xjbd(瞎几把打)的环境」作为初心使命。与依赖严苛配置的 3T 自动化工具不同,它主张:
- 羁绊点数和御主礼装经验不再被浪费,抽卡只考虑 XP 不考虑强度;
- 在大量 90+ 阴间本环境下,xjbd 能带来最「阳间」的体验,游戏从此没有「人权卡」;
- 不管什么本直接上就行,连作业都不用抄,可以一键清完所有强化本;
- 剧情关锁人时,在游戏内组好队即可,程序内只负责点击完成战斗;
- 能在高难中帮忙收拾残局,也能把你喜欢的从者编入队伍。
从 fgoKernel.py 源码首行的注释'Full-automatic FGO Script'可以看出,整个内核就是一个全自动脚本引擎:它通过图像识别(fgoDetect.py、fgoImageListener.py)理解当前游戏画面,识别「一大堆」战斗中用得上或用不上的数据,从而支持半路接管战斗——依据当前局势筛选助战、放技能、放宝具、吃苹果、选卡,无需配置即可无脑通过包括主线关卡在内的大部分关卡,实战 7-12 回合即可刷完无限池终本。除战斗外,还提供抽友情池、抽无限池、领邮箱狗粮、礼装强化等功能(对应 fgoKernel.py 中的fpSummon、lottery、mail、synthesis、dailyFpSummon等附加功能)。
项目已添加日服、美服、台服支持,适用于命运-冠位指定安卓简体中文/日本语/英语/繁体中文版本。在 fgoConst.py 中可以看到各服对应的包名映射表PACKAGE_TO_REGION,程序据此识别当前运行的游戏区域。
注意:项目 README 明确提醒,使用自动化辅助工具可能违反游戏平台用户协议,存在奖励回收、账号异常等风险。FGO-py 不对任何损失负责,下载并使用即代表已知晓并愿意承担可能出现的后果。请在了解风险的前提下自行评估使用。
快速运行:从下载到第一把「肝」
Windows 下的使用门槛
Windows 下的启动流程非常简单,按以下顺序操作即可:
- 下载 release 版本;
- 先运行游戏;
- 运行
FGO-py.bat; - 连接设备;
- 在游戏中把要刷的关卡放在第一个;
- 点击「肝!」按钮。
此外需要在游戏内关闭「技能使用确认」,否则技能释放流程会被游戏内的二次确认弹窗阻塞。
发布节奏上,每当游戏作出重大更新,适配内容会先在 dev 分支停留若干时间(可能是一天,也可能是数月,视内容紧急性而定)以发现潜在问题,然后 merge 到 master,并通常在一周内推送给使用 portable installer 的用户。也就是说,游戏大更新后的一段时间内,你可能需要拉取 dev 分支才能获得适配当前游戏版本的 FGO-py。
源码运行与通用使用门槛
对非 Windows 环境(Linux/Android/Mac/Docker),README 给出了一个明确的使用门槛:请先验证你能通过源码在安装有 Python 3.11 的 Windows 操作系统中运行本项目,并操作运行于屏幕分辨率为1280×720 或其简单整数比缩放的 Android 设备上的官方简中版 FGO,然后再向目标环境迁移。这是进入本项目的最低能力要求。
几个值得注意的通用要点:
- 项目启用了 Python 的UTF-8 模式(PEP 540),保证多语言日志与配置的编码一致性;
- 程序内部自带基本的使用指引,速览功能可直接运行
fgo.py,无需填写任何配置,去冬木大桥刷一根凶骨即可验证流程; deploy目录下提供多种环境的搭建参考:Docker(配好了环境)、AidLux(一键在 AidLux 上安装 FGO-py)、AzurLaneAutoScript(让 Alas 帮你玩 FGO),详见 deploy。这些仅供参考,可能需要自行修改才能正常运行,这也被视为使用门槛的一部分。
非 Windows 电脑与全面屏适配
- 非 Windows PC:现已可直接使用,但目录监控功能被屏蔽,如果更改了助战模板等文件,需要重新运行程序。
- 非 16:9 屏幕:由于长宽比小于 16:9 的屏幕游戏画面上下仍为蓝边、可如常使用,所以只有长宽比大于16:9 的屏幕才需要适配。操作方式为:连接到设备 → 调整分辨率 → 启动游戏 → 重新连接到设备,对应 GUI 中的「控制-全面屏适配-调整为 16:9」和 CLI 中的
169命令(见 fgoCli.py 的do_169,支持invoke/revoke两个动作)。该功能本质上是执行一条 adb shell,且应在游戏运行后、登录完成前执行,否则 fgo 热更改分辨率会出现奇怪的布局 bug。
直接在手机上运行(AidLux)
AidLux 能在 Android 手机上提供 Linux 环境(类似 Android Subsystem for Linux),与 Termux 等模拟终端相比,它自带编译好的 opencv 等基础库,避免了 ARM 处理器上的各种编译问题。搭建方式与通常 Linux 无异,可参考 AidLux.sh,该方案已在多机型上被验证可行。由于手机上没有 Qt 的图形界面,此时只能使用文本交互方式运行——这正是 web ui 的优势所在。
CLI 文本交互:完整且更强大的功能入口
如果图形界面不便使用,python fgo.py cli提供完整的文本交互。README 明确说明 CLI 包含本项目完整且更加强大而灵活的功能和说明:
非交互式运行与睡前托管
CLI 支持向 stdin 一次性写入多行命令以非交互方式运行。例如睡前执行:
echo -e "connect /bs5 \n main \n main -s 8:00:00" | python fgo.py cli这条命令会先连接设备(/bs5是设备快捷指令,见下文),然后main清空体力,再main -s 8:00:00在 8 小时后再次清空体力,保证安稳睡眠;在长草期还可配合计划任务或 crontab 实现 7×24 全托管。
仓库内的 fgoScript.txt 就是一个完整的脚本示例:
! rem cat fgoScript.txt | fgo.py cli connect /bs5 teamup load Kizuna main main -s 28800CLI 入口参数
从 fgo.py 的 argparse 定义可以看到,fgo.py支持以下启动参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
entrypoint | 程序入口:gui/cli/web | master 分支默认gui,否则cli |
-v, --version | 显示版本号 | — |
-l, --loglevel | 控制台日志级别:DEBUG/INFO/WARNING/CRITICAL/ERROR | INFO |
-c, --config | 配置文件路径 | fgoConfig.json |
--no-color | 禁用彩色控制台输出 | 关闭 |
核心 CLI 指令一览
fgoCli.py 基于 Python 标准库的cmd.Cmd实现了交互式命令行,常用指令(即do_*方法)包括:
connect [-l] [-s sleep] [name]:连接设备;-l列出所有可用设备与上次连接的设备,-s支持形如0.5、8:00:00的延时。main [appleCount] [appleKind] [-s sleep] [-a appoint] [-q quest times]...:循环战斗直到体力清空。苹果数量appleCount为 0 代表不限制;appleKind可选gold/silver/bronze/copper/quartz(金/银/铜/铜/圣晶石苹果);-a指定战斗次数上限;-q可多次使用,前往不同关卡各打不同次数。battle [-s sleep]:完成当前这一场战斗(半路接管)。continue [-s sleep]:异常中断后继续上一次战斗,用法同battle。classic [同 main 参数]:使用经典(Classic)战斗模式,对应下文「陈年老肝」。week:求解每周任务,自动将达成目标且消耗体力最少的关卡组合加入队列,详见「计划作战/每周任务」。call <func> [-s sleep]:调用附加功能,可选fpSummon(友情池)、lottery(无限池)、mail(领邮箱)、synthesis(礼装强化)、dailyFpSummon(每日友情召唤)、summonHistory(召唤历史)。config <key> <value>:运行时修改配置项并同步到调度器,支持notifyEnable、stopLater、stopOnDefeated、stopOnKizunaReisou、stopOnSpecialDrop等。teamup <load|save|clear|reload|list|show|set>:管理经典战斗的编队信息。169 <invoke|revoke>:非 16:9 屏幕全面屏适配。screenshot [-s] [-o file]:截图(-s仅展示不保存),用于制作助战模板等。goto <章-节-关卡>:跳转到指定关卡。bench [-n N] [-i] [-o]:对触摸输入 / 截图输出做基准测试,验证设备链路性能。lock [-u]:不退出程序地临时锁定/解锁全部功能。ping/press/shell/exec/version等辅助命令。
以main为例,其参数解析在 fgoCli.py:appleCount校验为非负整数,appleKind限定为五种苹果,-q接受关卡-数量的成对参数,-s的时间格式支持8:00:00这类时分秒写法。运行结束后(见do_continue),CLI 会输出战斗数、总耗时、平均回合数、每场平均耗时以及获得的材料统计。
连接到设备:快捷指令小魔法
多数情况下,用数据线把手机连接到电脑,设备会自动出现在设备列表中。但模拟器端口每次启动刷新、DHCP 重新分配 IP 等场景下,设备序列号或 IP 并不固定,手动输入十分繁琐。为此项目实现了「以/开头的指令代替设备序列号」的快捷连接魔法。注意:这里用到的包未在 requirements.txt 中列出,此功能发生的问题无法获得技术支持。
目前内置以下快捷指令(源码见 fgoDevice.py 中的helpers列表):
/gw:手机开热点打 FGO、电脑连热点时,自动获取网关 IP;/bs4:兼容 Hyper-V 的 BlueStacks 4 国际版,从注册表读取 adb 端口,后可跟_数字指定多开;/bs5_<InstanceName>:兼容 Hyper-V 的 BlueStacks 5 国际版,从注册表读取配置文件路径并在其中查找 adb 端口。
此外,可以用|连接两个设备名,分别指定「点击拖拽等输入操作」和「截图等输出操作」使用的接口,中间不得有空格。你也可以自行编写需要的功能,若认为场景通用,可向项目提 issue 或 PR 请求合入。
计划作战与自动每周任务
计划作战能依次前往关卡队列中不同关卡、进行不同数量的战斗;关卡队列为空时,则对当前游戏中关卡列表的第一个清空体力。两点关键语义:
- 数量为 0 代表不限制数量直到体力清空,但这不会中断运行,因为剩余的零星体力可能足够其他关卡使用;
- 队列操作除追加外都是线程不安全的,所以尽量不要在每次战斗结束时修改苹果数量与关卡队列。
在源码层面,do_main通过-q参数构造fgoKernel.Operation(arg.quest, ...)(fgoCli.py),即把「关卡-次数」队列交给调度内核执行。
自动每周任务(week命令)能从游戏的每周任务界面读取任务目标,并将「达成此目标且消耗体力最少」的关卡组合加入关卡队列。实现上,do_week调用fgoKernel.weeklyMission()求解,并把每个(关卡, 次数)组合打印出来供确认(fgoCli.py)。
需要注意的能力边界:
- 自动任务仅能求解「击败特定数量的敌人」类任务,不能完成编入从者、获得道具、场地属性、友情点召唤类任务;
- 在 2023 年日服的历次每周任务中,仅出现过 2 次编入从者任务,没有出现过场地属性任务,其他任务均可在正常游戏时完成;
- 自动每周任务目前仅限简体中文。
助战与邮箱筛选:让项目长久自维护
README 表达了项目的一个长期目标:即使作者弃坑,项目也要能继续长久使用、无需定期维护。因此,所有与游戏进度相关的内容都允许用户以非编程方式自行制作/管理,项目只提供示例和一部分当前常用的情况。
助战筛选(friend):
- 建议在游戏内关闭「有利职阶自动选择」;
- 把期望的助战样子截图为 png 放在
fgoImage/friend下,可参照 fgoImage/friend/unused 中的文件; - 被截图范围应该都可以点击来选中该好友;
- 截图应对应1280×720的游戏画面分辨率,建议使用 GUI 的「检查截图」按钮或 CLI 的
screenshot指令制作; - 如果
fgoImage/friend目录下没有 png 文件,就选取好友列表中的第一个; - 图片中黑色(#000)部分被视作透明而无需透明度通道;
- 目录下的所有更改会在下一次选取助战时智能应用。
在源码中,fgoKernel.py 通过ImageListener('fgoImage/friend/')动态监听该目录,因此模板文件支持热更新(Windows 下依赖目录监控,非 Windows 平台需重启程序)。
邮箱筛选(mail):同理,将期望领取的邮件截图放入fgoImage/mail(参考 fgoImage/mail),程序即按模板自动点击领取狗粮等附件;call mail触发该流程(fgoKernel.py)。
陈年老肝(Classic Battle):经典配置式战斗
v9.1 及更早版本提供的需要配置的战斗模式,目前不建议在以下场景之外使用:
- 冬木刷凶骨只平 A 不放技能宝具;
- 通古斯抢柱子,需要尽快完成战斗;
- 无法识别队伍中卡面被和谐的从者。
编队信息保存在 fgoTeamup.ini 中,需要新增或删除编队时请手动编辑该文件(也可以用 CLI 的teamup set系列命令在线修改后teamup save写回)。仓库内已内置DEFAULT、Empty、Full、Saber、Archer、Lancer等示例编队。
技能参数格式:各个从者的每个技能都有 4 个参数,意义分别为:
| 参数 | 含义 |
|---|---|
| 参数 1 | 使用该技能的最小场次(最小场次设置为 0 代表禁用该技能) |
| 参数 2 | 该技能在最小场次时的最小使用回合 |
| 参数 3 | 最希望施放到的目标 |
| 参数 4 | 越小越优先的优先级 |
如果技能在「最小场次的最小使用回合」处于不可用状态会延后,此后能用就用。例如 fgoTeamup.ini 中[DEFAULT]的skillInfo = [[[0,0,0,7],...]]表示默认编队所有技能禁用(最小场次为 0);[Full]的skillInfo首字段为 1 表示从第 1 场起就使用技能。houguInfo同理控制宝具,masterSkill控制御主技能——御主技能 CD 固定为 15 回合,不会检测是否冷却完成或是否可用,就算不可用也只是点开看一眼弹窗、不影响运行(这也是为什么masterSkill参数组比从者技能多一个回合位)。
CLI 中的teamup show会以十六进制紧凑格式打印当前编队的技能、宝具与御主技能信息,teamup set servant <1-6> <值>和teamup set master <值>支持用x占位表示「该项不修改」,例如1007-xxxx-1007-2x(见 fgoCli.py)。
配置文件:fgoConfig.json 与运行时行为
以下项目保存在fgoConfig.json内(即 fgo.py 的-c参数指定的文件,默认fgoConfig.json),更改立即生效,仅在进程退出前保存:
- 上次连接到的设备名;
- 各队伍编组的索引;
- 是否在战败撤退时终止程序运行(
stopOnDefeated); - 是否在获得羁绊礼装时终止程序运行(
stopOnKizunaReisou); - 主窗口是否置顶(
stayOnTop); - 是否在点击关闭按钮时最小化到托盘(
closeToTray); - 消息推送开关(
notifyEnable); - 消息推送参数(
notifyParam)。
其他可配置项会在进程退出后丢失。源码层面,fgoConst.py 的CONFIG字典给出了上述配置项的默认值,fgoConfig.py 的Config类负责加载(构造时若文件存在则读取合并)与保存(save()以ensure_ascii=False, indent=4写回 JSON)。值得说明的是,fgoCli.py 的config命令允许在运行时以config <key> <value>修改这些持久化配置,并同步转发到调度内核生效。
另外,程序每次启动都会在退出前统一config.save()(fgo.py),确保「上次连接到的设备名」等状态在下次启动时仍然可用。
在 AzurLaneAutoScript(Alas)中运行
FGO-py 已加入 Alas(AzurLaneAutoScript)生态,开发者本人正通过 Alas 进行日常使用。在 Alas 中按以下方式接入:
- 添加新配置,「从现有的配置中复制」选择
template-fpy; - 按照「连接到设备」章节的内容填写「FGO-py > FGO-py 设置 > 运行环境 > 模拟器 Serial」;
- 按照自身部署环境填写「启动路径」,请阅读 deploy/AzurLaneAutoScript/readme.md;
- 运行「工具 > 性能测试」检验上述配置是否正确;
- 启用「出击 > 清空体力」和「每日 > 抽友情」等任务,更改相关设置;
- 运行调度器。
关于「搓丸子」与外部依赖
README 明确说明,搓丸子(ExpBall)请使用独立的 [FGO-ExpBall] 项目,因为它需要由程序而非玩家对游戏内设置进行精细设定,相关实现不符合 FGO-py 的风格,故做成独立项目。这是 FGO-py 模块化、职责单一设计思路的体现——战斗与日常托管由本项目负责,需要精细游戏内配置的场景则交给专用工具。
图像资源方面,FGO-py/fgoImage/servant/下的图像来自茹西教王的理想鄉,fgoImage/class和material中的图标与 fgoMetadata.py 中的部分数据来自 Mooncell,以上内容经过加工、不按原样提供,不依照 License 开源。
开源许可与版本演进
- 项目采用GNU AGPLv3许可:除非获得商业授权,否则无论以何种方式修改或使用本项目,都需要开源。
- 完整的历史版本说明见 doc/versions.md;当前源码中 fgoConst.py 记录的版本为
v21.0.2。
小结
FGO-py 的价值在于「全自动、免配置、可半路接管」:它以 1280×720 分辨率图像识别为核心,把助战筛选、技能宝具释放、吃苹果选卡、每周任务求解、邮箱与友情池托管等日常操作全部自动化,同时通过 CLI/web/GUI 三种入口覆盖 Windows、Linux、macOS、Android(AidLux)与 Docker 多种运行环境。对于希望「启动脚本、上床睡觉、养肝护发」的玩家,本文覆盖的部署路径(Windows 一键 / Docker / AidLux / Alas 集成)、连接技巧(/bs5等快捷指令)、CLI 托管命令(echo -e "connect /bs5 \n main \n main -s 8:00:00" | python fgo.py cli)以及 fgoConfig.json 与 fgoTeamup.ini 的配置语义,已足够支撑从入门到 7×24 全托管的完整实践。需要再次提醒的是:请先确认自己理解并接受账号风险,再决定是否使用。
【免费下载链接】FGO-py自动爬塔! 自动每周任务! 全自动免配置跨平台的Fate/Grand Order助手.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?项目地址: https://gitcode.com/GitHub_Trending/fg/FGO-py
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考