void EquipItem_Handler(Task t) { EquipItemRequest eir = (EquipItemRequest)t.Args; Item item = t.Client.Character.FindItem(eir.ItemID); Item equipped = t.Client.Character.EquippedItem(eir.Slot); bool visible = false; if (equipped != null) { t.Client.Character.UnEquipItem(eir.Slot); AddDBQuery(equipped.UpdateDBString(), null, false); visible = true; } if (item != null) { t.Client.Character.EquipItem(item, eir.Slot); AddDBQuery(item.UpdateDBString(), null, false); visible = true; t.Client.NotifyEquipItem(); } t.Client.SendPacket(new EquipItemResponse(t.Client.Character, item, equipped, visible)); if (visible) { // Show all nearby clients the change SeeEquipmentChangePacket pkt = new SeeEquipmentChangePacket(t.Client.Character.ID, item); PlayMap map = _server.GetPlayMap(t.Client.Character.MapID); Connection[] players = map.Players; foreach (Connection c in players) { if (c != t.Client) { c.SendPacket(pkt); } } } }