Exemple #1
0
        public void Execute()
        {
            if (this.m_player.CurrentRoom != null)
            {
                this.m_player.CurrentRoom.RemovePlayerUnsafe(this.m_player);
            }
            if (this.m_player.IsActive)
            {
                BaseRoom[] rooms = RoomMgr.Rooms;
                BaseRoom   room  = null;
                for (int i = 0; i < rooms.Length; i++)
                {
                    if (!rooms[i].IsUsing)
                    {
                        room = rooms[i];
                        break;
                    }
                }
                if (room != null)
                {
                    RoomMgr.WaitingRoom.RemovePlayer(this.m_player);
                    room.Start();
                    if (this.m_roomType == eRoomType.Exploration)
                    {
                        room.HardLevel   = eHardLevel.Normal;
                        room.LevelLimits = (int)room.GetLevelLimit(this.m_player);
                    }
                    room.UpdateRoom(this.m_name, this.m_password, this.m_roomType, this.m_timeType, 0);

                    if (this.m_roomType == eRoomType.Match)
                    {
                        if (BattleMgr.IsOpenAreaFight)
                        {
                            room.IsArea = true;
                        }
                    }
                    GSPacketIn pkg = this.m_player.Out.SendRoomCreate(room);
                    room.AddPlayerUnsafe(this.m_player);
                    RoomMgr.WaitingRoom.SendUpdateRoom(room);
                }
                else
                {
                    Console.WriteLine(LanguageMgr.GetTranslation("CreateRoomAction.MaxRoom", new object[0]));
                    this.m_player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CreateRoomAction.MaxRoom", new object[0]));
                }
            }
        }
Exemple #2
0
        public void Execute()
        {
            if (m_player.CurrentRoom != null)
            {
                m_player.CurrentRoom.RemovePlayerUnsafe(m_player);
            }
            if (m_player.IsActive == false)
            {
                return;
            }
            BaseRoom[] rooms = RoomMgr.Rooms;

            BaseRoom room = null;

            for (int i = 0; i < rooms.Length; i++)
            {
                if (rooms[i].IsUsing == false)
                {
                    room = rooms[i];
                    break;
                }
            }

            if (room != null)
            {
                RoomMgr.WaitingRoom.RemovePlayer(m_player);


                room.Start();
                //探险默认使用普通难度等级
                if (m_roomType == eRoomType.Exploration)
                {
                    room.HardLevel   = eHardLevel.Normal;
                    room.LevelLimits = (int)room.GetLevelLimit(m_player);
                }

                room.UpdateRoom(m_name, m_password, m_roomType, m_timeType, 0);


                GSPacketIn pkg = m_player.Out.SendRoomCreate(room);
                room.AddPlayerUnsafe(m_player);
                RoomMgr.WaitingRoom.SendUpdateRoom(room);
            }
        }
        public void Execute()
        {
            if (this.m_player.CurrentRoom != null)
            {
                this.m_player.CurrentRoom.RemovePlayerUnsafe(this.m_player);
            }
            if (!this.m_player.IsActive)
            {
                return;
            }
            BaseRoom[] rooms    = RoomMgr.Rooms;
            BaseRoom   baseRoom = null;

            for (int i = 0; i < rooms.Length; i++)
            {
                if (!rooms[i].IsUsing)
                {
                    baseRoom = rooms[i];
                    break;
                }
            }
            if (baseRoom != null)
            {
                RoomMgr.WaitingRoom.RemovePlayer(this.m_player);
                baseRoom.Start();
                if (this.m_roomType == eRoomType.Dungeon)
                {
                    baseRoom.HardLevel   = eHardLevel.Normal;
                    baseRoom.LevelLimits = (int)baseRoom.GetLevelLimit(this.m_player);
                }
                baseRoom.UpdateRoom(this.m_name, this.m_password, this.m_roomType, this.m_timeType, 0);
                this.m_player.Out.SendRoomCreate(baseRoom);
                baseRoom.AddPlayerUnsafe(this.m_player);
                RoomMgr.WaitingRoom.SendUpdateRoom(baseRoom);
            }
        }