示例#1
0
        /// <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);
        }
示例#2
0
        public static void SendDataAboutHost(ServerTag serverTag)
        {
            var client = clients[serverTag.SenderID];

            client.ClientWriter.Write((byte)NetMessageType.DataHosts);
            serverTag.WriteToPacket(client.ClientWriter, serverTag.SenderID);
        }