Fixed chat messages being assigned to the wrong sender when their bodies have been eaten
This commit is contained in:
@@ -22,7 +22,7 @@ namespace Barotrauma.Networking
|
|||||||
ChatMessageType type = (ChatMessageType)msg.ReadByte();
|
ChatMessageType type = (ChatMessageType)msg.ReadByte();
|
||||||
string txt = msg.ReadString();
|
string txt = msg.ReadString();
|
||||||
|
|
||||||
string senderName = "";
|
string senderName = msg.ReadString();
|
||||||
Character senderCharacter = null;
|
Character senderCharacter = null;
|
||||||
bool hasSenderCharacter = msg.ReadBoolean();
|
bool hasSenderCharacter = msg.ReadBoolean();
|
||||||
if (hasSenderCharacter)
|
if (hasSenderCharacter)
|
||||||
@@ -33,10 +33,6 @@ namespace Barotrauma.Networking
|
|||||||
senderName = senderCharacter.Name;
|
senderName = senderCharacter.Name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
senderName = msg.ReadString();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NetIdUtils.IdMoreRecent(ID, LastID))
|
if (NetIdUtils.IdMoreRecent(ID, LastID))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1064,7 +1064,7 @@ namespace Barotrauma.Networking
|
|||||||
gameStarted && myCharacter != null ? myCharacter.Name : name,
|
gameStarted && myCharacter != null ? myCharacter.Name : name,
|
||||||
message,
|
message,
|
||||||
ChatMessageType.Default,
|
ChatMessageType.Default,
|
||||||
gameStarted ? myCharacter : null);
|
gameStarted && myCharacter != null ? myCharacter : null);
|
||||||
|
|
||||||
lastQueueChatMsgID++;
|
lastQueueChatMsgID++;
|
||||||
chatMessage.NetStateID = lastQueueChatMsgID;
|
chatMessage.NetStateID = lastQueueChatMsgID;
|
||||||
|
|||||||
@@ -224,15 +224,12 @@ namespace Barotrauma.Networking
|
|||||||
msg.Write((byte)Type);
|
msg.Write((byte)Type);
|
||||||
msg.Write(Text);
|
msg.Write(Text);
|
||||||
|
|
||||||
|
msg.Write(SenderName);
|
||||||
msg.Write(Sender != null && c.InGame);
|
msg.Write(Sender != null && c.InGame);
|
||||||
if (Sender != null && c.InGame)
|
if (Sender != null && c.InGame)
|
||||||
{
|
{
|
||||||
msg.Write(Sender.ID);
|
msg.Write(Sender.ID);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
msg.Write(SenderName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,13 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
if (GameMain.Client != null) return;
|
if (GameMain.Client != null) return;
|
||||||
if (removeQueue.Contains(entity) || entity.Removed) 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);
|
removeQueue.Enqueue(entity);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user