ReliableMessages for all reliable networkevents, netstats fix, own character is not networkplayer
This commit is contained in:
@@ -353,15 +353,29 @@ namespace Barotrauma.Networking
|
||||
|
||||
foreach (NetworkEvent networkEvent in NetworkEvent.events)
|
||||
{
|
||||
NetOutgoingMessage message = client.CreateMessage();
|
||||
message.Write((byte)PacketTypes.NetworkEvent);
|
||||
|
||||
|
||||
if (networkEvent.FillData(message))
|
||||
if (networkEvent.IsImportant)
|
||||
{
|
||||
client.SendMessage(message,
|
||||
(networkEvent.IsImportant) ? NetDeliveryMethod.ReliableUnordered : NetDeliveryMethod.Unreliable);
|
||||
ReliableMessage reliableMessage = reliableChannel.CreateMessage();
|
||||
reliableMessage.InnerMessage.Write((byte)PacketTypes.NetworkEvent);
|
||||
|
||||
if (networkEvent.FillData(reliableMessage.InnerMessage))
|
||||
{
|
||||
reliableChannel.SendMessage(reliableMessage, client.ServerConnection);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NetOutgoingMessage message = client.CreateMessage();
|
||||
message.Write((byte)PacketTypes.NetworkEvent);
|
||||
|
||||
|
||||
if (networkEvent.FillData(message))
|
||||
{
|
||||
client.SendMessage(message, NetDeliveryMethod.Unreliable);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
NetworkEvent.events.Clear();
|
||||
@@ -665,8 +679,8 @@ namespace Barotrauma.Networking
|
||||
}
|
||||
|
||||
Character character = (closestWaypoint == null) ?
|
||||
new Character(ch, position, true) :
|
||||
new Character(ch, closestWaypoint, true);
|
||||
new Character(ch, position, !isMyCharacter) :
|
||||
new Character(ch, closestWaypoint, !isMyCharacter);
|
||||
|
||||
character.ID = ID;
|
||||
character.Inventory.ID = inventoryID;
|
||||
|
||||
@@ -661,8 +661,7 @@ namespace Barotrauma.Networking
|
||||
|
||||
if (server.ConnectionsCount>0)
|
||||
{
|
||||
server.SendMessage(message, recipientConnections,
|
||||
(networkEvent.IsImportant) ? NetDeliveryMethod.Unreliable : NetDeliveryMethod.ReliableUnordered, 0);
|
||||
server.SendMessage(message, recipientConnections, NetDeliveryMethod.Unreliable, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Barotrauma.Networking
|
||||
private float[] totalValue;
|
||||
private float[] lastValue;
|
||||
|
||||
const float UpdateInterval = 1.0f;
|
||||
const float UpdateInterval = 0.1f;
|
||||
float updateTimer;
|
||||
|
||||
public NetStats()
|
||||
@@ -54,11 +54,11 @@ namespace Barotrauma.Networking
|
||||
for (int i = 0; i<3; i++)
|
||||
{
|
||||
|
||||
graphs[i].Update(totalValue[i] * 10.0f);
|
||||
graphs[i].Update(totalValue[i] / UpdateInterval);
|
||||
totalValue[i] = 0.0f;
|
||||
}
|
||||
|
||||
updateTimer = UpdateInterval/10.0f;
|
||||
updateTimer = UpdateInterval;
|
||||
}
|
||||
|
||||
public void Draw(SpriteBatch spriteBatch, Rectangle rect)
|
||||
@@ -71,10 +71,14 @@ namespace Barotrauma.Networking
|
||||
|
||||
graphs[(int)NetStatType.ResentMessages].Draw(spriteBatch, rect, null, 0.0f, Color.Red);
|
||||
|
||||
spriteBatch.DrawString(GUI.SmallFont, "Peak received: "+graphs[(int)NetStatType.ReceivedBytes].LargestValue()+" bytes/s",
|
||||
spriteBatch.DrawString(GUI.SmallFont,
|
||||
"Peak received: "+graphs[(int)NetStatType.ReceivedBytes].LargestValue()+" bytes/s " +
|
||||
"Avg received: " + graphs[(int)NetStatType.ReceivedBytes].LargestValue()/Graph.ArraySize + " bytes/s",
|
||||
new Vector2(rect.X + 10, rect.Y+10), Color.Cyan);
|
||||
|
||||
spriteBatch.DrawString(GUI.SmallFont, "Peak sent: " + graphs[(int)NetStatType.SentBytes].LargestValue() + " bytes/s",
|
||||
|
||||
spriteBatch.DrawString(GUI.SmallFont, "Peak sent: " + graphs[(int)NetStatType.SentBytes].LargestValue() + " bytes/s " +
|
||||
"Avg sent: " + graphs[(int)NetStatType.SentBytes].LargestValue()/Graph.ArraySize + " bytes/s",
|
||||
new Vector2(rect.X + 10, rect.Y + 30), Color.Orange);
|
||||
|
||||
spriteBatch.DrawString(GUI.SmallFont, "Peak resent: " + graphs[(int)NetStatType.ResentMessages].LargestValue() + " messages/s",
|
||||
@@ -84,7 +88,7 @@ namespace Barotrauma.Networking
|
||||
|
||||
class Graph
|
||||
{
|
||||
const int ArraySize = 100;
|
||||
public const int ArraySize = 100;
|
||||
|
||||
private float[] values;
|
||||
|
||||
|
||||
@@ -267,6 +267,7 @@ namespace Barotrauma
|
||||
modeList.Enabled = GameMain.Server != null;
|
||||
seedBox.Enabled = GameMain.Server != null;
|
||||
serverMessage.Enabled = GameMain.Server != null;
|
||||
autoRestartBox.Enabled = GameMain.Server != null;
|
||||
ServerName = (GameMain.Server==null) ? "Server" : GameMain.Server.Name;
|
||||
|
||||
modeList.OnSelected += SelectMode;
|
||||
|
||||
Reference in New Issue
Block a user