protected override void OnShow(object data) { base.OnShow(data); m_chapter = 0; if (data is table.ChapterDabaBase) { table.ChapterDabaBase cdb = (table.ChapterDabaBase)data; m_chapter = cdb.ID; m_label_title.text = cdb.strTitle; m_label_desc.text = cdb.strDes; } }
public SequencerManager() { m_RenderSystem = Engine.RareEngine.Instance().GetRenderSystem(); //任务触发 Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.TASK_DONE, OnEvent); Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.TASK_ACCEPT, OnEvent); Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.TASK_CANSUBMIT, OnEvent); Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.CHAPTER_EFFECT_END, OnChapterEnd); //table.SequencerData List <table.SequencerData> tableList = GameTableManager.Instance.GetTableList <table.SequencerData>(); for (int i = 0; i < tableList.Count; i++) { table.SequencerData data = tableList[i]; switch (data.TriggerType) { case (int)TriggerType.task: m_TaskTriggerType.Add(data); break; case (int)TriggerType.chapterEnd: m_ChapterType.Add(data); break; } } List <table.ChapterDabaBase> lstchapter = GameTableManager.Instance.GetTableList <table.ChapterDabaBase>(); table.ChapterDabaBase database = null; for (int i = 0, imax = lstchapter.Count; i < imax; i++) { database = lstchapter[i]; switch ((TriggerType)database.TriggerType) { case TriggerType.task: m_lstChapterTaskTrigger.Add(database); break; default: break; } } }
//----------------------------------------------------------------------------------------------- public void PlayChapterEffect(table.ChapterDabaBase data) { DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.ChapterPanel, data: data); }
private void OnEvent(int nEventId, object param) { if (nEventId == (int)Client.GameEventID.TASK_DONE) { //完成任务 Client.stTaskDone td = (Client.stTaskDone)param; table.ChapterDabaBase database = null; bool flag = false; for (int i = 0, imax = m_lstChapterTaskTrigger.Count; i < imax; i++) { database = m_lstChapterTaskTrigger[i]; if (database.Paramer2 == td.taskid) { if (database.Paramer1 == 2) { PlayChapterEffect(database); return; } } } for (int i = 0; i < m_TaskTriggerType.Count; i++) { table.SequencerData data = m_TaskTriggerType[i]; if (data.Paramer1 == 2) { if (data.Paramer2 == td.taskid) { m_SequencerData = data; SequencerManager.Instance().PlaySequencer(m_SequencerData.SequencerFile); return; } } } } else if ((int)Client.GameEventID.TASK_ACCEPT == nEventId) { //接受任务 uint taskid = (uint)param; table.ChapterDabaBase database = null; for (int i = 0, imax = m_lstChapterTaskTrigger.Count; i < imax; i++) { database = m_lstChapterTaskTrigger[i]; if (database.Paramer2 == taskid) { if (database.Paramer1 == 1) { PlayChapterEffect(database); return; } } } for (int i = 0; i < m_TaskTriggerType.Count; i++) { table.SequencerData data = m_TaskTriggerType[i]; // 这个剧情是接受任务触发 if (data.Paramer1 == 1) { if (data.Paramer2 == taskid) { m_SequencerData = data; SequencerManager.Instance().PlaySequencer(m_SequencerData.SequencerFile); return; } } } } else if ((int)Client.GameEventID.TASK_CANSUBMIT == nEventId) { //提交任务 Client.stTaskCanSubmit cs = (Client.stTaskCanSubmit)param; table.ChapterDabaBase database = null; for (int i = 0, imax = m_lstChapterTaskTrigger.Count; i < imax; i++) { database = m_lstChapterTaskTrigger[i]; if (database.Paramer2 == cs.taskid) { if (database.Paramer1 == 3) { PlayChapterEffect(database); return; } } } for (int i = 0; i < m_TaskTriggerType.Count; i++) { table.SequencerData data = m_TaskTriggerType[i]; if (data.Paramer1 == 3) { if (data.Paramer2 == cs.taskid) { m_SequencerData = data; SequencerManager.Instance().PlaySequencer(m_SequencerData.SequencerFile); return; } } } } }