FGA 技能指令解析错误:Skill Command Parse Error 排查手册
症状
战斗自动化启动或运行时:
- FGA 悬浮面板显示"Skill Command Parse Error(技能指令解析错误)"
- 战斗脚本不执行或执行到一半停住
- FGA 日志里有详细的错误信息
原因:指令字符串格式有问题
FGA 的技能指令是一串特殊格式的字符串,任何格式错误都会导致解析失败。常见的错误类型:
| 错误类型 | 可能原因 |
|---|---|
| 无效字符 | 指令里出现了不该出现的字符(中文、空格、大写、标点等) |
| 波次号缺失 | 每个波次必须有 1/2/3 这样的波次号 |
| 技能编码错误 | 从者技能用了大写(应该小写 a~i)、或者超出范围 |
| 目标编码错误 | 己方目标用了大写、敌方目标没 t 前缀 |
| 缺少攻击标记 | 每个回合必须有 0(攻击)标记 |
| 特殊目标格式错 | NP 类型、变身等特殊目标的编码格式不对 |
| 指令太长 | 个别 FGA 版本对指令长度有限制 |
按步骤排查
步骤 1:确认是哪个战斗配置的问题
如果有多个战斗配置:
- FGA 悬浮按钮 → 战斗配置列表
- 逐一测试,找到哪个配置报错
- 确认这个配置是你想修复的那个
步骤 2:重新生成指令(最快的修复方法)
如果这个战斗配置是用 Skill Maker 构建的,最快的修复方法是删掉重新构建:
- 打开报错的战斗配置
- 找到技能指令参数
- 点击"编辑"打开 Skill Maker
- 点击"清除" → 从头重新构建技能序列(完全按 Skill Maker 引导来)
- 点击"完成"保存
- 再次测试
推荐:永远用 Skill Maker 构建技能指令,不要手写——手写几乎一定会出错。
步骤 3:检查指令字符串的每个部分
如果指令比较复杂、想手动微调,按以下格式逐字符检查:
格式:波次:动作序列>0>波次:动作序列>0>...
示例:1:a1a2t1>0>2:d1t2>0
检查点 A:波次号
| 要求 | 错误示例 | 正确示例 |
|---|---|---|
| 每个波次开头必须有数字 1/2/3 | a1>0 | 1:a1>0 |
| 波次号后面必须跟冒号 | 1a1>0 | 1:a1>0 |
| 波次号不能重复(同一波次) | 1:a1>1:b2>0 | 1:a1b2>0(同一波次的两个技能) |
检查点 B:从者技能编码
| 要求 | 错误示例 | 正确示例 |
|---|---|---|
| 必须是小写 a~i | A1(大写) | a1 |
| 只能是 a~i 中的 9 个 | j1(御主技能是 j~l,不是从者技能) | a1 |
| 从者位置固定 | a(只有字母没数字) | a1 |
检查点 C:御主技能编码
| 要求 | 错误示例 | 正确示例 |
|---|---|---|
| 必须是小写 j~l | J1(大写) | j1 |
| 无目标时直接写 | j0(不需要无目标标记) | j |
| 有己方目标时跟 1/2/3 | jt1(御主技能不打敌方) | j1 |
检查点 D:己方目标 vs 敌方目标
| 目标 | 编码 | 例子 |
|---|---|---|
| 己方从者 | 无 t 前缀,1/2/3 | a12(A 技能 1,目标己方 2) |
| 敌方 | 有 t 前缀,t1/t2/t3 | a1t2(A 技能 1,目标敌方 2) |
检查点 E:攻击标记
| 要求 | 错误示例 | 正确示例 |
|---|---|---|
| 每个回合必须有攻击标记 0 | 1:a1a2>2:b1>0(第一回合没攻击) | 1:a1a2>0>2:b1>0 |
| 攻击标记是数字 0,不是字母 O | o(字母 O) | 0(数字 0) |
检查点 F:波次分隔符
| 要求 | 错误示例 | 正确示例 |
|---|---|---|
波次之间用 > 分隔 | 1:a1>02:b1>0(没分隔符) | 1:a1>0>2:b1>0 |
| 分隔符是英文 > | 1:a1→0(中文箭头) | 1:a1>0 |
| 分隔符不能重复 | 1:a1>0>>2:b1>0(双箭头) | 1:a1>0>2:b1>0 |
检查点 G:禁止出现的字符
指令字符串里绝对不能出现:
| 禁止字符 | 原因 |
|---|---|
| 大写字母(除了特殊目标) | 解析器不认大写 |
| 中文(全角字符) | 解析器只认半角 |
| 空格 | 指令里不能有空格 |
| 英文标点(逗号、句号等) | 指令里不需要标点 |
| 括号 | 指令里不需要括号 |
| 数字 0 以外的数字(除了波次号和目标) | 只有波次号、目标(1/2/3)、攻击(0)是合法数字 |
特殊目标编码的检查
特殊目标(NP 类型、变身、二选一)的格式更复杂,不建议手动手写——必须完全用 Skill Maker 构建。
如果确实需要手动改(只改已知的正确格式)
| 特殊类型 | 编码格式 | 例子 |
|---|---|---|
| NP 左/右 | a~i 后面加 L 或 R | a2L(A 从者技能 2,NP 左) |
| NP A/B/C | a~i 后面加 A/B/C | e1B(E 从者技能 1,NP B) |
| 变身 | a~i 后面加 T | g3T(G 从者技能 3,变身) |
| 换人 | n + 起始 + 替补 | n12(首发 1 换替补 2) |
注意:
- 特殊目标编码因 FGA 版本不同可能略有差异
- 最保险的做法是用 Skill Maker 生成,不要手写
典型错误案例和修复
案例 1:指令里有空格
错误指令:1: a1 a2 t1 > 0 > 2: d1 > 0(有空格)正确指令:1:a1a2t1>0>2:d1>0(无空格)
案例 2:大写字母
错误指令:1:A1B2T1>0>2:D1T2>0(大写 A/D/T)正确指令:1:a1b2t1>0>2:d1t2>0(全小写)
案例 3:没波次号
错误指令:a1a2t1>0>d1t2>0(没 1: 和 2:)正确指令:1:a1a2t1>0>2:d1t2>0(每个波次带编号)
案例 4:缺攻击标记
错误指令:1:a1a2>2:d1t2>0(第一回合没 0)正确指令:1:a1a2>0>2:d1t2>0(每个回合都要 0)
案例 5:己方/敌方目标搞混
错误指令:j1t1(御主技能同时有己方和敌方目标,应该分开)正确指令:j1(御主技能只指定己方 1)→ 敌方目标在技能序列里先声明 t1
自动检测工具
FGA 有 指令预检测 功能:
- FGA 设置 → 战斗配置 → 点"预检测指令"或"Skill Command Check"
- FGA 会用解析器预跑一遍指令,发现错误就提示
- 比运行到一半才报错更高效
建议:每次改完指令都跑一遍预检测。
终极建议
永远用 Skill Maker 构建,不要手写——原因:
- Skill Maker 会自动生成正确格式
- 不会出现大写、空格、中文等低级错误
- 特殊目标(NP 类型、变身、换人)只有 Skill Maker 能正确处理
- 手动微调也尽量在 Skill Maker 里完成,不要改原始字符串
快速验证 checklist
✅ 指令全小写 a~i / j~l?
✅ 没有空格、中文、标点、括号?
✅ 每个波次开头有波次号 1/2/3?
✅ 每个回合结尾有攻击标记 0?
✅ 己方目标是 1/2/3(没 t 前缀)?
✅ 敌方目标是 t1/t2/t3(有 t 前缀)?
✅ 波次之间用英文 > 分隔符?
✅ 用 Skill Maker 重新构建试试?
✅ 跑一遍指令预检测?
继续阅读
常见问题排查分组到此全部结束!
回到文档导航首页:
- Fate/Grand Autom:浏览所有分组的完整列表