private static void PurchaseUGCItem(GameSession session, long ugcMarketItemId) { UGCMarketItem marketItem = GameServer.UGCMarketManager.FindItemById(ugcMarketItemId); if (marketItem is null || marketItem.ListingExpirationTimestamp < TimeInfo.Now()) { return; } if (!HandleMarketItemPay(session, marketItem.Price, MeretMarketCurrencyType.Meret)) { return; } marketItem.SalesCount++; DatabaseManager.UGCMarketItems.Update(marketItem); _ = new UGCMarketSale(marketItem.Price, marketItem.Item.UGC.Name, marketItem.SellerCharacterId); Item item = new(marketItem.Item) { CreationTime = TimeInfo.Now() }; item.Uid = DatabaseManager.Items.Insert(item); session.Player.Inventory.AddItem(session, item, true); session.Send(MeretMarketPacket.Purchase(0, marketItem.Id, marketItem.Price, 1)); }
public static PacketWriter CollectProfit(UGCMarketSale sale) { PacketWriter pWriter = PacketWriter.Of(SendOp.MERET_MARKET); pWriter.Write(MeretMarketMode.CollectProfit); pWriter.WriteLong(sale.Id); pWriter.WriteInt(); pWriter.WriteLong(sale.Id); return(pWriter); }
public long Insert(UGCMarketSale sale) { return(QueryFactory.Query(TableName).InsertGetId <long>(new { price = sale.Price, profit = sale.Profit, item_name = sale.ItemName, sold_time = sale.SoldTimestamp, seller_character_id = sale.SellerCharacterId })); }
public void RemoveSale(UGCMarketSale sale) { Sales.Remove(sale.Id); }
public void AddSale(UGCMarketSale sale) { Sales.Add(sale.Id, sale); }