public static void VendorBuyReply(NetState state, CircularBufferReader reader) { var vendor = World.FindMobile(reader.ReadUInt32()); if (vendor == null) { return; } var flag = reader.ReadByte(); if (!vendor.Deleted && Utility.RangeCheck(vendor.Location, state.Mobile.Location, 10) && flag == 0x02) { var msgSize = reader.Remaining; if (msgSize / 7 > 100) { return; } var buyList = new List <BuyItemResponse>(msgSize / 7); while (msgSize > 0) { var layer = reader.ReadByte(); Serial serial = reader.ReadUInt32(); int amount = reader.ReadInt16(); buyList.Add(new BuyItemResponse(serial, amount)); msgSize -= 7; } if (buyList.Count <= 0 || (vendor as IVendor)?.OnBuyItems(state.Mobile, buyList) != true) { return; } } state.SendEndVendorBuy(vendor.Serial); }