public static bool ColocarObjeto_Especial(SalaInstance Sala, BuyObjectInstance Compra, int id, int x, int y, string tam, int rotation, string espacio_ocupado) { using (mysql client = new mysql()) { client.SetParameter("id", id); client.SetParameter("posX", x); client.SetParameter("posY", y); client.SetParameter("tam", tam); client.SetParameter("rotation", rotation); client.SetParameter("sala_id", Sala.Escenario.id); client.SetParameter("espacio_ocupado", espacio_ocupado); if (client.ExecuteNonQuery("UPDATE objetos_comprados SET posX = @posX, posY = @posY, tam = @tam, rotation = @rotation, espacio_ocupado = @espacio_ocupado, sala_id = @sala_id WHERE id = @id") == 1) { Compra.posX = x; Compra.posY = y; Compra.sala_id = Sala.id; Compra.espacio_ocupado = espacio_ocupado; Compra.tam = tam; Sala.ObjetosEnSala.Remove(Compra.id); Sala.ObjetosEnSala.Add(Compra.id, Compra); if (Sala.ObjetosEnSala.ContainsKey(Compra.id)) { Sala.FijarChutas(Compra); } return(true); } } return(false); }
private static void Packet_135(SessionInstance Session, TimeSpan Time, SalaInstance Sala, Posicion Posicion = null, bool kick = true) { try { Thread.Sleep(Time); if (Session.User.Sala.id == Sala.id && Session.User.Sala.Escenario.es_categoria == Sala.Escenario.es_categoria) { if (kick) { Packet_182(Session, 0, 0, Session.User.Posicion.z); Session.User.Sala.Map[Session.User.Posicion.y, Session.User.Posicion.x].FijarSession(null); Session.User.Posicion = Posicion; Packet_135(Session, Session.User.Posicion.x, Session.User.Posicion.y, 4); } else { Session.User.Sala.Map[Session.User.Posicion.y, Session.User.Posicion.x].FijarSession(null); Session.User.Posicion = new Posicion(0, 0, 4); Packet_182(Session, Session.User.Posicion.x, Session.User.Posicion.y, Session.User.Posicion.z); } } } catch { } }
public static void ActualizarVipUsuarios(SessionInstance Session) { if (Session.User != null) { int Meses_Usuario = Convert.ToInt32(SalaInstance.MonthDifference(Convert.ToDateTime(Session.User.fecha_registro), DateTime.Now)); if (Meses_Usuario == 12 || Meses_Usuario == 24 || Meses_Usuario == 36 || Meses_Usuario == 48 || Meses_Usuario == 60) { if (Time.GetDifference(Session.User.vip) > 0) { return; } ServerMessage server = new ServerMessage(); server.AddHead(126); server.AddHead(122); Session.User.vip_double = Time.GetCurrentAndAdd(AddType.Meses, 1); Session.User.end_vip = Convert.ToString(DateTime.Now.AddMonths(1)); FlowerHandler.BoomBangTeam(Session, "¡Felicidades " + Session.User.nombre + "! has cumplido un año mas en BoomBang. De parte de todo BoomBang Team te regalamos 1 Mes de VIP gratis."); FlowerHandler.BoomBangTeam(Session, "¡Felicidades " + Session.User.nombre + " Ahora eres un habitante de BurBian! \r\rTe notificaremos cuando tu suscripción termine faltando 15 días para que puedas renovar tu Membresía."); server.AppendParameter(1); server.AppendParameter(Session.User.end_vip); Session.SendData(server); ServerMessage vip = new ServerMessage(); vip.AddHead(126); vip.AddHead(120); vip.AppendParameter(Session.User.id); vip.AppendParameter(1); Session.SendData(vip); } } }
static void Poner_Clave(SessionInstance Session, string[,] Parameters) { if (Session.User != null) { if (Session.User.PreLock__Proteccion_SQL == true) { return; } if (Session.User.Sala != null) { return; } mysql client = new mysql(); DataRow row = client.ExecuteQueryRow("SELECT * FROM escenarios_privados WHERE id = '" + int.Parse(Parameters[1, 0]) + "'"); if (row != null) { EscenarioInstance Escenario = new EscenarioInstance(row); if (Escenario.Creador.id == Session.User.id || Session.User.admin == 1) { if (client.ExecuteNonQuery("UPDATE escenarios_privados SET clave = '" + Parameters[2, 0] + "' WHERE id = '" + Escenario.id + "'") == 1) { if (SalasManager.Salas_Privadas.ContainsKey(int.Parse(Parameters[1, 0]))) { SalaInstance Sala = SalasManager.Salas_Privadas[int.Parse(Parameters[1, 0])]; Sala.Escenario.Clave = Parameters[2, 0]; } } } } Session.User.PreLock__Proteccion_SQL = true; } }
public SearchParameters(Point endLocation, SessionInstance Session) { this.Sala = Session.User.Sala; this.StartLocation = new Point(Session.User.Posicion.x, Session.User.Posicion.y); this.EndLocation = endLocation; //this.Map = Sala.Map.; }
public void UpdateCoconuts(int SendedAmount = 0, int ReceivedAmount = 0) { this.ReceivedCoconuts += ReceivedAmount; this.SendedCoconuts += SendedAmount; using (DatabaseClient DatabaseClient = DatabaseManager.GetClient()) { DatabaseClient.SetParameter("@ID", this.ID); DatabaseClient.SetParameter("@SendedAmount", SendedAmount); DatabaseClient.SetParameter("@ReceivedAmount", ReceivedAmount); DatabaseClient.ExecuteScalar("UPDATE boombang_users SET SendedCoconuts = SendedCoconuts+@SendedAmount, ReceivedCoconuts = ReceivedCoconuts+@ReceivedAmount WHERE ID = @ID"); } if (SessionsManager.Online(ID)) { if (this.SpaceInstance != null) { if (this.SpaceInstance is AreaInstance) { AreaInstance Area = (AreaInstance)this.SpaceInstance; Area.SendToAll(new ServerMessage(new byte[] { 146 }, new object[] { this.ID, 5, this.SendedCoconuts, this.ReceivedCoconuts })); } if (this.SpaceInstance is SalaInstance) { SalaInstance Sala = (SalaInstance)this.SpaceInstance; Sala.SendToAll(new ServerMessage(new byte[] { 146 }, new object[] { this.ID, 5, this.SendedCoconuts, this.ReceivedCoconuts })); } } } }
public static List <Posicion> FindPath(SalaInstance Sala, SessionInstance Session) { List <Posicion> path = new List <Posicion>(); int width = Sala.Map.GetLength(0); int height = Sala.Map.GetLength(1); Node[,] nodes = new Node[width, height]; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { nodes[x, y] = new Node(x, y, new Point(Session.User.Trayectoria.EndLocation.X, Session.User.Trayectoria.EndLocation.Y)); } } Node startNode = nodes[Session.User.Posicion.x, Session.User.Posicion.y]; Node endNode = nodes[Session.User.Trayectoria.EndLocation.X, Session.User.Trayectoria.EndLocation.Y]; bool success = Search(startNode, endNode, width, height, nodes, Sala); if (success) { Node CurrentNode = endNode; while (CurrentNode.ParentNode != null) { path.Add(new Posicion(CurrentNode.Location.X, CurrentNode.Location.Y)); CurrentNode = CurrentNode.ParentNode; } path.Reverse(); } return(path); }
private void Clean() { try { this.Checker.Abort(); if (User != null) { if (User.SpaceInstance is AreaInstance) { if (User.SpaceUser.PathFinding != null) { User.SpaceUser.PathFinding.StopWalk(); } AreaInstance Area = (AreaInstance)User.SpaceInstance; ServerMessage Message1 = new ServerMessage(new byte[] { 128, 123 }, new object[] { User.SpaceUser.ID }); Area.SendToAllButMe(Message1, this.ID); AreaInstance Instance = (AreaInstance)User.SpaceInstance; Instance.RemoveUser(this.ID); } if (User.SpaceInstance is SalaInstance) { if (User.SpaceUser.PathFinding != null) { User.SpaceUser.PathFinding.StopWalk(); } SalaInstance Sala = (SalaInstance)User.SalaInstance; ServerMessage Message1 = new ServerMessage(new byte[] { 128, 123 }, new object[] { User.SpaceUser.ID }); Area.SendToAllButMe(Message1, this.ID); SalaInstance Instance = (SalaInstance)User.SalaInstance; Instance.RemoveUser(this.ID); } } } catch { } }
static void Uppert_Kick(SessionInstance Session, SalaInstance Sala) { Thread.Sleep(new TimeSpan(0, 0, 5)); if (Session.User.Sala.id == Sala.id && Session.User.Sala.Escenario.es_categoria == Sala.Escenario.es_categoria) { SalasManager.Salir_Sala(Session, true); } }
public static void EliminarEscenario(EscenarioInstance Escenario) { using (mysql client = new mysql()) { client.SetParameter("id", Escenario.id); if (Escenario.es_categoria == 0) { client.ExecuteNonQuery("DELETE FROM escenarios_privados WHERE id = @id"); client.SetParameter("id", Escenario.id); foreach (DataRow row in client.ExecuteQueryTable("SELECT * FROM objetos_comprados WHERE sala_id = @id").Rows) { BuyObjectInstance Compra = new BuyObjectInstance(row); SessionInstance Session = UserManager.ObtenerSession(Compra.usuario_id); if (Session != null) { ServerMessage añadir_mochila = new ServerMessage(); añadir_mochila.AddHead(189); añadir_mochila.AddHead(139); añadir_mochila.AppendParameter(Compra.id); añadir_mochila.AppendParameter(Compra.objeto_id); añadir_mochila.AppendParameter(Compra.colores_hex); añadir_mochila.AppendParameter(Compra.colores_rgb); añadir_mochila.AppendParameter(0); añadir_mochila.AppendParameter(0); añadir_mochila.AppendParameter(Compra.tam); añadir_mochila.AppendParameter(0); añadir_mochila.AppendParameter(0); añadir_mochila.AppendParameter(0); añadir_mochila.AppendParameter(1);//CantidadObjetos Session.SendData(añadir_mochila); } else { break; } } client.SetParameter("id", Escenario.id); client.ExecuteNonQuery("UPDATE objetos_comprados SET sala_id = '0' WHERE sala_id = @id"); } if (Escenario.es_categoria == 1) { client.ExecuteNonQuery("DELETE FROM escenarios_publicos WHERE id = @id"); } } SalaInstance Sala = SalasManager.ObtenerSala(Escenario); if (Sala != null) { SalasManager.EliminarSala(Sala); } }
public static void NotifiChat(SessionInstance Session, string Mensaje, SalaInstance Sala = null) { ServerMessage server = new ServerMessage(); server.AddHead(133); server.AppendParameter(0); server.AppendParameter(Mensaje); server.AppendParameter(3); if (Sala == null) { Session.SendData(server); return; } Sala.SendData(server); }
public static bool QuitarObjeto(SalaInstance Sala, BuyObjectInstance Compra) { if (Sala.ObjetosEnSala.ContainsKey(Compra.id)) { using (mysql client = new mysql()) { client.SetParameter("id", Compra.id); if (client.ExecuteNonQuery("UPDATE objetos_comprados SET sala_id = '0' WHERE id = @id") == 1) { Sala.EliminarChutas(Compra); Sala.ObjetosEnSala.Remove(Compra.id); return(true); } } } return(false); }
public static void BuscarParticipantes(int type) { List <Inscripcion> Collections = new List <Inscripcion>(); List <SessionInstance> Participantes = new List <SessionInstance>(); foreach (var Inscripcion in MiniGamesManager.Inscripciones_CocosLocos.Values) { Collections.Add(Inscripcion); } foreach (var Inscripcion in Collections) { try { if (!Inscripcion.Session.Client.Connected) { continue; } if (Inscripcion.Type != type) { continue; } if (Inscripcion.Session.User.Jugando) { continue; } Participantes.Add(Inscripcion.Session); if (Participantes.Count == 4) { break; } } catch { continue; } } if (Participantes.Count == 4) { SalaInstance Sala = Buscar_Juego(type); if (Sala != null) { new Llamada(Participantes, Sala); } } }
public static void RenombrarEscenario(EscenarioInstance Escenario, string nombre) { using (mysql client = new mysql()) { client.SetParameter("id", Escenario.id); client.SetParameter("nombre", nombre); if (Escenario.es_categoria == 0) { client.ExecuteNonQuery("UPDATE escenarios_privados SET nombre = @nombre WHERE id = @id"); } } SalaInstance Sala = SalasManager.ObtenerSala(Escenario); if (Sala != null) { Sala.Escenario.nombre = nombre; } }
void Llamar(List <SessionInstance> Sessiones, SalaInstance Sala) { foreach (SessionInstance Session in Sessiones) { if (Session.User == null) { continue; } Session.User.Jugando = true; if (Session.User.Sala != null) { if (Session.User.Sala.Escenario.categoria == 5) { continue; } } ServerMessage server = new ServerMessage(); server.AddHead(207); Session.SendData(server); } Thread.Sleep(new TimeSpan(0, 0, 10)); foreach (SessionInstance Session in Sessiones) { if (Session.User == null) { continue; } if (Session.User.Sala != null) { if (Session.User.Sala.Escenario.categoria == 5) { continue; } } if (SalasManager.Entrar_Sala(Session, Sala, null)) { Sala.CargarEscenario(Session); } } }
public static bool ColocarObjeto(SalaInstance Sala, BuyObjectInstance Compra, int id, int x, int y, string tam, int rotation, string espacio_ocupado) { using (mysql client = new mysql()) { client.SetParameter("id", id); client.SetParameter("posX", x); client.SetParameter("posY", y); client.SetParameter("tam", tam); client.SetParameter("rotation", rotation); client.SetParameter("sala_id", Sala.Escenario.id); client.SetParameter("espacio_ocupado", espacio_ocupado); if (client.ExecuteNonQuery("UPDATE objetos_comprados SET posX = @posX, posY = @posY, tam = @tam, rotation = @rotation, espacio_ocupado = @espacio_ocupado, sala_id = @sala_id WHERE id = @id") == 1) { Compra.posX = x; Compra.posY = y; Compra.sala_id = Sala.id; if (!lianas_cocos.Contains(Compra.objeto_id)) { Compra.espacio_ocupado = espacio_ocupado; } Compra.tam = tam; Sala.ObjetosEnSala.Add(Compra.id, Compra); if (Sala.ObjetosEnSala.ContainsKey(Compra.id)) { Sala.FijarChutas(Compra); /* * 0,0 > Posicion central * 0,1 > Trajectoria derecha - abajo * 1,0 > Trajectoria derecha - arriba * -1,0 > Trajectoria esquerda - abajo * 0, -1 > Trajectoria esquerda - arriba * 1,1 > Derecha */ } return(true); } } return(false); }
public static void EliminarSala(SalaInstance Sala) { if (Sala != null) { if (Sala.Escenario.es_categoria == 0) { if (Salas_Privadas.ContainsKey(Sala.id)) { Salas_Privadas.Remove(Sala.id); Sala.ExpusarUsuarios(); } } if (Sala.Escenario.es_categoria == 1) { if (Salas_Publicas.ContainsKey(Sala.id)) { Salas_Publicas.Remove(Sala.id); Sala.ExpusarUsuarios(); } } } }
public static void colocar_objeto_trampa(SalaInstance Sala, BuyObjectInstance Compra, string espacio_ocupado, bool update, bool deleat) { mysql client = new mysql(); string[] Valores = Regex.Split(espacio_ocupado, ","); if (update == false && deleat == false) { client.SetParameter("modelo", Compra.id); client.SetParameter("x", Valores[0]); client.SetParameter("y", Valores[1]); client.SetParameter("mover_x", Sala.Puerta.x); client.SetParameter("mover_y", Sala.Puerta.y); client.SetParameter("escenario_id", Sala.Escenario.id); if (Compra.objeto_id == 1230) { client.SetParameter("expulsar_usuario", 1); } else { client.SetParameter("expulsar_usuario", 0); } client.ExecuteNonQuery("INSERT INTO trampas_privadas (`modelo`, `x`, `y`, `mover_x`, `mover_y`, `escenario_id`, `es_categoria`, `expulsar_usuario`) VALUES (@modelo, @x, @y, @mover_x, @mover_y, @escenario_id, '0', @expulsar_usuario)"); } else if (update == true && deleat == false) { client.SetParameter("modelo", Compra.id); client.SetParameter("x", Valores[0]); client.SetParameter("y", Valores[1]); client.SetParameter("escenario_id", Sala.Escenario.id); client.ExecuteNonQuery("UPDATE trampas_privadas SET x = @x, y = @y WHERE modelo = @modelo AND escenario_id = @escenario_id"); } if (deleat == true) { client.SetParameter("modelo", Compra.id); client.ExecuteNonQuery("DELETE FROM trampas_privadas WHERE modelo = @modelo"); } }
public static bool Entrar_Sala(SessionInstance Session, SalaInstance Sala, Posicion DoorPosicion) { int key = 1; if (Sala.Visitantes < Sala.Escenario.max_visitantes) { if (Session.User.Sala != null) { if (Session.User.Sala.Escenario.es_categoria == Sala.Escenario.es_categoria && Session.User.Sala.id == Sala.id) { return(false); } Salir_Sala(Session); } while (Sala.Usuarios.ContainsKey(key)) { key++; } Sala.Usuarios.Add(key, Session); if (Sala.Usuarios.ContainsKey(key)) { if (Sala.Escenario.es_categoria == 2) { Session.User.Posicion = MiniGamesManager.ObtenerPuerta(Sala.Escenario, key); if (Sala.Ring != null) { Sala.Ring.Participantes.Add(key, Session); Session.User.CocosRestantes = 3; } if (Sala.Cocos != null) { Sala.Cocos.Participantes.Add(key, Session); Session.User.CocosRestantes = 3; } if (Sala.Sendero != null) { Sala.Sendero.Participantes.Add(key, Session); Session.User.CocosRestantes = 3; } if (Sala.Camino != null) { Sala.Camino.Participantes.Add(key, Session); Session.User.CocosRestantes = 3; } } else { if (DoorPosicion != null) { Session.User.Posicion = DoorPosicion; } else { Session.User.Posicion = new Posicion(Sala.Puerta.x, Sala.Puerta.y); } } Session.User.Sala = Sala; Session.User.IDEspacial = key; Session.User.Trayectoria = new Trayectoria(Session); Session.User.Sala.Map[Session.User.Posicion.y, Session.User.Posicion.x].FijarSession(Session); if (Session.User.colores_old != "") { Session.User.colores = Session.User.colores_old; Session.User.colores_old = ""; Session.User.block_upper = false; } Session.User.Sala.EnviarRegistro(Session); return(true); } } return(false); }
public CocosInstance(SalaInstance Sala) { this.sala = Sala; new Thread(() => this.Cocos()).Start(); }
private static bool Search(Node currentNode, Node endNode, int width, int height, Node[,] nodes, SalaInstance Sala) { currentNode.State = NodeState.Closed; List <Node> nextNodes = GetAdjacentWalkableNodes(currentNode, width, height, nodes, Sala); nextNodes.Sort((node1, node2) => node1.F.CompareTo(node2.F)); foreach (var nextNode in nextNodes) { if (nextNode.Location == endNode.Location) { return(true); } else { if (Search(nextNode, endNode, width, height, nodes, Sala)) { return(true); } } } return(false); }
private static List <Node> GetAdjacentWalkableNodes(Node fromNode, int width, int height, Node[,] nodes, SalaInstance Sala) { List <Node> walkableNodes = new List <Node>(); IEnumerable <Point> nextLocations = GetAdjacentLocations(fromNode.Location); foreach (var location in nextLocations) { int x = location.X; int y = location.Y; if (x < 0 || x >= width || y < 0 || y >= height) { continue; } Node node = nodes[x, y]; if (!Sala.Caminable(new Posicion(node.Location.X, node.Location.Y))) { continue; } if (node.State == NodeState.Closed) { continue; } if (node.State == NodeState.Open) { float traversalCost = Node.GetTraversalCost(node.Location, node.ParentNode.Location); float gTemp = fromNode.G + traversalCost; if (gTemp < node.G) { node.ParentNode = fromNode; walkableNodes.Add(node); } } else { node.ParentNode = fromNode; node.State = NodeState.Open; walkableNodes.Add(node); } } return(walkableNodes); }
public CaminoInstance(SalaInstance Sala) { this.sala = Sala; new Thread(() => this.Camino()).Start(); }
public RingInstance(SalaInstance Sala) { this.sala = Sala; new Thread(() => this.Ring()).Start(); }
public SenderoInstance(SalaInstance Sala) { this.sala = Sala; new Thread(() => this.Sendero()).Start(); }
public static int UsuariosEnSala(EscenarioInstance Escenario) { int num = 0; if (Escenario != null) { if (Escenario.es_categoria == 1) { if (Escenario.id == 30)//Cementerio contador global { foreach (var sala in Salas_Publicas.Values) { if (sala.Escenario.id >= 26 && sala.Escenario.id <= 55) { num += Salas_Publicas[sala.id].Visitantes; } } } else if (Escenario.id == 57)//Bosque nevado contador global { foreach (var sala in Salas_Publicas.Values) { if (sala.Escenario.id >= 57 && sala.Escenario.id <= 74) { num += Salas_Publicas[sala.id].Visitantes; } } } else if (Escenario.id == 78) //Madriguera contador global { foreach (var sala in Salas_Publicas.Values) { if (sala.Escenario.id >= 78 && sala.Escenario.id <= 96) { num += Salas_Publicas[sala.id].Visitantes; } } } else if (Escenario.id == 214) //Isla Perdida { foreach (var sala in Salas_Publicas.Values) { if (sala.Escenario.id >= 214 && sala.Escenario.id <= 238) { num += Salas_Publicas[sala.id].Visitantes; } } } else { if (Salas_Publicas.ContainsKey(Escenario.id)) { num += Salas_Publicas[Escenario.id].Visitantes; } } } if (Escenario.es_categoria == 0) { if (Salas_Privadas.ContainsKey(Escenario.id)) { num += Salas_Privadas[Escenario.id].Visitantes; SalaInstance sala = Salas_Privadas[Escenario.id]; foreach (BuyObjectInstance Item in sala.ObjetosEnSala.Values) { if (listas.Objetos_Area.Contains(Item.objeto_id) && Salas_Privadas.ContainsKey(Convert.ToInt32(Item.data))) { num += Salas_Privadas[Convert.ToInt32(Item.data)].Visitantes; } } } } if (Escenario.es_categoria == 2) { return(RingInstance.Jugadores); } if (Escenario.es_categoria == 8) { return(CocosInstance.Jugadores); } if (Escenario.es_categoria == 6) { return(SenderoInstance.Jugadores); } if (Escenario.es_categoria == 12) { return(CaminoInstance.Jugadores); } } return(num); }
public Llamada(List <SessionInstance> Participantes, SalaInstance Sala) { new Thread(() => Llamar(Participantes, Sala)).Start(); }
public static bool IrAlli(SessionInstance Session, int es_categoria, int id, Posicion DoorPosition = null, bool Autorizado = false) { if (es_categoria == 1) //publicos { if (Salas_Publicas.ContainsKey(id)) { SalaInstance Sala = Salas_Publicas[id]; if (Sala.Escenario.id == 9 && Session.User.vip <= 0 && Session.User.admin <= 0) { Packets.Packet_183(Session, "Igloo [VIP]\rSabio: La area Igloo es exclusiva para los usuarios VIP. Puedes comprar VIP en FlowerPower.\rOso Polar: En mi area encontrarás Shurikens y Coco que caen de vez en cuando."); return(false); } if (Entrar_Sala(Session, Salas_Publicas[id], DoorPosition)) { Salas_Publicas[id].CargarEscenario(Session); return(true); } } else { SalaInstance Sala = Salas_Publicas[id]; if (Sala.Escenario.id == 9 && Session.User.vip <= 0 && Session.User.admin <= 0) { Packets.Packet_183(Session, "Igloo [VIP]\rSabio: La area Igloo es exclusiva para los usuarios VIP. Puedes comprar VIP en FlowerPower.\rOso Polar: En mi area encontrarás Shurikens y Coco que caen de vez en cuando."); return(false); } if (CrearSala(EscenariosManager.ObtenerEscenario(es_categoria, id))) { if (Salas_Publicas.ContainsKey(id)) { if (Entrar_Sala(Session, Salas_Publicas[id], DoorPosition)) { Salas_Publicas[id].CargarEscenario(Session); return(true); } } } } } if (es_categoria == 0) //Privados { if (Salas_Privadas.ContainsKey(id)) { SalaInstance Sala = Salas_Privadas[id]; if (Sala.Escenario.Ultima_Sala != 0) { Sala.Escenario.IslaID = Sala.Escenario.Ultima_Sala; } if (Sala.Escenario.Creador.id != Session.User.id) { if (Session.User.admin != 1) { if (!string.IsNullOrEmpty(Sala.Escenario.Clave)) { if (!Autorizado) { return(false); } } } } if (Entrar_Sala(Session, Salas_Privadas[id], DoorPosition)) { Salas_Privadas[id].CargarEscenario(Session); return(true); } } else { if (CrearSala(EscenariosManager.ObtenerEscenario(es_categoria, id))) { if (Salas_Privadas.ContainsKey(id)) { SalaInstance Sala = Salas_Privadas[id]; if (Sala.Escenario.Ultima_Sala != 0) { Sala.Escenario.IslaID = Sala.Escenario.Ultima_Sala; } if (Sala.Escenario.Creador.id != Session.User.id) { if (Session.User.admin != 1) { if (!string.IsNullOrEmpty(Sala.Escenario.Clave)) { if (!Autorizado) { return(false); } } } } if (Entrar_Sala(Session, Salas_Privadas[id], DoorPosition)) { Salas_Privadas[id].CargarEscenario(Session); return(true); } } } } } return(false); }