コード例 #1
0
        internal void AddInventoryItem(int pItemId, int pCount = 1)
        {
            RPItem RPItem = ButterflyEnvironment.GetGame().GetRoleplayManager().GetItemManager().GetItem(pItemId);

            if (RPItem == null)
            {
                return;
            }

            RolePlayInventoryItem Item = GetInventoryItem(pItemId);

            if (Item == null)
            {
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.SetQuery("INSERT INTO `user_rpitems` (`user_id`, `rp_id`, `item_id`, `count`) VALUES ('" + this._id + "', '" + this._rpId + "', '" + pItemId + "', '" + pCount + "')");
                    int Id = Convert.ToInt32(dbClient.InsertQuery());
                    this._inventory.TryAdd(pItemId, new RolePlayInventoryItem(Id, pItemId, pCount));
                }
            }
            else
            {
                Item.Count += pCount;
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                    dbClient.RunQuery("UPDATE user_rpitems SET count = count + '" + pCount + "' WHERE id = '" + Item.Id + "' LIMIT 1");
            }


            this.SendWebPacket(new AddInventoryItemRpComposer(RPItem, pCount));
        }
コード例 #2
0
        internal void RemoveInventoryItem(int ItemId, int Count = 1)
        {
            RolePlayInventoryItem Item = GetInventoryItem(ItemId);

            if (Item == null)
            {
                return;
            }

            if (Item.Count > Count)
            {
                Item.Count = Item.Count - Count;

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                    dbClient.RunQuery("UPDATE user_rpitems SET count = count - '" + Count + "' WHERE id = '" + Item.Id + "' LIMIT 1");
            }
            else
            {
                this._inventory.TryRemove(ItemId, out Item);

                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                    dbClient.RunQuery("DELETE FROM user_rpitems WHERE id = '" + Item.Id + "' LIMIT 1");
            }

            this.SendWebPacket(new RemoveItemInventoryRpComposer(ItemId, Count));
        }
コード例 #3
0
        internal RolePlayInventoryItem GetInventoryItem(int Id)
        {
            RolePlayInventoryItem Item = null;

            this._inventory.TryGetValue(Id, out Item);
            return(Item);
        }