示例#1
0
        private void Process(ClientPlayerLeave msg)
        {
            RemotePlayer player;

            if (remotePlayers.TryGetValue(msg.id, out player))
            {
                Log.InGame(player.username + " left the game.");
                player.Destroy();
                remotePlayers.Remove(msg.id);
            }
        }
示例#2
0
文件: Server.cs 项目: senlace/shinkai
        public virtual void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo)
        {
            Client client;

            if (peers.TryGetValue(peer, out client))
            {
                Log.Debug(client.player.username + " disconnected: " + peer.EndPoint);

                var res = new ClientPlayerLeave();
                res.id = client.id;
                SendToAll(client.peer, res);

                client.SetVehicle(null);
                peers.Remove(peer);
                Save();
            }
            else
            {
                Log.Debug("Disconnect from peer: {0}, {1}", peer.EndPoint, disconnectInfo.Reason);
            }
        }