diff --git a/Bombd/Protocols/RUDP/RudpConnection.cs b/Bombd/Protocols/RUDP/RudpConnection.cs index 0f107c6..949b0ef 100644 --- a/Bombd/Protocols/RUDP/RudpConnection.cs +++ b/Bombd/Protocols/RUDP/RudpConnection.cs @@ -421,7 +421,7 @@ public override void Send(ArraySegment data, PacketType protocol) case PacketType.VoipData: { RudpMessage msg = _messagePool.Get(); - msg.EncodeVoipData((uint)TimeHelper.LocalTime, data); + msg.EncodeVoipData((uint)TimeHelper.LocalTime, data, Platform); _server.Send(this, msg.GetArraySegment()); _messagePool.Return(msg); break; diff --git a/Bombd/Protocols/RUDP/RudpMessage.cs b/Bombd/Protocols/RUDP/RudpMessage.cs index ef0c10a..7bdd958 100644 --- a/Bombd/Protocols/RUDP/RudpMessage.cs +++ b/Bombd/Protocols/RUDP/RudpMessage.cs @@ -89,7 +89,7 @@ public void EncodeUnreliableGamedata(ArraySegment data, uint salt) _data.WriteUint16BE(checksumOffset, checksum); } - public void EncodeVoipData(uint sequence, ArraySegment data) + public void EncodeVoipData(uint sequence, ArraySegment data, Platform platform) { Protocol = PacketType.VoipData; Sequence = sequence; @@ -99,7 +99,10 @@ public void EncodeVoipData(uint sequence, ArraySegment data) _offset += _data.WriteUint16BE(_offset, 0xffff); _offset += _data.WriteUint32BE(_offset, sequence); _offset += _data.WriteUint32BE(_offset, 0); - _offset += _data.WriteUint32BE(_offset, 0); + + if (platform == Platform.ModNation) + _offset += _data.WriteUint32BE(_offset, 0); + _offset += _data.Write(_offset, data); }