From da5d60fbb3174b679b8af8b98547985823291aab Mon Sep 17 00:00:00 2001 From: Somebody Date: Sat, 6 Jul 2024 13:35:24 +0800 Subject: [PATCH] Fix a bug about mission - Incorrect mission info in SceneInfo --- GameServer/Game/Avatar/AvatarManager.cs | 9 ++++++++- GameServer/Game/Inventory/InventoryManager.cs | 4 ++-- GameServer/Game/Mission/MissionManager.cs | 8 ++++++-- GameServer/Game/Player/PlayerInstance.cs | 4 ++-- GameServer/Game/Scene/Entity/EntityProp.cs | 2 +- .../Packet/Recv/Battle/HandlerSceneCastSkillCsReq.cs | 2 +- .../Server/Packet/Send/Avatar/PacketAddAvatarScNotify.cs | 1 - 7 files changed, 20 insertions(+), 10 deletions(-) diff --git a/GameServer/Game/Avatar/AvatarManager.cs b/GameServer/Game/Avatar/AvatarManager.cs index 924d5deb..889a9e0c 100644 --- a/GameServer/Game/Avatar/AvatarManager.cs +++ b/GameServer/Game/Avatar/AvatarManager.cs @@ -3,6 +3,8 @@ using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.Database; using EggLink.DanhengServer.Database.Avatar; using EggLink.DanhengServer.Game.Player; +using EggLink.DanhengServer.Proto; +using EggLink.DanhengServer.Server.Packet.Send.Avatar; using EggLink.DanhengServer.Server.Packet.Send.Player; using EggLink.DanhengServer.Util; @@ -22,7 +24,7 @@ namespace EggLink.DanhengServer.Game.Avatar } } - public AvatarConfigExcel? AddAvatar(int avatarId, bool sync = true) + public AvatarConfigExcel? AddAvatar(int avatarId, bool sync = true, bool notify = true) { GameData.AvatarConfigData.TryGetValue(avatarId, out AvatarConfigExcel? avatarExcel); if (avatarExcel == null) @@ -51,6 +53,11 @@ namespace EggLink.DanhengServer.Game.Avatar if (sync) Player.SendPacket(new PacketPlayerSyncScNotify(avatar)); + if (notify) + { + Player.SendPacket(new PacketAddAvatarScNotify(avatar.GetBaseAvatarId())); + } + return avatarExcel; } diff --git a/GameServer/Game/Inventory/InventoryManager.cs b/GameServer/Game/Inventory/InventoryManager.cs index a650682d..6d8a5dd1 100644 --- a/GameServer/Game/Inventory/InventoryManager.cs +++ b/GameServer/Game/Inventory/InventoryManager.cs @@ -141,8 +141,8 @@ namespace EggLink.DanhengServer.Game.Inventory } else { - Player.AddAvatar(itemId, sync); - AddItem(itemId + 200000, 1); + Player.AddAvatar(itemId, sync, notify); + AddItem(itemId + 200000, 1, false); } break; default: diff --git a/GameServer/Game/Mission/MissionManager.cs b/GameServer/Game/Mission/MissionManager.cs index 6d7a8bb7..2ff04100 100644 --- a/GameServer/Game/Mission/MissionManager.cs +++ b/GameServer/Game/Mission/MissionManager.cs @@ -611,11 +611,15 @@ namespace EggLink.DanhengServer.Game.Mission { if (GetMainMissionStatus(mainMission.MainMissionID) == MissionPhaseEnum.Finish) { - info.SceneMissionInfo.AcceptMainMissionIdList.Add((uint)mainMission.MainMissionID); + info.SceneMissionInfo.MainMissionIdList.Add((uint)mainMission.MainMissionID); } else if (GetMainMissionStatus(mainMission.MainMissionID) == MissionPhaseEnum.Accept) { - info.SceneMissionInfo.MainMissionIdList.Add((uint)mainMission.MainMissionID); + info.SceneMissionInfo.AcceptMainMissionIdList.Add((uint)mainMission.MainMissionID); } + info.SceneMissionInfo.COLDABMKNDH.Add(new Proto.GBGPCCLIIEA() + { + MainMissionId = (uint)mainMission.MainMissionID, + }); break; // only one } } diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index 0762cb61..e3549021 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -235,9 +235,9 @@ namespace EggLink.DanhengServer.Game.Player SendPacket(new PacketPlayerSyncScNotify(AvatarManager!.GetHero()!)); } - public void AddAvatar(int avatarId, bool sync = true) + public void AddAvatar(int avatarId, bool sync = true, bool notify = true) { - AvatarManager?.AddAvatar(avatarId, sync); + AvatarManager?.AddAvatar(avatarId, sync, notify); } public void SpendStamina(int staminaCost) diff --git a/GameServer/Game/Scene/Entity/EntityProp.cs b/GameServer/Game/Scene/Entity/EntityProp.cs index 03399919..10c9288d 100644 --- a/GameServer/Game/Scene/Entity/EntityProp.cs +++ b/GameServer/Game/Scene/Entity/EntityProp.cs @@ -44,7 +44,7 @@ namespace EggLink.DanhengServer.Game.Scene.Entity } // save - if (Group.SaveType != SaveTypeEnum.Save) + if (Group.SaveType == SaveTypeEnum.Reset) { return; } diff --git a/GameServer/Server/Packet/Recv/Battle/HandlerSceneCastSkillCsReq.cs b/GameServer/Server/Packet/Recv/Battle/HandlerSceneCastSkillCsReq.cs index 1dc36749..158f457f 100644 --- a/GameServer/Server/Packet/Recv/Battle/HandlerSceneCastSkillCsReq.cs +++ b/GameServer/Server/Packet/Recv/Battle/HandlerSceneCastSkillCsReq.cs @@ -50,7 +50,7 @@ namespace EggLink.DanhengServer.Server.Packet.Recv.Battle triggerBattle = false; } - if (triggerBattle) + if (!triggerBattle) { // didnt hit any target if (info != null && req.SkillIndex > 0) diff --git a/GameServer/Server/Packet/Send/Avatar/PacketAddAvatarScNotify.cs b/GameServer/Server/Packet/Send/Avatar/PacketAddAvatarScNotify.cs index 558deee9..91adbe33 100644 --- a/GameServer/Server/Packet/Send/Avatar/PacketAddAvatarScNotify.cs +++ b/GameServer/Server/Packet/Send/Avatar/PacketAddAvatarScNotify.cs @@ -15,7 +15,6 @@ namespace EggLink.DanhengServer.Server.Packet.Send.Avatar { BaseAvatarId = (uint)avatarId, IsNew = true, - Src = AddAvatarSrcState.AddAvatarSrcGacha, }; SetData(packet);