babalae/better-genshin-impact · error · Exception

联机状态下,此方法必须传入队伍角色编号位置信息

Error message

联机状态下,此方法必须传入队伍角色编号位置信息

What it means

Error "联机状态下,此方法必须传入队伍角色编号位置信息" thrown in babalae/better-genshin-impact.

Source

Thrown at BetterGenshinImpact/GameTask/AutoFight/Model/CombatScenes.cs:367

        return true;
    }


    private Avatar[] BuildAvatars(List<string> names, List<Rect>? nameRects = null, List<Rect>? avatarIndexRectList = null, AutoFightConfig? autoFightConfig = null)
    {
        if (autoFightConfig == null)
        {
            autoFightConfig = TaskContext.Instance().Config.AutoFightConfig;
        }
        var cdConfig = autoFightConfig.ActionSchedulerByCd;
        if (avatarIndexRectList == null && ExpectedTeamAvatarNum == 4)
        {
            avatarIndexRectList = [.. _autoFightAssets.AvatarIndexRectList];
        }

        if (avatarIndexRectList == null)
        {
            throw new Exception("联机状态下,此方法必须传入队伍角色编号位置信息");
        }

        var namesCount = names.Count;
        var avatars = new Avatar[namesCount];
        for (var i = 0; i < namesCount; i++)
        {
            var nameRect = nameRects?[i] ?? default;
            // 根据手动写的出招表来优化CD
            var cd = Avatar.ParseActionSchedulerByCd(names[i], cdConfig);
            avatars[i] = new Avatar(this, names[i], i + 1, nameRect, cd ?? -1)
            {
                IndexRect = avatarIndexRectList[i]
            };
        }

        return avatars;
    }

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 联机状态下调用相关方法时传入队伍角色编号位置信息
  2. 退出联机状态后再使用该方法的单机调用方式

Example fix

联机场景确保队伍人数识别正常;若稳定复现属程序内部问题,携带日志反馈开发者。

When it happens

Trigger: 构建 Avatar 数组时 ExpectedTeamAvatarNum 不是4(联机状态),且调用方未传入 avatarIndexRectList 编号框位置信息,也没有默认资源可用时抛出。

Common situations: 联机模式下走需要编号框位置的识别路径,但上层未提供该信息(内部调用不匹配)。


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