From 41fc7eb047387c8951f5e7c4df54c8486961f493 Mon Sep 17 00:00:00 2001 From: Somebody Date: Sat, 17 May 2025 21:18:02 +0800 Subject: [PATCH] fix: the unique field cannot exist more --- GameServer/Game/Scene/SceneInstance.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/GameServer/Game/Scene/SceneInstance.cs b/GameServer/Game/Scene/SceneInstance.cs index b21ef3c3..cfa23a3d 100644 --- a/GameServer/Game/Scene/SceneInstance.cs +++ b/GameServer/Game/Scene/SceneInstance.cs @@ -174,7 +174,7 @@ public class SceneInstance public GameModeTypeEnum GameModeType; - public Dictionary SummonUnit { get; set; } = []; + public Dictionary SummonUnit { get; set; } = []; public SceneInstance(PlayerInstance player, MazePlaneExcel excel, int floorId, int entryId) { @@ -370,7 +370,8 @@ public class SceneInstance IGameEntity? removeEntity = null; // get old summon unit - if (SummonUnit.TryGetValue(summonUnitExcel.UniqueGroup, out var oldSummonUnit)) + var summonUnitKey = summonUnitExcel.UniqueGroup == SummonUnitUniqueGroupEnum.None ? summonUnitExcel.ID : 1; + if (SummonUnit.TryGetValue(summonUnitKey, out var oldSummonUnit)) { // clear old summon unit removeEntity = oldSummonUnit; @@ -386,7 +387,7 @@ public class SceneInstance } await Player.SendPacket(new PacketSceneGroupRefreshScNotify(Player, entity, removeEntity)); - SummonUnit[summonUnitExcel.UniqueGroup] = entity; + SummonUnit[summonUnitKey] = entity; return Retcode.RetSucc; }