Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
    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,
            });
        }
    }