コード例 #1
0
        /// <summary>
        /// 플레이어를 삭제합니다.
        /// </summary>
        /// <param name="serial"></param>
        /// <returns></returns>
        public bool DeletePlayer(int serial)
        {
            if (playerContainer.ContainsKey(serial) == false)
            {
                return(false);
            }

            MNetworkPlayer player = FindPlayer(serial);

            if (player == null)
            {
                return(false);
            }

            playerContainer.Remove(player.Serial);

            MNetworkRoom room = FindRoom(player.RoomKey);

            if (room != null)
            {
                room.LeavePlayer(player);
            }

            if (room.PlayerCount == 0)
            {
                DeleteRoom(room.roomKey);
            }

            if (player.PlayerState == MNetworkPlayer.MPlayerState.LoginSuccess)
            {
                playerNameContainer.Remove(player.UserName);
            }

            return(true);
        }
コード例 #2
0
        /// <summary>
        /// 방에서 플레이어를 퇴장시킵니다.
        /// </summary>
        /// <param name="room"></param>
        /// <param name="player"></param>
        /// <returns></returns>
        public bool ExitFromRoom(string roomKey, MNetworkPlayer player)
        {
            MNetworkRoom room = FindRoom(roomKey);

            if (room == null)
            {
                return(false);
            }

            room.LeavePlayer(player.Serial);

            return(true);
        }
コード例 #3
0
        /// <summary>
        /// 새 방을 추가합니다.
        /// </summary>
        /// <param name="roomKey"></param>
        /// <param name="room"></param>
        /// <returns></returns>
        public bool AddRoom(string roomKey, MNetworkRoom room)
        {
            MNetworkRoom find = FindRoom(roomKey);

            if (find != null)
            {
                return(false);
            }

            activeRoomContainer.Add(roomKey, room);

            return(true);
        }
コード例 #4
0
        /// <summary>
        /// 방에서 플레이어를 퇴장시킵니다.
        /// </summary>
        /// <param name="room"></param>
        /// <param name="player"></param>
        /// <returns></returns>
        public bool ExitFromRoom(MNetworkRoom room, MNetworkPlayer player)
        {
            if (room == null)
            {
                return(false);
            }

            if (player == null)
            {
                return(false);
            }

            room.LeavePlayer(player.Serial);

            return(true);
        }
コード例 #5
0
        /// <summary>
        /// 방에 플레이어를 입장시킵니다.
        /// </summary>
        /// <param name="room"></param>
        /// <param name="player"></param>
        /// <returns></returns>
        public bool JoinRoom(string roomKey, MNetworkPlayer player)
        {
            MNetworkRoom room = FindRoom(roomKey);

            if (room == null)
            {
                return(false);
            }

            if (player.RoomKey != string.Empty)
            {
                FindRoom(player.RoomKey).LeavePlayer(player.Serial);
            }

            room.JoinPlayer(player);

            return(true);
        }
コード例 #6
0
        /// <summary>
        /// 방에 플레이어를 입장시킵니다.
        /// </summary>
        /// <param name="room"></param>
        /// <param name="player"></param>
        /// <returns></returns>
        public bool JoinRoom(string roomKey, string playerKey, out MNetworkRoom room)
        {
            MNetworkPlayer player = FindPlayer(playerKey);
            MNetworkRoom   r      = FindRoom(roomKey);

            room = r;

            if (r == null || player == null)
            {
                return(false);
            }

            if (player.RoomKey != string.Empty)
            {
                FindRoom(player.RoomKey).LeavePlayer(player.Serial);
            }

            r.JoinPlayer(player);

            return(true);
        }