예제 #1
0
 private static void compartir(SessionInstance Session, string[,] Parameters)
 {
     try
     {
         mysql client = new mysql();
         foreach (DataRow row in client.ExecuteQueryTable("SELECT * FROM bpad_amigos WHERE ID_1 = '" + Session.User.id + "'").Rows)
         {
             UserInstance    amigo         = UserManager.ObtenerUsuario((int)row["ID_2"]);
             SessionInstance SessionFriend = UserManager.ObtenerSession(amigo.id);
             string          Fecha         = Convert.ToString(DateTime.Now).Substring(0, 16);
             client.SetParameter("Emisor", Session.User.id);
             client.SetParameter("Receptor", amigo.id);
             client.SetParameter("Mensaje", Session.User.levelup);
             client.SetParameter("Fecha", Fecha);
             client.SetParameter("Tipo", 3);
             client.ExecuteNonQuery("INSERT INTO bpad_mensajes (`Emisor`, `Mensaje`, `Receptor`, `Tipo`, `Fecha`) VALUES (@Emisor, @Mensaje, @Receptor, @Tipo, @Fecha)");
             client.SetParameter("UserID", Session.User.id);
             int           GetMessageID = Convert.ToInt32(client.ExecuteScalar("SELECT MAX(id) FROM bpad_mensajes WHERE Emisor = @UserID"));
             ServerMessage server       = new ServerMessage();
             server.AddHead(132);
             server.AddHead(127);
             server.AppendParameter(GetMessageID);
             server.AppendParameter(Session.User.id);
             server.AppendParameter(Fecha);
             server.AppendParameter(Session.User.levelup);
             server.AppendParameter(3);
             SessionFriend.SendData(server);
         }
         Session.User.levelup = "";
     }
     catch (Exception e)
     {
         Console.WriteLine(e); Program.EditorialResponse(e);
     }
 }
예제 #2
0
        static ServerMessage Cargar_Bpad(SessionInstance Session)
        {
            ServerMessage server = new ServerMessage();

            server.AddHead(132);
            server.AddHead(120);
            using (mysql client = new mysql())
            {
                int NumeroAmigos = Convert.ToInt32(client.ExecuteScalar("SELECT COUNT(*) FROM bpad_amigos WHERE (ID_1 = '" + Session.User.id + "')"));
                server.AppendParameter(NumeroAmigos);
                List <int> ID_amigos = new List <int>();
                foreach (DataRow row in client.ExecuteQueryTable("SELECT * FROM bpad_amigos WHERE ID_1 = '" + Session.User.id + "'").Rows)
                {
                    //if (!ID_amigos.Contains((int)row[""]))
                    UserInstance UserFriend = UserManager.ObtenerUsuario((int)row["ID_2"]);
                    if (UserFriend != null)
                    {
                        server.AppendParameter(UserFriend.id);
                        server.AppendParameter(UserFriend.nombre);
                        server.AppendParameter(UserFriend.bocadillo);
                        server.AppendParameter(UserFriend.avatar);
                        server.AppendParameter(UserFriend.colores);
                        server.AppendParameter(UserFriend.edad);
                        server.AppendParameter("BurBian");
                        server.AppendParameter((string)row["Nota"]);
                        server.AppendParameter((int)row["Marquilla"]);
                        server.AppendParameter((int)row["Solicitud"]);
                    }
                }
            }
            return(server);
        }
예제 #3
0
 public static int IslasCreadas(UserInstance User)
 {
     using (mysql client = new mysql())
     {
         client.SetParameter("id", User.id);
         return(Convert.ToInt32(client.ExecuteScalar("SELECT COUNT(id) FROM islas WHERE CreadorID = @id")));
     }
 }
예제 #4
0
 private static int CountMensajes(int Emisor, int Receptor)
 {
     using (mysql client = new mysql())
     {
         client.SetParameter("MyID", Emisor);
         client.SetParameter("OtherID", Receptor);
         return(Convert.ToInt32(client.ExecuteScalar("SELECT COUNT(id) FROM bpad_mensajes WHERE Emisor = @MyID AND Receptor = @OtherID AND Leido = 0")));
     }
 }
예제 #5
0
        private static void Com_Obj_Much(SessionInstance Session, int id_object, int count, bool status)
        {
            mysql client = new mysql();

            if (status == false)
            {
                for (int id = 0; id < count; id++)
                {
                    client.SetParameter("user", Session.User.id);
                    client.SetParameter("item", id_object);
                    client.ExecuteNonQuery("DELETE FROM objetos_comprados where objeto_id = @item AND usuario_id = @user LIMIT 1");
                    ServerMessage server = new ServerMessage();
                    server.AddHead(189);
                    server.AddHead(169);
                    server.AppendParameter(-1);
                    server.AppendParameter(id_object);
                    server.AppendParameter(1);
                    Session.SendData(server);
                }
            }
            else
            {
                client.SetParameter("id", id_object);
                DataRow row = client.ExecuteQueryRow("SELECT * FROM objetos WHERE id = @id");
                CatalogObjectInstance item = new CatalogObjectInstance(row);
                client.SetParameter("item_id", id_object);
                client.SetParameter("userid", Session.User.id);
                client.SetParameter("hex", item.colores_hex);
                client.SetParameter("rgb", item.colores_rgb);
                client.SetParameter("tam", "tam_n");
                client.SetParameter("default_data", 0);
                if (client.ExecuteNonQuery("INSERT INTO objetos_comprados (`objeto_id`, `colores_hex`, `colores_rgb`, `usuario_id`, `tam`, `data`) VALUES (@item_id, @hex, @rgb, @userid, @tam, @default_data)") == 1)
                {
                    client.SetParameter("id", id_object);
                    client.SetParameter("UserID", Session.User.id);
                    int           compra_id      = int.Parse(Convert.ToString(client.ExecuteScalar("SELECT MAX(id) FROM objetos_comprados WHERE objeto_id = @id AND usuario_id = @UserID")));
                    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(id_object);
                    añadir_mochila.AppendParameter(item.colores_hex);
                    añadir_mochila.AppendParameter(item.colores_rgb);
                    añadir_mochila.AppendParameter(0);
                    añadir_mochila.AppendParameter(0);
                    añadir_mochila.AppendParameter(0);
                    añadir_mochila.AppendParameter("tam_n");
                    añadir_mochila.AppendParameter(0);
                    añadir_mochila.AppendParameter(0);
                    añadir_mochila.AppendParameter(1);//CantidadObjetos
                    Session.SendData(añadir_mochila);
                }
            }
        }
예제 #6
0
        private static void EnviarMensaje(SessionInstance Session, string[,] Parameters)
        {
            using (mysql client = new mysql())
            {
                object[] users   = getUsersToMultiAction(Parameters);
                string   Mensaje = Parameters[1, 0];
                string   Fecha   = Convert.ToString(DateTime.Now).Substring(0, 16);
                int      Tipo    = Session.User.admin == 0 ? 0 : 1;

                for (int i = 0; i < users.Length; i++)
                {
                    int          FriendID   = Convert.ToInt32(users[i]);
                    UserInstance UserFriend = UserManager.ObtenerUsuario(FriendID);
                    if (UserFriend != null)
                    {
                        if (EsAmigo(Session.User.id, UserFriend.id))
                        {
                            if (CountMensajes(Session.User.id, UserFriend.id) >= 25)
                            {
                                return;
                            }
                            client.SetParameter("Emisor", Session.User.id);
                            client.SetParameter("Receptor", FriendID);
                            client.SetParameter("Mensaje", Mensaje);
                            client.SetParameter("Fecha", Fecha);
                            client.SetParameter("Tipo", Tipo);
                            client.ExecuteNonQuery("INSERT INTO bpad_mensajes (`Emisor`, `Mensaje`, `Receptor`, `Tipo`, `Fecha`) VALUES (@Emisor, @Mensaje, @Receptor, @Tipo, @Fecha)");
                            if (UserManager.UsuariosOnline.ContainsKey(UserFriend.id))
                            {
                                SessionInstance SessionFriend = UserManager.ObtenerSession(UserFriend.id);
                                client.SetParameter("UserID", Session.User.id);
                                int GetMessageID = Convert.ToInt32(client.ExecuteScalar("SELECT MAX(id) FROM bpad_mensajes WHERE Emisor = @UserID"));
                                if (SessionFriend != null)
                                {
                                    ServerMessage server = new ServerMessage();
                                    server.AddHead(132);
                                    server.AddHead(127);
                                    server.AppendParameter(GetMessageID);
                                    server.AppendParameter(Session.User.id);
                                    server.AppendParameter(Fecha);
                                    server.AppendParameter(Mensaje);
                                    server.AppendParameter(Tipo);
                                    SessionFriend.SendData(server);
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #7
0
 public static int CrearIsla(UserInstance User, string nombre, int modelo)
 {
     using (mysql client = new mysql())
     {
         client.SetParameter("UserID", User.id);
         client.SetParameter("Nombre", nombre);
         client.SetParameter("Modelo", modelo);
         if (client.ExecuteNonQuery("INSERT INTO islas (`Nombre`, `Modelo`, `CreadorID`) VALUES (@Nombre, @Modelo, @UserID)") == 1)
         {
             client.SetParameter("UserID", User.id);
             return(Convert.ToInt32(client.ExecuteScalar("SELECT MAX(id) FROM islas WHERE CreadorID = @UserID")));
         }
     }
     return(0);
 }
예제 #8
0
        public static ServerMessage ObtenerNPC(ServerMessage server, int Modelo)
        {
            mysql client = new mysql();

            client.SetParameter("modelo", Modelo);
            server.AppendParameter(client.ExecuteScalar("SELECT COUNT(id) FROM escenarios_npc WHERE EscenarioID = @modelo"));
            client.SetParameter("modelo", Modelo);
            foreach (DataRow row in client.ExecuteQueryTable("SELECT * FROM escenarios_npc WHERE EscenarioID = @modelo").Rows)
            {
                npcInstance NpcData = new npcInstance(row);
                server.AppendParameter(new object[] { NpcData.ID, NpcData.dialogo, NpcData.modelo, NpcData.Nombre, NpcData.Pos.x,
                                                      NpcData.Pos.y, NpcData.Pos.z, NpcData.Funcion, NpcData.Funcion_value });
            }
            return(server);
        }
예제 #9
0
 public static int Crear_Zona(IslaInstance Isla, UserInstance User, string nombre, int modelo, string color_1, string color_2)
 {
     using (mysql client = new mysql())
     {
         client.SetParameter("IslaID", Isla.id);
         client.SetParameter("CreadorID", User.id);
         client.SetParameter("nombre", nombre);
         client.SetParameter("modelo", modelo);
         client.SetParameter("color_1", color_1);
         client.SetParameter("color_2", color_2);
         if (client.ExecuteNonQuery("INSERT INTO escenarios_privados (`IslaID`, `nombre`, `modelo`, `color_1`, `color_2`, `CreadorID`) VALUES (@IslaID, @nombre, @modelo, @color_1, @color_2, @CreadorID)") == 1)
         {
             client.SetParameter("IslaID", Isla.id);
             return(Convert.ToInt32(client.ExecuteScalar("SELECT MAX(id) FROM escenarios_privados WHERE IslaID = @IslaID")));
         }
     }
     return(0);
 }
예제 #10
0
        static ServerMessage Cargar_Mensajes(SessionInstance Session)
        {
            ServerMessage server = new ServerMessage();

            server.AddHead(132);
            server.AddHead(121);
            using (mysql client = new mysql())
            {
                client.SetParameter("UserID", Session.User.id);
                int NumeroMensajes = Convert.ToInt32(client.ExecuteScalar("SELECT COUNT(*) FROM bpad_mensajes WHERE (Receptor = @UserID AND Leido = 0)"));
                server.AppendParameter(NumeroMensajes);
                client.SetParameter("UserID", Session.User.id);
                foreach (DataRow row in client.ExecuteQueryTable("SELECT * FROM bpad_mensajes WHERE (Receptor = @UserID AND Leido = 0)").Rows)
                {
                    server.AppendParameter((int)row["id"]);
                    server.AppendParameter((int)row["Emisor"]);
                    server.AppendParameter((string)row["Fecha"]);
                    server.AppendParameter((string)row["Mensaje"]);
                    server.AppendParameter((int)row["Tipo"]);
                }
            }
            return(server);
        }
예제 #11
0
 public static bool EntregarLiana(SessionInstance Session, int Objeto)
 {
     using (mysql client = new mysql())
     {
         client.SetParameter("id", Objeto);
         DataRow row = client.ExecuteQueryRow("SELECT * FROM objetos WHERE id = @id");
         CatalogObjectInstance item = new CatalogObjectInstance(row);
         client.SetParameter("item_id", Objeto);
         client.SetParameter("userid", Session.User.id);
         client.SetParameter("hex", item.colores_hex);
         client.SetParameter("rgb", item.colores_rgb);
         client.SetParameter("tam", "tam_n");
         client.SetParameter("default_data", 0);
         if (client.ExecuteNonQuery("INSERT INTO objetos_comprados (`objeto_id`, `colores_hex`, `colores_rgb`, `usuario_id`, `tam`, `data`) VALUES (@item_id, @hex, @rgb, @userid, @tam, @default_data)") == 1)
         {
             client.SetParameter("id", Objeto);
             client.SetParameter("UserID", Session.User.id);
             int           compra_id      = int.Parse(Convert.ToString(client.ExecuteScalar("SELECT MAX(id) FROM objetos_comprados WHERE objeto_id = @id AND usuario_id = @UserID")));
             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(Objeto);
             añadir_mochila.AppendParameter(item.colores_hex);
             añadir_mochila.AppendParameter(item.colores_rgb);
             añadir_mochila.AppendParameter(0);
             añadir_mochila.AppendParameter(0);
             añadir_mochila.AppendParameter(0);
             añadir_mochila.AppendParameter("tam_n");
             añadir_mochila.AppendParameter(0);
             añadir_mochila.AppendParameter(0);
             añadir_mochila.AppendParameter(1);//CantidadObjetos
             Session.SendData(añadir_mochila);
         }
     }
     return(false);
 }
예제 #12
0
        static void ComprarObjetosNPC(SessionInstance Session, string[,] Parameters)
        {
            int createID = int.Parse(Parameters[0, 0]);

            Console.WriteLine(createID);
            mysql   client          = new mysql();
            DataRow row             = client.ExecuteQueryRow("SELECT * FROM object_npc WHERE id = '" + createID + "'");
            bool    permitir_compra = true;

            if ((int)row["gold"] > 0 && Session.User.oro >= (int)row["gold"])
            {
                Console.WriteLine("Objeto vale oro");
                foreach (DataRow r in client.ExecuteQueryTable("SELECT * FROM object_npc_id WHERE obj_id = '" + (int)row["obj_id"] + "'").Rows)
                {
                    if ((int)r["sk_obj_id"] > 0)
                    {
                        int objeto_en_muchila = int.Parse(Convert.ToString(client.ExecuteScalar("select count(objeto_id)from objetos_comprados where objeto_id = '" + (int)r["sk_obj_id"] + "' and usuario_id = '" + Session.User.id + "'")));
                        if (objeto_en_muchila < (int)r["obj_cantidad"])
                        {
                            permitir_compra = false;
                        }
                    }
                }
                if (permitir_compra == true)
                {
                    foreach (DataRow r in client.ExecuteQueryTable("SELECT * FROM object_npc_id WHERE obj_id = '" + (int)row["obj_id"] + "'").Rows)
                    {
                        if ((int)r["sk_obj_id"] > 0)
                        {
                            Com_Obj_Much(Session, (int)r["sk_obj_id"], (int)r["obj_cantidad"], false);
                        }
                    }
                    UserManager.Creditos(Session.User, true, false, (int)row["gold"]);
                    Com_Obj_Much(Session, (int)row["obj_id"], 0, true);
                }
                else
                {
                    cancel_packet_buy(Session);
                }
            }
            else if ((int)row["silver"] > 0 && Session.User.plata >= (int)row["silver"])
            {
                foreach (DataRow r in client.ExecuteQueryTable("SELECT * FROM object_npc_id WHERE obj_id = '" + (int)row["obj_id"] + "'").Rows)
                {
                    if ((int)r["sk_obj_id"] > 0)
                    {
                        int objeto_en_muchila = int.Parse(Convert.ToString(client.ExecuteScalar("select count(objeto_id)from objetos_comprados where objeto_id = '" + (int)r["sk_obj_id"] + "' and usuario_id = '" + Session.User.id + "'")));
                        if (objeto_en_muchila < (int)r["obj_cantidad"])
                        {
                            permitir_compra = false;
                        }
                    }
                }
                if (permitir_compra == true)
                {
                    foreach (DataRow r in client.ExecuteQueryTable("SELECT * FROM object_npc_id WHERE obj_id = '" + (int)row["obj_id"] + "'").Rows)
                    {
                        if ((int)r["sk_obj_id"] > 0)
                        {
                            Com_Obj_Much(Session, (int)r["sk_obj_id"], (int)r["obj_cantidad"], false);
                        }
                    }
                    UserManager.Creditos(Session.User, false, false, (int)row["silver"]);
                    Com_Obj_Much(Session, (int)row["obj_id"], 0, true);
                }
                else
                {
                    cancel_packet_buy(Session);
                }
            }
            else if ((int)row["gold"] == 0 && (int)row["silver"] == 0)
            {
                foreach (DataRow r in client.ExecuteQueryTable("SELECT * FROM object_npc_id WHERE obj_id = '" + (int)row["obj_id"] + "'").Rows)
                {
                    if ((int)r["sk_obj_id"] > 0)
                    {
                        int objeto_en_muchila = int.Parse(Convert.ToString(client.ExecuteScalar("select count(objeto_id)from objetos_comprados where objeto_id = '" + (int)r["sk_obj_id"] + "' and usuario_id = '" + Session.User.id + "'")));
                        if (objeto_en_muchila < (int)r["obj_cantidad"])
                        {
                            permitir_compra = false;
                        }
                    }
                }
                if (permitir_compra == true)
                {
                    foreach (DataRow r in client.ExecuteQueryTable("SELECT * FROM object_npc_id WHERE obj_id = '" + (int)row["obj_id"] + "'").Rows)
                    {
                        if ((int)r["sk_obj_id"] > 0)
                        {
                            Com_Obj_Much(Session, (int)r["sk_obj_id"], (int)r["obj_cantidad"], false);
                        }
                    }
                    Com_Obj_Much(Session, (int)row["obj_id"], 0, true);
                }
                else
                {
                    cancel_packet_buy(Session);
                }
            }
            else
            {
                cancel_packet_buy(Session);
            }
        }