Example #1
0
    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);
    }
Example #2
0
    //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;
        }
    }
Example #3
0
    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);
    }
Example #4
0
    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);
    }
Example #5
0
    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);
    }
Example #6
0
    //     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);
        }
    }
Example #7
0
    /// <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);
        }
    }
Example #8
0
    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);
    }
Example #9
0
    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);
    }
Example #10
0
    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);
    }
Example #11
0
    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]);
                    }
                }
            }
        }
    }
Example #12
0
    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);
            }
        }
    }
Example #13
0
 /*
  * /// <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;
     }
 }
Example #14
0
    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);
            }
        }
    }
Example #15
0
    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);
        }
    }
Example #16
0
 /// <summary>
 /// 刷新令牌悬赏任务CD
 /// </summary>
 void RefreshTokenTaskCD()
 {
     if (m_tokenQuestTraceItem != null)
     {
         QuestTraceInfo questTraceInfo = m_tokenQuestTraceItem.GetTask();
         if (questTraceInfo != null)
         {
             questTraceInfo.UpdateDesc();
             m_tokenQuestTraceItem.UpdateUI(questTraceInfo);
         }
     }
 }
Example #17
0
    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);
        }
    }
Example #18
0
 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;
     }
 }
Example #19
0
    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();
            }
        }
    }
Example #20
0
    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);
        }
    }
Example #21
0
    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);
        }
    }
Example #22
0
    //-----------------------------------------------------------------------------------------------

    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);
        }
    }
Example #23
0
    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);
    }
Example #24
0
    //-----------------------------------------------------------------------------------------------
    /// <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);
    }
Example #25
0
    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);
    }
Example #26
0
    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;
            }
        }
    }
Example #27
0
    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);
    }