public static bool HandleNpcRequest(Models.Entities.Player player, Models.Packets.Entities.NpcRequestPacket packet)
        {
            if (!player.Alive)
            {
                return(true);
            }

            if (packet.Option == 255)
            {
                player.CurrentNpc = null;
                return(true);
            }

            if (Collections.ShopCollection.ContainsShop(packet.NpcId))
            {
                player.AddActionLog("OpenShop", packet.NpcId);

                if (player.ContainsInScreen(packet.NpcId))
                {
                    Helpers.Packets.Npc.Dialog.OpenShop(player, packet.NpcId);
                }
            }
            else
            {
                Models.Maps.IMapObject mapObject;
                if (player.GetFromScreen(packet.NpcId, out mapObject))
                {
                    var npc = mapObject as Models.Entities.Npc;
                    if (npc != null)
                    {
                        player.AddActionLog("NpcRequest", packet.NpcId + " " + packet.Option);

                        player.CurrentNpc = npc;
                        npc.Invoke(player, packet.Option);
                    }
                }
            }

            return(true);
        }