private void OnExecuteTask(uint nTaskID) { QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID); if (questInfo == null) { Engine.Utility.Log.Error(" Get questinfo error {0}", nTaskID); return; } uint npcid = 0; if (questInfo.IsKillMonster(out npcid)) { Client.ISkillPart skillPart = Client.ClientGlobal.Instance().MainPlayer.GetPart(Client.EntityPart.Skill) as Client.ISkillPart; if (skillPart != null) { if (skillPart.GetCurSkillState() != (int)Client.SkillState.None) { m_nDoingTaskID = nTaskID; if (m_bAddSkillNoneListener) { return; } m_bAddSkillNoneListener = true; Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.SKILLNONESTATE_ENTER, OnEvent); Engine.Utility.Log.Info("等待.......技能播放完毕 执行任务{0} {1}", m_nDoingTaskID, Client.ClientGlobal.Instance().MainPlayer.GetCurState()); return; } } } ProcessTask(questInfo); }
//static uint nProcessTaskID = 0; public void ProcessTask(QuestTraceInfo taskInfo) { //nProcessTaskID = taskInfo.taskId; if (taskInfo == null) { Engine.Utility.Log.Error("taskInfo is null"); return; } GameCmd.TaskProcess process = taskInfo.GetTaskProcess(); if (process == GameCmd.TaskProcess.TaskProcess_None)//去接任务 { StopRobot(); DoAcceptTask(taskInfo); } else if (process == GameCmd.TaskProcess.TaskProcess_Doing) { StopRobot(); OnDoingTask(taskInfo); } else if (process == GameCmd.TaskProcess.TaskProcess_CanDone) { StopRobot(); OnCommitTask(taskInfo); return; } }
private void OnTaskCanCommit(uint nTaskID) { QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID); if (questInfo == null) { Engine.Utility.Log.Error(" Get questinfo error {0}", nTaskID); return; } if (!questInfo.QuestTable.dwAutoCommit) { return; } Client.ISkillPart skillPart = Client.ClientGlobal.Instance().MainPlayer.GetPart(Client.EntityPart.Skill) as Client.ISkillPart; if (skillPart != null) { if (skillPart.GetCurSkillState() != (int)Client.SkillState.None) { m_nDoingTaskID = nTaskID; Engine.Utility.EventEngine.Instance().AddEventListener((int)Client.GameEventID.SKILLNONESTATE_ENTER, OnEvent); Engine.Utility.Log.Info("等待.......技能播放完毕 执行任务{0} {1}", m_nDoingTaskID, Client.ClientGlobal.Instance().MainPlayer.GetCurState()); StopRobot(); return; } } ProcessTask(questInfo); }
public void UpdateTaskState(uint nTaskID, uint nState) { QuestTraceInfo quest = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID); if (quest == null) { Engine.Utility.Log.Error("GET QuestTrace is null {0}", nTaskID); return; } quest.state = nState; //必须刷新追踪描述 if (quest.state != 0) { quest.UpdateDesc(); } else { ShowRewardTips(nTaskID); AddCompleteTask(nTaskID, true); QuestTranceManager.Instance.RemoveTaskTrack(nTaskID); if (quest.taskType == TaskType.TaskType_Token) { m_RewardMisssionMgr.DeleteTask(nTaskID); } } //更新追踪任务UI UpdateTaskTraceUI(nTaskID); }
private void OnSkillPlayOver(ref Client.stSkillStateEnter sse, int nEventId) { if (!Client.ClientGlobal.Instance().IsMainPlayer(sse.uid)) { return; } m_bAddSkillNoneListener = false; Engine.Utility.EventEngine.Instance().RemoveEventListener(nEventId, OnEvent); QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(m_nDoingTaskID); if (questInfo == null) { return; } Engine.Utility.Log.Info("{0}技能播放完毕 执行任务{1} {2}", TAG, m_nDoingTaskID, Client.ClientGlobal.Instance().MainPlayer.GetCurState()); Client.IControllerSystem cs = Client.ClientGlobal.Instance().GetControllerSystem(); if (cs == null) { return; } m_nDoingTaskID = 0; ProcessTask(questInfo); }
// void ClearItems() // { // foreach (UIItemShow item in m_lstItem) // { // item.Release(); // } // m_lstItem.Clear(); // } void ShowUI() { table.QuestDataBase quest = GameTableManager.Instance.GetTableItem <table.QuestDataBase>(m_nTaskid); if (quest == null) { return; } m_widget_demonTask.alpha = (TaskType)quest.dwType == TaskType.TaskType_Demons ? 1f : 0f; m_widget_normalTask.alpha = (TaskType)quest.dwType == TaskType.TaskType_Demons ? 0f : 1f; m_label_title.text = quest.strName; QuestTraceInfo taskInfo = QuestTranceManager.GetInstance().GetQuestTraceInfo(m_nTaskid); if (quest.dwType != (uint)GameCmd.TaskType.TaskType_Demons) { ShowNormalTaskUI(quest, taskInfo); } else { ShowDemonsTaskUI(quest, taskInfo); } }
/// <summary> /// 更新二级页签数据 /// </summary> /// <param name="gridBase"></param> /// <param name="id"></param> /// <param name="index"></param> private void OnUpdateMissionSecondGrid(UIGridBase gridBase, object id, int index) { UISecondTypeGrid grid = gridBase as UISecondTypeGrid; if (grid == null) { return; } MissionEnum missionType = (MissionEnum)id; List <QuestTraceInfo> taskList = GetQuestListByType(missionType); if (taskList == null) { return; } if (taskList.Count > index) { string name = QuestTraceInfo.GetTableTaskByID(taskList[index].taskId).strName; grid.SetData(taskList[index].taskId, name, false); grid.SetRedPoint(false); } }
int SortQuest(QuestTraceInfo a, QuestTraceInfo b) { if (a.taskType == TaskType.TaskType_Normal && b.taskType != TaskType.TaskType_Normal) { return(-1); } else if (a.taskType != TaskType.TaskType_Normal && b.taskType == TaskType.TaskType_Normal) { return(1); } ////主线 完成 正在做 //if (a.taskType == TaskType.TaskType_Normal || b.taskType == TaskType.TaskType_Normal) //{ // return b.taskType == TaskType.TaskType_Normal ? 1 : -1; //} //else if (a.GetTaskProcess() == TaskProcess.TaskProcess_CanDone || b.GetTaskProcess() == TaskProcess.TaskProcess_CanDone) //{ // return b.GetTaskProcess() == TaskProcess.TaskProcess_CanDone ? 1 : -1; //} //else if (a.GetTaskProcess() == TaskProcess.TaskProcess_Doing || b.GetTaskProcess() == TaskProcess.TaskProcess_Doing) //{ // return b.GetTaskProcess() == TaskProcess.TaskProcess_Doing ? 1 : -1; //} return((int)b.time - (int)a.time); }
public Client.INPC GetNPCByTraceInfo(QuestTraceInfo questInfo) { if (null == questInfo) { return(null); } Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); if (es == null) { Engine.Utility.Log.Error("实体系统为null"); return(null); } GameCmd.TaskProcess process = questInfo.GetTaskProcess(); uint npcid = 0; uint effectID = 0; if (process == GameCmd.TaskProcess.TaskProcess_None)//可接 { npcid = questInfo.beginNpc; } else if (process == GameCmd.TaskProcess.TaskProcess_CanDone) { npcid = questInfo.endNpc; } else if (process == GameCmd.TaskProcess.TaskProcess_Doing) { npcid = questInfo.endNpc; } Client.INPC npc = es.FindNPCByBaseId((int)npcid); return(npc); }
public void AddTask(uint nTaskID, uint nState, uint nOperate) { QuestTraceInfo questInfo = QuestTranceManager.Instance.AddReceivedTask(nTaskID, nState, nOperate); if (questInfo == null) { return; } //变身不立即执行 if (questInfo.taskSubType != TaskSubType.ChangeBody && !questInfo.dynamicTrance) { if (!FirstLoginSuccess) { m_nAcceptTaskId = nTaskID; return; } Engine.Utility.Log.LogGroup("ZCX", "doing task {0}", nTaskID); } //动态追踪的等 消息回来再刷险 if (!questInfo.dynamicTrance) { if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.MissionAndTeamPanel)) { DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MissionAndTeamPanel, UIMsgID.eUpdateTaskList, null); } } Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.TASK_ACCEPT, nTaskID); }
public void ShowRewardTips(uint taskid) { QuestTraceInfo questTrace = QuestTranceManager.Instance.GetQuestTraceInfo(taskid); if (questTrace != null) { if (questTrace.gold > 0) { //进背包飘字,先注释 //TipsManager.Instance.ShowTips("获得金币X" + questTrace.gold); } if (questTrace.money > 0) { //进背包飘字,先注释 //TipsManager.Instance.ShowTips("获得文钱X" + questTrace.money); } if (questTrace.Items.Count > 0) { for (int i = 0; i < questTrace.Items.Count; ++i) { table.ItemDataBase itemDb = GameTableManager.Instance.GetTableItem <table.ItemDataBase>(questTrace.Items[i]); if (itemDb != null) { //进背包飘字,先注释 //TipsManager.Instance.ShowTips("获得" + itemDb.itemName + "X" + questTrace.ItemNum[i]); } } } } }
public void UpdateTaskOperate(uint nTaskID, uint nOperate) { QuestTraceInfo quest = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID); if (quest == null) { Engine.Utility.Log.Error("GET QuestTrace is null {0}", nTaskID); return; } quest.operate = nOperate; { quest.time = UnityEngine.Time.realtimeSinceStartup; //必须刷新追踪描述 才能做下一步 quest.UpdateDesc(); if (quest.GetTaskProcess() == TaskProcess.TaskProcess_CanDone) { Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.TASK_CANSUBMIT, new Client.stTaskCanSubmit() { taskid = nTaskID, desc = quest.strDesc, state = quest.state, oprate = quest.operate }); } if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.MissionAndTeamPanel)) { DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MissionAndTeamPanel, UIMsgID.eTask_Refresh_QuestInfo, nTaskID); } } }
/* * /// <summary> * /// * /// </summary> * /// <param name="exp"></param> * /// <param name="money">文钱</param> * /// <param name="gold">金币</param> * /// <param name="itemIds"></param> * /// <param name="itemNums"></param> * private void SetNormalReward(uint exp,uint money,uint gold,List<uint> itemIds,List<uint> itemNums) * { * * UIItemShow itemShow = null; * int index = 0; * if (exp > 0) * { * itemShow = index >= m_lstItem.Count ? GetItem() : m_lstItem[index]; * itemShow.gameObject.SetActive(true); * itemShow.ShowWithItemIdNum(MainPlayerHelper.ExpID, exp); * itemShow.transform.localPosition = new UnityEngine.Vector3(index * 90, 0, 0); * index++; * } * if (money > 0)//文钱 * { * itemShow = index >= m_lstItem.Count ? GetItem() : m_lstItem[index]; * itemShow.gameObject.SetActive(true); * itemShow.ShowWithItemIdNum(MainPlayerHelper.MoneyTicketID, money); * itemShow.transform.localPosition = new UnityEngine.Vector3(index * 90, 0, 0); * index++; * } * if (gold > 0)//金币 * { * itemShow = index >= m_lstItem.Count ? GetItem() : m_lstItem[index]; * itemShow.gameObject.SetActive(true); * itemShow.ShowWithItemIdNum(MainPlayerHelper.GoldID, gold); * itemShow.transform.localPosition = new UnityEngine.Vector3(index * 90, 0, 0); * index++; * } * * for (int i = 0; i < itemIds.Count && i < itemNums.Count; ++i) * { * uint itembaseid = itemIds[i]; * uint itemNum = itemNums[i]; * * itemShow = index >= m_lstItem.Count ? GetItem() : m_lstItem[index]; * itemShow.gameObject.SetActive(true); * * itemShow.ShowWithItemIdNum(itembaseid, itemNum); * itemShow.transform.localPosition = new UnityEngine.Vector3(index * 90, 0, 0); * index++; * } * * for (int i = index; i < m_lstItem.Count; i++) * { * m_lstItem[i].gameObject.SetActive(false); * } * m_trans_itemRoot.parent.GetComponent<UIScrollView>().ResetPosition(); * } */ private void SetTargetLabel(QuestTraceInfo taskInfo, ref table.QuestDataBase quest, ref UILabel targetLable) { if (taskInfo != null) { if (taskInfo.taskSubType == TaskSubType.Collection || taskInfo.taskSubType == TaskSubType.KillMonster || taskInfo.taskSubType == TaskSubType.KillMonsterCollect || taskInfo.taskSubType == TaskSubType.DeliverItem) { GameCmd.TaskProcess process = taskInfo.GetTaskProcess(); if (process == TaskProcess.TaskProcess_CanDone) { targetLable.text = string.Format("{0}[00ff00]({1}/{2})", quest.dwStrTarget, taskInfo.operate, taskInfo.state); } else if (process == TaskProcess.TaskProcess_Doing) { targetLable.text = string.Format("{0}[ff0000]({1}/{2})", quest.dwStrTarget, taskInfo.operate, taskInfo.state); } else { targetLable.text = quest.dwStrTarget; } } else { targetLable.text = quest.dwStrTarget; } } else { targetLable.text = quest.dwStrTarget; } }
void SetNpcTipsByTaskID(uint nTaskID, bool checkAcceptNpc) { QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID); if (questInfo == null) { return; } SetNpcTipsByTraceInfo(questInfo); //如果是接受了任务 检测提交跟接受npc一不一样 不一样移除接受npc特效 if (checkAcceptNpc) { if (questInfo.endNpc != questInfo.beginNpc) { Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); if (es == null) { Engine.Utility.Log.Error("实体系统为null"); return; } Client.INPC npc = es.FindNPCByBaseId((int)questInfo.beginNpc); DeleteEffectByNpc(npc); } } }
void InitBtnIcon(GameObject btn, uint btnTaskId) { Transform iconTransf = btn.transform.Find("Icon"); if (iconTransf == null) { return; } if (btnTaskId == 0) { iconTransf.gameObject.SetActive(false); return; } else { iconTransf.gameObject.SetActive(true); } UISprite iconSp = iconTransf.GetComponent <UISprite>(); if (iconSp == null) { iconSp = iconTransf.gameObject.AddComponent <UISprite>(); } List <QuestTraceInfo> traceTask; DataManager.Manager <TaskDataManager>().GetAllQuestTraceInfo(out traceTask); if (traceTask != null) { QuestTraceInfo questTraceInfo = traceTask.Find((data) => { return(btnTaskId == data.taskId); }); if (questTraceInfo != null) { GameCmd.TaskProcess taskProcess = questTraceInfo.GetTaskProcess(); if (taskProcess == GameCmd.TaskProcess.TaskProcess_None) //可接 { iconSp.spriteName = "tubiao_renwu_1"; } else if (taskProcess == GameCmd.TaskProcess.TaskProcess_Doing)//执行中 { iconSp.spriteName = "tubiao_renwu_4"; } else if (taskProcess == GameCmd.TaskProcess.TaskProcess_CanDone)//可以交付 { iconSp.spriteName = "tubiao_renwu_3"; } } else { iconTransf.gameObject.SetActive(false); } } else { iconTransf.gameObject.SetActive(false); } }
/// <summary> /// 刷新令牌悬赏任务CD /// </summary> void RefreshTokenTaskCD() { if (m_tokenQuestTraceItem != null) { QuestTraceInfo questTraceInfo = m_tokenQuestTraceItem.GetTask(); if (questTraceInfo != null) { questTraceInfo.UpdateDesc(); m_tokenQuestTraceItem.UpdateUI(questTraceInfo); } } }
void ShowNormalTaskUI(table.QuestDataBase quest, QuestTraceInfo taskInfo) { if (quest == null) { return; } SetTaskDesc(ref quest); SetTargetLabel(taskInfo, ref quest, ref m_label_normaltargetLabel); if (taskInfo != null) { SetBottomBtnLable(taskInfo); if (taskInfo.exp == 0) { //请求任务奖励 NetService.Instance.Send(new GameCmd.stRequestTaskRewardScriptUserCmd_C() { task_id = m_nTaskid }); } else { m_lstRewardItemInfo = GetRewardInfoList(taskInfo.exp, taskInfo.money, taskInfo.gold, taskInfo.Items, taskInfo.ItemNum); m_rewardItemGridCreator.CreateGrids(m_lstRewardItemInfo != null ? m_lstRewardItemInfo.Count : 0); //SetNormalReward(taskInfo.exp,taskInfo.money,taskInfo.gold,taskInfo.Items,taskInfo.ItemNum); return; } if (taskInfo.state != 0) { m_trans_DemonFresh.gameObject.SetActive(taskInfo.state != taskInfo.operate); } else { m_trans_DemonFresh.gameObject.SetActive(true); } } else { NetService.Instance.Send(new GameCmd.stRequestTaskRewardScriptUserCmd_C() { task_id = m_nTaskid }); m_label_btn_bottom_Label.text = "接取"; m_trans_DemonFresh.gameObject.SetActive(true); } }
public void Clear() { m_taskInfo = null; m_bShow = false; m_nPreOpreate = 0; m_nPreState = 0; m_nHeight = 0; transform.gameObject.SetActive(false); if (m_MainMissionArrow != null) { m_MainMissionArrow.Clear(); m_MainMissionArrow = null; } }
private void SetBottomBtnLable(QuestTraceInfo taskInfo) { TaskProcess process = taskInfo.GetTaskProcess(); if (process == TaskProcess.TaskProcess_None) { m_label_btn_bottom_Label.text = "接取"; } else if (process == TaskProcess.TaskProcess_Doing) { m_label_btn_bottom_Label.text = "放弃"; } else if (process == TaskProcess.TaskProcess_CanDone) { //开启自动完成 if (taskInfo.QuestTable.dwAutoCanDone) { TimerAxis.Instance().KillTimer(MISSIONCANDONE_TIMER, this); TimerAxis.Instance().SetTimer(MISSIONCANDONE_TIMER, 1000, this); missionCanDoneBtnCd = CONST_MissionCanDoneBtnCd; string btnDes = string.Format("完成({0})", missionCanDoneBtnCd); m_label_btn_bottom_Label.text = btnDes; } else { if (TimerAxis.Instance().IsExist(MISSIONCANDONE_TIMER, this)) { TimerAxis.Instance().KillTimer(MISSIONCANDONE_TIMER, this); } m_label_btn_bottom_Label.text = "完成"; } UIParticleWidget p = m_btn_btn_bottom.GetComponent <UIParticleWidget>(); if (p == null) { p = m_btn_btn_bottom.gameObject.AddComponent <UIParticleWidget>(); p.depth = 20; } if (p != null) { p.SetDimensions(260, 54); p.ReleaseParticle(); p.AddRoundParticle(); } } }
void CanDoneBtn() { QuestTraceInfo taskInfo = QuestTranceManager.GetInstance().GetQuestTraceInfo(m_nTaskid); if (taskInfo == null) { Engine.Utility.Log.Error(" No Found taskindo id {0}", m_nTaskid); return; } TaskProcess process = taskInfo.GetTaskProcess(); if (process == TaskProcess.TaskProcess_CanDone) { onClick_Btn_bottom_Btn(null); } }
void onClick_Btn_bottom_Btn(GameObject caster) { this.HideSelf(); QuestTraceInfo taskInfo = QuestTranceManager.GetInstance().GetQuestTraceInfo(m_nTaskid); if (taskInfo == null) { Engine.Utility.Log.Error(" No Found taskindo id {0}", m_nTaskid); return; } if (taskInfo.Received) { TaskProcess process = taskInfo.GetTaskProcess(); if (taskInfo.taskSubType == TaskSubType.Guild) { if (process == TaskProcess.TaskProcess_CanDone) { if (CanPutInKanpsack()) { Protocol.Instance.RequestFinishTask(m_nTaskid); } } } else { if (process == TaskProcess.TaskProcess_Doing) { Protocol.Instance.RequestDelTask(m_nTaskid); } else if (process == TaskProcess.TaskProcess_CanDone) { if (CanPutInKanpsack()) { Protocol.Instance.RequestDialogSelect(1, m_strStep); } } } } else { Protocol.Instance.RequestDialogSelect(1, m_strStep); } }
//----------------------------------------------------------------------------------------------- public void InitTasks(List <GameCmd.SerializeTask> dataList) { LoginReset(); GameCmd.SerializeTask stTask = null; for (int i = 0, imax = dataList.Count; i < imax; i++) { stTask = dataList[i]; if (stTask.getTaskProcess() == GameCmd.TaskProcess.TaskProcess_Done) { Engine.Utility.Log.Info("完成的 taskId = " + stTask.id); AddCompleteTask(stTask.id, false); } else { QuestTraceInfo quest = QuestTranceManager.Instance.AddReceivedTask(stTask.id, stTask.state, stTask.operate, false); if (quest != null) { Engine.Utility.Log.Info("初始化任务数据 {0} {1} {2}", quest.QuestTable.strName, quest.operate, quest.state); } } } QuestTranceManager.Instance.UpdateCanReceiveTask(); if (FirstLoginSuccess) { if (!DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.MissionAndTeamPanel)) { Engine.Utility.Log.Info("重连游戏 显示 任务界面"); if (false == DataManager.Manager <NvWaManager>().EnterNvWa) { DataManager.Manager <UIPanelManager>().ShowPanel(PanelID.MissionAndTeamPanel); } } } if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.MissionAndTeamPanel)) { Engine.Utility.Log.Info("重连游戏 刷新 任务界面"); DataManager.Manager <UIPanelManager>().SendMsg(PanelID.MissionAndTeamPanel, UIMsgID.eUpdateTaskList, null); } }
private void OnTaskAccept(uint nTaskID) { QuestTraceInfo questInfo = QuestTranceManager.Instance.GetQuestTraceInfo(nTaskID); if (questInfo == null) { Engine.Utility.Log.Error(" Get questinfo error {0}", nTaskID); return; } if (!questInfo.QuestTable.dwAuto) { return; } //动态追踪的等 追踪信息下来之后再做 if (questInfo.dynamicTrance) { return; } ProcessTask(questInfo); }
//----------------------------------------------------------------------------------------------- /// <summary> /// 添加接受的任务 /// </summary> /// <param name="taskid"></param> /// <param name="state"></param> /// <param name="operate"></param> public QuestTraceInfo AddReceivedTask(uint taskid, uint state, uint operate, bool bUpdateCanReceive = true) { table.QuestDataBase questdb = GameTableManager.Instance.GetTableItem <table.QuestDataBase>(taskid); if (questdb == null) { Engine.Utility.Log.Error(" get quest null {0}", taskid); return(null); } for (int k = 0; k < m_lstCanReceive.Count; k++) { if (m_lstCanReceive[k].taskId == taskid) { m_lstCanReceive.RemoveAt(k); break; } } QuestTraceInfo cri = new QuestTraceInfo(questdb, state, operate, true); if (cri.dynamicTrance) { Protocol.Instance.RequestTaskTip(taskid); } else { cri.UpdateDesc(); } //请求任务奖励 Protocol.Instance.RequestTaskReward(taskid); Engine.Utility.Log.LogGroup("LCY", "添加的 taskId ={0}", taskid); m_lstReceivedTask.Add(cri); if (bUpdateCanReceive) { UpdateCanReceiveTask(); } return(cri); }
void SetNpcTipsByTraceInfo(QuestTraceInfo questInfo) { Client.IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem(); if (es == null) { Engine.Utility.Log.Error("实体系统为null"); return; } GameCmd.TaskProcess process = questInfo.GetTaskProcess(); uint npcid = 0; uint effectID = 0; if (process == GameCmd.TaskProcess.TaskProcess_None)//可接 { npcid = questInfo.beginNpc; effectID = EFFECT_CANACCEPT; } else if (process == GameCmd.TaskProcess.TaskProcess_CanDone) { npcid = questInfo.endNpc; effectID = EFFECT_CANCOMMIT; } else if (process == GameCmd.TaskProcess.TaskProcess_Doing) { npcid = questInfo.endNpc; effectID = EFFECT_DOING; } Client.INPC npc = es.FindNPCByBaseId((int)npcid); if (npc == null) { Engine.Utility.Log.Info("查找不到npc{0}", npcid); return; } AddNpcTip(npc, effectID, questInfo.taskId, process); }
void SetSelectSecondTypeGrid(uint id) { UISecondTabCreatorBase creator = GetSecondTabCreator(); if (creator == null) { return; } List <QuestTraceInfo> taskList = GetQuestListByType(m_selectTaskTypeId); if (taskList == null) { return; } QuestTraceInfo quest = taskList.Find((data) => { return(data.taskId == m_selectTaskId); }); if (quest != null && taskTypeList.Contains(m_selectTaskTypeId)) { UISecondTypeGrid grid = creator.GetGrid <UISecondTypeGrid>(taskTypeList.IndexOf(m_selectTaskTypeId), taskList.IndexOf(quest)); if (grid != null) { grid.SetHightLight(false); } } QuestTraceInfo q = taskList.Find((data) => { return(data.taskId == id); }); if (q != null && taskTypeList.Contains(m_selectTaskTypeId)) { UISecondTypeGrid grid = creator.GetGrid <UISecondTypeGrid>(taskTypeList.IndexOf(m_selectTaskTypeId), taskList.IndexOf(q)); if (grid != null) { grid.SetHightLight(true); ShowTaskInfo(q); this.m_selectTaskId = id; } } }
bool IsNeedSetTip(Client.INPC en, ref List <QuestTraceInfo> traceTask, out int index) { index = -1; if (en == null) { return(false); } if (en.IsMonster()) { return(false); } QuestTraceInfo tranceInfo = null; GameCmd.TaskProcess process = GameCmd.TaskProcess.TaskProcess_Max; for (int i = 0; i < traceTask.Count; i++) { int npcid = en.GetProp((int)Client.EntityProp.BaseID); tranceInfo = traceTask[i]; process = tranceInfo.GetTaskProcess(); if (process == GameCmd.TaskProcess.TaskProcess_None) { if (tranceInfo.beginNpc == npcid) { index = i; return(true); } } else if (process == GameCmd.TaskProcess.TaskProcess_CanDone || process == GameCmd.TaskProcess.TaskProcess_Doing) { if (tranceInfo.endNpc == npcid) { index = i; return(true); } } } return(false); }