Skip to content

Releases: HiLodve/GFAM

GFAM v1.4

Choose a tag to compare

@HiLodve HiLodve released this 01 Sep 15:05

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 加密。

下载与启动

  1. 下载 GFAM-GUI-v1.4-Windows-x64.zip。
  2. 完整解压后运行 GFAM-GUI.exe。
  3. 不要只复制 EXE,必须保留旁边完整的 _internal 文件夹。
  4. 使用 SHA256SUMS.txt 校验下载文件。

支持 Windows 10 / Windows 11。后端流程需要可用的 Node.js 与 Python 3.11+;首次启动会执行环境检查。

完整更新记录和故障排查说明已包含在发行包根目录的 更新日志.txt 与 使用说明.txt 中。

GFAM v1.3

Choose a tag to compare

@HiLodve HiLodve released this 04 Aug 09:00

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

Choose a tag to compare

@HiLodve HiLodve released this 19 Jun 15:09

GFAM v1.2

本版本在 v1.1 的基础上新增完整的 GUI 图形化启动器、跟随模块自动制造系统、跨进程协调机制,并对 A-10、EPA、灰域等多个模块进行了大幅优化。

新增功能

GUI 图形化启动器(全新)

新增 tools/gfam_gui_launcher.py,提供基于 Tkinter 的完整图形界面,替代原有命令行菜单操作。通过 PyInstaller 打包为单文件 exe,用户下载解压即可运行。

界面分为两个阶段:

  1. 启动与服务器选择窗口:选择服务器后自动启动 GFAM 后端进程。
  2. 主控面板:包含所有功能模块的快捷按钮、实时彩色日志输出、各模块独立设置弹窗。

支持的模块按钮: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

Choose a tag to compare

@HiLodve HiLodve released this 06 May 05:08

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=2
    • GFAM_A10_STEP_DELAY=0.01
    • GFAM_A10_ROUND_DELAY=0
    • GFAM_A10_FAILURE_DELAY=0.30

GFAM v1.0

Choose a tag to compare

@HiLodve HiLodve released this 04 May 13:23

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 响应、运行缓存、抓包文件或个人账号数据。