From e68e8d3a1e8dfb95704026b697683e85443dcf55 Mon Sep 17 00:00:00 2001 From: StopWuyu Date: Fri, 15 Aug 2025 21:18:43 +0800 Subject: [PATCH] fix: the client send common avatar id instead of base avatar id --- .../Challenge/Instances/ChallengePeakInstance.cs | 2 +- .../Game/ChallengePeak/ChallengePeakManager.cs | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs b/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs index 375a1a64..57143314 100644 --- a/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs +++ b/GameServer/Game/Challenge/Instances/ChallengePeakInstance.cs @@ -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); diff --git a/GameServer/Game/ChallengePeak/ChallengePeakManager.cs b/GameServer/Game/ChallengePeak/ChallengePeakManager.cs index 53ff182d..7f93258c 100644 --- a/GameServer/Game/ChallengePeak/ChallengePeakManager.cs +++ b/GameServer/Game/ChallengePeak/ChallengePeakManager.cs @@ -96,18 +96,27 @@ public class ChallengePeakManager(PlayerInstance player) : BasePlayerManager(pla var datas = Player.ChallengeManager!.ChallengeData.PeakLevelDatas; foreach (var lineup in lineups) { + List 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; } }