fix: cant enter the trial activity when lineup has main character

This commit is contained in:
StopWuyu
2025-05-30 23:19:00 +08:00
parent bb6973e4cd
commit fc22a1f8e1
2 changed files with 12 additions and 3 deletions

View File

@@ -24,7 +24,7 @@ public class TrialActivityInstance : BaseActivityInstance
if (excel != null)
{
Data.CurTrialStageId = stageId;
player.LineupManager.SetExtraLineup(ExtraLineupType.LineupStageTrial, excel.TrialAvatarList.ToList());
player.LineupManager.SetExtraLineup(ExtraLineupType.LineupStageTrial, excel.TrialAvatarList.ToList(), true);
await player.EnterScene(excel.MapEntranceID, 0, true);
}

View File

@@ -2,6 +2,7 @@
using EggLink.DanhengServer.Database;
using EggLink.DanhengServer.Database.Avatar;
using EggLink.DanhengServer.Database.Lineup;
using EggLink.DanhengServer.Enums.Avatar;
using EggLink.DanhengServer.GameServer.Game.Player;
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup;
using EggLink.DanhengServer.GameServer.Server.Packet.Send.Scene;
@@ -135,7 +136,7 @@ public class LineupManager : BasePlayerManager
return true;
}
public void SetExtraLineup(ExtraLineupType type, List<int> baseAvatarIds)
public void SetExtraLineup(ExtraLineupType type, List<int> baseAvatarIds, bool refresh = false)
{
if (type == ExtraLineupType.LineupNone)
{
@@ -163,9 +164,17 @@ public class LineupManager : BasePlayerManager
foreach (var avatarId in baseAvatarIds)
{
var trial = Player.AvatarManager!.GetTrialAvatar(avatarId);
var trial = Player.AvatarManager!.GetTrialAvatar(avatarId, refresh);
if (trial != null)
{
if (GameData.MultiplePathAvatarConfigData.TryGetValue(trial.AvatarId, out var pathExcel) && pathExcel.Gender != GenderTypeEnum.GENDER_NONE)
{
if (pathExcel.Gender != (GenderTypeEnum)Player.Data.CurrentGender)
{
continue;
}
}
trial.CheckLevel(worldLevel);
lineup.BaseAvatars!.Add(new LineupAvatarInfo
{ BaseAvatarId = trial.BaseAvatarId, SpecialAvatarId = trial.SpecialAvatarId });