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:452

        }
    }

    public Avatar? SelectAvatar(string name)
    {
        return Avatars.FirstOrDefault(avatar => avatar.Name.Equals(name));
    }

    /// <summary>
    /// 使用编号切换角色
    /// </summary>
    /// <param name="avatarIndex">从1开始</param>
    /// <returns></returns>
    public Avatar SelectAvatar(int avatarIndex)
    {
        if (avatarIndex < 1 || avatarIndex > AvatarCount)
        {
            _logger.LogError("切换角色编号错误,当前角色数量{Count},编号{Index}", AvatarCount, avatarIndex);
            throw new Exception("不存在的角色编号");
        }

        return Avatars[avatarIndex - 1];
    }

    /// <summary>
    /// 获取当前出战角色名
    /// 不考虑重新刷新编号框位置
    /// 不推荐使用
    /// </summary>
    /// <param name="force"></param>
    /// <param name="region"></param>
    /// <param name="ct"></param>
    /// <returns></returns>
    public string? CurrentAvatar(bool force = false, ImageRegion? region = null,
        CancellationToken ct = default)
    {
        if (!force && LastActiveAvatarIndex > 0)

View on GitHub (pinned to a7cb36712d)

Solutions

  1. 检查传入的角色编号是否在有效范围内(1-4)
  2. 确认当前队伍人数与编号匹配
  3. 联机模式下使用联机对应的编号规则

Example fix

联机时使用与可控角色数匹配的脚本;确认脚本中切人编号不超过当前可操控角色数量。

When it happens

Trigger: SelectAvatar(int) 按编号切人,传入编号小于1或大于当前 AvatarCount 时抛出。

Common situations: 战斗脚本/流程中的角色编号超出实际队伍人数,如联机时只剩2个可控角色却按4人脚本切3、4号位。


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