void SendStatePacketToClient(PlayerController inPlayerController) { int network_id = 0; do { //Log.Information($"SendStatePacketToClient"); //build state packet var statePacket = GetServer().CreateMessage(); //it's state! statePacket.Write((uint32_t)PacketType.kState, PacketTypeLengthBits); InFlightPacket ifp = inPlayerController.GetDeliveryNotificationManager().WriteState(statePacket); WriteLastMoveTimestampIfDirty(statePacket, inPlayerController); var rmtd = new ReplicationManagerTransmissionData(inPlayerController.GetReplicationManagerServer()); network_id = inPlayerController.GetReplicationManagerServer().Write(statePacket, rmtd, network_id, inPlayerController.GetWorldId()); ifp.SetTransmissionData((int)TransmissionDataType.kReplicationManager, rmtd); inPlayerController.SendMessage(statePacket, NetDeliveryMethod.Unreliable); //Debug.Log($"SendStatePacketToClient PlayerId:{inPlayerController.GetPlayerId()}, network_id:{network_id}"); } while (network_id != 0); }
void SendStatePacketToClient(ClientProxy inClientProxy) { //build state packet var statePacket = GetServer().CreateMessage(); //it's state! statePacket.Write((uint32_t)PacketType.kStateCC); InFlightPacket ifp = inClientProxy.GetDeliveryNotificationManager().WriteState(statePacket); WriteLastMoveTimestampIfDirty(statePacket, inClientProxy); AddScoreBoardStateToPacket(statePacket); var rmtd = new ReplicationManagerTransmissionData(inClientProxy.GetReplicationManagerServer()); inClientProxy.GetReplicationManagerServer().Write(statePacket, rmtd); ifp.SetTransmissionData((int)TransmissionDataType.kReplicationManager, rmtd); var ret = GetServer().SendMessage(statePacket, inClientProxy.mConnection, NetDeliveryMethod.Unreliable); //log.InfoFormat("send {0}", ret); }