コード例 #1
0
 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);
 }
コード例 #2
0
        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
            {
            }
        }
コード例 #3
0
 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);
         }
     }
 }
コード例 #4
0
 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;
     }
 }
コード例 #5
0
 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.;
 }
コード例 #6
0
ファイル: User.cs プロジェクト: DaLoE99/Servidores-DaLoE
 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 }));
             }
         }
     }
 }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: Session.cs プロジェクト: DaLoE99/Servidores-DaLoE
 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 { }
 }
コード例 #9
0
 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);
     }
 }
コード例 #10
0
        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);
            }
        }
コード例 #11
0
        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);
        }
コード例 #12
0
 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);
 }
コード例 #13
0
        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);
                }
            }
        }
コード例 #14
0
        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;
            }
        }
コード例 #15
0
 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);
         }
     }
 }
コード例 #16
0
        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);
        }
コード例 #17
0
 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();
             }
         }
     }
 }
コード例 #18
0
        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");
            }
        }
コード例 #19
0
        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);
        }
コード例 #20
0
 public CocosInstance(SalaInstance Sala)
 {
     this.sala = Sala;
     new Thread(() => this.Cocos()).Start();
 }
コード例 #21
0
        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);
        }
コード例 #22
0
        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);
        }
コード例 #23
0
 public CaminoInstance(SalaInstance Sala)
 {
     this.sala = Sala;
     new Thread(() => this.Camino()).Start();
 }
コード例 #24
0
 public RingInstance(SalaInstance Sala)
 {
     this.sala = Sala;
     new Thread(() => this.Ring()).Start();
 }
コード例 #25
0
 public SenderoInstance(SalaInstance Sala)
 {
     this.sala = Sala;
     new Thread(() => this.Sendero()).Start();
 }
コード例 #26
0
        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);
        }
コード例 #27
0
 public Llamada(List <SessionInstance> Participantes, SalaInstance Sala)
 {
     new Thread(() => Llamar(Participantes, Sala)).Start();
 }
コード例 #28
0
 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);
 }