{"record":{"id":"fd8be15a65d2b061","repo":"babalae/better-genshin-impact","slug":"round-round-1-round-1-3-5","errorCode":null,"errorMessage":"round方法必须有入参，代表在哪些回合执行后续指令，例：round(1)、round(1,3-5)","messagePattern":"round方法必须有入参，代表在哪些回合执行后续指令，例：round\\(1\\)、round\\(1,3-5\\)","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"BetterGenshinImpact/GameTask/AutoFight/Script/CombatScriptParser.cs","lineNumber":166,"sourceCode":"            else if (validate)\n            {\n                Logger.LogError(\"战斗脚本格式错误，必须以空格分隔角色和指令\");\n                throw new Exception(\"战斗脚本格式错误，必须以空格分隔角色和指令\");\n            }\n        }\n\n        oneLineCombatCommands.AddRange(ParseLineCommands(commands, character));\n        combatAvatarNames.Add(character);\n        return oneLineCombatCommands;\n    }\n\n    public static List<int> ParseRoundCommand(CombatCommand roundCommand) {\n        // 解析round命令的入参，返回一个整数列表，代表在哪些回合执行后续指令\n        // 支持Round(1)、Round(1,3,5)、Round(2-4)、Round(1,3-5)等格式\n        var activatingRounds = new List<int>();\n        if (roundCommand.Args == null || roundCommand.Args.Count == 0) {\n            Logger.LogError(\"round方法必须有入参，代表在哪些回合执行后续指令，例：round(1)、round(1,3-5)\");\n            throw new ArgumentException(\"round方法必须有入参，代表在哪些回合执行后续指令，例：round(1)、round(1,3-5)\");\n        }\n        foreach (var arg in roundCommand.Args) {\n            if (arg.Contains('-')) {\n                // 范围\n                var parts = arg.Split('-', StringSplitOptions.TrimEntries);\n                if (parts.Length != 2) {\n                    Logger.LogError(\"round方法的入参格式错误，例：round(1-3)\");\n                    throw new ArgumentException(\"round方法的入参格式错误，例：round(1-3)\");\n                }\n                var start = int.Parse(parts[0]);\n                var end = int.Parse(parts[1]);\n                if (start > end || start <= 0) {\n                    Logger.LogError(\"round方法的入参格式错误，起始回合必须小于等于结束回合且大于0，例：round(1-3)\");\n                    throw new ArgumentException(\"round方法的入参格式错误，起始回合必须小于等于结束回合且大于0，例：round(1-3)\");\n                }\n                for (int i = start; i <= end; i++) {\n                    activatingRounds.Add(i);\n                }","sourceCodeStart":148,"sourceCodeEnd":184,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/GameTask/AutoFight/Script/CombatScriptParser.cs#L148-L184","documentation":"Error \"round方法必须有入参，代表在哪些回合执行后续指令，例：round(1)、round(1,3-5)\" thrown in babalae/better-genshin-impact.","triggerScenarios":"round 指令没有任何入参（round()）时抛出。","commonSituations":"脚本中写了空 round() 想表示回合控制但忘了填回合号。","solutions":["为 round 方法添加回合数入参，如 round(1) 或 round(1,3-5)","检查是否遗漏了括号内的参数"],"exampleFix":"给 round 填回合参数，如 round(1)、round(1,3-5)。","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}