Beispiel #1
0
        /// <summary>
        /// Creates the bot from catalog.
        /// </summary>
        /// <param name="botType">Type of the bot.</param>
        /// <param name="userId">The user identifier.</param>
        /// <returns>RoomBot.</returns>
        internal static RoomBot CreateBotFromCatalog(string botType, uint userId)
        {
            using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                CatalogBot catalogBot = GetCatalogBot(botType);

                queryReactor.SetQuery($"INSERT INTO bots_data (user_id,name,motto,look,gender,walk_mode,ai_type,bot_type) VALUES ('{userId}', '{catalogBot.BotName}', '{catalogBot.BotMission}', '{catalogBot.BotLook}', '{catalogBot.BotGender}', 'freeroam', 'generic', '{catalogBot.BotType}')");

                return(new RoomBot(Convert.ToUInt32(queryReactor.InsertQuery()), userId, 0u, AiType.Generic, "freeroam", catalogBot.BotName, catalogBot.BotMission, catalogBot.BotLook, 0, 0, 0.0, 0, null, null, catalogBot.BotGender, 0, catalogBot.BotType));
            }
        }
Beispiel #2
0
        public static Bot CreateBot(ItemData Data, int OwnerId)
        {
            DataRow    BotData = null;
            CatalogBot CataBot = null;

            if (!PlusEnvironment.GetGame().GetCatalog().TryGetBot(Data.Id, out CataBot))
            {
                return(null);
            }

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("INSERT INTO bots (`user_id`,`name`,`motto`,`look`,`gender`,`ai_type`) VALUES ('" + OwnerId + "', '" + CataBot.Name + "', '" + CataBot.Motto + "', '" + CataBot.Figure + "', '" + CataBot.Gender + "', '" + CataBot.AIType + "')");
                int Id = Convert.ToInt32(dbClient.InsertQuery());

                dbClient.SetQuery("SELECT `id`,`user_id`,`name`,`motto`,`look`,`gender` FROM `bots` WHERE `user_id` = '" + OwnerId + "' AND `id` = '" + Id + "' LIMIT 1");
                BotData = dbClient.GetRow();
            }

            return(new Bot(Convert.ToInt32(BotData["id"]), Convert.ToInt32(BotData["user_id"]), Convert.ToString(BotData["name"]), Convert.ToString(BotData["motto"]), Convert.ToString(BotData["look"]), Convert.ToString(BotData["gender"])));
        }
        public BCCatalogPageComposer(BCCatalogPage Page, string CataMode)
            : base(ServerPacketHeader.CatalogPageMessageComposer)
        {
            base.WriteInteger(Page.Id);
            base.WriteString(CataMode);
            base.WriteString(Page.Template);

            base.WriteInteger(Page.PageStrings1.Count);
            foreach (string s in Page.PageStrings1)
            {
                base.WriteString(s);
            }

            base.WriteInteger(Page.PageStrings2.Count);
            foreach (string s in Page.PageStrings2)
            {
                base.WriteString(s);
            }

            if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy"))
            {
                base.WriteInteger(Page.Items.Count);
                foreach (var Item in Page.Items.Values)
                {
                    base.WriteInteger(Item.Id);
                    base.WriteString(Item.Name);
                    base.WriteBoolean(false);//IsRentable
                    base.WriteInteger(Item.CostCredits);

                    if (Item.CostDiamonds > 0)
                    {
                        base.WriteInteger(Item.CostDiamonds);
                        base.WriteInteger(5); // Diamonds
                    }
                    else if (Item.CostGOTWPoints > 0)
                    {
                        base.WriteInteger(Item.CostGOTWPoints);
                        base.WriteInteger(103); // Pixeles
                    }
                    else
                    {
                        base.WriteInteger(Item.CostPixels);
                        base.WriteInteger(0); // Type of PixelCost
                    }
                    base.WriteBoolean(false);
                    if (Item.Data.InteractionType == InteractionType.DEAL)
                    {
                        foreach (CatalogDeal Deal in Page.Deals.Values)
                        {
                            base.WriteInteger(Deal.ItemDataList.Count);//Count

                            foreach (CatalogItem DealItem in Deal.ItemDataList.ToList())
                            {
                                base.WriteString(DealItem.Data.Type.ToString());
                                base.WriteInteger(DealItem.Data.SpriteId);
                                base.WriteString("");
                                base.WriteInteger(DealItem.Amount);
                                base.WriteBoolean(false);
                            }
                            base.WriteInteger(0);//club_level
                            base.WriteBoolean(false);
                            base.WriteBoolean(true);
                            base.WriteString("");
                        }
                    }
                    else
                    {
                        if (Item.PredesignedId > 0)
                        {
                            base.WriteInteger(Page.PredesignedItems.Items.Count);
                            foreach (var predesigned in Page.PredesignedItems.Items.ToList())
                            {
                                ItemData Data = null;
                                if (RavenEnvironment.GetGame().GetItemManager().GetItem(predesigned.Key, out Data))
                                {
                                }
                                base.WriteString(Data.Type.ToString());
                                base.WriteInteger(Data.SpriteId);
                                base.WriteString(string.Empty);
                                base.WriteInteger(predesigned.Value);
                                base.WriteBoolean(false);
                            }

                            base.WriteInteger(0);
                            base.WriteBoolean(false);
                            base.WriteBoolean(true); // Niu Rilí
                            base.WriteString("");    // Niu Rilí
                        }
                        else
                        {
                            base.WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);//Count 1 item if there is no badge, otherwise count as 2.

                            if (!string.IsNullOrEmpty(Item.Badge))
                            {
                                base.WriteString("b");
                                base.WriteString(Item.Badge);
                            }

                            base.WriteString(Item.Data.Type.ToString());
                            if (Item.Data.Type.ToString().ToLower() == "b")
                            {
                                //This is just a badge, append the name.
                                base.WriteString(Item.Data.ItemName);
                            }
                            else
                            {
                                base.WriteInteger(Item.Data.SpriteId);
                                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                                {
                                    base.WriteString(Item.Name.Split('_')[2]);
                                }
                                else if (Item.Data.InteractionType == InteractionType.BOT)//Bots
                                {
                                    CatalogBot CatalogBot = null;
                                    if (!RavenEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                                    {
                                        base.WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                                    }
                                    else
                                    {
                                        base.WriteString(CatalogBot.Figure);
                                    }
                                }
                                else if (Item.ExtraData != null)
                                {
                                    base.WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
                                }
                                base.WriteInteger(Item.Amount);
                                base.WriteBoolean(Item.IsLimited); // IsLimited
                                if (Item.IsLimited)
                                {
                                    base.WriteInteger(Item.LimitedEditionStack);
                                    base.WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                                }
                            }
                            base.WriteInteger(0); //club_level
                            base.WriteBoolean(false);

                            base.WriteBoolean(true); // Niu Rilí
                            base.WriteString("");    // Niu Rilí
                        }
                    }
                }

                //}
                /*}*/
            }
            else
            {
                base.WriteInteger(0);
            }

            base.WriteInteger(-1);
            base.WriteBoolean(false);

            if (Page.Template == "frontpage4")
            {
                ICollection <Frontpage> FrontPage = RavenEnvironment.GetGame().GetCatalogFrontPageManager().GetBCCatalogFrontPage();
                base.WriteInteger(FrontPage.Count); // count

                foreach (Frontpage front in FrontPage.ToList <Frontpage>())
                {
                    base.WriteInteger(front.Id());
                    base.WriteString(front.FrontName());
                    base.WriteString(front.FrontImage());
                    base.WriteInteger(0);
                    base.WriteString(front.FrontLink());
                    base.WriteInteger(-1);
                }
            }
        }
Beispiel #4
0
        public CatalogOfferComposer(CatalogItem Item)
            : base(ServerPacketHeader.CatalogOfferMessageComposer)
        {
            WriteInteger(Item.OfferId);
            WriteString(Item.Data.ItemName);
            WriteBoolean(false);            //IsRentable
            WriteInteger(Item.CostCredits);

            if (Item.CostDiamonds > 0)
            {
                WriteInteger(Item.CostDiamonds);
                WriteInteger(5);                 // Diamonds
            }
            else if (Item.CostGotw > 0)
            {
                WriteInteger(Item.CostGotw);
                WriteInteger(103);                 // Puntos de fama
            }
            else
            {
                WriteInteger(Item.CostPixels);
                WriteInteger(0);                 // Type of PixelCost
            }

            WriteBoolean(ItemUtility.CanGiftItem(Item));
            WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);            //Count 1 item if there is no badge, otherwise count as 2.

            if (!string.IsNullOrEmpty(Item.Badge))
            {
                WriteString("b");
                WriteString(Item.Badge);
            }

            WriteString(Item.Data.Type.ToString());
            if (Item.Data.Type.ToString().ToLower() == "b")
            {
                WriteString(Item.Data.ItemName);                //Badge name.
            }
            else
            {
                WriteInteger(Item.Data.SpriteId);
                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                {
                    WriteString(Item.Name.Split('_')[2]);
                }
                else if (Item.PageID == 9)//Bots
                {
                    CatalogBot CataBot = null;
                    if (!BiosEmuThiago.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CataBot))
                    {
                        WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                    }
                    else
                    {
                        WriteString(CataBot.Figure);
                    }
                }
                else if (Item.ExtraData != null)
                {
                    WriteString(Item.ExtraData ?? string.Empty);
                }
                WriteInteger(Item.Amount);
                WriteBoolean(Item.IsLimited);                 // IsLimited
                if (Item.IsLimited)
                {
                    WriteInteger(Item.LimitedEditionStack);
                    WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                }
            }
            WriteInteger(0);             // club_level
            WriteBoolean(ItemUtility.CanSelectAmount(Item));
            WriteInteger(0);
        }
Beispiel #5
0
        public CatalogPageComposer(CatalogPage Page, string CataMode, Language Langue)
            : base(ServerPacketHeader.CatalogPageMessageComposer)
        {
            WriteInteger(Page.Id);
            WriteString(CataMode);
            WriteString(Page.Template);

            WriteInteger(Page.PageStrings1.Count);
            foreach (string s in Page.PageStrings1)
            {
                WriteString(s);
            }

            if (Page.GetPageStrings2ByLangue(Langue).Count == 1 && (Page.Template == "default_3x3" || Page.Template == "default_3x3_color_grouping") && string.IsNullOrEmpty(Page.GetPageStrings2ByLangue(Langue)[0]))
            {
                WriteInteger(1);
                WriteString(string.Format(ButterflyEnvironment.GetLanguageManager().TryGetValue("catalog.desc.default", Langue), Page.GetCaptionByLangue(Langue)));
            }
            else
            {
                WriteInteger(Page.GetPageStrings2ByLangue(Langue).Count);
                foreach (string s in Page.GetPageStrings2ByLangue(Langue))
                {
                    WriteString(s);
                }
            }

            if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy"))
            {
                WriteInteger(Page.Items.Count);
                foreach (CatalogItem Item in Page.Items.Values)
                {
                    WriteInteger(Item.Id);
                    WriteString(Item.Name);
                    WriteBoolean(false);//IsRentable
                    WriteInteger(Item.CostCredits);

                    if (Item.CostDiamonds > 0)
                    {
                        WriteInteger(Item.CostDiamonds);
                        WriteInteger(105); // Diamonds
                    }
                    else
                    {
                        WriteInteger(Item.CostDuckets);
                        WriteInteger(0);
                    }

                    WriteBoolean(ItemUtility.CanGiftItem(Item));

                    WriteInteger(string.IsNullOrEmpty(Item.Badge) || Item.Data.Type.ToString() == "b" ? 1 : 2);

                    if (!string.IsNullOrEmpty(Item.Badge))
                    {
                        WriteString("b");
                        WriteString(Item.Badge);
                    }


                    if (Item.Data.Type.ToString().ToLower() != "b")
                    {
                        WriteString(Item.Data.Type.ToString());
                        WriteInteger(Item.Data.SpriteId);
                        if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                        {
                            WriteString(Item.Name.Split('_')[2]);
                        }
                        else if (Item.Data.InteractionType == InteractionType.bot)//Bots
                        {
                            CatalogBot CatalogBot = null;
                            if (!ButterflyEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                            {
                                WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                            }
                            else
                            {
                                WriteString(CatalogBot.Figure);
                            }
                        }
                        else
                        {
                            WriteString("");
                        }
                        WriteInteger(Item.Amount);
                        WriteBoolean(Item.IsLimited); // IsLimited
                        if (Item.IsLimited)
                        {
                            WriteInteger(Item.LimitedEditionStack);
                            WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                        }
                    }
                    WriteInteger(0); //club_level
                    WriteBoolean(ItemUtility.CanSelectAmount(Item));

                    WriteBoolean(false); // TODO: Figure out
                    WriteString("");     //previewImage -> e.g; catalogue/pet_lion.png
                }
            }
            else
            {
                WriteInteger(0);
            }
            WriteInteger(-1);
            WriteBoolean(false);

            WriteInteger(ButterflyEnvironment.GetGame().GetCatalog().GetPromotions().ToList().Count);//Count
            foreach (CatalogPromotion Promotion in ButterflyEnvironment.GetGame().GetCatalog().GetPromotions().ToList())
            {
                WriteInteger(Promotion.Id);
                WriteString(Promotion.GetTitleByLangue(Langue));
                WriteString(Promotion.Image);
                WriteInteger(Promotion.Unknown);
                WriteString(Promotion.PageLink);
                WriteInteger(Promotion.ParentId);
            }
        }
        public CatalogPageComposer(CatalogPage Page, string CataMode)
            : base(ServerPacketHeader.CatalogPageMessageComposer)
        {
            WriteInteger(Page.Id);
            WriteString(CataMode);
            WriteString(Page.Template);

            WriteInteger(Page.PageStrings1.Count);
            foreach (string s in Page.PageStrings1)
            {
                WriteString(s);
            }

            WriteInteger(Page.PageStrings2.Count);
            foreach (string s in Page.PageStrings2)
            {
                WriteString(s);
            }

            if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("loyalty_vip_buy"))
            {
                WriteInteger(Page.Items.Count);
                foreach (CatalogItem Item in Page.Items.Values)
                {
                    WriteInteger(Item.Id);
                    WriteString(Item.Name);
                    WriteBoolean(false);                    //IsRentable
                    WriteInteger(Item.CostCredits);

                    if (Item.CostDiamonds > 0)
                    {
                        WriteInteger(Item.CostDiamonds);
                        WriteInteger(5);                         // Diamonds
                    }
                    else if (Item.CostPixels > 0)
                    {
                        WriteInteger(Item.CostPixels);
                        WriteInteger(0);                         // Type of PixelCost
                    }
                    else
                    {
                        WriteInteger(Item.CostGotw);
                        WriteInteger(103);                         // Gotw
                    }

                    WriteBoolean(Item.PredesignedId > 0 ? false : ItemUtility.CanGiftItem(Item));
                    if (Item.PredesignedId > 0)
                    {
                        WriteInteger(Page.PredesignedItems.Items.Count);
                        foreach (var predesigned in Page.PredesignedItems.Items.ToList())
                        {
                            ItemData Data = null;
                            if (CloudServer.GetGame().GetItemManager().GetItem(predesigned.Key, out Data))
                            {
                            }
                            WriteString(Data.Type.ToString());
                            WriteInteger(Data.SpriteId);
                            WriteString(string.Empty);
                            WriteInteger(predesigned.Value);
                            WriteBoolean(false);
                        }

                        WriteInteger(0);
                        WriteBoolean(false);
                        WriteBoolean(true);                      // Niu Rilí
                        WriteString("");                         // Niu Rilí
                    }
                    else if (Page.Deals.Count > 0)
                    {
                        foreach (var Deal in Page.Deals.Values)
                        {
                            WriteInteger(Deal.ItemDataList.Count);
                            foreach (var DealItem in Deal.ItemDataList.ToList())
                            {
                                WriteString(DealItem.Data.Type.ToString());
                                WriteInteger(DealItem.Data.SpriteId);
                                WriteString(string.Empty);
                                WriteInteger(DealItem.Amount);
                                WriteBoolean(false);
                            }

                            WriteInteger(0);
                            WriteBoolean(false);
                        }
                    }
                    else
                    {
                        WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);                        //Count 1 item if there is no badge, otherwise count as 2.
                        {
                            if (!string.IsNullOrEmpty(Item.Badge))
                            {
                                WriteString("b");
                                WriteString(Item.Badge);
                            }

                            WriteString(Item.Data.Type.ToString());
                            if (Item.Data.Type.ToString().ToLower() == "b")
                            {
                                //This is just a badge, append the name.
                                WriteString(Item.Data.ItemName);
                            }
                            else
                            {
                                WriteInteger(Item.Data.SpriteId);
                                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                                {
                                    WriteString(Item.Name.Split('_')[2]);
                                }
                                else if (Item.Data.InteractionType == InteractionType.BOT)//Bots
                                {
                                    CatalogBot CatalogBot = null;
                                    if (!CloudServer.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                                    {
                                        WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                                    }
                                    else
                                    {
                                        WriteString(CatalogBot.Figure);
                                    }
                                }
                                else if (Item.ExtraData != null)
                                {
                                    WriteString(Item.ExtraData ?? string.Empty);
                                }
                                WriteInteger(Item.Amount);
                                WriteBoolean(Item.IsLimited);                                 // IsLimited
                                if (Item.IsLimited)
                                {
                                    WriteInteger(Item.LimitedEditionStack);
                                    WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                                }
                            }
                            WriteInteger(0);                             //club_level
                            WriteBoolean(ItemUtility.CanSelectAmount(Item));

                            WriteBoolean(true);                          // Niu Rilí
                            WriteString("");                             // Niu Rilí
                        }
                    }
                }
                /*}*/
            }
            else
            {
                WriteInteger(0);
            }
            WriteInteger(-1);
            WriteBoolean(false);
            if (Page.Template.Equals("frontpage4"))
            {
                WriteInteger(4);                 // count

                //New Rare Jellyfish Lamp!
                WriteInteger(1);                                   // id
                WriteString(CatalogSettings.CATALOG_NOTICE_1);     // name
                WriteString(CatalogSettings.CATALOG_IMG_NOTICE_1); // image
                WriteInteger(0);
                WriteString(CatalogSettings.CATALOG_URL_NOTICE_1); // page link?
                WriteInteger(-1);                                  // page id?


                WriteInteger(2);
                WriteString(CatalogSettings.CATALOG_NOTICE_2);                 // name
                WriteString(CatalogSettings.CATALOG_IMG_NOTICE_2);             // image
                WriteInteger(0);
                WriteString(CatalogSettings.CATALOG_URL_NOTICE_2);             // page link?
                WriteInteger(-1);


                WriteInteger(3);
                WriteString(CatalogSettings.CATALOG_NOTICE_3);                 // name
                WriteString(CatalogSettings.CATALOG_IMG_NOTICE_3);             // image
                WriteInteger(0);
                WriteString(CatalogSettings.CATALOG_URL_NOTICE_3);             // page link?
                WriteInteger(-1);


                WriteInteger(4);
                WriteString(CatalogSettings.CATALOG_NOTICE_4);                 // name
                WriteString(CatalogSettings.CATALOG_IMG_NOTICE_4);             // image
                WriteInteger(0);
                WriteString(CatalogSettings.CATALOG_URL_NOTICE_4);             // page link?
                WriteInteger(-1);

                if (Page.Template.Equals("loyalty_vip_buy"))
                {
                    WriteInteger(0);                     //Page ID
                    WriteString("NORMAL");
                    WriteString("loyalty_vip_buy");
                    WriteInteger(2);
                    WriteString("hc2_clubtitle");
                    WriteString("clubcat_pic");
                    WriteInteger(0);                     // Nueva Release
                    WriteInteger(0);
                    WriteInteger(-1);
                    WriteBoolean(false);

                    if (Page.Template.Equals("club_gifts"))
                    {
                        WriteString("club_gifts");
                        WriteInteger(1);
                        WriteString(Convert.ToString(Page.PageStrings2));
                        WriteInteger(1);
                        WriteString(Convert.ToString(Page.PageStrings2));
                    }
                }
            }
        }
Beispiel #7
0
        public override void Compose(ServerPacket packet)
        {
            packet.WriteInteger(Item.OfferId);
            packet.WriteString(Item.Data.ItemName);
            packet.WriteBoolean(false);//IsRentable
            packet.WriteInteger(Item.CostCredits);

            if (Item.CostDiamonds > 0)
            {
                packet.WriteInteger(Item.CostDiamonds);
                packet.WriteInteger(5); // Diamonds
            }
            else
            {
                packet.WriteInteger(Item.CostPixels);
                packet.WriteInteger(0); // Type of PixelCost
            }

            packet.WriteBoolean(ItemUtility.CanGiftItem(Item));
            packet.WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);//Count 1 item if there is no badge, otherwise count as 2.

            if (!string.IsNullOrEmpty(Item.Badge))
            {
                packet.WriteString("b");
                packet.WriteString(Item.Badge);
            }

            packet.WriteString(Item.Data.Type.ToString());
            if (Item.Data.Type.ToString().ToLower() == "b")
            {
                packet.WriteString(Item.Data.ItemName);//Badge name.
            }
            else
            {
                packet.WriteInteger(Item.Data.SpriteId);
                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                {
                    packet.WriteString(Item.Name.Split('_')[2]);
                }
                else if (Item.PageID == 9)//Bots
                {
                    CatalogBot CataBot = null;
                    if (!PlusEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CataBot))
                    {
                        packet.WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                    }
                    else
                    {
                        packet.WriteString(CataBot.Figure);
                    }
                }
                else if (Item.ExtraData != null)
                {
                    packet.WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
                }
                packet.WriteInteger(Item.Amount);
                packet.WriteBoolean(Item.IsLimited); // IsLimited
                if (Item.IsLimited)
                {
                    packet.WriteInteger(Item.LimitedEditionStack);
                    packet.WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                }
            }
            packet.WriteInteger(0);     // club_level
            packet.WriteBoolean(ItemUtility.CanSelectAmount(Item));
            packet.WriteBoolean(false); // TODO: Figure out
            packet.WriteString("");     //previewImage -> e.g; catalogue/pet_lion.png
        }
Beispiel #8
0
        public CatalogPageComposer(CatalogPage Page, string CataMode)
            : base(ServerPacketHeader.CatalogPageMessageComposer)
        {
            WriteInteger(Page.Id);
            WriteString(CataMode);
            WriteString(Page.Template);

            WriteInteger(Page.PageStrings1.Count);
            foreach (string s in Page.PageStrings1)
            {
                WriteString(s);
            }

            WriteInteger(Page.PageStrings2.Count);
            foreach (string s in Page.PageStrings2)
            {
                WriteString(s);
            }

            if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy"))
            {
                WriteInteger(Page.Items.Count);
                foreach (CatalogItem Item in Page.Items.Values)
                {
                    WriteInteger(Item.Id);
                    WriteString(Item.Name);
                    WriteBoolean(false);//IsRentable
                    WriteInteger(Item.CostCredits);

                    if (Item.CostDiamonds > 0)
                    {
                        WriteInteger(Item.CostDiamonds);
                        WriteInteger(5); // Diamonds
                    }
                    else
                    {
                        WriteInteger(Item.CostPixels);
                        WriteInteger(0); // Type of PixelCost
                    }

                    WriteBoolean(ItemUtility.CanGiftItem(Item));

                    if (Item.Data.InteractionType == InteractionType.DEAL || Item.Data.InteractionType == InteractionType.ROOMDEAL)
                    {
                        CatalogDeal deal = null;
                        if (!PlusEnvironment.GetGame().GetCatalog().TryGetDeal(Item.Data.BehaviourData, out deal))
                        {
                            WriteInteger(0);//Count
                        }
                        else
                        {
                            WriteInteger(deal.ItemDataList.Count);

                            foreach (CatalogItem dealItem in deal.ItemDataList.ToList())
                            {
                                WriteString(dealItem.Data.Type.ToString());
                                WriteInteger(dealItem.Data.SpriteId);
                                WriteString("");
                                WriteInteger(dealItem.Amount);
                                WriteBoolean(false);
                            }
                        }
                    }
                    else
                    {
                        WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);//Count 1 item if there is no badge, otherwise count as 2.

                        if (!string.IsNullOrEmpty(Item.Badge))
                        {
                            WriteString("b");
                            WriteString(Item.Badge);
                        }

                        WriteString(Item.Data.Type.ToString());
                        if (Item.Data.Type.ToString().ToLower() == "b")
                        {
                            //This is just a badge, append the name.
                            WriteString(Item.Data.ItemName);
                        }
                        else
                        {
                            WriteInteger(Item.Data.SpriteId);
                            if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                            {
                                WriteString(Item.Name.Split('_')[2]);
                            }
                            else if (Item.Data.InteractionType == InteractionType.BOT)//Bots
                            {
                                CatalogBot CatalogBot = null;
                                if (!PlusEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                                {
                                    WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                                }
                                else
                                {
                                    WriteString(CatalogBot.Figure);
                                }
                            }
                            else if (Item.ExtraData != null)
                            {
                                WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
                            }
                            WriteInteger(Item.Amount);
                            WriteBoolean(Item.IsLimited); // IsLimited
                            if (Item.IsLimited)
                            {
                                WriteInteger(Item.LimitedEditionStack);
                                WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                            }
                        }
                    }
                    WriteInteger(0); //club_level
                    WriteBoolean(ItemUtility.CanSelectAmount(Item));

                    WriteBoolean(false); // TODO: Figure out
                    WriteString("");     //previewImage -> e.g; catalogue/pet_lion.png
                }
            }
            else
            {
                WriteInteger(0);
            }
            WriteInteger(-1);
            WriteBoolean(false);

            WriteInteger(PlusEnvironment.GetGame().GetCatalog().GetPromotions().ToList().Count);//Count
            foreach (CatalogPromotion Promotion in PlusEnvironment.GetGame().GetCatalog().GetPromotions().ToList())
            {
                WriteInteger(Promotion.Id);
                WriteString(Promotion.Title);
                WriteString(Promotion.Image);
                WriteInteger(Promotion.Unknown);
                WriteString(Promotion.PageLink);
                WriteInteger(Promotion.ParentId);
            }
        }
Beispiel #9
0
        public CatalogPageComposer(CatalogPage Page, string CataMode)
            : base(ServerPacketHeader.CatalogPageMessageComposer)
        {
            if (Page.Template.Equals("frontpage") || Page.Template.Equals("frontpage4"))
            {
                WriteFrontPage(Page, CataMode);
                return;
            }

            base.WriteInteger(Page.Id);
            base.WriteString(CataMode);
            base.WriteString(Page.Template);

            base.WriteInteger(Page.PageStrings1.Count);
            foreach (string s in Page.PageStrings1)
            {
                base.WriteString(s);
            }

            base.WriteInteger(Page.PageStrings2.Count);
            foreach (string s in Page.PageStrings2)
            {
                base.WriteString(s);
            }

            if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy") && !Page.Template.Equals("frontpage4"))
            {
                base.WriteInteger(Page.Items.Count);
                foreach (CatalogItem Item in Page.Items.Values)
                {
                    base.WriteInteger(Item.Id);
                    base.WriteString(Item.Name);
                    base.WriteBoolean(false);//IsRentable
                    base.WriteInteger(Item.CostCredits);

                    if (Item.CostDiamonds > 0)
                    {
                        base.WriteInteger(Item.CostDiamonds);
                        base.WriteInteger(5); // Diamonds
                    }
                    else
                    {
                        base.WriteInteger(Item.CostPixels);
                        base.WriteInteger(0); // Type of PixelCost
                    }

                    base.WriteBoolean(ItemUtility.CanGiftItem(Item));

                    if (Item.Data.InteractionType == InteractionType.DEAL)
                    {
                        foreach (CatalogDeal Deal in Page.Deals.Values)
                        {
                            base.WriteInteger(Deal.ItemDataList.Count);//Count

                            foreach (CatalogItem DealItem in Deal.ItemDataList.ToList())
                            {
                                base.WriteString(DealItem.Data.Type.ToString());
                                base.WriteInteger(DealItem.Data.SpriteId);
                                base.WriteString("");
                                base.WriteInteger(1);
                                base.WriteBoolean(false);
                            }
                            base.WriteInteger(0);//club_level
                            base.WriteBoolean(ItemUtility.CanSelectAmount(Item));
                            base.WriteBoolean(false);
                            base.WriteString(String.Empty);
                        }
                    }
                    else
                    {
                        base.WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);//Count 1 item if there is no badge, otherwise count as 2.
                        {
                            if (!string.IsNullOrEmpty(Item.Badge))
                            {
                                base.WriteString("b");
                                base.WriteString(Item.Badge);
                            }

                            base.WriteString(Item.Data.Type.ToString());
                            if (Item.Data.Type.ToString().ToLower() == "b")
                            {
                                //This is just a badge, append the name.
                                base.WriteString(Item.Data.ItemName);
                            }
                            else
                            {
                                base.WriteInteger(Item.Data.SpriteId);
                                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                                {
                                    base.WriteString(Item.Name.Split('_')[2]);
                                }
                                else if (Item.Data.InteractionType == InteractionType.BOT)//Bots
                                {
                                    CatalogBot CatalogBot = null;
                                    if (!PlusEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                                    {
                                        base.WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                                    }
                                    else
                                    {
                                        base.WriteString(CatalogBot.Figure);
                                    }
                                }
                                else if (Item.ExtraData != null)
                                {
                                    base.WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
                                }
                                base.WriteInteger(Item.Amount);
                                base.WriteBoolean(Item.IsLimited); // IsLimited
                                if (Item.IsLimited)
                                {
                                    base.WriteInteger(Item.LimitedEditionStack);
                                    base.WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                                }
                            }
                            base.WriteInteger(0); //club_level
                            base.WriteBoolean(ItemUtility.CanSelectAmount(Item));
                            base.WriteBoolean(false);
                            base.WriteString(String.Empty);
                        }
                    }
                }
            }
            else
            {
                base.WriteInteger(0);
            }
            base.WriteInteger(-1);
            base.WriteBoolean(false);
        }
Beispiel #10
0
        public CatalogOfferComposer(CatalogItem Item)
            : base(ServerPacketHeader.CatalogOfferMessageComposer)
        {
            WriteInteger(Item.Id);
            WriteString(Item.Name);
            WriteBoolean(false);//IsRentable
            WriteInteger(Item.CostCredits);

            if (Item.CostDiamonds > 0)
            {
                WriteInteger(Item.CostDiamonds);
                WriteInteger(105); // Diamonds
            }
            else
            {
                WriteInteger(Item.CostDuckets);
                WriteInteger(0);
            }

            WriteBoolean(ItemUtility.CanGiftItem(Item));

            WriteInteger(string.IsNullOrEmpty(Item.Badge) || Item.Data.Type.ToString() == "b" ? 1 : 2);

            if (!string.IsNullOrEmpty(Item.Badge))
            {
                WriteString("b");
                WriteString(Item.Badge);
            }


            if (Item.Data.Type.ToString().ToLower() != "b")
            {
                WriteString(Item.Data.Type.ToString());
                WriteInteger(Item.Data.SpriteId);
                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                {
                    WriteString(Item.Name.Split('_')[2]);
                }
                else if (Item.Data.InteractionType == InteractionType.bot)//Bots
                {
                    CatalogBot CatalogBot = null;
                    if (!ButterflyEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                    {
                        WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                    }
                    else
                    {
                        WriteString(CatalogBot.Figure);
                    }
                }
                else
                {
                    WriteString("");
                }
                WriteInteger(Item.Amount);
                WriteBoolean(Item.IsLimited); // IsLimited
                if (Item.IsLimited)
                {
                    WriteInteger(Item.LimitedEditionStack);
                    WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                }
            }
            WriteInteger(0); //club_level
            WriteBoolean(ItemUtility.CanSelectAmount(Item));

            WriteBoolean(false); // TODO: Figure out
            WriteString("");     //previewImage -> e.g; catalogue/pet_lion.png
        }
        public CatalogPageComposer(CatalogPage Page, string CataMode)
            : base(ServerPacketHeader.CatalogPageMessageComposer)
        {
            base.WriteInteger(Page.Id);
            base.WriteString(CataMode);
            base.WriteString(Page.Template);

            base.WriteInteger(Page.PageStrings1.Count);
            foreach (string s in Page.PageStrings1)
            {
                base.WriteString(s);
            }

            base.WriteInteger(Page.PageStrings2.Count);
            foreach (string s in Page.PageStrings2)
            {
                base.WriteString(s);
            }

            if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy"))
            {
                /*if (Page.PredesignedItems != null)
                 * {
                 *  base.WriteInteger(Page.PredesignedItems.Items.Count);
                 *  foreach (var predesignedII in Page.PredesignedItems.Items)
                 *  {
                 *      var Item = Page.GetItem(Page.PredesignedItems.CatalogId);
                 *      base.WriteInteger(Item.Id);
                 *      base.WriteString(Item.Name);
                 *      base.WriteBoolean(false);
                 *      base.WriteInteger(Item.CostCredits);
                 *      if (Item.CostDiamonds > 0)
                 *      {
                 *          base.WriteInteger(Item.CostDiamonds);
                 *          base.WriteInteger(5); // Diamonds
                 *      }
                 *      else if (Item.CostGOTWPoints > 0)
                 *      {
                 *          base.WriteInteger(Item.CostGOTWPoints);
                 *          base.WriteInteger(103); // Puntos de Honor
                 *      }
                 *      else
                 *      {
                 *          base.WriteInteger(Item.CostPixels);
                 *          base.WriteInteger(0); // Type of PixelCost
                 *      }
                 *
                 *      base.WriteBoolean(false);
                 *      base.WriteInteger(Page.PredesignedItems.Items.Count);
                 *      Console.WriteLine("cnt: " + Page.PredesignedItems.Items.Count);
                 *      foreach (var predesigned in Page.PredesignedItems.Items)
                 *      {
                 *          var predesignedItem = Page.GetItem(predesigned.Key);
                 *          Console.WriteLine("ide: " + predesigned.Key);
                 *          base.WriteString(predesignedItem.Data.Type.ToString());
                 *          base.WriteInteger(predesignedItem.Data.SpriteId);
                 *          base.WriteString(string.Empty);
                 *          base.WriteInteger(predesigned.Value);//amount
                 *          base.WriteBoolean(false);
                 *      }
                 *
                 *      base.WriteInteger(0);
                 *      base.WriteBoolean(false);
                 *  }
                 * }*/
                /*else
                 * {*/
                base.WriteInteger(Page.Items.Count);
                foreach (var Item in Page.Items.Values)
                {
                    base.WriteInteger(Item.Id);
                    base.WriteString(Item.Name);
                    base.WriteBoolean(false);//IsRentable
                    base.WriteInteger(Item.CostCredits);

                    if (Item.CostDiamonds > 0)
                    {
                        base.WriteInteger(Item.CostDiamonds);
                        base.WriteInteger(5); // Diamonds
                    }
                    else if (Item.CostGOTWPoints > 0)
                    {
                        base.WriteInteger(Item.CostGOTWPoints);
                        base.WriteInteger(103); // Puntos de Honor
                    }

                    else if (Item.CostPumpkins > 0)
                    {
                        base.WriteInteger(Item.CostPumpkins);
                        base.WriteInteger(104); // Calabazas
                    }

                    else
                    {
                        base.WriteInteger(Item.CostPixels);
                        base.WriteInteger(0); // Type of PixelCost
                    }

                    base.WriteBoolean(Item.PredesignedId > 0 ? false : ItemUtility.CanGiftItem(Item));
                    if (Item.PredesignedId > 0)
                    {
                        base.WriteInteger(Page.PredesignedItems.Items.Count);
                        foreach (var predesigned in Page.PredesignedItems.Items.ToList())
                        {
                            ItemData Data = null;
                            if (QuasarEnvironment.GetGame().GetItemManager().GetItem(predesigned.Key, out Data))
                            {
                            }
                            base.WriteString(Data.Type.ToString());
                            base.WriteInteger(Data.SpriteId);
                            base.WriteString(string.Empty);
                            base.WriteInteger(predesigned.Value);
                            base.WriteBoolean(false);
                        }

                        base.WriteInteger(0);
                        base.WriteBoolean(false);
                        base.WriteBoolean(true); // Niu Rilí
                        base.WriteString("");    // Niu Rilí
                    }
                    else if (Page.Deals.Count > 0)
                    {
                        foreach (var Deal in Page.Deals.Values)
                        {
                            base.WriteInteger(Deal.ItemDataList.Count);
                            foreach (var DealItem in Deal.ItemDataList.ToList())
                            {
                                base.WriteString(DealItem.Data.Type.ToString());
                                base.WriteInteger(DealItem.Data.SpriteId);
                                base.WriteString(string.Empty);
                                base.WriteInteger(DealItem.Amount);
                                base.WriteBoolean(false);
                            }

                            base.WriteInteger(0);
                            base.WriteBoolean(false);
                        }
                    }
                    else
                    {
                        base.WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);//Count 1 item if there is no badge, otherwise count as 2.
                        {
                            if (!string.IsNullOrEmpty(Item.Badge))
                            {
                                base.WriteString("b");
                                base.WriteString(Item.Badge);
                            }

                            base.WriteString(Item.Data.Type.ToString());
                            if (Item.Data.Type.ToString().ToLower() == "b")
                            {
                                //This is just a badge, append the name.
                                base.WriteString(Item.Data.ItemName);
                            }
                            else
                            {
                                base.WriteInteger(Item.Data.SpriteId);
                                if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
                                {
                                    base.WriteString(Item.Name.Split('_')[2]);
                                }
                                else if (Item.Data.InteractionType == InteractionType.BOT)//Bots
                                {
                                    CatalogBot CatalogBot = null;
                                    if (!QuasarEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
                                    {
                                        base.WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
                                    }
                                    else
                                    {
                                        base.WriteString(CatalogBot.Figure);
                                    }
                                }
                                else if (Item.ExtraData != null)
                                {
                                    base.WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
                                }
                                base.WriteInteger(Item.Amount);
                                base.WriteBoolean(Item.IsLimited); // IsLimited
                                if (Item.IsLimited)
                                {
                                    base.WriteInteger(Item.LimitedEditionStack);
                                    base.WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
                                }
                            }
                            base.WriteInteger(0); //club_level
                            base.WriteBoolean(ItemUtility.CanSelectAmount(Item));

                            base.WriteBoolean(true); // Niu Rilí
                            base.WriteString("");    // Niu Rilí
                        }
                    }
                }
                /*}*/
            }
            else
            {
                base.WriteInteger(0);
            }
            base.WriteInteger(-1);
            base.WriteBoolean(false);

            if (Page.Template.Equals("frontpage4"))
            {
                ILog log = LogManager.GetLogger("Quasar.Core.ConsoleCommandHandler");
                try
                {
                    CatalogFrontPage frontpage = QuasarEnvironment.GetGame().getCatalogFrontPage();

                    var oneN   = frontpage._oneN;
                    var twoN   = frontpage._twoN;
                    var threeN = frontpage._threeN;
                    var fourN  = frontpage._fourN;

                    var oneI   = frontpage._oneI;
                    var twoI   = frontpage._twoI;
                    var threeI = frontpage._threeI;
                    var fourI  = frontpage._fourI;

                    var onePL   = frontpage._onePL;
                    var twoPL   = frontpage._twoPL;
                    var threePL = frontpage._threePL;
                    var fourPL  = frontpage._fourPL;

                    base.WriteInteger(4);

                    base.WriteInteger(1);
                    base.WriteString(oneN);
                    base.WriteString(oneI);
                    base.WriteInteger(0);
                    base.WriteString(onePL);
                    base.WriteInteger(0);

                    base.WriteInteger(2);
                    base.WriteString(twoN);
                    base.WriteString(twoI);
                    base.WriteInteger(0);
                    base.WriteString(twoPL);
                    base.WriteInteger(0);

                    base.WriteInteger(3);
                    base.WriteString(threeN);
                    base.WriteString(threeI);
                    base.WriteInteger(0);
                    base.WriteString(threePL);
                    base.WriteInteger(0);

                    base.WriteInteger(4);
                    base.WriteString(fourN);
                    base.WriteString(fourI);
                    base.WriteInteger(0);
                    base.WriteString(fourPL);
                    base.WriteInteger(0);
                }
                catch (Exception e)
                {
                    string CurrentTime = DateTime.Now.ToString("HH:mm:ss" + " | ");
                    Console.WriteLine(CurrentTime + e.Message);

                    if (Page.Template.Equals("vip_buy"))
                    {
                        base.WriteInteger(0); //Page ID
                        base.WriteString("NORMAL");
                        base.WriteString("vip_buy");
                        base.WriteInteger(2);
                        base.WriteString("hc2_clubtitle");
                        base.WriteString("clubcat_pic");
                        base.WriteInteger(0); // Nueva Release
                        base.WriteInteger(0);
                        base.WriteInteger(-1);
                        base.WriteBoolean(false);

                        if (Page.Template.Equals("club_gifts"))
                        {
                            base.WriteString("club_gifts");
                            base.WriteInteger(1);
                            base.WriteString(Page.PageStrings2);
                            base.WriteInteger(1);
                            base.WriteString(Page.PageStrings2);
                        }
                    }
                }
            }
        }