diff --git a/Barotrauma/BarotraumaClient/Source/Networking/ChatMessage.cs b/Barotrauma/BarotraumaClient/Source/Networking/ChatMessage.cs index 4ca7e1297..668f7ac08 100644 --- a/Barotrauma/BarotraumaClient/Source/Networking/ChatMessage.cs +++ b/Barotrauma/BarotraumaClient/Source/Networking/ChatMessage.cs @@ -22,7 +22,7 @@ namespace Barotrauma.Networking ChatMessageType type = (ChatMessageType)msg.ReadByte(); string txt = msg.ReadString(); - string senderName = ""; + string senderName = msg.ReadString(); Character senderCharacter = null; bool hasSenderCharacter = msg.ReadBoolean(); if (hasSenderCharacter) @@ -33,10 +33,6 @@ namespace Barotrauma.Networking senderName = senderCharacter.Name; } } - else - { - senderName = msg.ReadString(); - } if (NetIdUtils.IdMoreRecent(ID, LastID)) { diff --git a/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs b/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs index aafe2d4ac..50806f08b 100644 --- a/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs +++ b/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs @@ -1064,7 +1064,7 @@ namespace Barotrauma.Networking gameStarted && myCharacter != null ? myCharacter.Name : name, message, ChatMessageType.Default, - gameStarted ? myCharacter : null); + gameStarted && myCharacter != null ? myCharacter : null); lastQueueChatMsgID++; chatMessage.NetStateID = lastQueueChatMsgID; diff --git a/Barotrauma/BarotraumaShared/Source/Networking/ChatMessage.cs b/Barotrauma/BarotraumaShared/Source/Networking/ChatMessage.cs index aea118e94..724739997 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/ChatMessage.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/ChatMessage.cs @@ -224,15 +224,12 @@ namespace Barotrauma.Networking msg.Write((byte)Type); msg.Write(Text); + msg.Write(SenderName); msg.Write(Sender != null && c.InGame); if (Sender != null && c.InGame) { msg.Write(Sender.ID); } - else - { - msg.Write(SenderName); - } } } diff --git a/Barotrauma/BarotraumaShared/Source/Networking/EntitySpawner.cs b/Barotrauma/BarotraumaShared/Source/Networking/EntitySpawner.cs index fd08e1f61..5b66e2709 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/EntitySpawner.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/EntitySpawner.cs @@ -108,6 +108,13 @@ namespace Barotrauma { if (GameMain.Client != null) return; if (removeQueue.Contains(entity) || entity.Removed) return; + if (entity is Character) + { + Character character = entity as Character; + Client client = GameMain.Server.ConnectedClients.Find(c => c.Character == character); + if (client != null) client.Character = null; + } + removeQueue.Enqueue(entity); }