首页
/ FGO-py项目台服战斗报错问题分析与解决方案

FGO-py项目台服战斗报错问题分析与解决方案

2025-07-10 14:47:42作者:秋阔奎Evelyn

问题背景

在FGO-py自动化脚本项目中,用户在使用台服版本时遇到了战斗过程中的报错问题。具体表现为脚本能够正常释放从者技能,但在进入选卡阶段时会出现"AttributeError: type object 'IMG_TW' has no attribute 'CARDSEALED'"的错误。

错误分析

该错误发生在fgoDetect.py文件的217行,核心问题是台服(IMG_TW)模板中缺少CARDSEALED属性定义。这个属性原本用于检测指令卡是否被封印的状态。

通过查看代码实现,我们发现isHouguReady方法中会检查三种封印状态:

  1. 宝具封印(HOUGUSEALED)
  2. 角色封印(CHARASEALED)
  3. 指令卡封印(CARDSEALED)

解决方案探索

项目维护者提出了临时解决方案:

  1. 注释掉fgoDetect.py文件的217行,这将使脚本回退使用CN/JP版本的识别逻辑
  2. 但需要注意,台服与国服的UI图片资源存在差异,直接使用CN识别可能导致其他问题

实际测试发现,使用CN识别逻辑时需要特别注意启动顺序:

  1. 必须先启动FGO游戏客户端
  2. 然后再连接设备运行脚本 否则会出现"Retry XDetectBase.getCardColor()"的循环问题

技术原理深入

这个问题的本质在于不同服务器版本间的UI差异处理。FGO-py项目通过IMG_XX类来抽象不同服务器的UI资源,但台服版本缺少了对指令卡封印状态的资源定义。

从项目历史来看(v20.1.1更新日志),宝具卡判断可能已不再需要指令卡封印状态的检测。这表明相关代码可能有重构优化的空间。

最佳实践建议

对于台服用户,目前推荐的解决方案是:

  1. 注释掉fgoDetect.py的217行
  2. 确保正确的启动顺序:先启动游戏,再运行脚本
  3. 注意观察战斗过程中宝具释放是否正常

长期来看,项目可能需要:

  1. 为台服添加完整的封印状态资源定义
  2. 或者重构宝具可用性检测逻辑,移除对指令卡封印状态的依赖

总结

FGO-py项目在处理多服务器适配时面临着UI差异的挑战。本次台服战斗报错问题揭示了资源定义完整性的重要性。通过理解错误本质和项目架构,用户可以找到有效的临时解决方案,同时也为项目的长期优化提供了方向。

登录后查看全文
热门项目推荐

项目优选

收起
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
51
15
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
647
435
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
98
152
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
136
214
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
698
97
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
506
42
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
109
255
carboncarbon
轻量级、语义化、对开发者友好的 golang 时间处理库
Go
8
2
cjoycjoy
一个高性能、可扩展、轻量、省心的仓颉Web框架。Rest, 宏路由,Json, 中间件,参数绑定与校验,文件上传下载,MCP......
Cangjie
68
7
CangjieMagicCangjieMagic
基于仓颉编程语言构建的 LLM Agent 开发框架,其主要特点包括:Agent DSL、支持 MCP 协议,支持模块化调用,支持任务智能规划。
Cangjie
587
44