Beispiel #1
0
        private static void GetCatalogPage(Session Session, ClientMessage Message)
        {
            int Id = Message.PopWiredInt32();

            if (!mPages.ContainsKey(Id))
            {
                return;
            }

            CatalogPage Page = mPages[Id];

            if (Page.DummyPage)
            {
                return;
            }

            ServerMessage Response = TryGetResponseFromCache(0, Message);

            if (Response != null)
            {
                Session.SendData(Response);
                return;
            }

            Response = CatalogPageComposer.Compose(Page);
            AddToCacheIfNeeded(0, Message, Response);
            Session.SendData(Response);
        }
Beispiel #2
0
        /// <summary>
        ///     Catalogues the index.
        /// </summary>
        public void CatalogueIndex()
        {
            uint rank = Session.GetHabbo().Rank;

            if (rank < 1)
            {
                rank = 1;
            }

            Session.SendMessage(StaticMessage.CatalogOffersConfiguration);
            Session.SendMessage(CatalogPageComposer.ComposeIndex(rank, Request.GetString().ToUpper()));
        }
Beispiel #3
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="CatalogPage" /> class.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <param name="parentId">The parent identifier.</param>
        /// <param name="codeName">Name of the code.</param>
        /// <param name="caption">The caption.</param>
        /// <param name="visible">if set to <c>true</c> [visible].</param>
        /// <param name="enabled">if set to <c>true</c> [enabled].</param>
        /// <param name="comingSoon">if set to <c>true</c> [coming soon].</param>
        /// <param name="minRank">The minimum rank.</param>
        /// <param name="iconImage">The icon image.</param>
        /// <param name="layout">The layout.</param>
        /// <param name="layoutHeadline">The layout headline.</param>
        /// <param name="layoutTeaser">The layout teaser.</param>
        /// <param name="layoutSpecial">The layout special.</param>
        /// <param name="text1">The text1.</param>
        /// <param name="text2">The text2.</param>
        /// <param name="textDetails">The text details.</param>
        /// <param name="textTeaser">The text teaser.</param>
        /// <param name="pageLinkTitle">The page link title.</param>
        /// <param name="pageLink">The page link.</param>
        /// <param name="orderNum">The order number.</param>
        /// <param name="cataItems">The cata items.</param>
        internal CatalogPage(uint id, short parentId, string codeName, string caption, bool visible, bool enabled,
                             bool comingSoon, uint minRank, int iconImage, string layout, string layoutHeadline, string layoutTeaser,
                             string layoutSpecial, string text1, string text2, string textDetails, string textTeaser,
                             string pageLinkTitle, string pageLink, int orderNum, ref HybridDictionary cataItems)
        {
            PageId         = id;
            ParentId       = parentId;
            CodeName       = codeName;
            Caption        = caption;
            Visible        = visible;
            Enabled        = enabled;
            ComingSoon     = comingSoon;
            MinRank        = minRank;
            IconImage      = iconImage;
            Layout         = layout;
            LayoutHeadline = layoutHeadline;
            LayoutTeaser   = layoutTeaser;
            LayoutSpecial  = layoutSpecial;
            Text1          = text1;
            PageLinkTitle  = pageLinkTitle;
            PageLink       = pageLink;
            Text2          = text2;
            TextDetails    = textDetails;
            TextTeaser     = textTeaser;
            OrderNum       = orderNum;

            if (layout.StartsWith("frontpage"))
            {
                OrderNum = -2;
            }

            Items      = new HybridDictionary();
            FlatOffers = new Dictionary <uint, uint>();

            foreach (
                CatalogItem catalogItem in
                cataItems.Values.OfType <CatalogItem>().Where(x => x.PageId == id && x.GetFirstBaseItem() != null))
            {
                Items.Add(catalogItem.Id, catalogItem);

                uint flatId = catalogItem.GetFirstBaseItem().FlatId;

                if (!FlatOffers.ContainsKey(flatId))
                {
                    FlatOffers.Add(catalogItem.GetFirstBaseItem().FlatId, catalogItem.Id);
                }
            }

            CachedContentsMessage = CatalogPageComposer.ComposePage(this);
        }
Beispiel #4
0
        /// <summary>
        ///     Catalogues the offer.
        /// </summary>
        public void CatalogueOffer()
        {
            uint num = Request.GetUInteger();

            CatalogItem catalogItem = Yupi.GetGame().GetCatalogManager().GetItemFromOffer(num);

            if (catalogItem == null || CatalogManager.LastSentOffer == num)
            {
                return;
            }

            CatalogManager.LastSentOffer = num;

            ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("CatalogOfferMessageComposer"));

            CatalogPageComposer.ComposeItem(catalogItem, message);
            Session.SendMessage(message);
        }
Beispiel #5
0
        /// <summary>
        /// Purchases the item.
        /// </summary>
        public void PurchaseItem()
        {
            if (Session?.GetHabbo() == null)
            {
                return;
            }

            if (Session.GetHabbo().GetInventoryComponent().TotalItems >= 2799)
            {
                Session.SendMessage(CatalogPageComposer.PurchaseOk(0, string.Empty, 0));
                Session.SendMessage(StaticMessage.AdvicePurchaseMaxItems);
                return;
            }

            uint   pageId      = Request.GetUInteger();
            uint   itemId      = Request.GetUInteger();
            string extraData   = Request.GetString();
            uint   priceAmount = Request.GetUInteger();

            Yupi.GetGame().GetCatalog().HandlePurchase(Session, pageId, itemId, extraData, priceAmount, false, string.Empty, string.Empty, 0, 0, 0, false, 0u);
        }
Beispiel #6
0
        /// <summary>
        ///     Handles the purchase.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="pageId">The page identifier.</param>
        /// <param name="itemId">The item identifier.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="priceAmount">The price amount.</param>
        /// <param name="isGift">if set to <c>true</c> [is gift].</param>
        /// <param name="giftUser">The gift user.</param>
        /// <param name="giftMessage">The gift message.</param>
        /// <param name="giftSpriteId">The gift sprite identifier.</param>
        /// <param name="giftLazo">The gift lazo.</param>
        /// <param name="giftColor">Color of the gift.</param>
        /// <param name="undef">if set to <c>true</c> [undef].</param>
        /// <param name="theGroup">The theGroup.</param>
        internal void HandlePurchase(GameClient session, uint pageId, uint itemId, string extraData, uint priceAmount, bool isGift, string giftUser, string giftMessage, int giftSpriteId, int giftLazo, int giftColor, bool undef, uint theGroup)
        {
            priceAmount = priceAmount < 1 || priceAmount > 100 ? 1 : priceAmount;

            uint totalPrice = priceAmount, limitedId = 0, limtot = 0;

            if (priceAmount >= 6)
            {
                totalPrice -= Convert.ToUInt32(Math.Ceiling(Convert.ToDouble(priceAmount) / 6)) * 2 - 1;
            }

            if (!Categories.Contains(pageId))
            {
                return;
            }

            CatalogPage catalogPage = GetPage(pageId);

            if (catalogPage == null || !catalogPage.Enabled || !catalogPage.Visible || session?.GetHabbo() == null)
            {
                return;
            }

            if (catalogPage.MinRank > session.GetHabbo().Rank || catalogPage.Layout == "sold_ltd_items")
            {
                return;
            }

            CatalogItem item = catalogPage.GetItem(itemId);

            if (item == null)
            {
                return;
            }

            if (session.GetHabbo().Credits < item.CreditsCost)
            {
                return;
            }

            if (session.GetHabbo().ActivityPoints < item.DucketsCost)
            {
                return;
            }

            if (session.GetHabbo().Diamonds < item.DiamondsCost)
            {
                return;
            }

            if (item.Name == "room_ad_plus_badge")
            {
                return;
            }

            #region Habbo Club Purchase
            if (catalogPage.Layout == "vip_buy" || catalogPage.Layout == "club_buy" || HabboClubItems.Contains(item))
            {
                string[] array = item.Name.Split('_');

                double dayLength;

                if (item.Name.Contains("DAY"))
                {
                    dayLength = double.Parse(array[3]);
                }
                else if (item.Name.Contains("MONTH"))
                {
                    dayLength = Math.Ceiling(double.Parse(array[3]) * 31 - 0.205);
                }
                else if (item.Name.Contains("YEAR"))
                {
                    dayLength = double.Parse(array[3]) * 31 * 12;
                }
                else
                {
                    dayLength = 31;
                }

                session.GetHabbo().GetSubscriptionManager().AddSubscription(dayLength);

                if (item.CreditsCost > 0)
                {
                    session.GetHabbo().Credits -= item.CreditsCost * totalPrice;
                    session.GetHabbo().UpdateCreditsBalance();
                }

                if (item.DucketsCost > 0)
                {
                    session.GetHabbo().ActivityPoints -= item.DucketsCost * totalPrice;
                    session.GetHabbo().UpdateActivityPointsBalance();
                }

                if (item.DiamondsCost > 0)
                {
                    session.GetHabbo().Diamonds -= item.DiamondsCost * totalPrice;
                    session.GetHabbo().UpdateSeasonalCurrencyBalance();
                }

                return;
            }
            #endregion

            #region Is Only for Habbo Club users Check
            if (item.ClubOnly && !session.GetHabbo().GetSubscriptionManager().HasSubscription)
            {
                ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("CatalogPurchaseNotAllowedMessageComposer"));
                serverMessage.AppendInteger(1);
                session.SendMessage(serverMessage);
                return;
            }
            #endregion

            #region Check if is a Pet. If is we have problem.

            if (item.Items.Keys.Any(current => InteractionTypes.AreFamiliar(GlobalInteractions.Pet, current.InteractionType)))
            {
                return;
            }

            #endregion

            #region Limited Items Purchase
            if (item.IsLimited)
            {
                totalPrice  = 1;
                priceAmount = 1;

                if (item.LimitedSelled >= item.LimitedStack)
                {
                    session.SendMessage(new ServerMessage(LibraryParser.OutgoingRequest("CatalogLimitedItemSoldOutMessageComposer")));
                    return;
                }

                item.LimitedSelled++;

                using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                {
                    queryReactor.RunFastQuery(string.Concat("UPDATE catalog_items SET limited_sells = ", item.LimitedSelled, " WHERE id = ", item.Id));

                    limitedId = item.LimitedSelled;
                    limtot    = item.LimitedStack;
                }
            }
            else if (isGift && priceAmount > 1)
            {
                totalPrice  = 1;
                priceAmount = 1;
            }
            #endregion

            uint toUserId = 0u;

            if (session.GetHabbo().Credits < item.CreditsCost * totalPrice)
            {
                return;
            }

            if (session.GetHabbo().ActivityPoints < item.DucketsCost * totalPrice)
            {
                return;
            }

            if (session.GetHabbo().Diamonds < item.DiamondsCost * totalPrice)
            {
                return;
            }

            if (!isGift)
            {
                if (item.CreditsCost > 0)
                {
                    session.GetHabbo().Credits -= item.CreditsCost * totalPrice;
                    session.GetHabbo().UpdateCreditsBalance();
                }

                if (item.DucketsCost > 0)
                {
                    session.GetHabbo().ActivityPoints -= item.DucketsCost * totalPrice;
                    session.GetHabbo().UpdateActivityPointsBalance();
                }

                if (item.DiamondsCost > 0)
                {
                    session.GetHabbo().Diamonds -= item.DiamondsCost * totalPrice;
                    session.GetHabbo().UpdateSeasonalCurrencyBalance();
                }
            }

            foreach (Item baseItem in item.Items.Keys)
            {
                if (isGift)
                {
                    if ((DateTime.Now - session.GetHabbo().LastGiftPurchaseTime).TotalSeconds <= 15.0)
                    {
                        session.SendNotif(Yupi.GetLanguage().GetVar("user_send_gift"));
                        return;
                    }

                    if (!baseItem.AllowGift)
                    {
                        return;
                    }

                    DataRow row;

                    using (IQueryAdapter queryreactor3 = Yupi.GetDatabaseManager().GetQueryReactor())
                    {
                        queryreactor3.SetQuery("SELECT id FROM users WHERE username = @gift_user");
                        queryreactor3.AddParameter("gift_user", giftUser);
                        row = queryreactor3.GetRow();
                    }

                    if (row == null)
                    {
                        session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("GiftErrorMessageComposer"));
                        session.GetMessageHandler().GetResponse().AppendString(giftUser);
                        session.GetMessageHandler().SendResponse();
                        return;
                    }

                    toUserId = (uint)row["id"];

                    if (toUserId == 0u)
                    {
                        session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("GiftErrorMessageComposer"));
                        session.GetMessageHandler().GetResponse().AppendString(giftUser);
                        session.GetMessageHandler().SendResponse();
                        return;
                    }

                    if (item.CreditsCost > 0 && isGift)
                    {
                        session.GetHabbo().Credits -= item.CreditsCost * totalPrice;
                        session.GetHabbo().UpdateCreditsBalance();
                    }

                    if (item.DucketsCost > 0 && isGift)
                    {
                        session.GetHabbo().ActivityPoints -= item.DucketsCost * totalPrice;
                        session.GetHabbo().UpdateActivityPointsBalance();
                    }

                    if (item.DiamondsCost > 0 && isGift)
                    {
                        session.GetHabbo().Diamonds -= item.DiamondsCost * totalPrice;
                        session.GetHabbo().UpdateSeasonalCurrencyBalance();
                    }
                }

                if (isGift && baseItem.Type == 'e')
                {
                    session.SendNotif(Yupi.GetLanguage().GetVar("user_send_gift_effect"));
                    return;
                }

                if (item.Name.StartsWith("builders_club_addon_"))
                {
                    int furniAmount = Convert.ToInt32(item.Name.Replace("builders_club_addon_", "").Replace("furnis", ""));

                    session.GetHabbo().BuildersItemsMax += furniAmount;

                    ServerMessage update = new ServerMessage(LibraryParser.OutgoingRequest("BuildersClubMembershipMessageComposer"));

                    update.AppendInteger(session.GetHabbo().BuildersExpire);
                    update.AppendInteger(session.GetHabbo().BuildersItemsMax);
                    update.AppendInteger(2);
                    session.SendMessage(update);

                    using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                    {
                        queryReactor.SetQuery("UPDATE users SET builders_items_max = @max WHERE id = @userId");
                        queryReactor.AddParameter("max", session.GetHabbo().BuildersItemsMax);
                        queryReactor.AddParameter("userId", session.GetHabbo().Id);
                        queryReactor.RunQuery();
                    }

                    session.SendMessage(CatalogPageComposer.PurchaseOk(item, item.Items));
                    session.SendNotif("${notification.builders_club.membership_extended.message}", "${notification.builders_club.membership_extended.title}", "builders_club_membership_extended");
                    return;
                }

                if (item.Name.StartsWith("builders_club_time_"))
                {
                    int timeAmount = Convert.ToInt32(item.Name.Replace("builders_club_time_", "").Replace("seconds", ""));

                    session.GetHabbo().BuildersExpire += timeAmount;

                    ServerMessage update =
                        new ServerMessage(LibraryParser.OutgoingRequest("BuildersClubMembershipMessageComposer"));

                    update.AppendInteger(session.GetHabbo().BuildersExpire);
                    update.AppendInteger(session.GetHabbo().BuildersItemsMax);
                    update.AppendInteger(2);
                    session.SendMessage(update);

                    using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                    {
                        queryReactor.SetQuery("UPDATE users SET builders_expire = @max WHERE id = @userId");
                        queryReactor.AddParameter("max", session.GetHabbo().BuildersExpire);
                        queryReactor.AddParameter("userId", session.GetHabbo().Id);
                        queryReactor.RunQuery();
                    }

                    session.SendMessage(CatalogPageComposer.PurchaseOk(item, item.Items));
                    session.SendNotif("${notification.builders_club.membership_extended.message}", "${notification.builders_club.membership_extended.title}", "builders_club_membership_extended");
                    return;
                }

                string text = string.Empty;

                Interaction interactionType = baseItem.InteractionType;

                switch (interactionType)
                {
                case Interaction.None:
                case Interaction.Gate:
                case Interaction.Bed:
                case Interaction.PressurePadBed:
                case Interaction.Guillotine:
                case Interaction.HcGate:
                case Interaction.ScoreBoard:
                case Interaction.VendingMachine:
                case Interaction.Alert:
                case Interaction.OneWayGate:
                case Interaction.LoveShuffler:
                case Interaction.HabboWheel:
                case Interaction.Dice:
                case Interaction.Bottle:
                case Interaction.Hopper:
                case Interaction.Teleport:
                case Interaction.QuickTeleport:
                case Interaction.Pet:
                case Interaction.Pool:
                case Interaction.Roller:
                    break;

                case Interaction.PostIt:
                    extraData = "FFFF33";
                    break;

                case Interaction.RoomEffect:
                    double number = string.IsNullOrEmpty(extraData) ? 0.0 : double.Parse(extraData, Yupi.CultureInfo);
                    extraData = number.ToString(CultureInfo.InvariantCulture).Replace(',', '.');
                    break;

                case Interaction.Dimmer:
                    extraData = "1,1,1,#000000,255";
                    break;

                case Interaction.Trophy:
                    extraData = string.Concat(session.GetHabbo().UserName, Convert.ToChar(9),
                                              DateTime.Now.Day.ToString("00"), "-", DateTime.Now.Month.ToString("00"), "-",
                                              DateTime.Now.Year, Convert.ToChar(9), extraData);
                    break;

                case Interaction.Rentals:
                    extraData = item.ExtraData;
                    break;

                case Interaction.PetDog:
                case Interaction.PetCat:
                case Interaction.PetCrocodile:
                case Interaction.PetTerrier:
                case Interaction.PetBear:
                case Interaction.PetPig:
                case Interaction.PetLion:
                case Interaction.PetRhino:
                case Interaction.PetSpider:
                case Interaction.PetTurtle:
                case Interaction.PetChick:
                case Interaction.PetFrog:
                case Interaction.PetDragon:
                case Interaction.PetHorse:
                case Interaction.PetMonkey:
                case Interaction.PetGnomo:
                case Interaction.PetMonsterPlant:
                case Interaction.PetWhiteRabbit:
                case Interaction.PetEvilRabbit:
                case Interaction.PetLoveRabbit:
                case Interaction.PetCafeRabbit:
                case Interaction.PetPigeon:
                case Interaction.PetEvilPigeon:
                case Interaction.PetDemonMonkey:
                case Interaction.Pet24:
                case Interaction.Pet25:
                case Interaction.Pet26:
                case Interaction.Pet27:
                case Interaction.Pet28:
                case Interaction.Pet29:
                case Interaction.Pet30:
                case Interaction.Pet31:
                case Interaction.Pet32:
                case Interaction.Pet33:
                case Interaction.Pet34:
                    string[] data    = extraData.Split('\n');
                    string   petName = data[0];
                    string   race    = data[1];
                    string   color   = data[2];

                    if (!CheckPetName(petName))
                    {
                        return;
                    }
                    if (race.Length != 1 && race.Length != 2)
                    {
                        return;
                    }
                    if (color.Length != 6)
                    {
                        return;
                    }

                    Yupi.GetGame().GetAchievementManager().ProgressUserAchievement(session, "ACH_PetLover", 1);
                    break;

                case Interaction.Mannequin:
                    extraData = string.Concat("m", Convert.ToChar(5), "ch-215-92.lg-3202-1322-73", Convert.ToChar(5), "Mannequin");
                    break;

                case Interaction.VipGate:
                case Interaction.MysteryBox:
                case Interaction.YoutubeTv:
                case Interaction.TileStackMagic:
                case Interaction.Tent:
                case Interaction.BedTent:
                    break;

                case Interaction.BadgeDisplay:
                    if (!session.GetHabbo().GetBadgeComponent().HasBadge(extraData))
                    {
                        extraData = "UMAD";
                    }

                    extraData = $"{extraData}|{session.GetHabbo().UserName}|{DateTime.Now.Day.ToString("00")}-{DateTime.Now.Month.ToString("00")}-{DateTime.Now.Year}";
                    break;

                case Interaction.FootballGate:
                    extraData = "hd-99999-99999.lg-270-62;hd-99999-99999.ch-630-62.lg-695-62";
                    break;

                case Interaction.LoveLock:
                    extraData = "0";
                    break;

                case Interaction.Pinata:
                case Interaction.RunWaySage:
                case Interaction.Shower:
                    extraData = "0";
                    break;

                case Interaction.GroupForumTerminal:
                case Interaction.GuildItem:
                case Interaction.GuildGate:
                case Interaction.GuildForum:
                case Interaction.Poster:
                    break;

                case Interaction.Moplaseed:
                    extraData = new Random().Next(0, 12).ToString();
                    break;

                case Interaction.RareMoplaSeed:
                    extraData = new Random().Next(10, 12).ToString();
                    break;

                case Interaction.MusicDisc:

                    SongData song = SoundMachineSongManager.GetSongById(item.SongId);

                    extraData = string.Empty;

                    if (song == null)
                    {
                        break;
                    }

                    extraData = string.Concat(session.GetHabbo().UserName, '\n', DateTime.Now.Year, '\n', DateTime.Now.Month, '\n', DateTime.Now.Day, '\n', song.LengthSeconds, '\n', song.Name);

                    text = song.CodeName;

                    break;

                default:
                    extraData = item.ExtraData;
                    break;
                }

                session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("UpdateInventoryMessageComposer"));

                session.GetMessageHandler().SendResponse();

                session.SendMessage(CatalogPageComposer.PurchaseOk(item, item.Items));

                if (isGift)
                {
                    Item itemBySprite = Yupi.GetGame().GetItemManager().GetItemBySpriteId(giftSpriteId);

                    if (itemBySprite == null)
                    {
                        return;
                    }

                    uint insertId;

                    using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                    {
                        queryReactor.SetQuery("INSERT INTO items_rooms (item_name,user_id) VALUES (" + itemBySprite.Name + ", " + toUserId + ")");

                        insertId = (uint)queryReactor.InsertQuery();
                        queryReactor.SetQuery(string.Concat("INSERT INTO users_gifts (gift_id,item_id,extradata,giver_name,Message,ribbon,color,gift_sprite,show_sender,rare_id) VALUES (", insertId, ", ", baseItem.ItemId, ",@extradata, @name, @Message,", giftLazo, ",", giftColor, ",", giftSpriteId, ",", undef ? 1 : 0, ",", limitedId, ")"));
                        queryReactor.AddParameter("extradata", extraData);
                        queryReactor.AddParameter("name", giftUser);
                        queryReactor.AddParameter("message", giftMessage);
                        queryReactor.RunQuery();

                        if (session.GetHabbo().Id != toUserId)
                        {
                            Yupi.GetGame().GetAchievementManager().ProgressUserAchievement(session, "ACH_GiftGiver", 1, true);

                            queryReactor.RunFastQuery("UPDATE users_stats SET gifts_given = gifts_given + 1 WHERE id = " + session.GetHabbo().Id + ";UPDATE users_stats SET gifts_received = gifts_received + 1 WHERE id = " + toUserId);
                        }
                    }

                    GameClient clientByUserId = Yupi.GetGame().GetClientManager().GetClientByUserId(toUserId);

                    if (clientByUserId != null)
                    {
                        clientByUserId.GetHabbo().GetInventoryComponent().AddNewItem(insertId, itemBySprite.Name, string.Concat(session.GetHabbo().Id, (char)9, giftMessage, (char)9, giftLazo, (char)9, giftColor, (char)9, undef ? "1" : "0", (char)9, session.GetHabbo().UserName, (char)9, session.GetHabbo().Look, (char)9, item.Name), 0u, false, false, 0, 0);

                        if (clientByUserId.GetHabbo().Id != session.GetHabbo().Id)
                        {
                            Yupi.GetGame().GetAchievementManager().ProgressUserAchievement(clientByUserId, "ACH_GiftReceiver", 1, true);
                        }
                    }

                    session.GetHabbo().LastGiftPurchaseTime = DateTime.Now;

                    continue;
                }

                session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("NewInventoryObjectMessageComposer"));

                session.GetMessageHandler().GetResponse().AppendInteger(1);

                int i = 1;

                if (baseItem.Type == 's')
                {
                    i = InteractionTypes.AreFamiliar(GlobalInteractions.Pet, baseItem.InteractionType) ? 3 : 1;
                }

                session.GetMessageHandler().GetResponse().AppendInteger(i);

                List <UserItem> list = DeliverItems(session, baseItem, priceAmount * item.Items[baseItem], extraData, limitedId, limtot, text);

                session.GetMessageHandler().GetResponse().AppendInteger(list.Count);

                foreach (UserItem current3 in list)
                {
                    session.GetMessageHandler().GetResponse().AppendInteger(current3.Id);
                }

                session.GetMessageHandler().SendResponse();
                session.GetHabbo().GetInventoryComponent().UpdateItems(false);

                if (InteractionTypes.AreFamiliar(GlobalInteractions.Pet, baseItem.InteractionType))
                {
                    session.SendMessage(session.GetHabbo().GetInventoryComponent().SerializePetInventory());
                }
            }

            if (item.Badge.Length >= 1)
            {
                session.GetHabbo().GetBadgeComponent().GiveBadge(item.Badge, true, session);
            }
        }
Beispiel #7
0
        /// <summary>
        ///     Catalogues the club page.
        /// </summary>
        public void CatalogueClubPage()
        {
            int requestType = Request.GetInteger();

            Session.SendMessage(CatalogPageComposer.ComposeClubPurchasePage(Session, requestType));
        }