示例#1
0
        public static void SyncItems(Client c)
        {
            List <Item> inventory = new List <Item>();

            DatabaseAPI.API db   = DatabaseAPI.API.GetInstance();
            MySqlConnection conn = db.GetConnection();

            Dictionary <int, int> dbItems = new Dictionary <int, int>();
            MySqlCommand          cmd     = new MySqlCommand("SELECT item_id, amount FROM items WHERE character_id = @character_id", conn);

            cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id"));
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                dbItems.Add(reader.GetInt32("item_id"), reader.GetInt32("amount"));
            }
            reader.Close();
            db.FreeConnection(conn);

            foreach (KeyValuePair <int, int> entry in dbItems)
            {
                foreach (StaticItem itemData in itemList)
                {
                    if (itemData.GetTypeId() == entry.Key)
                    {
                        inventory.Add(new Item(entry.Key, itemData.GetName(), itemData.GetCategory(), itemData.GetRarity(), itemData.GetVolume(), itemData.GetWeight(), entry.Value));
                        break;
                    }
                }
            }

            c.SetData("inventory_items", inventory);
        }
示例#2
0
        private static void RemoveItemFromDb(Client c, int typeId)
        {
            DatabaseAPI.API db = DatabaseAPI.API.GetInstance();

            MySqlConnection conn = db.GetConnection();
            MySqlCommand    cmd  = new MySqlCommand("DELETE FROM items WHERE character_id = @character_id AND item_id = @item_id", conn);

            cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id"));
            cmd.Parameters.AddWithValue("@item_id", typeId);
            cmd.ExecuteNonQuery();

            db.FreeConnection(conn);
        }
示例#3
0
        private static void UpdateItemInDb(Client c, int typeId, int amount)
        {
            DatabaseAPI.API db = DatabaseAPI.API.GetInstance();

            MySqlConnection conn = db.GetConnection();
            MySqlCommand    cmd  = new MySqlCommand("UPDATE items SET amount = @amount WHERE character_id = @character_id AND item_id = @item_id", conn);

            cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id"));
            cmd.Parameters.AddWithValue("@item_id", typeId);
            cmd.Parameters.AddWithValue("@amount", amount);
            cmd.ExecuteNonQuery();

            db.FreeConnection(conn);
        }
示例#4
0
        private static void AddItemToDb(Client c, int typeId, int amount)
        {
            DatabaseAPI.API db = DatabaseAPI.API.GetInstance();

            MySqlConnection conn = db.GetConnection();
            MySqlCommand    cmd  = new MySqlCommand("INSERT INTO items (character_id, item_id, amount) VALUES (@character_id, @item_id, @amount)", conn);

            cmd.Parameters.AddWithValue("@character_id", c.GetData("character_id"));
            cmd.Parameters.AddWithValue("@item_id", typeId);
            cmd.Parameters.AddWithValue("@amount", amount);
            cmd.ExecuteNonQuery();

            db.FreeConnection(conn);
        }