ReliableMessages for all reliable networkevents, netstats fix, own character is not networkplayer

This commit is contained in:
Regalis
2015-10-20 22:28:27 +03:00
parent 4cf3386aa5
commit daf1e2bfd8
4 changed files with 35 additions and 17 deletions

View File

@@ -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;

View File

@@ -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);
}
}
}

View File

@@ -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;

View File

@@ -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;