internal void MarketplacePurchase() { uint ItemId = Request.PopWiredUInt(); DataRow Row = null; using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT state, timestamp, total_price, extra_data, item_id FROM catalog_marketplace_offers WHERE offer_id = " + ItemId + " "); Row = dbClient.getRow(); } if (Row == null || (string)Row["state"] != "1" || (double)Row["timestamp"] <= Marketplace.FormatTimestamp()) { Session.SendNotif(LanguageLocale.GetValue("catalog.offerexpired")); return; } Item Item = ButterflyEnvironment.GetGame().GetItemManager().GetItem(Convert.ToUInt32(Row["item_id"])); if (Item == null) { return; } int prize = (int)Row["total_price"]; if ((int)Row["total_price"] >= 1) { Session.GetHabbo().Credits -= prize; Session.GetHabbo().UpdateCreditsBalance(); } ButterflyEnvironment.GetGame().GetCatalog().DeliverItems(Session, Item, 1, (String)Row["extra_data"]); Session.GetHabbo().GetInventoryComponent().RunDBUpdate(); using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE catalog_marketplace_offers SET state = 2 WHERE offer_id = " + ItemId + ""); } Session.GetMessageHandler().GetResponse().Init(67); Session.GetMessageHandler().GetResponse().AppendUInt(Item.ItemId); Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Item.Name); Session.GetMessageHandler().GetResponse().AppendInt32(prize); Session.GetMessageHandler().GetResponse().AppendInt32(0); Session.GetMessageHandler().GetResponse().AppendInt32(0); Session.GetMessageHandler().GetResponse().AppendInt32(1); Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Item.Type.ToString()); Session.GetMessageHandler().GetResponse().AppendInt32(Item.SpriteId); Session.GetMessageHandler().GetResponse().AppendStringWithBreak(""); Session.GetMessageHandler().GetResponse().AppendInt32(1); Session.GetMessageHandler().GetResponse().AppendInt32(0); Session.GetMessageHandler().SendResponse(); Session.SendMessage(Marketplace.SerializeOffers(-1, -1, "", 1)); }