From 078f4f65b7dbf845d8e8ca36a84f48017d7f5b66 Mon Sep 17 00:00:00 2001 From: Somebody Date: Thu, 6 Jun 2024 18:42:04 +0800 Subject: [PATCH] fix a historical bug --- Common/Data/Excel/ChatBubbleConfigExcel.cs | 24 +++++++++++++++++++ Common/Data/GameData.cs | 1 + Common/Database/Player/PlayerData.cs | 7 +++++- .../Send/Player/PacketGetPhoneDataScRsp.cs | 8 ++++++- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 Common/Data/Excel/ChatBubbleConfigExcel.cs diff --git a/Common/Data/Excel/ChatBubbleConfigExcel.cs b/Common/Data/Excel/ChatBubbleConfigExcel.cs new file mode 100644 index 00000000..a940375f --- /dev/null +++ b/Common/Data/Excel/ChatBubbleConfigExcel.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EggLink.DanhengServer.Data.Excel +{ + [ResourceEntity("ChatBubbleConfig.json")] + public class ChatBubbleConfigExcel : ExcelResource + { + public int ID { get; set; } + + public override int GetId() + { + return ID; + } + + public override void Loaded() + { + GameData.ChatBubbleConfigData[ID] = this; + } + } +} diff --git a/Common/Data/GameData.cs b/Common/Data/GameData.cs index ccbd09d1..f1ae1952 100644 --- a/Common/Data/GameData.cs +++ b/Common/Data/GameData.cs @@ -70,6 +70,7 @@ namespace EggLink.DanhengServer.Data public static Dictionary QuestDataData { get; private set; } = []; public static Dictionary PlayerLevelConfigData { get; private set; } = []; public static Dictionary BackGroundMusicData { get; private set; } = []; + public static Dictionary ChatBubbleConfigData { get; private set; } = []; #endregion diff --git a/Common/Database/Player/PlayerData.cs b/Common/Database/Player/PlayerData.cs index fd73af62..f0b6e421 100644 --- a/Common/Database/Player/PlayerData.cs +++ b/Common/Database/Player/PlayerData.cs @@ -17,7 +17,7 @@ namespace EggLink.DanhengServer.Database.Player public int CurBasicType { get; set; } = 8001; public int HeadIcon { get; set; } = 208001; public int PhoneTheme { get; set; } = 221000; - public int ChatBubble { get; set; } = 222000; + public int ChatBubble { get; set; } = 220000; public int CurrentBgm { get; set; } = 210007; public Gender CurrentGender { get; set; } = Gender.Man; public int Level { get; set; } = 1; @@ -69,6 +69,11 @@ namespace EggLink.DanhengServer.Database.Player public PlayerSimpleInfo ToSimpleProto(FriendOnlineStatus status) { + if (!GameData.ChatBubbleConfigData.ContainsKey(ChatBubble)) // to avoid npe + { + ChatBubble = 220000; + } + var AvatarInfo = DatabaseHelper.Instance!.GetInstance(Uid)!; foreach (var avatar in AvatarInfo.Avatars) diff --git a/GameServer/Server/Packet/Send/Player/PacketGetPhoneDataScRsp.cs b/GameServer/Server/Packet/Send/Player/PacketGetPhoneDataScRsp.cs index 363e02be..ea7164b3 100644 --- a/GameServer/Server/Packet/Send/Player/PacketGetPhoneDataScRsp.cs +++ b/GameServer/Server/Packet/Send/Player/PacketGetPhoneDataScRsp.cs @@ -1,4 +1,5 @@ -using EggLink.DanhengServer.Game.Player; +using EggLink.DanhengServer.Data; +using EggLink.DanhengServer.Game.Player; using EggLink.DanhengServer.Proto; using System; using System.Collections.Generic; @@ -12,6 +13,11 @@ namespace EggLink.DanhengServer.Server.Packet.Send.Player { public PacketGetPhoneDataScRsp(PlayerInstance player) : base(CmdIds.GetPhoneDataScRsp) { + if (!GameData.ChatBubbleConfigData.ContainsKey(player.Data.ChatBubble)) // to avoid npe + { + player.Data.ChatBubble = 220000; + } + var proto = new GetPhoneDataScRsp { CurChatBubble = (uint)player.Data.ChatBubble,