少年修仙传客户端代码仓库
client_Zxw
2018-08-22 7a6cf79f0c59ea0a080fac7313b4dcaab55ded6d
单号【2727】特殊任务的添加和表现
4个文件已修改
306 ■■■■ 已修改文件
System/MainInterfacePanel/FlyingShoesTask.cs 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PlayerMainDate.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/SideMission.cs 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskListTip.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FlyingShoesTask.cs
@@ -120,36 +120,27 @@
            m_ImgSelected.SetActive(true);
            taskmodel.GetNowTaskID = Task_ID;
            if (mainModel.TaskId_Skill1.Contains(Task_ID))
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                if (itemNumber >= mainModel.ItemNumber)
                {
                    taskmodel.CompletionOfTask(Task_ID);
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                }
                else
                {
                    StateDetermination();
                    ContentText.ExcuteHref();
                }
                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,12 +193,47 @@
                    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()//传送符
        {
            mainModel.FlyShoseTaskID = Task_ID;
@@ -293,6 +319,22 @@
            }
            string str = taskmodel.allMissionDict[TaskID].InforList;
            var taskinfo = Config.Instance.Get<TASKINFOConfig>(str);
            if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                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
            {
            if (taskinfo != null)
            {
                m_ContentText.text = taskinfo.show_writing;
@@ -302,7 +344,7 @@
                DebugEx.LogError("任务表格PyTaskInfo配置缺失");
                return;
            }
            }
            bool isOPenTransferButton = HrefAnalysis.Inst.ContainsKey(taskinfo.show_writing, "flynpc");
            if (isOPenTransferButton && !IsKaJiBool)
            {
System/MainInterfacePanel/PlayerMainDate.cs
@@ -123,6 +123,7 @@
            OneKeyList.Add(Listmap[i]);
        }
        NetworkState = (int)SDKUtility.Instance.NetworkType;
        GetPassiveSkillTask();
    }
    //----------关于某些副本可以进行地图挂机
    public List<int> OneKeyList = new List<int>();
@@ -130,6 +131,40 @@
    //----------使用娲皇卷轴后的Buff表现
    public static event Action EmperorBuffEvent;
    public bool IsEmperor = false;
    //---------关于任务需要的数据
    public List<int> TaskId_Skill = new List<int>();
    public List<int> TaskId_Skill1 = new List<int>();
    public int ItemID = 0;
    public int UnitPrice = 0;
    public int ItemNumber = 0;
    private void GetPassiveSkillTask()//获取任务数据
    {
        TaskId_Skill.Clear();
        TaskId_Skill1.Clear();
        var PassiveSkillTaskconfig = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask");
        int[] TaskId_SkillInt = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical1);
        for (int i = 0; i < TaskId_SkillInt.Length; i++)
        {
            TaskId_Skill.Add(TaskId_SkillInt[i]);
        }
        int[] TaskId_SkillInt1 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical2);
        for (int i = 0; i < TaskId_SkillInt1.Length; i++)
        {
            TaskId_Skill1.Add(TaskId_SkillInt1[i]);
        }
        int[] PassiveSkillTask = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3);
        if (PassiveSkillTask.Length >= 3)
        {
            ItemID = PassiveSkillTask[0];
            UnitPrice = PassiveSkillTask[1];
            ItemNumber = PassiveSkillTask[2];
        }
    }
    private void UseItemSuccessAct(int Index, int ItemID)
    {
        if (ItemID == 221)
System/MainInterfacePanel/SideMission.cs
@@ -9,9 +9,11 @@
using TableConfig;
using System.Collections.Generic;
//任务面板的支线任务
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class SideMission:MonoBehaviour {
    public class SideMission : MonoBehaviour
    {
        [SerializeField] ScrollerController _TaskRamusList;
        //右侧面板
        [SerializeField] Text _Text_TaskName;//任务名
@@ -25,6 +27,10 @@
        PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
        ItemTipsModel _itemTipsModel;
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
        PlayerMainDate m_MainModel;
        PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
        private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>();
        private int TaskIdNow = 0;
        private void Awake()
@@ -39,19 +45,102 @@
        {
            TaskIdNow = 0;
            _TaskRamusList.OnRefreshCell += OnRefreshGridCell;
            playerPack.RefreshItemCountAct += RefreshItemCountAct;
            playerPack.ItemCntReduceAct += ItemCntReduceAct;
            OnCreateGridLineCell(_TaskRamusList);
        }
        private void OnDisable()
        {
            _TaskRamusList.OnRefreshCell -= OnRefreshGridCell;
            playerPack.RefreshItemCountAct -= RefreshItemCountAct;
            playerPack.ItemCntReduceAct -= ItemCntReduceAct;
        }
        private void ItemCntReduceAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                }
            }
        }
        private void RefreshItemCountAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                }
            }
        }
        private void ForwardButton()
        {
            if (mainModel.TaskId_Skill1.Contains(TaskIdNow))
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                if (itemNumber >= mainModel.ItemNumber)
                {
                    taskmodel.CompletionOfTask(TaskIdNow);
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                }
                else
                {
                    int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉
                    int GoldPaper = (int)UIHelper.GetMoneyCnt(2);//绑玉
                    string strNull = string.Empty;
                    int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//所需金额
                    if (GoldPaper >= needNumber)
                    {
                        strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber);
                    }
                    else
                    {
                        strNull = string.Format(Language.Get("PassiveSkillTask4"), needNumber, GoldPaper, needNumber- GoldPaper);
                    }
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) =>
                    {
                        if (isOk)
                        {
                            if (Gold + GoldPaper >= needNumber)
                            {
                                taskmodel.CompletionOfTask(TaskIdNow);
                                WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                            }
                            else
                            {
                                if (VersionConfig.Get().isBanShu)
                                {
                                    SysNotifyMgr.Instance.ShowTip("GoldErr");
                                    return;
                                }
                                WindowCenter.Instance.Open<RechargeTipWin>();
                            }
                        }
                    });
                }
                return;
            }
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)
            {
                taskmodel.CompletionOfTask(TaskIdNow);
                if (mainModel.TaskId_Skill.Contains(TaskIdNow))
                {
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                }
            }
            else
            {
@@ -122,11 +211,30 @@
            _Text_TaskName.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//任务名
            _Text_TaskDescribe.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述
            string strINfor = taskmodel.SideQuestsDic[taskID].InforList;
            string str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing;
            string str = string.Empty;
            if (mainModel.TaskId_Skill1.Contains(taskID))
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                if (itemNumber >= mainModel.ItemNumber)
                {
                    string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, mainModel.ItemNumber);
                    str = Str_A;
                }
                else
                {
                    string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber);
                    str = Str_A;
                }
            }
            else
            {
                str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing;
            }
            str = WordAnalysis.Color_Start_Regex.Replace(str, string.Empty);
            str = WordAnalysis.Color_End_Regex.Replace(str, string.Empty);
            _Text_TaskTarget.text = str;//任务目标
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3 || mainModel.TaskId_Skill1.Contains(taskID))//能够进行立即完成的支线任务
            {
                _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")) ;
            }
System/MainInterfacePanel/TaskListTip.cs
@@ -33,6 +33,10 @@
        TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } }
        PlayerTaskDatas m_TaskModel;
        PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
        PlayerMainDate m_MainModel;
        PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
        List<int> RenzhuTaskIDList = new List<int>();//法宝任务数组ID
        List<int> ListSort = new List<int>();//用于排列顺序(未卡级)
        List<int> ListSort1 = new List<int>();//用于排序(卡级)
@@ -104,12 +108,12 @@
            PlayerTaskDatas.Event_TaskRefreshes += TaskRefreshes;//任务的刷新
            PlayerTaskDatas.Event_TaskToDelete += OnTaskToDelete;//任务的删除
            PlayerTaskDatas.Event_TaskInformation += TaskInformation;//任务字典信息
            //PlayerTaskDatas.CardLevelChange += CardLevelChange;//任务卡级状态改变
            PlayerTaskDatas.MainCardLevelChange += MainCardLevelChange;//卡级任务修改
            model.collectingTreasureChangeEvent += OnCollectingTreasureChangeEvent;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent;
            playerPack.RefreshItemCountAct += RefreshItemCountAct;
            playerPack.ItemCntReduceAct += ItemCntReduceAct;
            OnCollectingTreasureChangeEvent(TreasureCategory.Human);
            TaskScheduling();//任务排序  1
            TheTaskToGenerate();//任务生成
@@ -139,11 +143,55 @@
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
            TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent;
            PlayerTaskDatas.MainCardLevelChange -= MainCardLevelChange;//卡级任务修改
            playerPack.RefreshItemCountAct -= RefreshItemCountAct;
            playerPack.ItemCntReduceAct -= ItemCntReduceAct;
        }
        private void ItemCntReduceAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3== mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        TaskIdUpdate(key);
                    }
                }
            }
        }
        private void RefreshItemCountAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        TaskIdUpdate(key);
                    }
                }
            }
        }
        private void TaskIdUpdate(int taskId)
        {
            int leng = Content.childCount;
            for (int i = 0; i < leng; i++)
            {
                GameObject childObj = Content.GetChild(i).gameObject;
                TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
                if (childObj.activeSelf && childObjTaskType.TaskID == taskId)
                {
                    childObj.GetComponent<FlyingShoesTask>().FlyingShoes_Task(taskId);
                }
            }
        }
        private void MainCardLevelChange(int _id)
        {
            TaskScheduling();
            bool IsDefault = true;
            var State = taskmodel.GetTaskStatus(_id);
@@ -348,7 +396,6 @@
            {
                _list.Sort(Compare1);//卡级排序   
            }
        }
        int Compare(int x, int y)//默认排序(无卡级)
        {
@@ -401,8 +448,6 @@
                var _position = (_list.Count - type) * m_SizeHeight + (_list.Count - type - 1) * 2;
                _position -= 196;
                m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(_position / ((Content as RectTransform).sizeDelta.y - 196));
                // m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(m_ScrollRect.verticalNormalizedPosition + ((Content as RectTransform).sizeDelta.y - 196));
                //m_ScrollRect.verticalNormalizedPosition = ((float)1 - (float)(type + 1) / _list.Count);
            }
        }
    }