Repository navigation
Releases: HiLodve/GFAM
Release list
GFAM v1.4
GFAM v1.4
v1.4 重点完成 GUI 视觉升级、EPA Core 架构收口、实时 Index 校验、账号刷新流程与多项运行可靠性修复。
主要更新
- 全面更新启动页、主界面和模块窗口,统一紫色卡片、深色按钮、状态徽章、星轨背景与模块水印。
- 修复默认窗口尺寸和 Windows DPI 缩放下内容显示不全的问题;长页面和设置弹窗支持滚动。
- EPA、Smart 一键打捞与 13-4 统一接入 EPA Core,共享配置、梯队解析、战斗事务、仓库安全、练级调度和异常恢复。
- 关键运行前校验强制获取当前账号与服务器的实时 Index,拒绝跨账号、跨服务器或旧格式缓存。
- 修正 EPA 紧急 A-1 目标映射与 S-SASS(gun_id 124)识别。
- 支持无妖精合法梯队;五人梯队在
fairy_id=0时可正常部署和结算。 - Smart 切换自动训练改为等待真实提示符,不再依赖固定延时猜测菜单状态。
- “刷新凭据”优先使用已保存账号重新登录;未保存账号或失败时打开账号登录窗口。
- 完善全局 API 锁、拆解锁、安全停止、代理启动检查、原子写入和后台进程收尾。
- 妖精建造栏位改为依据服务器返回实时同步,避免已领取栏位被旧缓存长期占用。
隐私与发布安全
- 发行资产不包含 UID、SIGN、账号密码、Index 原始响应、运行缓存、日志、PID、锁文件或调试快照。
- UID 在界面中仅显示掩码,SIGN 只显示就绪状态。
- Windows 记住密码使用当前用户 DPAPI 加密。
下载与启动
- 下载
GFAM-GUI-v1.4-Windows-x64.zip。 - 完整解压后运行
GFAM-GUI.exe。 - 不要只复制 EXE,必须保留旁边完整的
_internal文件夹。 - 使用
SHA256SUMS.txt校验下载文件。
支持 Windows 10 / Windows 11。后端流程需要可用的 Node.js 与 Python 3.11+;首次启动会执行环境检查。
完整更新记录和故障排查说明已包含在发行包根目录的 更新日志.txt 与 使用说明.txt 中。
GFAM v1.3
v1.3 更新内容
新功能
- 账密直登:GUI 启动器新增账号密码直接登录,无需启动游戏客户端或配置代理即可获取 UID/SIGN。支持记住密码,登录成功后自动启动 GFAM 后端。
- 精简日志模式:GUI 新增"精简日志"选项,过滤冗余输出,聚焦关键信息。
GUI 改进
- ANSI 彩色日志实时渲染,运行状态一目了然。
- 模块运行结束后自动弹出统计摘要窗口。
- 模块窗口 header 布局优化,长描述不再挤掉右侧控件。
- 制造模块支持人形/装备快速建造、人形词典查询。
- EPA 模块设置收敛为单弹窗,支持一键运行与阶段选择。
修复
- 修复 PyInstaller DLL 泄漏导致子进程 Python 版本冲突。
- 修复环境检查脚本编码问题(ParserError)。
- 修复模块返回主菜单时的安全停止时序问题。
源码便携包
本版本同时提供源码便携包,包含 9 大功能模块、跟随制造系统、跨进程协调、运行状态仪表盘。详见 README_便携使用说明.txt。
v1.2 更新内容见 CHANGELOG.txt。
GFAM v1.2
GFAM v1.2
本版本在 v1.1 的基础上新增完整的 GUI 图形化启动器、跟随模块自动制造系统、跨进程协调机制,并对 A-10、EPA、灰域等多个模块进行了大幅优化。
新增功能
GUI 图形化启动器(全新)
新增 tools/gfam_gui_launcher.py,提供基于 Tkinter 的完整图形界面,替代原有命令行菜单操作。通过 PyInstaller 打包为单文件 exe,用户下载解压即可运行。
界面分为两个阶段:
- 启动与服务器选择窗口:选择服务器后自动启动 GFAM 后端进程。
- 主控面板:包含所有功能模块的快捷按钮、实时彩色日志输出、各模块独立设置弹窗。
支持的模块按钮:EPA 打捞、13-4、A-10 资源、训练资料/自动训练、零元购 f2p、零元购 PR、一键打捞 Smart、跟随制造、灰域彩蛋。
其他特性:
- 自动检测 Node.js / Python 运行环境,缺失时弹窗提示并支持 winget 一键安装。
- 自动发送服务器名称,无需手动输入。
- 各模块运行结束后自动弹出统计摘要窗口(详见下方"运行统计摘要弹窗")。
- 主窗口与模块窗口支持彩色日志渲染(ANSI SGR 颜色映射),可开关。
- 精简日志模式:剥离 ANSI 清屏/光标控制码,单行摘要显示 EPA 批量发送。
跟随模块制造系统(全新)
新增后台制造守护进程,可在运行打捞/资源等主模块的同时自动执行制造任务。
核心文件:
gfam_factory_auto.py:人形/装备自动制造后台循环。支持 Gun/developMultiGun、Equip/developMulti、finishAllDevelop、批量拆解非保护产物。gfam_factory_config.py:制造设置(公式、保护规则、目标命中保留)与快速制造功能。GUI 中通过独立的"制造"模块按钮进入设置弹窗。
功能要点:
- 人形制造与装备制造可独立配置公式和保护规则。
- 目标命中保留:制造产物命中目标列表时自动保留,不进入拆解队列。
- 非保护产物自动批量拆解。
- 仓库空位智能管理:至少保留 1 个空位给其他模块使用,避免仓库满导致关卡无法开始。
- 与 A-10 资源模块通过跨进程拆解锁协调仓库操作,防止同时拆解冲突。
- 快速建造功能支持独立选择本次公式与保护规则,不套用跟随制造的持久配置。
跨进程协调机制(全新)
GFAM 支持多个模块作为独立 OS 进程同时运行(如 A-10 + 跟随制造),为避免并发冲突新增以下机制:
跨进程拆解锁 (gfam_crossprocess_lock.py):
- 基于原子文件创建(O_CREAT | O_EXCL)实现。
- 序列化 Gun/retireGun 和 Equip/retire 请求,防止 A-10 和制造模块同时提交拆解。
- 支持陈旧锁自动回收(进程崩溃后不会永久阻塞其他进程)。
全局 API 锁 (gfam_api_lock.py):
- 序列化所有 GFL 服务器 API 请求。
- 通过
patch_gfl_client()在模块导入时自动接入,无需修改业务代码。 - 避免多进程并发请求导致服务器异常或账号风控。
Index/index 统一缓存 (gfam_index_cache.py):
- 线程安全的 TTL 缓存管理器,支持进程内复用和跨进程共享缓存文件(
.gfam_index_cache.json)。 - 大幅减少冗余的 Index/index 请求。
- 支持
get()(TTL 内复用)、get(force=True)(强制刷新)、bypass()(不走缓存直接请求)。 - 已接入模块:epa_plus、13-4、f2p、f2p_pr、smart_epa、pick_and_train、a10_resource、gfam_auth_capture。
EPA 设置文件驱动
新增 apply_epa_settings_from_file() 函数。EPA、13-4、Smart EPA 模块启动时自动从 .gfam_epa_settings.json 加载 GUI 设置面板中配置的参数(模式、关卡、目标、停机条件、编队数量等),无需手动输入命令行参数。
GUI 中的"EPA 设置"按钮会统一收集所有选项并写入该文件,后端启动时自动读取并应用。
运行统计摘要弹窗
所有主要模块运行结束后生成 JSON 摘要文件,GUI 自动检测并弹出统计窗口:
- EPA →
.gfam_epa_summary.json - 13-4 →
.gfam_13_4_summary.json - A-10 →
.gfam_a10_summary.json - 零元购 →
.gfam_f2p_summary.json - 零元购 PR →
.gfam_f2p_pr_summary.json - 灰域 →
.gfam_greyzone_summary.json
摘要内容包括:运行时长、出击次数、掉落统计、资源变化、妖精状态。如果跟随制造功能处于开启状态,还会附带制造统计(人形/装备的制造次数、完成次数、目标命中数、总产出)。
优化与修复
A-10 四项资源
- 拆解逻辑大幅重构:支持分块提交(默认 80 个/批,可通过
GFAM_A10_RETIRE_BATCH_SIZE配置),避免大批量请求超时。 - 新增 4 级拆解触发条件:待拆人形达到固定阈值(默认 10 个)→ 仓库空位预警(剩余 ≤ 5)→ 仓库空位紧张(剩余 ≤ 2)→ 仓库完全耗尽兜底。
- A-10 出击失败后若有待拆人形且仓库已满,自动执行紧急拆解恢复空位,不再直接中断。
- 定期同步跟随制造模块的仓库缓存(每 300 次出击),保持空位计数准确。
- 拆解响应状态未知(plaintext response / timeout 等)时保留待拆 UID 队列,不再丢弃,后续轮次自动重试。
- HTTP 超时延长至 30 秒(
GFAM_A10_RETIRE_TIMEOUT),适配官方服务器大批量拆解的响应延迟。 - 运行结束后生成 JSON 摘要文件,包含四项资源变化和拆解统计。
EPA 打捞
build_team_configs_from_index()新增require_fairy参数。single 模式允许无妖精梯队编入,不再因梯队 1 没有妖精而被过滤掉。- single 模式修复:显式查找
team_id == 1的梯队,不再错误使用梯队 2(此前当梯队 1 没有妖精时teams[0]可能指向梯队 2)。 - single 模式缺少人形时输出详细错误提示,包括当前有效梯队列表。
- 运行结束后生成 JSON 摘要文件,包含打捞统计和跟随制造数据。
灰域彩蛋
- Index/index 请求新增 5 次重试机制(间隔 5 秒),提高网络波动下的启动成功率。
- 票券类型统一由
current_ticket_type()函数管理,消除散布在各处的硬编码读取。 - 运行结束后生成 JSON 摘要文件。
零元购 / 零元购 PR
- 接入 IndexCacheManager,减少冗余 Index/index 请求。
- 运行结束后生成 JSON 摘要文件,包含运行统计和跟随制造数据。
- 妖精统计改为按需导入,降低模块间耦合。
一键打捞 Smart EPA
- 新增
apply_epa_settings_from_file()支持,可从 GUI 设置面板加载配置。 - 接入 IndexCacheManager。
训练资料 / 自动训练
- 接入 IndexCacheManager,支持 TTL 缓存和 bypass 模式。
- 代理(proxy)停止和 Windows 代理恢复增加 try-except 保护。
代理(proxy.py)
- 新增
atexit清理钩子:进程退出时自动关闭 Windows 系统代理,防止异常退出后代理残留导致网络不可用。 - 新增客户端信号量(最大 50 并发),防止高并发场景下线程数爆炸。
环境安装(setup_windows.ps1)
- Python 命令检测统一为
Get-PythonCmd()函数,优先检测python再检测py。 requests依赖安装失败不再阻断安装流程。GFAM 主要依赖内置 gflzirc 库进行通信,requests仅用于少数非核心场景。所有失败路径改为黄色警告提示。- winget 安装 Python 失败后给出友好提示而非直接退出。
- 新增
Ensure-PythonRequirements()函数,统一管理依赖检查与安装。
auth_capture
- 新增 PID 文件写入(
.gfam_auth_capture.pid),供 GUI 关闭时追踪并终止 auth_capture 子进程树。 - 游戏登录过程中如果返回 Index/index,会顺带缓存到
.gfam_index_cache.json,后续模块可直接复用,无需重复请求。 - 代理启动/停止增加 try-except 保护,避免清理阶段异常导致崩溃。
妖精自动(fairy_auto)
- 接入全局 API 锁,与其他模块协调避免并发请求。
注意事项
- GUI 版本通过 PyInstaller 打包,首次启动可能较慢(需要解压运行时环境),后续启动正常。
- 跟随制造系统与 A-10 同时运行时,两者通过跨进程锁协调仓库拆解操作。如果遇到拆解响应异常,可检查
.gfam_factory_warehouse_cache.json确认仓库空位状态。 - 如果 A-10 出现
Unexpected plaintext response或大批量拆解超时,可尝试调低参数:GFAM_A10_RETIRE_BATCH_SIZE=40(默认 80)GFAM_A10_PENDING_RETIRE_LIMIT=20(默认 10)GFAM_A10_RETIRE_TIMEOUT=60(默认 30)
- EPA single 模式要求梯队 1 必须编入至少 1 名人形(不要求妖精)。team 模式仍要求梯队有妖精。
- 运行统计摘要弹窗依赖各模块生成的
.gfam_*_summary.json文件,如果模块异常中断可能不会生成。
新增文件
| 文件 | 说明 |
|---|---|
tools/gfam_gui_launcher.py |
GUI 图形化启动器(4015 行) |
tools/build_gfam_gui_exe.py |
PyInstaller 打包脚本 |
tools/build_portable_package.py |
便携包打包脚本 |
tools/start_gfam_background.ps1 |
后台启动 GFAM 脚本 |
modules/gfam_factory_auto.py |
跟随模块制造后台循环 |
modules/gfam_factory_config.py |
制造设置与快速制造 |
modules/gfam_crossprocess_lock.py |
跨进程文件锁(拆解序列化) |
modules/gfam_api_lock.py |
全局 API 跨进程锁 |
modules/gfam_index_cache.py |
Index/index 统一缓存管理器 |
data/equip.json |
装备数据字典 |
requirements.txt |
Python 依赖声明 |
build_gfam_gui_exe.bat |
一键编译 GUI exe |
GFAM-GUI.spec |
PyInstaller spec 文件 |
GFAM v1.1
GFAM v1.1
本版本在 v1.0 的基础上加入 A-10 单人不移动四项资源获取方案,并完善 GitHub Actions 运行支持。
新增功能
-
新增 A-10 四项资源获取模块:
- 基于 EPA 普通 A-10。
- 只部署第一梯队。
- 要求第一梯队为单人梯队。
-
GitHub Actions 新增
a10-resource运行选项。 -
A-10 支持本地版与 GHA 版运行:
- 本地测试可达到约 2 结算/秒,需较好的网络同时网络位置需要靠近帝国(雾)。
- GHA 受 GitHub runner 网络影响,通常约 1 结算/秒。
优化与修复
- 为多个模块补充运行前 abortMission 清理残留战役状态。
- 优化 GHA 精简日志,减少重复仪表盘和高频循环日志。
- GHA 增加四项资源统计输出。
注意事项
- A-10 四项资源获取要求第一梯队必须为单人梯队。
- 如果本地或 GHA 出现
error:2、Unexpected plaintext response或资源统计异常,建议回退到稳定参数:GFAM_A10_TARGET_RPS=2GFAM_A10_STEP_DELAY=0.01GFAM_A10_ROUND_DELAY=0GFAM_A10_FAILURE_DELAY=0.30
GFAM v1.0
GFAM v1.0 - 正式发布版
GFAM(少女全自动 / Girl Fully Automatic)首次正式公开发布。
已包含功能
- EPA 打捞
- 13-4 五战练级 / 四项基础资源打捞
- 获取训练资料 / 自动训练 / 自动循环
- 零元购 f2p / f2p_pr
- smart 一键打捞计划 / 装备一键打捞
- 灰域自动彩蛋
- 妖精自动建造 / 自动强化
- 固定运行状态仪表盘
- 本地缓存、仓库估算、应急拆解与运行结束收尾拆解
第三方组件
本项目包含 ZIRC / gflzirc 相关组件,遵循 MIT License。原始许可声明已保留在 libs/ZIRC/LICENSE。
安全说明
本发布包不包含 UID、SIGN、Index/index 响应、运行缓存、抓包文件或个人账号数据。