Exemplo n.º 1
0
        /// <summary>
        /// 离开
        /// </summary>
        /// <param name="client"></param>
        private void leave(ClientPeer client)
        {
            SingleExecute.Instance.Execute(
                delegate()
            {
                if (!userCache.IsOnline(client))
                {
                    return;
                }
                int userId = userCache.GetId(client);
                //用户没有匹配 不能退出 非法操作
                if (matchCache.IsMatching(userId) == false)
                {
                    Console.WriteLine("用户没有匹配 不能退出 非法操作");
                    return;
                }
                //正常离开
                MatchRoom room = matchCache.Leave(userId);
                //广播给房间内所有人 有人离开了 参数:离开的用户id
                room.Brocast(OpCode.MATCH, MatchCode.LEAVE_BRO, userId);

                Console.WriteLine("有玩家离开匹配房间");
            });
        }