Example #1
0
        internal static Boolean CanSellItem(UserItem Item)
        {
            if (!Item.GetBaseItem().AllowTrade || !Item.GetBaseItem().AllowMarketplaceSell)
            {
                return false;
            }

            return true;
        }
Example #2
0
File: Trade.cs Project: BjkGkh/R106
        internal void OfferItem(UInt32 UserId, UserItem Item)
        {
            TradeUser User = GetTradeUser(UserId);

            if (User == null || Item == null || !Item.GetBaseItem().AllowTrade || User.HasAccepted || TradeStage != 1)
            {
                return;
            }

            ClearAccepted();
            if(!User.OfferedItems.Contains(Item))
                User.OfferedItems.Add(Item);
            UpdateTradeWindow();
        }
Example #3
0
 internal static Boolean CanSellItem(UserItem Item)
 {
     return (Item.GetBaseItem().AllowTrade && Item.GetBaseItem().AllowMarketplaceSell);
 }
Example #4
0
        internal void LoadInventory()
        {
            floorItems.Clear();
            wallItems.Clear();

            DataTable Data;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                if (dbClient.dbType == Database_Manager.Database.DatabaseType.MySQL)
                {
                    dbClient.setQuery("CALL getuseritems(@userid)");
                }
                else
                {
                    dbClient.setQuery("EXECUTE getuseritems @userid");
                }
                dbClient.addParameter("userid", (int)UserId);

                Data = dbClient.getTable();

                //dbClient.setQuery("SELECT item_id, song_id FROM user_items_songs WHERE user_id = " + UserId);
                //dSongs = dbClient.getTable();
            }

            uint id;
            uint baseitem;
            string extradata;
            foreach (DataRow Row in Data.Rows)
            {
                id = Convert.ToUInt32(Row[0]);
                baseitem = Convert.ToUInt32(Row[1]);

                if (!DBNull.Value.Equals(Row[2]))
                    extradata = (string)Row[2];
                else
                    extradata = string.Empty;

                UserItem item = new UserItem(id, baseitem, extradata);

                if (item.GetBaseItem().InteractionType == InteractionType.musicdisc)
                    discs.Add(id, item);
                if (item.isWallItem)
                    wallItems.Add(id, item);
                else
                    floorItems.Add(id, item);
            }

            discs.Clear();

            //uint songItemID;
            //uint songID;
            //foreach (DataRow dRow in dSongs.Rows)
            //{
            //    songItemID = (uint)dRow[0];
            //    songID = (uint)dRow[1];

            //    SongItem song = new SongItem(songItemID, songID);
            //    songs.Add(songItemID, song);
            //}

            this.InventoryPets.Clear();
            DataTable Data2;
            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                //dbClient.addParameter("userid", UserId);
                dbClient.setQuery("SELECT id, user_id, room_id, name, type, race, color, expirience, energy, nutrition, respect, createstamp, x, y, z FROM user_pets WHERE user_id = " + UserId + " AND room_id = 0");
                Data2 = dbClient.getTable();
            }

            if (Data2 != null)
            {
                foreach (DataRow Row in Data2.Rows)
                {
                    Pet newPet = Catalog.GeneratePetFromRow(Row);
                    InventoryPets.Add(newPet.PetId, newPet);
                }
            }
        }
Example #5
0
        internal UserItem AddNewItem(UInt32 Id, UInt32 BaseItem, string ExtraData, bool insert, bool fromRoom, UInt32 songID = 0)
        {
            isUpdated = false;
            if (insert)
            {
                if (fromRoom)
                {
                    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        if (dbClient.dbType == Database_Manager.Database.DatabaseType.MSSQL)
                        {
                            dbClient.setQuery("DELETE FROM items_users WHERE item_id = " + Id);
                            dbClient.setQuery("INSERT INTO items_users VALUES (" + Id + "," + UserId + ")");
                        }
                        else
                        {
                            dbClient.runFastQuery("REPLACE INTO items_users VALUES (" + Id + "," + UserId + ")");
                        }

                        //dbClient.setQuery("REPLACE INTO user_items (id, user_id,base_item,extra_data) VALUES ('" + Id + "','" + UserId + "','" + BaseItem + "',@extra_data)");
                        //dbClient.addParameter("extra_data", ExtraData);
                        //dbClient.runQuery();
                    }

                    Item baseItem = ButterflyEnvironment.GetGame().GetItemManager().GetItem(BaseItem);

                    if (baseItem != null && baseItem.InteractionType == InteractionType.musicdisc)
                    {
                        using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                        {
                            dbClient.runFastQuery("DELETE FROM room_items_songs WHERE item_id = " + Id);
                            //dbClient.runFastQuery("REPLACE INTO user_items_songs (item_id,user_id,song_id) VALUES (" + Id + "," + UserId + "," + songID + ")");
                        }
                    }
                }
                else
                {
                    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        if (dbClient.dbType == Database_Manager.Database.DatabaseType.MSSQL)
                            dbClient.setQuery("INSERT INTO items (base_id) OUTPUT INSERTED.* VALUES (" + BaseItem + ")");
                        else
                            dbClient.setQuery("INSERT INTO items (base_id) VALUES (" + BaseItem + ")");
                        Id = (uint)dbClient.insertQuery();

                        if (!string.IsNullOrEmpty(ExtraData))
                        {
                            dbClient.setQuery("INSERT INTO items_extradata VALUES (" + Id + ",@extradata)");
                            dbClient.addParameter("extradata", ExtraData);
                            dbClient.runQuery();
                        }

                        dbClient.runFastQuery("INSERT INTO items_users VALUES (" + Id + "," + UserId + ")");
                        //dbClient.setQuery("INSERT INTO user_items (user_id,base_item,extra_data) VALUES ('" + UserId + "','" + BaseItem + "',@extra_data)");
                        //dbClient.addParameter("extra_data", ExtraData);
                        //Id = (uint)dbClient.insertQuery();
                    }
                }
            }
            UserItem ItemToAdd = new UserItem(Id, BaseItem, ExtraData);

            if (UserHoldsItem(Id))
            {
                RemoveItem(Id, false);
            }

            if (ItemToAdd.GetBaseItem().InteractionType == InteractionType.musicdisc)
                discs.Add(ItemToAdd.Id, ItemToAdd);
            if (ItemToAdd.isWallItem)
                wallItems.Add(ItemToAdd.Id, ItemToAdd);
            else
                floorItems.Add(ItemToAdd.Id, ItemToAdd);

            if (mRemovedItems.Contains(Id))
                mRemovedItems.Remove(Id);

            if (!mAddedItems.ContainsKey(Id))
                mAddedItems.Add(Id, ItemToAdd);

            return ItemToAdd;
            //Console.WriteLine("Item added: " + BaseItem);
        }
Example #6
0
        private void RegisterItem(UserItem item)
        {
            uint baseID = item.BaseItemID;
            if (baseIDRegister.ContainsKey(baseID))
            {
                Hashtable collection = (Hashtable)baseIDRegister[baseID];

                if (!collection.ContainsKey(item.itemID))
                    collection.Add(item.itemID, item); //And add the item
            }
            else
            {
                Hashtable collection = new Hashtable();

                if (!collection.ContainsKey(item.itemID))
                    collection.Add(item.itemID, item); //Put it in there

                baseIDRegister.Add(baseID, collection);
            }
        }
Example #7
0
        internal UserItem AddNewItem(UInt32 Id, uint BaseItem, string ExtraData, bool insert, bool fromRoom, UInt32 songID = 0)
        {
            isUpdated = false;
            if (insert)
            {
                if (fromRoom)
                {
                    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        dbClient.runFastQuery("REPLACE INTO items_users VALUES (" + Id + "," + UserId + ")");

                        if (!string.IsNullOrEmpty(ExtraData))
                        {
                            dbClient.setQuery("REPLACE INTO items_extradata VALUES (" + Id + ",@extradata)");
                            dbClient.addParameter("extradata", ExtraData);
                            dbClient.runQuery();
                        }
                    }

                    Item baseItem = ButterflyEnvironment.GetGame().GetItemManager().GetItem(BaseItem);
                }
                else
                {
                    using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        dbClient.setQuery("INSERT INTO items (base_id) VALUES (" + BaseItem + ")");
                        Id = (uint)dbClient.insertQuery();

                        if (!string.IsNullOrEmpty(ExtraData))
                        {
                            dbClient.setQuery("INSERT INTO items_extradata VALUES (" + Id + ",@extradata)");
                            dbClient.addParameter("extradata", ExtraData);
                            dbClient.runQuery();
                        }

                        dbClient.runFastQuery("INSERT INTO items_users VALUES (" + Id + "," + UserId + ")");
                    }
                }
            }
            UserItem ItemToAdd = new UserItem(Id, BaseItem, ExtraData);

            if (UserHoldsItem(Id))
            {
                RemoveItem(Id, false);
            }

            if (ItemToAdd.IsWallItem())
                wallItems.Add(ItemToAdd.itemID, ItemToAdd);
            else
                floorItems.Add(ItemToAdd.itemID, ItemToAdd);

            if (mRemovedItems.Contains(Id))
                mRemovedItems.Remove(Id);

            if (!mAddedItems.ContainsKey(Id))
                mAddedItems.Add(Id, ItemToAdd);

            RegisterItem(ItemToAdd);

            return ItemToAdd;
        }
Example #8
0
        internal void LoadInventory()
        {
            floorItems.Clear();
            wallItems.Clear();

            DataTable Data;

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("CALL getuseritems(@userid)");
                dbClient.addParameter("userid", (int)UserId);

                Data = dbClient.getTable();
            }

            uint id;
            uint baseitem;
            string extradata;
            foreach (DataRow Row in Data.Rows)
            {
                id = (uint)Row[0];
                baseitem = (uint)Row[1];

                if (!DBNull.Value.Equals(Row[2]))
                    extradata = (string)Row[2];
                else
                    extradata = string.Empty;

                UserItem item = new UserItem(id, baseitem, extradata);

                if (item.IsWallItem())
                    wallItems.Add(id, item);
                else
                    floorItems.Add(id, item);

                RegisterItem(item);
            }

            this.InventoryPets.Clear();
            DataTable Data2;
            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                //dbClient.addParameter("userid", UserId);
                dbClient.setQuery("SELECT * FROM user_pets WHERE user_id = " + UserId + " AND room_id = 0");
                Data2 = dbClient.getTable();
            }

            if (Data2 != null)
            {
                foreach (DataRow Row in Data2.Rows)
                {
                    Pet newPet = Catalog.GeneratePetFromRow(Row);
                    InventoryPets.Add(newPet.petID, newPet);
                }
            }
        }
Example #9
0
 private void UnregisterItem(UserItem item)
 {
     uint baseID = item.BaseItemID;
     if (baseIDRegister.ContainsKey(baseID))
     {
         Hashtable collection = (Hashtable)baseIDRegister[baseID];
         collection.Remove(item.itemID);
     }
 }
Example #10
0
File: Trade.cs Project: habb0/Bfly
        internal void TakeBackItem(UInt32 UserId, UserItem Item)
        {
            TradeUser User = GetTradeUser(UserId);

            if (User == null || Item == null || User.HasAccepted || TradeStage != 1)
            {
                return;
            }

            ClearAccepted();

            User.OfferedItems.Remove(Item);
            UpdateTradeWindow();
        }
Example #11
0
File: Rooms.cs Project: BjkGkh/R106
        private void HandleFloorItemPlace(UserItem item, Room room, int X, int Y, int Rot)
        {

            if (Session.GetHabbo().forceRot > -1)
                Rot = Session.GetHabbo().forceRot;

            RoomItem roomItem = new RoomItem(item.itemID, room.RoomId, item.BaseItemID,room.OwnerId, item.extraData, X, Y, 0, Rot, room);

            if (room.GetRoomItemHandler().SetFloorItem(Session, roomItem, X, Y, Rot, true, false, true))
                Session.GetHabboDataContainer().GetInventoryComponent().RemoveItem(item.itemID, true);

            if (WiredUtillity.TypeIsWired(item.GetBaseItem().InteractionType))
                WiredSaver.HandleDefaultSave(item.itemID, room);

            ButterflyEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.FURNI_PLACE);

        }
Example #12
0
File: Rooms.cs Project: BjkGkh/R106
        private void HandleWallItemPlace(UserItem item, string placementData, Room room)
        {
            string[] dataBits = placementData.Split(' ');
            if (!dataBits[1].StartsWith(":")) //Is wallitem
                return;

            switch (item.GetBaseItem().InteractionType)
            {
                case Butterfly.HabboHotel.Items.InteractionType.dimmer:
                    {
                        MoodlightData moodData = room.MoodlightData;
                        if (moodData != null && room.GetRoomItemHandler().GetItem(moodData.ItemId) != null)
                        {
                            Session.SendChatMessage("Je kunt maar 1 sfeerverlichter per kamer plaatsen.", 0);
                            return;
                        }
                    }
                    break;
            }

            try
            {
                WallCoordinate coordinate = new WallCoordinate(":" + placementData.Split(':')[1]);
                RoomItem roomItem = new RoomItem(item.itemID, room.RoomId, item.BaseItemID, item.extraData, coordinate, room);

                if (room.GetRoomItemHandler().SetWallItem(Session, roomItem))
                {
                    Session.GetHabboDataContainer().GetInventoryComponent().RemoveItem(item.itemID, true);
                }
            }
            catch
            {
                return;
            }
        }
Example #13
0
File: Rooms.cs Project: BjkGkh/R106
 private UserItem GetNextItemInStack(UserItem Item, Hashtable registry)
 {
     if (registry.ContainsKey(Item.BaseItemID))
     {
         Hashtable items = (Hashtable)registry[Item.BaseItemID];
         if (items.Count > 0)
         {
             foreach (UserItem item in items.Values)
             {
                 return item;
             }
         }
     }
     return null;
 }
Example #14
0
 public SongItem(UserItem item)
 {
     this.itemID = item.itemID;
     this.songID = TextHandling.Parse(item.extraData);
     this.baseItem = item.GetBaseItem();
 }