babalae/better-genshin-impact · error · Exception

战斗脚本格式错误,必须以空格分隔角色和指令

Error message

战斗脚本格式错误,必须以空格分隔角色和指令

What it means

Error "战斗脚本格式错误,必须以空格分隔角色和指令" thrown in babalae/better-genshin-impact.

Source

Thrown at BetterGenshinImpact/GameTask/AutoFight/Script/CombatScriptParser.cs:151

        var character = defaultAvatarName ?? CurrentAvatarName;
        var commands = line;
        if (separatorIndex > 0)
        {
            character = line[..separatorIndex];
            character = DefaultAutoFightConfig.AvatarAliasToStandardName(character);
            commands = line[(separatorIndex + 1)..];
        }
        else
        {
            // 无显式前缀时,若提供了 defaultAvatarName 则对其标准化;否则走验证失败
            if (defaultAvatarName != null)
            {
                character = DefaultAutoFightConfig.AvatarAliasToStandardName(defaultAvatarName);
            }
            else if (validate)
            {
                Logger.LogError("战斗脚本格式错误,必须以空格分隔角色和指令");
                throw new Exception("战斗脚本格式错误,必须以空格分隔角色和指令");
            }
        }

        oneLineCombatCommands.AddRange(ParseLineCommands(commands, character));
        combatAvatarNames.Add(character);
        return oneLineCombatCommands;
    }

    public static List<int> ParseRoundCommand(CombatCommand roundCommand) {
        // 解析round命令的入参,返回一个整数列表,代表在哪些回合执行后续指令
        // 支持Round(1)、Round(1,3,5)、Round(2-4)、Round(1,3-5)等格式
        var activatingRounds = new List<int>();
        if (roundCommand.Args == null || roundCommand.Args.Count == 0) {
            Logger.LogError("round方法必须有入参,代表在哪些回合执行后续指令,例:round(1)、round(1,3-5)");
            throw new ArgumentException("round方法必须有入参,代表在哪些回合执行后续指令,例:round(1)、round(1,3-5)");
        }
        foreach (var arg in roundCommand.Args) {
            if (arg.Contains('-')) {

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 检查战斗脚本每行格式:角色名与指令之间用空格分隔
  2. 参考文档中的战斗脚本示例修正格式
  3. 确认每行只有一个角色和一组指令

Example fix

每行按“角色名 指令1|指令2”格式书写,角色名后用一个空格分隔指令。

When it happens

Trigger: 解析脚本某行时找不到空格分隔的“角色名+指令”结构,且未提供默认角色名,验证模式下抛出。

Common situations: 脚本行缺少角色名前缀,如直接写“e; a(0.3)”而没有“角色名 指令”格式。


AI-assisted analysis of babalae/better-genshin-impact@a7cb36712d (2026-08-13). Data as JSON: /api/errors/865d9458270e6086. Report an issue: GitHub.