public static void VendorBuyReply( NetState state, PacketReader pvSrc )
{
pvSrc.Seek( 1, SeekOrigin.Begin );
int msgSize = pvSrc.ReadUInt16();
Mobile vendor = World.FindMobile( pvSrc.ReadInt32() );
byte flag = pvSrc.ReadByte();
if ( vendor == null )
{
return;
}
else if ( vendor.Deleted || !Utility.RangeCheck( vendor.Location, state.Mobile.Location, 10 ) )
{
state.Send( new EndVendorBuy( vendor ) );
return;
}
if ( flag == 0x02 )
{
msgSize -= 1+2+4+1;
if ( (msgSize / 7) > 100 )
return;
List<BuyItemResponse> buyList = new List<BuyItemResponse>( msgSize / 7 );
for ( ;msgSize>0;msgSize-=7)
{
byte layer = pvSrc.ReadByte();
Serial serial = pvSrc.ReadInt32();
int amount = pvSrc.ReadInt16();
buyList.Add( new BuyItemResponse( serial, amount ) );
}
if ( buyList.Count > 0 )
{
IVendor v = vendor as IVendor;
if ( v != null && v.OnBuyItems( state.Mobile, buyList ) )
state.Send( new EndVendorBuy( vendor ) );
}
}
else
{
state.Send( new EndVendorBuy( vendor ) );
}
}