protected override void OnShow(object data) { base.OnShow(data); if (null != data && data is MallPanelShowData) { m_mallPanelData = data as MallPanelShowData; } if (null == m_mallPanelData) { m_mallPanelData = new MallPanelShowData(); } selectMallItemId = 0; List <uint> li = null; if (null != data && data is NpcShopTabs) { npcData = data as NpcShopTabs; li = npcData.param.Keys.ToList(); } if (li != null) { SetActiveStore((GameCmd.CommonStore)li[0], true); } }
public void OnOpenNpcShopCommond(List <uint> tabs, uint npc_id) { Reset(); tabList = tabs; NpcShopTabs data = new NpcShopTabs(); Dictionary <uint, List <StoreDataBase> > dic = new Dictionary <uint, List <StoreDataBase> >(); for (int i = 0; i < tabs.Count; i++) { for (int j = 0; j < tables.Count; j++) { if (tables[j].storeId == tabs[i]) { if (!tabDic.ContainsKey(tabs[i])) { List <int> sec = new List <int>(); sec.Add((int)tables[j].tag); tabDic.Add(tabs[i], sec); tabNames.Add(tabs[i], tables[j].NpcTag); } else { if (!tabDic[tabs[i]].Contains((int)tables[j].tag)) { tabDic[tabs[i]].Add((int)tables[j].tag); } } if (!dic.ContainsKey(tables[j].tag)) { List <StoreDataBase> list = new List <StoreDataBase>(); list.Add(tables[j]); dic.Add(tables[j].tag, list); } else { dic[tables[j].tag].Add(tables[j]); } } } data.param.Add(tabs[i], dic); } data.names = tabDic; uint taskid = DataManager.Manager <TaskDataManager>().DoingTaskID; if (taskid != 0) { QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(taskid); if (questInfo != null) { if (questInfo.taskSubType == TaskSubType.DeliverItem && questInfo.doingNpc == npc_id) { table.ItemDataBase itemdb = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(questInfo.QuestTable.usecommitItemID); if (itemdb != null) { if (!string.IsNullOrEmpty(itemdb.MissionNpcParam)) { string[] split = itemdb.MissionNpcParam.Split('_'); if (split.Length == 2) { int obj = int.Parse(split[1]); ItemManager.DoJump(uint.Parse(split[0]), obj); } else { Engine.Utility.Log.Error("道具表格中ID为{0}的任务NPC跳转参数缺失,长度不够!", questInfo.QuestTable.usecommitItemID); } } else { Engine.Utility.Log.Error("道具表格中ID为{0}的任务NPC跳转参数为空!", questInfo.QuestTable.usecommitItemID); } } } else { DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcShopPanel, data: new NpcShopTabs() { names = data.names, param = data.param, }); } } else { DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcShopPanel, data: new NpcShopTabs() { names = data.names, param = data.param, }); } } else { DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.NpcShopPanel, data: new NpcShopTabs() { names = data.names, param = data.param, }); } }