/// <summary> /// Sends the welcome packet to the specified client /// </summary> /// <param name="playerId">The ID of the player to send the message to</param> private void SendWelcomePacket(byte playerId) { // Gets the player with the given player ID Player player = myPlayers[playerId]; // Prepare the message NetOutgoingMessage msg = myServer.CreateMessage(); msg.Write((byte)MessageType.PlayerConnectInfo); msg.Write((byte)playerId); msg.Write((bool)(player == myGameHost)); msg.WritePadBits(); myTag.WriteToPacket(msg); msg.Write(myPlayers.Count); msg.Write(myPlayers.PlayerCount); for (byte index = 0; index < myPlayers.Count; index++) { if (myPlayers[index] != null) { myPlayers[index].Encode(msg); } } myGameState.Encode(msg); // Send the message to the client myServer.SendMessage(msg, player.Connection, NetDeliveryMethod.ReliableOrdered); }
public static void SendDataAboutHost(ServerTag serverTag) { var client = clients[serverTag.SenderID]; client.ClientWriter.Write((byte)NetMessageType.DataHosts); serverTag.WriteToPacket(client.ClientWriter, serverTag.SenderID); }