fix: the client send common avatar id instead of base avatar id

This commit is contained in:
StopWuyu
2025-08-15 21:18:43 +08:00
parent ae22e035ff
commit e68e8d3a1e
2 changed files with 12 additions and 3 deletions

View File

@@ -127,7 +127,7 @@ public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data)
if (target == null) continue;
if (target.Progress <= target.TotalProgress)
stars++;
stars += 1u << targets.IndexOf(targetId);
}
return Math.Min(stars, 7);

View File

@@ -96,18 +96,27 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla
var datas = Player.ChallengeManager!.ChallengeData.PeakLevelDatas;
foreach (var lineup in lineups)
{
List<uint> avatarIds = [];
foreach (var avatarId in lineup.PeakLevelLineup.ToList())
{
var avatar = Player.AvatarManager!.GetFormalAvatar((int)avatarId);
if (avatar != null)
avatarIds.Add((uint)avatar.BaseAvatarId);
}
if (!datas.TryGetValue((int)lineup.PeakLevelId,
out var data))
{
datas[(int)lineup.PeakLevelId] = new ChallengePeakLevelData
{
LevelId = (int)lineup.PeakLevelId,
BaseAvatarList = lineup.PeakLevelLineup.ToList()
BaseAvatarList = avatarIds
};
}
else
{
data.BaseAvatarList = lineup.PeakLevelLineup.ToList();
data.BaseAvatarList = avatarIds;
}
}