public void DropItem(int x, int y, int id, uint entity, uint owner, uint party = 0, int bonus = 0, int amount = 1, uint expiration = 0, int craft = 0, int craftBonus = 0, int upgrades = 0, int upgrade1 = 0, int upgrade2 = 0, int upgrade3 = 0, int upgrade4 = 0) { int row = x / 16; int column = y / 16; var item = new ItemEntity(15000, (ushort)id, owner, party, (byte)bonus, (uint)amount, expiration, (byte)craft, (byte)craftBonus, (byte)upgrades, (byte)upgrade1, (byte)upgrade2, (byte)upgrade3, (byte)upgrade4); var cell = cells[row, column]; var uid = cell.AddItem(item, _id); var clients = GetSurroundingClients(cell, 3); PacketBuilder b = new PacketBuilder(); if (clients.Count > 0) { b = clients[0].CreatePacket("ItemDropped", (ushort)x, (ushort)y, (ushort)id, uid, entity); } foreach (var c in clients) { c.Send(b, "ItemDropped"); } }