少年修仙传客户端代码仓库
client_linchunjie
2018-09-06 619a37b0c8c78845a034d1e36a5d77654f88a23e
System/MainInterfacePanel/FlyingShoesTask.cs
@@ -120,36 +120,67 @@
            m_ImgSelected.SetActive(true);
            taskmodel.GetNowTaskID = Task_ID;
            if (mainModel.TaskId_Skill1.Contains(Task_ID))//特殊支线任务解锁被动技能的
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                    if (itemNumber >= mainModel.ItemNumber)
                    {
                        taskmodel.CompletionOfTask(Task_ID);
                        WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                    }
                    else
                    {
                        StateDetermination();
                        var mapModel = ModelCenter.Instance.GetModel<MapModel>();
                        var point = mapModel.GetRecommendHangPoint();
                        var config = Config.Instance.Get<MapEventPointConfig>(point);
                        MapTransferUtility.Instance.MoveToNPC(config.NPCID);
                    }
                }
                else
                {
                    WindowCenter.Instance.Open<HoistingWin>();
                }
                return;
            }
            if (mainModel.WingTask == Task_ID && ((int)taskmodel.GetTaskStatus(Task_ID) == 0 || (int)taskmodel.GetTaskStatus(Task_ID) == -5))//关于特殊翅膀任务
            {
                if (playerPack.GetSinglePackModel(PackType.rptItem) == null)
                {
                    WindowCenter.Instance.Open<WingTaskJumpWin>();
                    return;
                }
                Dictionary<int, ItemModel> BackpackDic = playerPack.GetSinglePackModel(PackType.rptItem).GetPackModelIndexDict();
                if (BackpackDic == null)
                {
                    WindowCenter.Instance.Open<WingTaskJumpWin>();
                    return;
                }
                else
                {
                    int job = PlayerDatas.Instance.baseData.Job;
                    foreach (var key in BackpackDic.Keys)
                    {
                        ItemModel ItemM = BackpackDic[key];
                        if (ItemM.chinItemModel.Type == 111 && ItemM.chinItemModel.ExpireTime == 0 && ItemM.chinItemModel.JobLimit / 100 == job)
                        {
                            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.KnapSackFunc1Type2);//跳到背包
                            return;
                        }
                    }
                }
                WindowCenter.Instance.Open<WingTaskJumpWin>();
                return;
            }
            switch ((int)taskmodel.GetTaskStatus(Task_ID))
            {
                case -5:
                case 0:
                    DropItemManager.StopMissionPickup = true;//主动停止拾取物品
                    if (PlayerDatas.Instance.extersion.bossState == 1)
                    {
                        string strNpc = string.Empty;
                        strNpc = ContentText.GetHrefMessage("movenpc");
                        int npcId = 0;
                        int mapID = PlayerDatas.Instance.baseData.MapID;
                        if (int.TryParse(strNpc, out npcId))
                        {
                            var npcConfig = Config.Instance.GetAllValues<mapnpcConfig>();
                            foreach (var value in npcConfig)
                            {
                                if (value.NPCID == npcId && value.MapID != mapID)
                                {
                                    SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
                                    return;
                                }
                            }
                            var MonsterConfig = Config.Instance.Get<MonsterRefreshPointConfig>(npcId);
                            if (MonsterConfig != null && MonsterConfig.MapId != mapID)
                            {
                                SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
                                return;
                            }
                        }
                    }
                    StateDetermination();
                    ContentText.ExcuteHref();
                    OpenPanel(Task_ID);
                    break;
@@ -202,14 +233,70 @@
                    break;
                case 3:
                    taskmodel.CompletionOfTask(Task_ID);
                    if (mainModel.TaskId_Skill.Contains(Task_ID))
                    {
                        WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                    }
                    break;
                default:
                    break;
            }
        }
        private void StateDetermination()//状态判定
        {
            DropItemManager.StopMissionPickup = true;//主动停止拾取物品
            if (PlayerDatas.Instance.extersion.bossState == 1)
            {
                string strNpc = string.Empty;
                strNpc = ContentText.GetHrefMessage("movenpc");
                int npcId = 0;
                int mapID = PlayerDatas.Instance.baseData.MapID;
                if (int.TryParse(strNpc, out npcId))
                {
                    var npcConfig = Config.Instance.GetAllValues<mapnpcConfig>();
                    foreach (var value in npcConfig)
                    {
                        if (value.NPCID == npcId && value.MapID != mapID)
                        {
                            SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
                            return;
                        }
                    }
                    var MonsterConfig = Config.Instance.Get<MonsterRefreshPointConfig>(npcId);
                    if (MonsterConfig != null && MonsterConfig.MapId != mapID)
                    {
                        SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
                        return;
                    }
                }
            }
        }
        private void OnClickDeliveryButton()//传送符
        {
            //--------------特殊任务的传送逻辑
            if (mainModel.TaskId_Skill1.Contains(Task_ID))
            {
                var mapModel = ModelCenter.Instance.GetModel<MapModel>();
                var point = mapModel.GetRecommendHangPoint();
                var config = Config.Instance.Get<MapEventPointConfig>(point);
                var flyBootOwn = ModelCenter.Instance.GetModel<PlayerPackModel>().GetItemCountByID(PackType.rptItem, GeneralConfig.Instance.flyBootItemId);
                var isVipFreeTransfer = ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.FreeTransfer) > 0;
                if (isVipFreeTransfer || flyBootOwn > 0)
                {
                    MapTransferUtility.Instance.MissionFlyTo(config.MapID, config.NPCID);
                }
                else
                {
                    MapTransferUtility.Instance.MoveToNPC(config.NPCID);
                }
                return;
            }
            mainModel.FlyShoseTaskID = Task_ID;
            string _FlyID = Config.Instance.Get<FuncConfigConfig>("TransportPay").Numerical1;
            int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, int.Parse(_FlyID));//获取飞鞋的数量
@@ -230,6 +317,8 @@
                    int NeedMoney = (int)UIHelper.GetMoneyCnt(1) + (int)UIHelper.GetMoneyCnt(2);
                    if (NeedMoney >= 1)
                    {
                        m_ContentText.ExcuteHref(1);
                    }
                    else
@@ -247,20 +336,20 @@
            }
        }
        public void FlyingShoes_Task(int TaskID)
        {
            Task_ID = TaskID;
            TypeAssignment();
            if (TaskID == taskmodel.GetNowTaskID)
            for (int i = 0; i < m_parent.childCount; i++)
            {
                m_ImgSelected.SetActive(true);
                for (int i = 0; i < m_parent.childCount; i++)
                int taskID1 = m_parent.GetChild(i).GetComponent<TaskType>().TaskID;
                m_parent.GetChild(i).GetComponent<FlyingShoesTask>().ImgSelected.SetActive(false);
                if (taskID1 == taskmodel.GetNowTaskID)
                {
                    int taskID1 = m_parent.GetChild(i).GetComponent<TaskType>().TaskID;
                    if (TaskID != taskID1)
                    {
                        m_parent.GetChild(i).GetComponent<FlyingShoesTask>().ImgSelected.SetActive(false);
                    }
                    m_parent.GetChild(i).GetComponent<FlyingShoesTask>().ImgSelected.SetActive(true);
                }
            }
            m_DeliveryButton.gameObject.SetActive(true);
@@ -291,18 +380,53 @@
            {
                m_TitleText.text = "<color=#ec4bf6>" + TaskTitle(TaskID) + "</color>";
            }
            int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
            if (mainModel.TaskId_Skill1.Contains(TaskID))
            {
                if (itemNumber >= mainModel.ItemNumber)
                {
                    m_TitleText.text = "<color=#109d06>" + TaskTitle(TaskID) + "</color>";
                }
                else
                {
                    m_TitleText.text = "<color=#feed28>" + TaskTitle(TaskID) + "</color>";
                }
            }
            string str = taskmodel.allMissionDict[TaskID].InforList;
            var taskinfo = Config.Instance.Get<TASKINFOConfig>(str);
            if (taskinfo != null)
            if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务
            {
                m_ContentText.text = taskinfo.show_writing;
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber);
                    string Str_B = Language.Get("PassiveSkillTask2");
                    if (itemNumber >= mainModel.ItemNumber)
                    {
                        m_ContentText.text = Str_B;
                    }
                    else
                    {
                        m_ContentText.text = Str_A;
                    }
                }
                else
                {
                    string Str_C = string.Format(Language.Get("PassiveSkillTask5"), mainModel.TaskLv);
                    m_ContentText.text = Str_C;
                }
            }
            else
            {
                DebugEx.LogError("任务表格PyTaskInfo配置缺失");
                return;
                if (taskinfo != null)
                {
                    m_ContentText.text = taskinfo.show_writing;
                }
                else
                {
                    DebugEx.LogError("任务表格PyTaskInfo配置缺失");
                    return;
                }
            }
            bool isOPenTransferButton = HrefAnalysis.Inst.ContainsKey(taskinfo.show_writing, "flynpc");
            if (isOPenTransferButton && !IsKaJiBool)
            {
@@ -312,7 +436,18 @@
            {
                m_DeliveryButton.gameObject.SetActive(false);
            }
            //----------------特殊采集魔团任务的传送云处理
            if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务
            {
                if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv)
                {
                    m_DeliveryButton.gameObject.SetActive(true);
                }
                else
                {
                    m_DeliveryButton.gameObject.SetActive(false);
                }
            }
            m_ContentText.raycastTarget = false;
            if (taskmodel._DicTaskInformation.ContainsKey(TaskID))