Fixed speech bubbles, server sends the ID of a speaking character instead of the name

This commit is contained in:
Regalis
2017-01-10 18:40:12 +02:00
parent 81c3641d97
commit df59f0d089
4 changed files with 41 additions and 15 deletions

View File

@@ -146,19 +146,44 @@ namespace Barotrauma.Networking
msg.Write((byte)ServerNetObject.CHAT_MESSAGE);
msg.Write(NetStateID);
msg.Write((byte)Type);
msg.Write(SenderName);
msg.Write(Text);
msg.Write(Sender != null);
if (Sender != null)
{
msg.Write(Sender.ID);
}
else
{
msg.Write(SenderName);
}
}
static public void ClientRead(NetIncomingMessage msg)
{
UInt32 ID = msg.ReadUInt32();
ChatMessageType type = (ChatMessageType)msg.ReadByte();
string senderName = msg.ReadString();
ChatMessageType type = (ChatMessageType)msg.ReadByte();
string txt = msg.ReadString();
string senderName = "";
Character senderCharacter = null;
bool hasSenderCharacter = msg.ReadBoolean();
if (hasSenderCharacter)
{
senderCharacter = Entity.FindEntityByID(msg.ReadUInt16()) as Character;
if (senderCharacter != null)
{
senderName = senderCharacter.Name;
}
}
else
{
senderName = msg.ReadString();
}
if (ID > LastID)
{
GameMain.Client.AddChatMessage(txt, type, senderName);
GameMain.Client.AddChatMessage(txt, type, senderName, senderCharacter);
LastID = ID;
}
}