Beispiel #1
0
        private void ClientDisconnected(object sender, ClientDisconnectedEventArgs e)
        {
            using (DarkRiftWriter writer = DarkRiftWriter.Create())
            {
                players.Remove(e.Client);
                if (e.Client == playerConnecting)
                {
                    playerConnecting = null;
                    buffer.RunNext();
                }

                writer.Write <Disconnect>(new Disconnect()
                {
                    PlayerId = e.Client.ID
                });

                using (Message outMessage = Message.Create((ushort)NetworkTags.PLAYER_DISCONNECT, writer))
                    foreach (IClient client in ClientManager.GetAllClients().Where(client => client != e.Client))
                    {
                        client.SendMessage(outMessage, SendMode.Reliable);
                    }
            }
        }