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])); } } }
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); } }
public void Execute() { if (m_player.IsActive == false) { return; } if (m_player.CurrentRoom != null) { m_player.CurrentRoom.RemovePlayerUnsafe(m_player); } BaseRoom[] rooms = RoomMgr.Rooms; BaseRoom rm = null; if (m_roomId == -1) { rm = FindRandomRoom(rooms); if (rm == null) { m_player.Out.SendMessage(eMessageType.ERROR, "暂时没有合适的房间,请稍后重试!"); m_player.Out.SendRoomLoginResult(false); return; } } else { rm = rooms[m_roomId - 1]; } if (!rm.IsUsing) { m_player.Out.SendMessage(eMessageType.Normal, "房间不存在!"); return; } if (rm.PlayerCount == rm.PlacesCount) { m_player.Out.SendMessage(eMessageType.ERROR, "房间人数已满!"); } else { if (rm.NeedPassword == false || rm.Password == m_pwd) { if (rm.Game == null || rm.Game.CanAddPlayer()) { if (rm.RoomType == eRoomType.Exploration && rm.LevelLimits > (int)rm.GetLevelLimit(m_player)) { m_player.Out.SendMessage(eMessageType.ERROR, "您的等级和该房间要求等级不符!"); return; } RoomMgr.WaitingRoom.RemovePlayer(m_player); m_player.Out.SendRoomLoginResult(true); m_player.Out.SendRoomCreate(rm); if (rm.AddPlayerUnsafe(m_player)) { if (rm.Game != null) { rm.Game.AddPlayer(m_player); } } RoomMgr.WaitingRoom.SendUpdateRoom(rm); m_player.Out.SendRoomChange(rm); } } else { m_player.Out.SendMessage(eMessageType.ERROR, "房间密码错误"); m_player.Out.SendRoomLoginResult(false); } } }
public void Execute() { if (m_player.IsActive == false) { return; } if (m_player.CurrentRoom != null) { m_player.CurrentRoom.RemovePlayerUnsafe(m_player); } BaseRoom[] rooms = RoomMgr.Rooms; BaseRoom rm = null; if (m_roomId == -1) { rm = FindRandomRoom(rooms); if (rm == null) { m_player.Out.SendMessage(eMessageType.ERROR, "Không có phòng game nào!"); m_player.Out.SendRoomLoginResult(false); return; } } else { rm = rooms[m_roomId - 1]; } if (!rm.IsUsing) { m_player.Out.SendMessage(eMessageType.Normal, "Phòng đang sử dụng!"); return; } if (rm.PlayerCount == rm.PlacesCount) { m_player.Out.SendMessage(eMessageType.ERROR, "Phòng đã đấy!"); } else { if (rm.NeedPassword == false || rm.Password == m_pwd) { if (rm.Game == null || rm.Game.CanAddPlayer()) { if (rm.LevelLimits > (int)rm.GetLevelLimit(m_player)) { m_player.Out.SendMessage(eMessageType.ERROR, "Level chưa đủ!"); return; } RoomMgr.WaitingRoom.RemovePlayer(m_player); m_player.Out.SendRoomLoginResult(true); m_player.Out.SendRoomCreate(rm); if (rm.AddPlayerUnsafe(m_player)) { if (rm.Game != null) { rm.Game.AddPlayer(m_player); } } RoomMgr.WaitingRoom.SendUpdateRoom(rm); m_player.Out.SendRoomChange(rm); } } else { m_player.Out.SendMessage(eMessageType.ERROR, "Password không đúng!"); m_player.Out.SendRoomLoginResult(false); } } }