public void RunTest() { int step = 1; Log.Step(step++, "Open main onliner page"); Onliner mainForm = new Onliner(); Log.Step(step++, "Go to catalog page"); mainForm.NavigateToCatalog(); Log.Step(step++, "Click TVsets link"); CatalogPage catalogForm = new CatalogPage(); catalogForm.NavigateToTVsets(); Log.Step(step++, "Set manufacturer search"); SearchResultPage TVpage = new SearchResultPage(); TVpage.SearchInManufacturer(); Log.Step(step++, "Set price and Year search"); TVpage.SearchInTextsRange(); Log.Step(step++, "Set diagonal search"); TVpage.SearchInSelectBoxesRange(); Log.Step(step++, "Get data for all models available at first page result"); TVpage.SearchInSelectBoxesRange(); Log.Step(step++, "Create list of model's description"); var tvs = TVpage.GetTvs(); Log.Step(step++, "Check that all collected values are correct"); foreach (var tv in tvs) { if ( _model !="") Assert.AreEqual(_model, tv.manufacturer,string.Concat("manufacturer ", _model, " is correct")); if (_diagonalLowerLimit != "") Assert.GreaterOrEqual(tv.diagonal,_diagonalLowerLimit, string.Concat("diagonal", tv.diagonal, "inside range ")); if (_diagonalUpperLimit != "") Assert.LessOrEqual(tv.diagonal, _diagonalUpperLimit, string.Concat("diagonal", tv.diagonal, "inside range ")); if (_priceUpperLimit != "") Assert.LessOrEqual(tv.price,_priceUpperLimit, string.Concat("price", tv.price, "inside range ")); if (_priceLowerLimit != "") Assert.GreaterOrEqual(tv.price, _priceLowerLimit, string.Concat("price", tv.price, "inside range ")); if (_YearLowerLimit != "") Assert.GreaterOrEqual(tv.year, _YearLowerLimit, string.Concat("Year ", tv.year, "inside range ")); if (_YearUpperLimit != "") Assert.LessOrEqual(tv.year, _YearLowerLimit, string.Concat("Year ", tv.year, "inside range ")); } }
public bool CanAccessPage(GameClient Session, CatalogPage Page) { if (Page.MinimumRank > 0) { if (Session.GetHabbo().Rank < Page.MinimumRank) { return(false); } } if (Page.MinimumVIP > 0) { if (Session.GetHabbo().VIPRank < Page.MinimumVIP) { return(false); } } return(true); }
public ServerMessage Handle(ValueHolder valueHolder = null) { CatalogPage page = valueHolder.GetValue <CatalogPage>("CatalogPage"); ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169); message.Init(r26Outgoing.CatalogPage); message.AppendString("i:" + page.PageID.ToString(), 13); message.AppendString("n:" + page.Caption, 13); message.AppendString("g:" + page.PageHeadline, 13); message.AppendString("h:" + page.PageText1, 13); message.AppendString("w:" + page.PageText2, 13); switch (page.PageLayout) { case "frontpage": { message.AppendString("l:ctlg_purse", 13); } break; case "default_3x3": { message.AppendString("l:ctlg_layout2", 13); } break; default: { message.AppendString("l:" + page.PageLayout, 13); } break; } foreach (CatalogItem item in page.Items.Values) { item.Serialize(message); } return(message); }
public static ServerMessage Compose(CatalogPage Page) { ServerMessage Message = new ServerMessage(OpcodesOut.CATALOG_PAGE); Message.AppendInt32(Page.Id); Message.AppendStringWithBreak(Page.Template); Message.AppendInt32(Page.PageStrings1.Count); foreach (string PageString in Page.PageStrings1) { Message.AppendStringWithBreak(PageString); } Message.AppendInt32(Page.PageStrings2.Count); foreach (string PageString in Page.PageStrings2) { Message.AppendStringWithBreak(PageString); } Message.AppendInt32(Page.Items.Count); foreach (CatalogItem Item in Page.Items) { Message.AppendUInt32(Item.Id); Message.AppendStringWithBreak(Item.DisplayName); Message.AppendInt32(Item.CostCredits); Message.AppendInt32(Item.CostActivityPoints); Message.AppendInt32(0); // other cost Message.AppendInt32(1); // unknown. Message.AppendStringWithBreak(Item.Definition.TypeLetter); Message.AppendUInt32(Item.Definition.SpriteId); Message.AppendStringWithBreak(Item.ShowPresetFlags ? Item.PresetFlags : string.Empty); // unknown Message.AppendInt32(Item.Amount); // amount Message.AppendInt32(-1); // unknown [for deals??] Message.AppendInt32(Item.ClubRestriction); // Added in RELEASE63-34159-34129-201106010852 } Message.AppendInt32(-1); return(Message); }
public void Parse(GameClient Session, ClientPacket Packet) { int PageId = Packet.PopInt(); int Something = Packet.PopInt(); string CataMode = Packet.PopString(); CatalogPage Page = null; BCCatalogPage BCPage = null; if (CataMode == "NORMAL") { if (!RavenEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page)) { return; } if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank&& Session.GetHabbo().Rank == 1)) { return; } Session.SendMessage(new CatalogPageComposer(Page, CataMode, Session)); } if (CataMode == "BUILDERS_CLUB") { if (!RavenEnvironment.GetGame().GetCatalog().TryGetBCPage(PageId, out BCPage)) { return; } if (!BCPage.Enabled || !BCPage.Visible || BCPage.MinimumRank > Session.GetHabbo().Rank || (BCPage.MinimumVIP > Session.GetHabbo().VIPRank&& Session.GetHabbo().Rank == 1)) { return; } Session.SendMessage(new BCCatalogPageComposer(BCPage, CataMode)); } Session.GetHabbo().lastLayout = Page.Template; }
public void P20_1_a18_Self_Cancel_Enrollment_in_Classroom_Course_14435() { #region Login with learner and Cancel Enrollment for an Enrolled Classroom Course //LoginPage.LoginAs("userreg_0403012001people1").WithPassword("").Login(); //_test.Log(Status.Pass, "Login as a Learner"); CommonSection.Learner.CurrentTraining(); _test.Log(Status.Info, "Open Current trainging Page"); CommonSection.SearchCatalog('"' + classroomcoursetitle + "_TC14432" + '"'); // ('"' + classroomcoursetitle + '"'); _test.Log(Status.Info, "Search course name as" + classroomcoursetitle + "_TC14432"); CatalogPage.ClickonSearchedCatalog(classroomcoursetitle + "_TC14432"); //("ClassRoomCourseTitle2011472447");// _test.Log(Status.Info, "Click on Course title"); // Assert.IsTrue(CatalogPage.GetCurrentEnrolledTraining(classroomcoursetitle+ "_TC14432"));// (classroomcoursetitle)); _test.Log(Status.Pass, "Enrolled classroom course is displaying"); //CurrentTrainings.ClickAction(); CatalogPage.CancelEnrollment_WithoutReason(); _test.Log(Status.Info, "Click on Cancel Enrollment"); Assert.IsTrue(ContentDetailsPage.isEnrollButtonDisplay());// CatalogPage.GetMessages()); _test.Log(Status.Pass, "Verify is Enroll button display"); #endregion }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { CatalogPage page = QuasarEnvironment.GetGame().GetCatalog().TryGetPageByTemplate("vip_buy"); if (page == null) { return; } ServerPacket Message = new ServerPacket(ServerPacketHeader.GetClubComposer); Message.WriteInteger(page.Items.Values.Count); foreach (CatalogItem catalogItem in page.Items.Values) { catalogItem.SerializeClub(Message, Session); } Message.WriteInteger(Packet.PopInt()); Session.SendMessage(Message); }
public void Parse(GameClient Session, ClientPacket Packet) { int PageId = Packet.PopInt(); int Something = Packet.PopInt(); string CataMode = Packet.PopString(); CatalogPage Page = null; if (!CloudServer.GetGame().GetCatalog().TryGetPage(PageId, out Page)) { return; } if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank&& Session.GetHabbo().Rank == 1)) { return; } Session.GetHabbo().lastLayout = Page.Template; Session.SendMessage(new CatalogPageComposer(Page, CataMode)); }
private void Append(ServerPacket message, CatalogPage catalogPage) { IList <CatalogPage> pages = Alias.Server.CatalogManager.GetCatalogPages(catalogPage.Id, _habbo); message.WriteBoolean(catalogPage.Visible); message.WriteInteger(catalogPage.Icon); message.WriteInteger(catalogPage.Enabled ? catalogPage.Id : -1); message.WriteString(catalogPage.Name); message.WriteString(catalogPage.Caption + " (" + catalogPage.Id + ")"); message.WriteInteger(catalogPage.OfferIds.Count); foreach (int offerId in catalogPage.OfferIds) { message.WriteInteger(offerId); } message.WriteInteger(pages.Count); foreach (CatalogPage page in pages) { Append(message, page); } }
public async IAsyncEnumerable<PackageMetadata> ReadPackageMetadata( HttpClient httpClient, CatalogPage catalogPage, [EnumeratorCancellation] CancellationToken cancellationToken = default, int maxConcurrentHttpCalls = 10) { using var throttler = new SemaphoreSlim(maxConcurrentHttpCalls); var tasks = new List<Task<PackageMetadata>>(); foreach (var item in catalogPage.Items.Where(p => p.Type == "nuget:PackageDetails")) { tasks.Add(this.GetMetadataForPackage(httpClient, item.Url, throttler, cancellationToken)); } while (tasks.Count > 0) { var done = await Task.WhenAny(tasks).ConfigureAwait(false); tasks.Remove(done); yield return await done .ConfigureAwait(false); } }
public void RunTest() { Log.Step(1); MainForm mainForm = new MainForm(); mainForm.AssertLogo(); Log.Step(2, string.Format("Go to the catalog of '{0}'!", _product)); mainForm.ClickNavigateLink(_product); Log.Step(3, (string.Format("Filter items by maximum price : '{0}'!", _tillPrice))); CatalogPage catalog = new CatalogPage(); catalog.Select_Till_Price_Parametr(_tillPrice); Log.Step(4); catalog.SortingItems("Дешевые"); catalog.AssertAscOrder(); Log.Step(5); catalog.SortingItems("Дорогие"); catalog.AssertDescOrder(); }
public async Task OnCatalogPageAsync(CatalogPage catalogPage) { var records = await _visitor.GetRecordsAsync(catalogPage); if (!records.Any()) { return; } var writeHeader = false; if (!File.Exists(_csvPath)) { Directory.CreateDirectory(Path.GetDirectoryName(_csvPath)); writeHeader = true; } using var stream = new FileStream(_csvPath, FileMode.Append); using var textWriter = new StreamWriter(stream); using var csvWriter = new CsvWriter(textWriter, CultureInfo.InvariantCulture); csvWriter.SetDefaultConfiguration(); csvWriter.Configuration.HasHeaderRecord = writeHeader; csvWriter.WriteRecords(records); }
public void CheckAddingToFavorites(int countOfProductsToAddToFavourites) { Logger.Log.Info("CheckAddingToFavorites"); int currentCountOfFavouriteProducts = countOfProductsToAddToFavourites; Catalog catalogForTest = CatalogCreator.withWomensScarves(); CatalogPage catalogPageCheckAddingToFavorites = new CatalogPage(driver); try { catalogPageCheckAddingToFavorites.OpenPage(catalogForTest.URL) .AcceptCookies(); currentCountOfFavouriteProducts = catalogPageCheckAddingToFavorites.GetNumberOfFavouriteProducts(); catalogPageCheckAddingToFavorites.AddProductsToFavourites(countOfProductsToAddToFavourites); currentCountOfFavouriteProducts = catalogPageCheckAddingToFavorites.GetNumberOfFavouriteProducts() - currentCountOfFavouriteProducts; } catch (Exception ex) { Logger.ErrorHandler(driver, ex); } Assert.AreEqual(countOfProductsToAddToFavourites, currentCountOfFavouriteProducts, "invalid favourite products count"); }
public void CheckProductCreationTest() { var loginPage = new LoginPage(webDriver); loginPage.Login("admin", "admin"); var administrationPage = new AdministrationPage(webDriver, wait); administrationPage.CatalogMenu.Click(); var catalogPage = new CatalogPage(webDriver, wait); var newProductName = catalogPage.CreateNewProduct(); var mainStorePage = new MainStorePage(webDriver, wait); mainStorePage.Load(); var ducksNames = mainStorePage.DucksList.Select(x => { var name = x.FindElement(By.ClassName("name")); return(name.Text); }).ToList(); Assert.Contains(newProductName, ducksNames); }
public static void Append(this ServerMessage message, CatalogPage page, Rank rank, CultureInfo lang) { message.AppendBool(page.Visible); message.AppendInteger(page.Icon); message.AppendInteger(page.Id); message.AppendString(page.Layout.Name); message.AppendString(page.Caption.Get(lang)); message.AppendInteger(page.Offers.Count); foreach (CatalogOffer item in page.Offers) { message.AppendInteger(item.Id); } IOrderedEnumerable <CatalogPage> sortedSubPages = page.Children.Where(x => x.MinRank <= rank).OrderBy(x => x.Id); message.AppendInteger(sortedSubPages.Count()); foreach (CatalogPage child in sortedSubPages) { message.Append(child, rank, lang); } }
protected void rpterPages_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { CatalogPage cp = (e.Item.DataItem as CatalogPage); HyperLink hl = (e.Item.FindControl("lnkGo") as HyperLink); hl.NavigateUrl = "/pagelist/view/default.aspx?Id=" + cp.ID; hl.Text = cp.Name; hl.ToolTip = string.Format("Ingresar al distribuidor {0}", cp.Name); (e.Item.FindControl("litParent") as Literal).Text = "N/D"; if (cp.Parent != null) { (e.Item.FindControl("litParent") as Literal).Text = cp.Parent.Name; } (e.Item.FindControl("litDescription") as Literal).Text = "N/D"; if (!string.IsNullOrEmpty(cp.Description)) { (e.Item.FindControl("litDescription") as Literal).Text = StringFormat.Cut(cp.Description, 32); } } }
private ICriteria GetDistributorsCriteria(string name, Country country, PriceList priceList, Lookup paymentTerm, DistributorStatus?status, GridState gridState, Lookup saleCondition, Lookup type, CatalogPage page, IList priceListIds, bool isActive) { ICriteria crit = GetCriteria(); if (priceListIds != null) { int[] intPriceListIds = new int[priceListIds.Count]; for (int i = 0; i < priceListIds.Count; i++) { intPriceListIds[i] = Convert.ToInt32(priceListIds[i]); } ICriteria critDistributor = crit.CreateCriteria("PriceList"); critDistributor.Add(Expression.In("ID", intPriceListIds)); } if (!string.IsNullOrEmpty(name)) { Disjunction d = new Disjunction(); d.Add(Expression.InsensitiveLike("Name", name, MatchMode.Anywhere)); d.Add(Expression.InsensitiveLike("Code", name, MatchMode.Anywhere)); crit.Add(d); } if (country != null) { ICriteria critCountry = crit.CreateCriteria("Country"); critCountry.Add(Expression.Eq("ID", country.ID)); } if (priceList != null) { ICriteria critPriceList = crit.CreateCriteria("PriceList"); critPriceList.Add(Expression.Eq("ID", priceList.ID)); } if (paymentTerm != null) { crit.Add(Expression.Eq("PaymentTerm", paymentTerm)); } if (status != null) { crit.Add(Expression.Eq("DistributorStatus", status)); } else if (isActive == false) { crit.Add(Expression.Eq("DistributorStatus", DistributorStatus.Active)); } if (saleCondition != null) { crit.Add(Expression.Eq("SaleConditions", saleCondition)); } if (type != null) { crit.Add(Expression.Eq("Type", type)); } if (page != null) { crit.CreateCriteria("PriceList").CreateCriteria("CategoryPages").Add(Expression.Eq("ID", page.ID)); } return(crit); }
public ServerMessage method_19(CatalogPage class48_0) { ServerMessage Message = new ServerMessage(127u); Message.AppendInt32(class48_0.Int32_0); string string_ = class48_0.string_1; switch (string_) { case "frontpage": Message.AppendStringWithBreak("frontpage3"); Message.AppendInt32(3); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendStringWithBreak(class48_0.string_3); Message.AppendStringWithBreak(""); Message.AppendInt32(11); Message.AppendStringWithBreak(class48_0.string_5); Message.AppendStringWithBreak(class48_0.string_9); Message.AppendStringWithBreak(class48_0.string_6); Message.AppendStringWithBreak(class48_0.string_7); Message.AppendStringWithBreak(class48_0.string_10); Message.AppendStringWithBreak("#FAF8CC"); Message.AppendStringWithBreak("#FAF8CC"); Message.AppendStringWithBreak("Read More >"); Message.AppendStringWithBreak("magic.credits"); goto IL_47F; case "recycler_info": Message.AppendStringWithBreak(class48_0.string_1); Message.AppendInt32(2); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendStringWithBreak(class48_0.string_3); Message.AppendInt32(3); Message.AppendStringWithBreak(class48_0.string_5); Message.AppendStringWithBreak(class48_0.string_6); Message.AppendStringWithBreak(class48_0.string_7); goto IL_47F; case "recycler_prizes": Message.AppendStringWithBreak("recycler_prizes"); Message.AppendInt32(1); Message.AppendStringWithBreak("catalog_recycler_headline3"); Message.AppendInt32(1); Message.AppendStringWithBreak(class48_0.string_5); goto IL_47F; case "spaces": Message.AppendStringWithBreak("spaces_new"); Message.AppendInt32(1); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendInt32(1); Message.AppendStringWithBreak(class48_0.string_5); goto IL_47F; case "recycler": Message.AppendStringWithBreak(class48_0.string_1); Message.AppendInt32(2); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendStringWithBreak(class48_0.string_3); Message.AppendInt32(1); Message.AppendStringWithBreak(class48_0.string_5, 10); Message.AppendStringWithBreak(class48_0.string_6); Message.AppendStringWithBreak(class48_0.string_7); goto IL_47F; case "trophies": Message.AppendStringWithBreak("trophies"); Message.AppendInt32(1); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendInt32(2); Message.AppendStringWithBreak(class48_0.string_5); Message.AppendStringWithBreak(class48_0.string_7); goto IL_47F; case "pets": Message.AppendStringWithBreak("pets"); Message.AppendInt32(2); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendStringWithBreak(class48_0.string_3); Message.AppendInt32(4); Message.AppendStringWithBreak(class48_0.string_5); Message.AppendStringWithBreak(""); Message.AppendStringWithBreak("Pick a color:"); Message.AppendStringWithBreak("Pick a race:"); goto IL_47F; case "club_buy": Message.AppendStringWithBreak("club_buy"); Message.AppendInt32(1); Message.AppendStringWithBreak("habboclub_2"); Message.AppendInt32(1); goto IL_47F; case "club_gifts": Message.AppendStringWithBreak("club_gifts"); Message.AppendInt32(1); Message.AppendStringWithBreak("habboclub_2"); Message.AppendInt32(1); Message.AppendStringWithBreak(""); Message.AppendInt32(1); goto IL_47F; case "soundmachine": Message.AppendStringWithBreak(class48_0.string_1); Message.AppendInt32(2); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendStringWithBreak(class48_0.string_3); Message.AppendInt32(2); Message.AppendStringWithBreak(class48_0.string_5); Message.AppendStringWithBreak(class48_0.string_7); goto IL_47F; } Message.AppendStringWithBreak(class48_0.string_1); Message.AppendInt32(3); Message.AppendStringWithBreak(class48_0.string_2); Message.AppendStringWithBreak(class48_0.string_3); Message.AppendStringWithBreak(class48_0.string_4); Message.AppendInt32(3); Message.AppendStringWithBreak(class48_0.string_5); Message.AppendStringWithBreak(class48_0.string_7); Message.AppendStringWithBreak(class48_0.string_8); IL_47F: Message.AppendInt32(class48_0.list_0.Count); foreach (CatalogItem current in class48_0.list_0) { current.method_1(Message); } return Message; }
public IList <Distributor> GetDistributors(string name, Country country, PriceList priceList, Lookup paymentTerm, DistributorStatus?status, GridState gridState, out int totalRecords, Lookup saleCondition, Lookup type, CatalogPage page) { ExecutePermissionValidator epv = new ExecutePermissionValidator(); epv.ClassType = typeof(PriceList); epv.KeyIdentifier = Config.SeePriceLists; bool CanSeeAll = PermissionManager.Check(epv); IList priceListIds = null; if (!CanSeeAll) { priceListIds = PermissionManager.GetPermissionIdentifiers(typeof(PriceList), PermissionAction.Create); } epv = new ExecutePermissionValidator(); epv.ClassType = typeof(Distributor); epv.KeyIdentifier = Config.DistributorInactiveStatus; bool isActive = PermissionManager.Check(epv); return(repository.GetDistributors(name, country, priceList, paymentTerm, status, gridState, out totalRecords, saleCondition, type, page, priceListIds, isActive)); }
private ICriteria GetDistributorsCriteria(string name, Country country, PriceList priceList, Lookup paymentTerm, DistributorStatus?status, GridState gridState, Incoterm?saleCondition, Lookup type, CatalogPage page) { ICriteria crit = GetCriteria(); ExecutePermissionValidator epv = new ExecutePermissionValidator(); epv.ClassType = typeof(Distributor); epv.KeyIdentifier = Config.SeeAllDistributors; if (PermissionManager.Check(epv) == false) { IList priceListIds = PermissionManager.GetPermissionIdentifiers(typeof(PriceList), PermissionAction.Create); int[] intPriceListIds = new int[priceListIds.Count]; for (int i = 0; i < priceListIds.Count; i++) { intPriceListIds[i] = Convert.ToInt32(priceListIds[i]); } ICriteria critDistributor = crit.CreateCriteria("PriceList"); critDistributor.Add(Expression.In("ID", intPriceListIds)); } if (!string.IsNullOrEmpty(name)) { Disjunction d = new Disjunction(); d.Add(Expression.InsensitiveLike("Name", name, MatchMode.Anywhere)); d.Add(Expression.InsensitiveLike("Code", name, MatchMode.Anywhere)); crit.Add(d); } if (country != null) { ICriteria critCountry = crit.CreateCriteria("Country"); critCountry.Add(Expression.Eq("ID", country.ID)); } if (priceList != null) { ICriteria critPriceList = crit.CreateCriteria("PriceList"); critPriceList.Add(Expression.Eq("ID", priceList.ID)); } if (paymentTerm != null) { crit.Add(Expression.Eq("PaymentTerm", paymentTerm)); } if (status != null) { crit.Add(Expression.Eq("DistributorStatus", status)); } else { epv = new ExecutePermissionValidator(); epv.ClassType = typeof(Distributor); epv.KeyIdentifier = Config.DistributorInactiveStatus; if (PermissionManager.Check(epv) == false) { crit.Add(Expression.Eq("DistributorStatus", DistributorStatus.Active)); } } if (saleCondition != null) { crit.Add(Expression.Eq("SaleConditions", saleCondition)); } if (type != null) { crit.Add(Expression.Eq("Type", type)); } if (page != null) { crit.CreateCriteria("PriceList").CreateCriteria("CategoryPages").Add(Expression.Eq("ID", page.ID)); } return(crit); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int PageId = Packet.PopInt(); int ItemId = Packet.PopInt(); string Data = Packet.PopString(); string GiftUser = StringCharFilter.Escape(Packet.PopString()); string GiftMessage = StringCharFilter.Escape(Packet.PopString().Replace(Convert.ToChar(5), ' ')); int SpriteId = Packet.PopInt(); int Ribbon = Packet.PopInt(); int Colour = Packet.PopInt(); bool dnow = Packet.PopBoolean(); if (PlusEnvironment.GetSettingsManager().TryGetValue("room.item.gifts.enabled") != "1") { Session.SendNotification("The hotel managers have disabled gifting"); return; } /*if (PlusEnvironment.GetGame().GetCatalog().CatalogFlatOffers.ContainsKey(ItemId) && PageId < 0) * { * PageId = PlusEnvironment.GetGame().GetCatalog().CatalogFlatOffers[ItemId]; * * CatalogPage P = null; * if (!PlusEnvironment.GetGame().GetCatalog().Pages.TryGetValue(PageId, out P)) * PageId = 0; * }*/ CatalogPage Page = null; if (!PlusEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page)) { return; } if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank&& Session.GetHabbo().Rank == 1)) { return; } CatalogItem Item = null; if (!Page.Items.TryGetValue(ItemId, out Item)) { if (Page.ItemOffers.ContainsKey(ItemId)) { Item = (CatalogItem)Page.ItemOffers[ItemId]; if (Item == null) { return; } } else { return; } } if (!ItemUtility.CanGiftItem(Item)) { return; } ItemData PresentData = null; if (!PlusEnvironment.GetGame().GetItemManager().GetGift(SpriteId, out PresentData) || PresentData.InteractionType != InteractionType.GIFT) { return; } if (Session.GetHabbo().Credits < Item.CostCredits) { Session.SendPacket(new PresentDeliverErrorMessageComposer(true, false)); return; } if (Session.GetHabbo().Duckets < Item.CostPixels) { Session.SendPacket(new PresentDeliverErrorMessageComposer(false, true)); return; } Habbo Habbo = PlusEnvironment.GetHabboByUsername(GiftUser); if (Habbo == null) { Session.SendPacket(new GiftWrappingErrorComposer()); return; } if (!Habbo.AllowGifts) { Session.SendNotification("Oops, this user doesn't allow gifts to be sent to them!"); return; } if ((DateTime.Now - Session.GetHabbo().LastGiftPurchaseTime).TotalSeconds <= 15.0) { Session.SendNotification("You're purchasing gifts too fast! Please wait 15 seconds!"); Session.GetHabbo().GiftPurchasingWarnings += 1; if (Session.GetHabbo().GiftPurchasingWarnings >= 25) { Session.GetHabbo().SessionGiftBlocked = true; } return; } if (Session.GetHabbo().SessionGiftBlocked) { return; } string ED = GiftUser + Convert.ToChar(5) + GiftMessage + Convert.ToChar(5) + Session.GetHabbo().Id + Convert.ToChar(5) + Item.Data.Id + Convert.ToChar(5) + SpriteId + Convert.ToChar(5) + Ribbon + Convert.ToChar(5) + Colour; int NewItemId = 0; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { //Insert the dummy item. dbClient.SetQuery("INSERT INTO `items` (`base_item`,`user_id`,`extra_data`) VALUES (@baseId, @habboId, @extra_data)"); dbClient.AddParameter("baseId", PresentData.Id); dbClient.AddParameter("habboId", Habbo.Id); dbClient.AddParameter("extra_data", ED); NewItemId = Convert.ToInt32(dbClient.InsertQuery()); string ItemExtraData = null; switch (Item.Data.InteractionType) { case InteractionType.NONE: ItemExtraData = ""; break; #region Pet handling case InteractionType.PET: try { string[] Bits = Data.Split('\n'); string PetName = Bits[0]; string Race = Bits[1]; string Color = Bits[2]; int.Parse(Race); // to trigger any possible errors if (PetUtility.CheckPetName(PetName)) { return; } if (Race.Length > 2) { return; } if (Color.Length != 6) { return; } PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PetLover", 1); } catch { return; } break; #endregion case InteractionType.FLOOR: case InteractionType.WALLPAPER: case InteractionType.LANDSCAPE: Double Number = 0; try { if (string.IsNullOrEmpty(Data)) { Number = 0; } else { Number = Double.Parse(Data, PlusEnvironment.CultureInfo); } } catch { } ItemExtraData = Number.ToString().Replace(',', '.'); break; // maintain extra data // todo: validate case InteractionType.POSTIT: ItemExtraData = "FFFF33"; break; case InteractionType.MOODLIGHT: ItemExtraData = "1,1,1,#000000,255"; break; case InteractionType.TROPHY: ItemExtraData = Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) + Data; break; case InteractionType.MANNEQUIN: ItemExtraData = "m" + Convert.ToChar(5) + ".ch-210-1321.lg-285-92" + Convert.ToChar(5) + "Default Mannequin"; break; case InteractionType.BADGE_DISPLAY: if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Data)) { Session.SendPacket(new BroadcastMessageAlertComposer("Oops, it appears that you do not own this badge.")); return; } ItemExtraData = Data + Convert.ToChar(9) + Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year; break; default: ItemExtraData = Data; break; } //Insert the present, forever. dbClient.SetQuery("INSERT INTO `user_presents` (`item_id`,`base_id`,`extra_data`) VALUES (@itemId, @baseId, @extra_data)"); dbClient.AddParameter("itemId", NewItemId); dbClient.AddParameter("baseId", Item.Data.Id); dbClient.AddParameter("extra_data", (string.IsNullOrEmpty(ItemExtraData) ? "" : ItemExtraData)); dbClient.RunQuery(); //Here we're clearing up a record, this is dumb, but okay. dbClient.SetQuery("DELETE FROM `items` WHERE `id` = @deleteId LIMIT 1"); dbClient.AddParameter("deleteId", NewItemId); dbClient.RunQuery(); } Item GiveItem = ItemFactory.CreateGiftItem(PresentData, Habbo, ED, ED, NewItemId, 0, 0); if (GiveItem != null) { GameClient Receiver = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Habbo.Id); if (Receiver != null) { Receiver.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem); Receiver.SendPacket(new FurniListNotificationComposer(GiveItem.Id, 1)); Receiver.SendPacket(new PurchaseOKComposer()); Receiver.SendPacket(new FurniListAddComposer(GiveItem)); Receiver.SendPacket(new FurniListUpdateComposer()); } if (Habbo.Id != Session.GetHabbo().Id&& !string.IsNullOrWhiteSpace(GiftMessage)) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_GiftGiver", 1); if (Receiver != null) { PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Receiver, "ACH_GiftReceiver", 1); } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.GIFT_OTHERS); } } Session.SendPacket(new PurchaseOKComposer(Item, PresentData)); if (Item.CostCredits > 0) { Session.GetHabbo().Credits -= Item.CostCredits; Session.SendPacket(new CreditBalanceComposer(Session.GetHabbo().Credits)); } if (Item.CostPixels > 0) { Session.GetHabbo().Duckets -= Item.CostPixels; Session.SendPacket(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Duckets)); } Session.GetHabbo().LastGiftPurchaseTime = DateTime.Now; }
/// <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); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int PageId = Packet.PopInt(); int ItemId = Packet.PopInt(); string Data = Packet.PopString(); string GiftUser = StringCharFilter.Escape(Packet.PopString()); string GiftMessage = StringCharFilter.Escape(Packet.PopString().Replace(Convert.ToChar(5), ' ')); int SpriteId = Packet.PopInt(); int Ribbon = Packet.PopInt(); int Colour = Packet.PopInt(); bool dnow = Packet.PopBoolean(); if (QuasarEnvironment.GetDBConfig().DBData["gifts_enabled"] != "1") { Session.SendNotification("Het sturen van cadeau's is tijdelijk uitgeschakeld door het Hotel Management."); return; } /*if (QuasarEnvironment.GetGame().GetCatalog().CatalogFlatOffers.ContainsKey(ItemId) && PageId < 0) * { * PageId = QuasarEnvironment.GetGame().GetCatalog().CatalogFlatOffers[ItemId]; * * CatalogPage P = null; * if (!QuasarEnvironment.GetGame().GetCatalog().Pages.TryGetValue(PageId, out P)) * PageId = 0; * }*/ CatalogPage Page = null; if (!QuasarEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page)) { return; } if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank) /*|| (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))*/ { return; } CatalogItem Item = null; if (!Page.Items.TryGetValue(ItemId, out Item)) { if (Page.ItemOffers.ContainsKey(ItemId)) { Item = (CatalogItem)Page.ItemOffers[ItemId]; if (Item == null) { return; } } else { return; } } if (!ItemUtility.CanGiftItem(Item)) { return; } ItemData PresentData = null; if (!QuasarEnvironment.GetGame().GetItemManager().GetGift(SpriteId, out PresentData) || PresentData.InteractionType != InteractionType.GIFT) { return; } if (Session.GetHabbo().Credits < Item.CostCredits) { Session.SendMessage(new PresentDeliverErrorMessageComposer(true, false)); return; } if (Session.GetHabbo().Duckets < Item.CostPixels) { Session.SendMessage(new PresentDeliverErrorMessageComposer(false, true)); return; } Habbo Habbo = QuasarEnvironment.GetHabboByUsername(GiftUser); if (Habbo == null) { Session.SendMessage(new GiftWrappingErrorComposer()); return; } if (!Habbo.AllowGifts) { Session.SendNotification("Oeps! Je kan geen cadeau's sturen naar deze Habbis."); return; } if (Session.GetHabbo().Rank < 4) { if ((DateTime.Now - Session.GetHabbo().LastGiftPurchaseTime).TotalSeconds <= 10.0) { Session.SendNotification("Oeps! Wacht minstens 10 seconden tussen het kopen van cadeau's."); return; } } if (Session.GetHabbo().SessionGiftBlocked) { return; } string ED = GiftUser + Convert.ToChar(5) + GiftMessage + Convert.ToChar(5) + Session.GetHabbo().Id + Convert.ToChar(5) + Item.Data.Id + Convert.ToChar(5) + SpriteId + Convert.ToChar(5) + Ribbon + Convert.ToChar(5) + Colour; int NewItemId = 0; using (IQueryAdapter dbClient = QuasarEnvironment.GetDatabaseManager().GetQueryReactor()) { //Insert the dummy item. dbClient.SetQuery("INSERT INTO `items` (`base_item`,`user_id`,`extra_data`) VALUES ('" + PresentData.Id + "', '" + Habbo.Id + "', @extra_data)"); dbClient.AddParameter("extra_data", ED); NewItemId = Convert.ToInt32(dbClient.InsertQuery()); string ItemExtraData = null; switch (Item.Data.InteractionType) { case InteractionType.NONE: ItemExtraData = ""; break; #region Pet handling case InteractionType.pet0: // Hond case InteractionType.pet1: // Kat case InteractionType.pet2: // Krokodillen case InteractionType.pet3: // Terriers case InteractionType.pet4: // Beren case InteractionType.pet5: // Varkens case InteractionType.pet6: // Leeuwen case InteractionType.pet7: // Neushoorns case InteractionType.pet8: // Spinnen case InteractionType.pet9: // Schildpadden case InteractionType.pet10: // Kuikens case InteractionType.pet11: // Kikkers case InteractionType.pet12: // Draken case InteractionType.pet13: // Slenderman case InteractionType.pet14: // Apen case InteractionType.pet15: // Paarden case InteractionType.pet16: // Monsterplanten case InteractionType.pet17: // Konijnen case InteractionType.pet18: // Evil Konijnen case InteractionType.pet19: // Depressieve Konijnen case InteractionType.pet20: // Liefdes Konijnen case InteractionType.pet21: // Witte Duiven case InteractionType.pet22: // Zwarte Duiven case InteractionType.pet23: // Rode Aap case InteractionType.pet24: // Baby Beertjes case InteractionType.pet25: // Baby Terriers case InteractionType.pet26: // Kabouters case InteractionType.pet27: // Baby's case InteractionType.pet28: // Baby Beertjes case InteractionType.pet29: // Baby Terriers case InteractionType.pet30: // Kabouters case InteractionType.pet31: // Oempa Loempa's case InteractionType.pet32: // Stenen case InteractionType.pet33: // Pterodactylussen case InteractionType.pet34: // Velociraptors case InteractionType.pet35: // Wolven case InteractionType.pet36: // Monster Konijnen case InteractionType.pet37: // Pickachu case InteractionType.pet38: // Pinguins case InteractionType.pet39: // Mario case InteractionType.pet40: // Olifanten case InteractionType.pet41: // Alien Konijnen case InteractionType.pet42: // Gouden Konijnen case InteractionType.pet43: // Roze Mewtwo case InteractionType.pet44: // Entei case InteractionType.pet45: // Blauwe Mewtwo case InteractionType.pet46: // Cavia case InteractionType.pet47: // Uil case InteractionType.pet48: // Goude Mewtwo case InteractionType.pet49: // Eend case InteractionType.pet50: // Baby Bruin case InteractionType.pet51: // Baby Wit case InteractionType.pet52: // Dino case InteractionType.pet53: // Yoshi case InteractionType.pet54: // Koe case InteractionType.pet55: // Pokémon: Gengar case InteractionType.pet56: // Pokémon: Gengar case InteractionType.pet57: // Pokémon: Gengar case InteractionType.pet58: // Pokémon: Gengar case InteractionType.pet59: // Pokémon: Gengar case InteractionType.pet60: // Pokémon: Gengar case InteractionType.pet61: // Pokémon: Gengar case InteractionType.pet62: // Pokémon: Gengar case InteractionType.pet63: // Pokémon: Gengar case InteractionType.pet64: // Pokémon: Gengar case InteractionType.pet65: // Pokémon: Gengar case InteractionType.pet66: // Pokémon: Gengar case InteractionType.pet67: // Pokémon: Gengar case InteractionType.pet68: // Pokémon: Gengar case InteractionType.pet69: // Pokémon: Gengar case InteractionType.pet70: // Pokémon: Gengar try { string[] Bits = Data.Split('\n'); string PetName = Bits[0]; string Race = Bits[1]; string Color = Bits[2]; int.Parse(Race); // to trigger any possible errors if (PetUtility.CheckPetName(PetName)) { return; } if (Race.Length > 2) { return; } if (Color.Length != 6) { return; } QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PetLover", 1); } catch { return; } break; #endregion case InteractionType.FLOOR: case InteractionType.WALLPAPER: case InteractionType.LANDSCAPE: Double Number = 0; try { if (string.IsNullOrEmpty(Data)) { Number = 0; } else { Number = Double.Parse(Data, QuasarEnvironment.CultureInfo); } } catch { } ItemExtraData = Number.ToString().Replace(',', '.'); break; // maintain extra data // todo: validate case InteractionType.POSTIT: ItemExtraData = "FFFF33"; break; case InteractionType.MOODLIGHT: ItemExtraData = "1,1,1,#000000,255"; break; case InteractionType.TROPHY: ItemExtraData = Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) + Data; break; case InteractionType.MANNEQUIN: ItemExtraData = "m" + Convert.ToChar(5) + ".ch-210-1321.lg-285-92" + Convert.ToChar(5) + "Default Maniqui"; break; case InteractionType.BADGE_DISPLAY: if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Data)) { Session.SendMessage(new BroadcastMessageAlertComposer("Oeps! Je kan deze badge niet in een vitrine zetteno omdat je deze badge niet in je bezit hebt.")); return; } ItemExtraData = Data + Convert.ToChar(9) + Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year; break; default: ItemExtraData = Data; break; } //Insert the present, forever. dbClient.SetQuery("INSERT INTO `user_presents` (`item_id`,`base_id`,`extra_data`) VALUES ('" + NewItemId + "', '" + Item.Data.Id + "', @extra_data)"); dbClient.AddParameter("extra_data", (string.IsNullOrEmpty(ItemExtraData) ? "" : ItemExtraData)); dbClient.RunQuery(); //Here we're clearing up a record, this is dumb, but okay. dbClient.RunQuery("DELETE FROM `items` WHERE `id` = " + NewItemId + " LIMIT 1;"); } Item GiveItem = ItemFactory.CreateGiftItem(PresentData, Habbo, ED, ED, NewItemId, 0, 0); if (GiveItem != null) { GameClient Receiver = QuasarEnvironment.GetGame().GetClientManager().GetClientByUserID(Habbo.Id); if (Receiver != null) { if (Receiver.GetHabbo().Rank <= 5) { Session.SendMessage(new RoomCustomizedAlertComposer("Je hebt een cadeau ontvangen van " + Session.GetHabbo().Username + ".")); } { Receiver.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem); Receiver.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1)); Receiver.SendMessage(new PurchaseOKComposer()); Receiver.SendMessage(new FurniListAddComposer(GiveItem)); Receiver.SendMessage(new FurniListUpdateComposer()); } } QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_GiftGiver", 1); QuasarEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Receiver, "ACH_GiftReceiver", 1); QuasarEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.GIFT_OTHERS); Session.SendMessage(new RoomCustomizedAlertComposer("Je cadeau is ingepakt en verzonden!")); } Session.SendMessage(new PurchaseOKComposer(Item, PresentData)); if (Item.CostCredits > 0) { Session.GetHabbo().Credits -= Item.CostCredits; Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } if (Item.CostPixels > 0) { Session.GetHabbo().Duckets -= Item.CostPixels; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Duckets)); } Session.GetHabbo().LastGiftPurchaseTime = DateTime.Now; }
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)); } } } }
public void Handle(GameClient Session, ClientMessage Event) { CatalogPage @class = GoldTree.GetGame().GetCatalog().method_5(Event.PopWiredInt32()); if (@class != null && @class.bool_1 && @class.bool_0 && @class.uint_0 <= Session.GetHabbo().Rank) { if (@class.bool_2 && !Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_club")) { Session.SendNotif("This page is for GoldTree Club members only!"); } else { Session.SendMessage(@class.message5_0); if (@class.string_1 == "recycler") { ServerMessage Message = new ServerMessage(507u); Message.AppendBoolean(true); Message.AppendBoolean(false); Session.SendMessage(Message); } else { if (@class.string_1 == "club_buy") { ServerMessage Message2 = new ServerMessage(625u); if (Session.GetHabbo().Vip) { Message2.AppendInt32(2); Message2.AppendInt32(4535); Message2.AppendStringWithBreak("HABBO_CLUB_VIP_1_MONTH"); Message2.AppendInt32(25); Message2.AppendInt32(0); Message2.AppendInt32(1); Message2.AppendInt32(1); Message2.AppendInt32(101); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Year); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Month); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Day); Message2.AppendInt32(4536); Message2.AppendStringWithBreak("HABBO_CLUB_VIP_3_MONTHS"); Message2.AppendInt32(60); Message2.AppendInt32(0); Message2.AppendInt32(1); Message2.AppendInt32(3); Message2.AppendInt32(163); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Year); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Month); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Day); } else { Message2.AppendInt32(4); Message2.AppendInt32(4533); Message2.AppendStringWithBreak("HABBO_CLUB_BASIC_1_MONTH"); Message2.AppendInt32(15); Message2.AppendInt32(0); Message2.AppendInt32(0); Message2.AppendInt32(1); Message2.AppendInt32(31); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Year); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Month); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Day); Message2.AppendInt32(4534); Message2.AppendStringWithBreak("HABBO_CLUB_BASIC_3_MONTHS"); Message2.AppendInt32(45); Message2.AppendInt32(0); Message2.AppendInt32(0); Message2.AppendInt32(3); Message2.AppendInt32(93); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Year); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Month); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Day); Message2.AppendInt32(4535); Message2.AppendStringWithBreak("HABBO_CLUB_VIP_1_MONTH"); Message2.AppendInt32(25); Message2.AppendInt32(0); Message2.AppendInt32(1); Message2.AppendInt32(1); Message2.AppendInt32(101); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Year); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Month); Message2.AppendInt32(DateTime.Today.AddDays(30.0).Day); Message2.AppendInt32(4536); Message2.AppendStringWithBreak("HABBO_CLUB_VIP_3_MONTHS"); Message2.AppendInt32(60); Message2.AppendInt32(0); Message2.AppendInt32(1); Message2.AppendInt32(3); Message2.AppendInt32(163); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Year); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Month); Message2.AppendInt32(DateTime.Today.AddDays(90.0).Day); } Session.SendMessage(Message2); } } } } }
public void Parse(GameClient Session, ClientPacket Packet) { if (PlusEnvironment.GetDBConfig().DBData["catalogue_enabled"] != "1") { Session.SendNotification("The hotel managers have disabled the catalogue"); return; } int PageId = Packet.PopInt(); int ItemId = Packet.PopInt(); string ExtraData = Packet.PopString(); int Amount = Packet.PopInt(); CatalogPage Page = null; if (!PlusEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page)) { return; } if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank&& Session.GetHabbo().Rank == 1)) { return; } CatalogItem Item = null; if (!Page.Items.TryGetValue(ItemId, out Item)) { if (Page.ItemOffers.ContainsKey(ItemId)) { Item = (CatalogItem)Page.ItemOffers[ItemId]; if (Item == null) { return; } } else { return; } } if (Amount < 1 || Amount > 100 || !Item.HaveOffer) { Amount = 1; } int AmountPurchase = Item.Amount > 1 ? Item.Amount : Amount; int TotalCreditsCost = Amount > 1 ? ((Item.CostCredits * Amount) - ((int)Math.Floor((double)Amount / 6) * Item.CostCredits)) : Item.CostCredits; int TotalPixelCost = Amount > 1 ? ((Item.CostPixels * Amount) - ((int)Math.Floor((double)Amount / 6) * Item.CostPixels)) : Item.CostPixels; int TotalDiamondCost = Amount > 1 ? ((Item.CostDiamonds * Amount) - ((int)Math.Floor((double)Amount / 6) * Item.CostDiamonds)) : Item.CostDiamonds; if (Session.GetHabbo().Credits < TotalCreditsCost || Session.GetHabbo().Duckets < TotalPixelCost || Session.GetHabbo().Diamonds < TotalDiamondCost) { return; } int LimitedEditionSells = 0; int LimitedEditionStack = 0; #region Create the extradata switch (Item.Data.InteractionType) { case InteractionType.NONE: ExtraData = ""; break; case InteractionType.GUILD_ITEM: case InteractionType.GUILD_GATE: break; #region Pet handling case InteractionType.pet0: case InteractionType.pet1: case InteractionType.pet2: case InteractionType.pet3: case InteractionType.pet4: case InteractionType.pet5: case InteractionType.pet6: case InteractionType.pet7: case InteractionType.pet8: case InteractionType.pet9: case InteractionType.pet10: case InteractionType.pet11: case InteractionType.pet12: case InteractionType.pet13: //Caballo case InteractionType.pet14: case InteractionType.pet15: case InteractionType.pet16: //Mascota agregada case InteractionType.pet17: //Mascota agregada case InteractionType.pet18: //Mascota agregada case InteractionType.pet19: //Mascota agregada case InteractionType.pet20: //Mascota agregada case InteractionType.pet21: //Mascota agregada case InteractionType.pet22: //Mascota agregada case InteractionType.pet28: case InteractionType.pet29: case InteractionType.pet30: try { string[] Bits = ExtraData.Split('\n'); string PetName = Bits[0]; string Race = Bits[1]; string Color = Bits[2]; int.Parse(Race); // to trigger any possible errors if (!PetUtility.CheckPetName(PetName)) { return; } if (Race.Length > 2) { return; } if (Color.Length != 6) { return; } PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PetLover", 1); } catch (Exception e) { Logging.LogException(e.ToString()); return; } break; #endregion case InteractionType.FLOOR: case InteractionType.WALLPAPER: case InteractionType.LANDSCAPE: Double Number = 0; try { if (string.IsNullOrEmpty(ExtraData)) { Number = 0; } else { Number = Double.Parse(ExtraData, PlusEnvironment.CultureInfo); } } catch (Exception e) { Logging.HandleException(e, "Catalog.HandlePurchase: " + ExtraData); } ExtraData = Number.ToString().Replace(',', '.'); break; // maintain extra data // todo: validate case InteractionType.POSTIT: ExtraData = "FFFF33"; break; case InteractionType.MOODLIGHT: ExtraData = "1,1,1,#000000,255"; break; case InteractionType.TROPHY: ExtraData = Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) + ExtraData; break; case InteractionType.MANNEQUIN: ExtraData = "m" + Convert.ToChar(5) + ".ch-210-1321.lg-285-92" + Convert.ToChar(5) + "Default Mannequin"; break; case InteractionType.BADGE_DISPLAY: if (!Session.GetHabbo().GetBadgeComponent().HasBadge(ExtraData)) { Session.SendMessage(new BroadcastMessageAlertComposer("Oops, it appears that you do not own this badge.")); return; } ExtraData = ExtraData + Convert.ToChar(9) + Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year; break; case InteractionType.BADGE: { if (Session.GetHabbo().GetBadgeComponent().HasBadge(Item.Data.ItemName)) { Session.SendMessage(new PurchaseErrorComposer(1)); return; } break; } default: ExtraData = ""; break; } #endregion if (Item.IsLimited) { if (Item.LimitedEditionStack <= Item.LimitedEditionSells) { Session.SendNotification("This item has sold out!\n\n" + "Please note, you have not recieved another item (You have also not been charged for it!)"); Session.SendMessage(new CatalogUpdatedComposer()); Session.SendMessage(new PurchaseOKComposer()); return; } Item.LimitedEditionSells++; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `catalog_items` SET `limited_sells` = '" + Item.LimitedEditionSells + "' WHERE `id` = '" + Item.Id + "' LIMIT 1"); LimitedEditionSells = Item.LimitedEditionSells; LimitedEditionStack = Item.LimitedEditionStack; } } if (Item.CostCredits > 0) { Session.GetHabbo().Credits -= TotalCreditsCost; Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } if (Item.CostPixels > 0) { Session.GetHabbo().Duckets -= TotalPixelCost; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Duckets));//Love you, Tom. } if (Item.CostDiamonds > 0) { Session.GetHabbo().Diamonds -= TotalDiamondCost; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, 0, 5)); } Item NewItem = null; switch (Item.Data.Type.ToString().ToLower()) { default: List <Item> GeneratedGenericItems = new List <Item>(); switch (Item.Data.InteractionType) { default: if (AmountPurchase > 1) { List <Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase); if (Items != null) { GeneratedGenericItems.AddRange(Items); } } else { NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData, 0, LimitedEditionSells, LimitedEditionStack); if (NewItem != null) { GeneratedGenericItems.Add(NewItem); } } break; case InteractionType.GUILD_GATE: case InteractionType.GUILD_ITEM: case InteractionType.GUILD_FORUM: if (AmountPurchase > 1) { List <Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase, Convert.ToInt32(ExtraData)); if (Items != null) { GeneratedGenericItems.AddRange(Items); } } else { NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData, Convert.ToInt32(ExtraData)); if (NewItem != null) { GeneratedGenericItems.Add(NewItem); } } break; case InteractionType.ARROW: case InteractionType.TELEPORT: for (int i = 0; i < AmountPurchase; i++) { List <Item> TeleItems = ItemFactory.CreateTeleporterItems(Item.Data, Session.GetHabbo()); if (TeleItems != null) { GeneratedGenericItems.AddRange(TeleItems); } } break; case InteractionType.MOODLIGHT: { if (AmountPurchase > 1) { List <Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase); if (Items != null) { GeneratedGenericItems.AddRange(Items); foreach (Item I in Items) { ItemFactory.CreateMoodlightData(I); } } } else { NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData); if (NewItem != null) { GeneratedGenericItems.Add(NewItem); ItemFactory.CreateMoodlightData(NewItem); } } } break; case InteractionType.TONER: { if (AmountPurchase > 1) { List <Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase); if (Items != null) { GeneratedGenericItems.AddRange(Items); foreach (Item I in Items) { ItemFactory.CreateTonerData(I); } } } else { NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData); if (NewItem != null) { GeneratedGenericItems.Add(NewItem); ItemFactory.CreateTonerData(NewItem); } } } break; case InteractionType.DEAL: { //Fetch the deal where the ID is this items ID. var DealItems = (from d in Page.Deals.Values.ToList() where d.Id == Item.Id select d); //This bit, iterating ONE item? How can I make this simpler foreach (CatalogDeal DealItem in DealItems) { //Here I loop the DealItems ItemDataList. foreach (CatalogItem CatalogItem in DealItem.ItemDataList.ToList()) { List <Item> Items = ItemFactory.CreateMultipleItems(CatalogItem.Data, Session.GetHabbo(), "", AmountPurchase); if (Items != null) { GeneratedGenericItems.AddRange(Items); } } } break; } } foreach (Item PurchasedItem in GeneratedGenericItems) { if (Session.GetHabbo().GetInventoryComponent().TryAddItem(PurchasedItem)) { //Session.SendMessage(new FurniListAddComposer(PurchasedItem)); Session.SendMessage(new FurniListNotificationComposer(PurchasedItem.Id, 1)); } } break; case "e": AvatarEffect Effect = null; if (Session.GetHabbo().Effects().HasEffect(Item.Data.SpriteId)) { Effect = Session.GetHabbo().Effects().GetEffectNullable(Item.Data.SpriteId); if (Effect != null) { Effect.AddToQuantity(); } } else { Effect = AvatarEffectFactory.CreateNullable(Session.GetHabbo(), Item.Data.SpriteId, 3600); } if (Effect != null) // && Session.GetHabbo().Effects().TryAdd(Effect)) { Session.SendMessage(new AvatarEffectAddedComposer(Item.Data.SpriteId, 3600)); } break; case "r": Bot Bot = BotUtility.CreateBot(Item.Data, Session.GetHabbo().Id); if (Bot != null) { Session.GetHabbo().GetInventoryComponent().TryAddBot(Bot); Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots())); Session.SendMessage(new FurniListNotificationComposer(Bot.Id, 5)); } else { Session.SendNotification("Oops! There was an error whilst purchasing this bot. It seems that there is no bot data for the bot!"); } break; case "b": { Session.GetHabbo().GetBadgeComponent().GiveBadge(Item.Data.ItemName, true, Session); Session.SendMessage(new FurniListNotificationComposer(0, 4)); break; } case "p": { switch (Item.Data.InteractionType) { #region Pets #region Pet 0 case InteractionType.pet0: string[] PetData = ExtraData.Split('\n'); Pet GeneratedPet = PetUtility.CreatePet(Session.GetHabbo().Id, PetData[0], 0, PetData[1], PetData[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet); break; #endregion #region Pet 1 case InteractionType.pet1: string[] PetData1 = ExtraData.Split('\n'); Pet GeneratedPet1 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData1[0], 1, PetData1[1], PetData1[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet1); break; #endregion #region Pet 2 case InteractionType.pet2: string[] PetData5 = ExtraData.Split('\n'); Pet GeneratedPet5 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData5[0], 2, PetData5[1], PetData5[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet5); break; #endregion #region Pet 3 case InteractionType.pet3: string[] PetData2 = ExtraData.Split('\n'); Pet GeneratedPet2 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData2[0], 3, PetData2[1], PetData2[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet2); break; #endregion #region Pet 4 case InteractionType.pet4: string[] PetData3 = ExtraData.Split('\n'); Pet GeneratedPet3 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData3[0], 4, PetData3[1], PetData3[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet3); break; #endregion #region Pet 5 case InteractionType.pet5: string[] PetData7 = ExtraData.Split('\n'); Pet GeneratedPet7 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData7[0], 5, PetData7[1], PetData7[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet7); break; #endregion #region Pet 6 (wrong?) case InteractionType.pet6: string[] PetData4 = ExtraData.Split('\n'); Pet GeneratedPet4 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData4[0], 6, PetData4[1], PetData4[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet4); break; #endregion #region Pet 7 (wrong?) case InteractionType.pet7: string[] PetData6 = ExtraData.Split('\n'); Pet GeneratedPet6 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData6[0], 7, PetData6[1], PetData6[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet6); break; #endregion #region Pet 8 case InteractionType.pet8: string[] PetData8 = ExtraData.Split('\n'); Pet GeneratedPet8 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData8[0], 8, PetData8[1], PetData8[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet8); break; #endregion #region Pet 8 case InteractionType.pet9: string[] PetData9 = ExtraData.Split('\n'); Pet GeneratedPet9 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData9[0], 9, PetData9[1], PetData9[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet9); break; #endregion #region Pet 10 case InteractionType.pet10: string[] PetData10 = ExtraData.Split('\n'); Pet GeneratedPet10 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData10[0], 10, PetData10[1], PetData10[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet10); break; #endregion #region Pet 11 case InteractionType.pet11: string[] PetData11 = ExtraData.Split('\n'); Pet GeneratedPet11 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData11[0], 11, PetData11[1], PetData11[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet11); break; #endregion #region Pet 12 case InteractionType.pet12: string[] PetData12 = ExtraData.Split('\n'); Pet GeneratedPet12 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData12[0], 12, PetData12[1], PetData12[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet12); break; #endregion #region Pet 13 case InteractionType.pet13: //Caballo - Horse string[] PetData13 = ExtraData.Split('\n'); Pet GeneratedPet13 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData13[0], 13, PetData13[1], PetData13[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet13); break; #endregion #region Pet 14 case InteractionType.pet14: string[] PetData14 = ExtraData.Split('\n'); Pet GeneratedPet14 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData14[0], 14, PetData14[1], PetData14[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet14); break; #endregion #region Pet 15 case InteractionType.pet15: string[] PetData15 = ExtraData.Split('\n'); Pet GeneratedPet15 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData15[0], 15, PetData15[1], PetData15[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet15); break; #endregion #region Pet 16 case InteractionType.pet16: // Mascota Agregada string[] PetData16 = ExtraData.Split('\n'); Pet GeneratedPet16 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData16[0], 16, PetData16[1], PetData16[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet16); break; #endregion #region Pet 17 case InteractionType.pet17: // Mascota Agregada string[] PetData17 = ExtraData.Split('\n'); Pet GeneratedPet17 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData17[0], 17, PetData17[1], PetData17[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet17); break; #endregion #region Pet 18 case InteractionType.pet18: // Mascota Agregada string[] PetData18 = ExtraData.Split('\n'); Pet GeneratedPet18 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData18[0], 18, PetData18[1], PetData18[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet18); break; #endregion #region Pet 19 case InteractionType.pet19: // Mascota Agregada string[] PetData19 = ExtraData.Split('\n'); Pet GeneratedPet19 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData19[0], 19, PetData19[1], PetData19[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet19); break; #endregion #region Pet 20 case InteractionType.pet20: // Mascota Agregada string[] PetData20 = ExtraData.Split('\n'); Pet GeneratedPet20 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData20[0], 20, PetData20[1], PetData20[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet20); break; #endregion #region Pet 21 case InteractionType.pet21: // Mascota Agregada string[] PetData21 = ExtraData.Split('\n'); Pet GeneratedPet21 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData21[0], 21, PetData21[1], PetData21[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet21); break; #endregion #region Pet 22 case InteractionType.pet22: // Mascota Agregada string[] PetData22 = ExtraData.Split('\n'); Pet GeneratedPet22 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData22[0], 22, PetData22[1], PetData22[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet22); break; #endregion #region Pet 28 case InteractionType.pet28: // Mascota Agregada string[] PetData28 = ExtraData.Split('\n'); Pet GeneratedPet28 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData28[0], 28, PetData28[1], PetData28[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet28); break; #endregion #region Pet 29 case InteractionType.pet29: string[] PetData29 = ExtraData.Split('\n'); Pet GeneratedPet29 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData29[0], 29, PetData29[1], PetData29[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet29); break; #endregion #region Pet 30 case InteractionType.pet30: string[] PetData30 = ExtraData.Split('\n'); Pet GeneratedPet30 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData30[0], 30, PetData30[1], PetData30[2]); Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet30); break; #endregion #endregion } Session.SendMessage(new FurniListNotificationComposer(0, 3)); Session.SendMessage(new PetInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetPets())); ItemData PetFood = null; if (PlusEnvironment.GetGame().GetItemManager().GetItem(320, out PetFood)) { Item Food = ItemFactory.CreateSingleItemNullable(PetFood, Session.GetHabbo(), "", ""); if (Food != null) { Session.GetHabbo().GetInventoryComponent().TryAddItem(Food); Session.SendMessage(new FurniListNotificationComposer(Food.Id, 1)); } } break; } } Session.SendMessage(new PurchaseOKComposer(Item, Item.Data)); Session.SendMessage(new FurniListUpdateComposer()); }
public IList <Distributor> GetDistributors(string name, Country country, PriceList priceList, Lookup paymentTerm, DistributorStatus?status, GridState gridState, out int totalRecords, Incoterm?saleCondition, Lookup type, CatalogPage page) { int pageNumber = gridState.PageNumber; int pageSize = gridState.PageSize; ICriteria crit = GetDistributorsCriteria(name, country, priceList, paymentTerm, status, gridState, saleCondition, type, page); crit.SetProjection(Projections.ProjectionList().Add(Projections.Count("ID"))); totalRecords = crit.UniqueResult <int>(); if (totalRecords == 0) { return(new List <Distributor>()); } pageNumber = Utils.AdjustPageNumber(pageNumber, pageSize, totalRecords); crit = GetDistributorsCriteria(name, country, priceList, paymentTerm, status, gridState, saleCondition, type, page); crit.SetMaxResults(gridState.PageSize); if (pageNumber == 1) { crit.SetFirstResult(0); } else { crit.SetFirstResult((pageNumber - 1) * gridState.PageSize); } string[] sort = gridState.SortField.Split('.'); ICriteria critSort = crit; string sortField = gridState.SortField; if (!sortField.Contains("TimeStamp") && sort.Length > 1) { critSort = crit.CreateCriteria(sort[0], JoinType.LeftOuterJoin); sortField = sort[1]; } critSort.AddOrder(new Order(sortField, gridState.SortAscending)); return(crit.List <Distributor>()); }
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); } }
private IList <Distributor> GetSelecteds(string name, Country country, PriceList priceList, Lookup paymentTerm, DistributorStatus?status , GridState gridState, Incoterm?saleCondition, Lookup type, CatalogPage page) { ICriteria crit = GetDistributorsCriteria(name, country, priceList, paymentTerm, status, gridState, saleCondition, type, page); if (!gridState.MarkedAll) { crit.Add(Expression.In("ID", gridState.Items)); } return(crit.List <Distributor>()); }
public CatalogAssertions(CatalogPage value) : base(value) { }
/// <summary> /// Composes the page. /// </summary> /// <param name="page">The page.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage ComposePage(CatalogPage page) { ServerMessage message = new ServerMessage(LibraryParser.OutgoingRequest("CataloguePageMessageComposer")); message.AppendInteger(page.PageId); switch (page.Layout) { case "frontpage": message.AppendString("NORMAL"); message.AppendString("frontpage4"); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(2); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendInteger(0); message.AppendInteger(-1); message.AppendBool(false); break; case "roomads": message.AppendString("NORMAL"); message.AppendString("roomads"); message.AppendInteger(2); message.AppendString("events_header"); message.AppendString(""); message.AppendInteger(2); message.AppendString(page.Text1); message.AppendString(""); break; case "builders_club_frontpage_normal": message.AppendString("NORMAL"); message.AppendString("builders_club_frontpage"); message.AppendInteger(0); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); message.AppendInteger(3); message.AppendInteger(8554); message.AppendString("builders_club_1_month"); message.AppendString(""); message.AppendInteger(2560000); message.AppendInteger(2560000); message.AppendInteger(1024); message.AppendInteger(0); message.AppendInteger(0); message.AppendBool(false); message.AppendInteger(8606); message.AppendString("builders_club_14_days"); message.AppendString(""); message.AppendInteger(2560000); message.AppendInteger(2560000); message.AppendInteger(1024); message.AppendInteger(0); message.AppendInteger(0); message.AppendBool(false); message.AppendInteger(8710); message.AppendString("builders_club_31_days"); message.AppendString(""); message.AppendInteger(2560000); message.AppendInteger(2560000); message.AppendInteger(1024); message.AppendInteger(0); message.AppendInteger(0); message.AppendBool(false); break; case "bots": message.AppendString("NORMAL"); message.AppendString("bots"); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendString(page.TextDetails); break; case "badge_display": message.AppendString("NORMAL"); message.AppendString("badge_display"); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendString(page.TextDetails); break; case "info_loyalty": case "info_duckets": message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); message.AppendInteger(1); message.AppendString(page.Text1); break; case "sold_ltd_items": message.AppendString("NORMAL"); message.AppendString("sold_ltd_items"); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendString(page.TextDetails); break; case "recycler_info": message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendString(page.TextDetails); break; case "recycler_prizes": message.AppendString("NORMAL"); message.AppendString("recycler_prizes"); message.AppendInteger(1); message.AppendString("catalog_recycler_headline3"); message.AppendInteger(1); message.AppendString(page.Text1); break; case "spaces_new": case "spaces": message.AppendString("NORMAL"); message.AppendString("spaces_new"); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); message.AppendInteger(1); message.AppendString(page.Text1); break; case "recycler": message.AppendString("NORMAL"); message.AppendString("recycler"); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(1); message.AppendString(page.Text1); break; case "trophies": message.AppendString("NORMAL"); message.AppendString("trophies"); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); message.AppendInteger(2); message.AppendString(page.Text1); message.AppendString(page.TextDetails); break; case "pets": case "pets2": case "pets3": message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(4); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendString(page.TextDetails); message.AppendString(page.TextTeaser); break; case "soundmachine": message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(2); message.AppendString(page.Text1); message.AppendString(page.TextDetails); break; case "vip_buy": message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(0); break; case "guild_custom_furni": message.AppendString("NORMAL"); message.AppendString("guild_custom_furni"); message.AppendInteger(3); message.AppendString(page.LayoutHeadline); message.AppendString(""); message.AppendString(""); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.TextDetails); message.AppendString(page.Text2); break; case "guild_frontpage": message.AppendString("NORMAL"); message.AppendString("guild_frontpage"); message.AppendInteger(2); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.TextDetails); message.AppendString(page.Text2); break; case "guild_forum": message.AppendString("NORMAL"); message.AppendString("guild_forum"); message.AppendInteger(0); message.AppendInteger(2); message.AppendString(page.Text1); message.AppendString(page.Text2); break; case "club_gifts": message.AppendString("NORMAL"); message.AppendString("club_gifts"); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); message.AppendInteger(1); message.AppendString(page.Text1); break; case "default_3x3": message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(3); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendString(page.LayoutSpecial); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.TextDetails); message.AppendString(page.TextTeaser); break; default: message.AppendString("NORMAL"); message.AppendString(page.Layout); message.AppendInteger(3); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendString(page.LayoutSpecial); message.AppendInteger(4); message.AppendString(page.Text1); message.AppendString(page.Text2); message.AppendString(page.TextTeaser); message.AppendString(page.TextDetails); break; case "builders_3x3": message.AppendString("BUILDERS_CLUB"); message.AppendString("default_3x3"); message.AppendInteger(3); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendString(page.LayoutSpecial); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.TextDetails.Replace("[10]", Convert.ToChar(10).ToString()) .Replace("[13]", Convert.ToChar(13).ToString())); message.AppendString(page.TextTeaser.Replace("[10]", Convert.ToChar(10).ToString()) .Replace("[13]", Convert.ToChar(13).ToString())); break; case "builders_3x3_color": message.AppendString("BUILDERS_CLUB"); message.AppendString("default_3x3_color_grouping"); message.AppendInteger(3); message.AppendString(page.LayoutHeadline); message.AppendString(page.LayoutTeaser); message.AppendString(page.LayoutSpecial); message.AppendInteger(3); message.AppendString(page.Text1); message.AppendString(page.TextDetails.Replace("[10]", Convert.ToChar(10).ToString()) .Replace("[13]", Convert.ToChar(13).ToString())); message.AppendString(page.TextTeaser.Replace("[10]", Convert.ToChar(10).ToString()) .Replace("[13]", Convert.ToChar(13).ToString())); break; case "builders_club_frontpage": message.AppendString("BUILDERS_CLUB"); message.AppendString("builders_club_frontpage"); message.AppendInteger(0); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); message.AppendInteger(3); message.AppendInteger(8554); message.AppendString("builders_club_1_month"); message.AppendString(""); message.AppendInteger(2560000); message.AppendInteger(2560000); message.AppendInteger(1024); message.AppendInteger(0); message.AppendInteger(0); message.AppendBool(false); message.AppendInteger(8606); message.AppendString("builders_club_14_days"); message.AppendString(""); message.AppendInteger(2560000); message.AppendInteger(2560000); message.AppendInteger(1024); message.AppendInteger(0); message.AppendInteger(0); message.AppendBool(false); message.AppendInteger(8710); message.AppendString("builders_club_31_days"); message.AppendString(""); message.AppendInteger(2560000); message.AppendInteger(2560000); message.AppendInteger(1024); message.AppendInteger(0); message.AppendInteger(0); message.AppendBool(false); break; case "builders_club_addons": message.AppendString("BUILDERS_CLUB"); message.AppendString("builders_club_addons"); message.AppendInteger(0); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); break; case "builders_club_addons_normal": message.AppendString("NORMAL"); message.AppendString("builders_club_addons"); message.AppendInteger(0); message.AppendInteger(1); message.AppendString(page.LayoutHeadline); break; } if (page.Layout.StartsWith("frontpage") || page.Layout == "vip_buy" || page.Layout == "recycler") { message.AppendInteger(0); } else { message.AppendInteger(page.Items.Count); foreach (CatalogItem item in page.Items.Values) { ComposeItem(item, message); } } message.AppendInteger(-1); message.AppendBool(false); return(message); }
public ServerMessage Handle(ValueHolder valueHolder = null) { CatalogPage page = valueHolder.GetValue <CatalogPage>("CatalogPage"); ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message.Init(r63aOutgoing.CatalogPage); message.AppendInt32(page.PageID); switch (page.PageLayout) { case "frontpage": { message.AppendString("frontpage3"); message.AppendInt32(3); message.AppendString(page.PageHeadline); message.AppendString(page.PageTeaser); message.AppendString(""); message.AppendInt32(11); message.AppendString(page.PageText1); message.AppendString(page.PageLinkDescription); message.AppendString(page.PageText2); message.AppendString(page.PageTextDetails); message.AppendString(page.PageLinkPagename); message.AppendString("#FAF8CC"); message.AppendString("#FAF8CC"); message.AppendString("Read More >"); message.AppendString("magic.credits"); } break; case "club_buy": { message.AppendString("club_buy"); message.AppendInt32(1); message.AppendString("habboclub_1"); message.AppendInt32(1); } break; case "pets": { message.AppendString("pets"); message.AppendInt32(2); message.AppendString(page.PageHeadline); message.AppendString(page.PageTeaser); message.AppendInt32(4); message.AppendString(page.PageText1); message.AppendString(""); message.AppendString("Pick a color:"); message.AppendString("Pick a race:"); } break; case "spaces": { message.AppendString("spaces_new"); message.AppendInt32(1); message.AppendString(page.PageHeadline); message.AppendInt32(1); message.AppendString(page.PageText1); } break; default: { message.AppendString(page.PageLayout); message.AppendInt32(3); message.AppendString(page.PageHeadline); message.AppendString(page.PageTeaser); message.AppendString(page.PageSpecial); message.AppendInt32(3); message.AppendString(page.PageText1); message.AppendString(page.PageTextDetails); message.AppendString(page.PageTextTeaser); } break; } message.AppendInt32(page.Items.Count); //items count foreach (CatalogItem item in page.Items.Values) { item.Serialize(message); } message.AppendBoolean(false); //new? return(message); }