netcode: replicate other players for connecting client
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using FlaxEngine;
|
||||
using FlaxEngine.Networking;
|
||||
using Console = Cabrito.Console;
|
||||
@@ -62,12 +63,34 @@ namespace Game
|
||||
{
|
||||
try
|
||||
{
|
||||
IsLocalClient = IsServer;
|
||||
IsLocalClient = server != null;
|
||||
IsClient = true;
|
||||
OnNetworkMessage(ref networkEvent);
|
||||
|
||||
if (networkEvent.Message.Position > 0 &&
|
||||
networkEvent.Message.Position < networkEvent.Message.Length)
|
||||
{
|
||||
string err =
|
||||
$"Network message was not fully read: {networkEvent.Message.Position} / {networkEvent.Message.Length}.";
|
||||
|
||||
networkEvent.Message.Position = 0;
|
||||
byte[] messageBytes = new byte[networkEvent.Message.Length];
|
||||
unsafe
|
||||
{
|
||||
fixed (byte* messageBytePtr = &messageBytes[0])
|
||||
networkEvent.Message.ReadBytes(messageBytePtr, (int)networkEvent.Message.Length);
|
||||
}
|
||||
|
||||
string messageBytesStr = string.Join(", ",
|
||||
messageBytes.Select(x => "0x" + ((int)x).ToString("X2")));
|
||||
|
||||
Console.PrintError(err + $"Message dump: {messageBytesStr}");
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsLocalClient = false;
|
||||
IsClient = false;
|
||||
client.RecycleMessage(networkEvent.Message);
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user