From 1b85dc36464d5f8e322038e344bbd38a9b917ec3 Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Thu, 8 Sep 2016 09:41:08 -0300 Subject: [PATCH] Fixed lobby chat --- Subsurface/Source/Networking/ChatMessage.cs | 7 +++-- Subsurface/Source/Networking/GameClient.cs | 4 +++ Subsurface/Source/Networking/GameServer.cs | 34 ++++++++++----------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/Subsurface/Source/Networking/ChatMessage.cs b/Subsurface/Source/Networking/ChatMessage.cs index 161884249..e69dfd6e6 100644 --- a/Subsurface/Source/Networking/ChatMessage.cs +++ b/Subsurface/Source/Networking/ChatMessage.cs @@ -57,8 +57,11 @@ namespace Barotrauma.Networking TextWithSender = string.IsNullOrWhiteSpace(senderName) ? text : senderName + ": " + text; - LastID++; - netStateID = LastID; + if (GameMain.Server != null) + { + LastID++; + netStateID = LastID; + } } public static ChatMessage Create(string senderName, string text, ChatMessageType type, Character sender) diff --git a/Subsurface/Source/Networking/GameClient.cs b/Subsurface/Source/Networking/GameClient.cs index 22b759d9f..2bd8693d8 100644 --- a/Subsurface/Source/Networking/GameClient.cs +++ b/Subsurface/Source/Networking/GameClient.cs @@ -36,6 +36,7 @@ namespace Barotrauma.Networking private string saltedPw; private UInt32 lastSentChatMsgID = 0; //last message this client has successfully sent + private UInt32 lastQueueChatMsgID = 0; //last message added to the queue private List chatMsgQueue = new List(); public byte ID @@ -617,6 +618,9 @@ namespace Barotrauma.Networking gameStarted && myCharacter != null ? myCharacter.Name : name, message, (ChatMessageType)type, gameStarted ? myCharacter : null); + lastQueueChatMsgID++; + chatMessage.netStateID = lastQueueChatMsgID; + chatMsgQueue.Add(chatMessage); } diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index 1f807e4c4..54bfbbf73 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -623,23 +623,23 @@ namespace Barotrauma.Networking { outmsg.Write((UInt16)0); } - outmsg.Write((GameMain.NetLobbyScreen.SubList.SelectedData as Submarine).Name); - outmsg.Write((GameMain.NetLobbyScreen.SubList.SelectedData as Submarine).MD5Hash.ToString()); - outmsg.Write((GameMain.NetLobbyScreen.ShuttleList.SelectedData as Submarine).Name); - outmsg.Write((GameMain.NetLobbyScreen.ShuttleList.SelectedData as Submarine).MD5Hash.ToString()); - - outmsg.WriteRangedInteger(0, 2, (int)TraitorsEnabled); - - outmsg.WriteRangedInteger(0, Mission.MissionTypes.Count - 1, (GameMain.NetLobbyScreen.MissionTypeIndex)); - - outmsg.Write((byte)GameMain.NetLobbyScreen.ModeList.SelectedIndex); - outmsg.Write(GameMain.NetLobbyScreen.LevelSeed); - - outmsg.Write(AutoRestart); - if (autoRestart) - { - outmsg.Write(AutoRestartTimer); - } + outmsg.Write((GameMain.NetLobbyScreen.SubList.SelectedData as Submarine).Name); + outmsg.Write((GameMain.NetLobbyScreen.SubList.SelectedData as Submarine).MD5Hash.ToString()); + outmsg.Write((GameMain.NetLobbyScreen.ShuttleList.SelectedData as Submarine).Name); + outmsg.Write((GameMain.NetLobbyScreen.ShuttleList.SelectedData as Submarine).MD5Hash.ToString()); + + outmsg.WriteRangedInteger(0, 2, (int)TraitorsEnabled); + + outmsg.WriteRangedInteger(0, Mission.MissionTypes.Count - 1, (GameMain.NetLobbyScreen.MissionTypeIndex)); + + outmsg.Write((byte)GameMain.NetLobbyScreen.ModeList.SelectedIndex); + outmsg.Write(GameMain.NetLobbyScreen.LevelSeed); + + outmsg.Write(AutoRestart); + if (autoRestart) + { + outmsg.Write(AutoRestartTimer); + } } else {