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); }