public static void DropReq6017( NetState state, PacketReader pvSrc )
{
pvSrc.ReadInt32(); // serial, ignored
int x = pvSrc.ReadInt16();
int y = pvSrc.ReadInt16();
int z = pvSrc.ReadSByte();
pvSrc.ReadByte(); // Grid Location?
Serial dest = pvSrc.ReadInt32();
Point3D loc = new Point3D( x, y, z );
Mobile from = state.Mobile;
if ( dest.IsMobile )
{
from.Drop( World.FindMobile( dest ), loc );
}
else if ( dest.IsItem )
{
Item item = World.FindItem( dest );
if ( item is BaseMulti && ((BaseMulti)item).AllowsRelativeDrop )
{
loc.m_X += item.X;
loc.m_Y += item.Y;
from.Drop( loc );
}
else
{
from.Drop( item, loc );
}
}
else
{
from.Drop( loc );
}
}