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