using System; using System.Collections.Generic; using System.Linq; using System.Text; using DuckEmulator.HabboHotel.Outside.Messages.Types; using System.Data; using DuckEmulator.HabboHotel.Inside.Storage.MySql.Database.Interfaces; using DuckEmulator.HabboHotel.Outside.Habbos; namespace DuckEmulator.HabboHotel.Outside.Catalogue { class CataloguePage { private int Id; internal int ParentId; internal string Caption; internal bool Visible; internal bool Enabled; internal uint MinRank; internal bool ClubOnly; internal bool VipOnly; internal int IconColor; internal int IconImage; internal string Layout; internal string LayoutHeadline; internal string LayoutTeaser; internal string LayoutSpecial; internal string Text1; internal string Text2; internal string TextDetails; internal string TextTeaser; internal List Items; internal int PageId { get { return Id; } } internal CataloguePage(int mId, int mParentId, string mCaption, bool mVisible, bool mEnabled, uint mMinRank, bool mClubOnly, int mIconColor, int mIconImage, string mLayout, string mLayoutHeadline, string mLayoutTeaser, string mLayoutSpecial, string mText1, string mText2, string mTextDetails, string mTextTeaser, bool mVipOnly) { this.Id = mId; this.ParentId = mParentId; this.Caption = mCaption; this.Visible = mVisible; this.Enabled = mEnabled; this.MinRank = mMinRank; this.ClubOnly = mClubOnly; this.IconColor = mIconColor; this.IconImage = mIconImage; this.Layout = mLayout; this.LayoutHeadline = mLayoutHeadline; this.LayoutTeaser = mLayoutTeaser; this.LayoutSpecial = mLayoutSpecial; this.Text1 = mText1; this.Text2 = mText2; this.TextDetails = mTextDetails; this.TextTeaser = mTextTeaser; this.VipOnly = mVipOnly; this.LoadItems(); } internal void LoadItems() { Items = new List(); DataTable Data = null; using (IQueryAdapter Adapter = DuckEnvironment.GetAdapter()) { Adapter.setQuery("SELECT id,item_ids,catalog_name,cost_credits,cost_pixels,amount FROM catalog_items WHERE page_id = '" + Id + "' ORDER BY item_ids ASC"); Data = Adapter.getTable(); } if (Data == null) return; foreach (DataRow Row in Data.Rows) { CatalogueItem Item = new CatalogueItem( uint.Parse(Row["id"].ToString()), Id, uint.Parse(Row["item_ids"].ToString()), int.Parse(Row["cost_credits"].ToString()), int.Parse(Row["cost_pixels"].ToString()), int.Parse(Row["amount"].ToString())); Items.Add(Item); } } public void SerializeIndex(ServerMessage Message, HabboData Habbo) { Message.AppendBoolean(Visible); Message.AppendInt32(IconColor); Message.AppendInt32(IconImage); Message.AppendInt32(Id); Message.AppendStringWithBreak(Caption); Message.AppendInt32(DuckEnvironment.CatalogueManager.GetTreeCount(Id,Habbo)); // todo } internal void Serialize(ServerMessage Message) { Message.AppendInt32(Id); switch (Layout) { case "soundmachine": Message.AppendStringWithBreak("soundmachine"); Message.AppendInt32(2); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendStringWithBreak(LayoutTeaser); Message.AppendInt32(2); Message.AppendStringWithBreak(Text1); break; case "frontpage": Message.AppendStringWithBreak("frontpage3"); Message.AppendInt32(3); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendStringWithBreak(LayoutTeaser); Message.AppendStringWithBreak(""); Message.AppendInt32(11); Message.AppendStringWithBreak(Text1); Message.AppendStringWithBreak(""); Message.AppendStringWithBreak(Text2); Message.AppendStringWithBreak(TextDetails); Message.AppendStringWithBreak(""); Message.AppendStringWithBreak("#FAF8CC"); Message.AppendStringWithBreak("#FAF8CC"); Message.AppendStringWithBreak("Other ways to get more credits >"); Message.AppendStringWithBreak("magic.credits"); break; case "recycler_info": Message.AppendStringWithBreak(Layout); Message.AppendInt32(2); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendStringWithBreak(LayoutTeaser); Message.AppendInt32(3); Message.AppendStringWithBreak(Text1); Message.AppendStringWithBreak(Text2); Message.AppendStringWithBreak(TextDetails); break; case "recycler_prizes": // Ac@aArecycler_prizesIcatalog_recycler_headline3IDe Ecotron geeft altijd een van deze beloningen:H Message.AppendStringWithBreak("recycler_prizes"); Message.AppendInt32(1); Message.AppendStringWithBreak("catalog_recycler_headline3"); Message.AppendInt32(1); Message.AppendStringWithBreak(Text1); break; case "club_buy": //aAnFBclub_buyIhc2_clubtitleHH //IqPAYmQHABBO_CLUB_BASIC_1_MONTH{2}SCHHISGZvGSAPG[mQHABBO_CLUB_VIP_1_MONTH{2}QFHIISGZvGSAPGXnQHABBO_CLUB_VIP_3_MONTHS{2}POHIKQWZvGQBPGZmQHABBO_CLUB_BASIC_3_MONTHS{2}QKHHKQWZvGQBPG{1} Message.AppendStringWithBreak("club_buy"); Message.AppendInt32(1); Message.AppendStringWithBreak(LayoutHeadline); break; case "club_gifts": Message.AppendStringWithBreak("club_gifts"); Message.AppendInt32(1); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendInt32(1); Message.AppendStringWithBreak(Text1); break; case "spaces": Message.AppendStringWithBreak("spaces_new"); Message.AppendInt32(1); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendInt32(1); Message.AppendStringWithBreak(Text1); break; case "recycler": Message.AppendStringWithBreak(Layout); Message.AppendInt32(2); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendStringWithBreak(LayoutTeaser); Message.AppendInt32(1); Message.AppendStringWithBreak(Text1, 10); Message.AppendStringWithBreak(Text2); Message.AppendStringWithBreak(TextDetails); break; case "trophies": Message.AppendStringWithBreak("trophies"); Message.AppendInt32(1); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendInt32(2); Message.AppendStringWithBreak(Text1); Message.AppendStringWithBreak(TextDetails); break; case "pets": Message.AppendStringWithBreak("pets"); Message.AppendInt32(2); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendStringWithBreak(LayoutTeaser); Message.AppendInt32(4); Message.AppendStringWithBreak(Text1); Message.AppendStringWithBreak("Give a name:"); Message.AppendStringWithBreak("Pick a color:"); Message.AppendStringWithBreak("Pick a race:"); break; default: Message.AppendStringWithBreak(Layout); Message.AppendInt32(3); Message.AppendStringWithBreak(LayoutHeadline); Message.AppendStringWithBreak(LayoutTeaser); Message.AppendStringWithBreak(LayoutSpecial); Message.AppendInt32(3); Message.AppendStringWithBreak(Text1); Message.AppendStringWithBreak(TextDetails); Message.AppendStringWithBreak(TextTeaser); break; } Message.AppendInt32(Items.Count); foreach (CatalogueItem Item in Items) { Item.Serialize(Message); } } } }