少年修仙传客户端代码仓库
client_Wu Xijin
2019-06-13 033958214c0b16d7e7b93cc821b018c295251867
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, January 25, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
 
using UnityEngine;
using System.Text.RegularExpressions;
using System.Text;
using Snxxz.UI;
 
 
namespace Snxxz.UI
{
    //接收剧情任务状态封包
    public class TaskListType
    {
        public int TaskID;
        public int TaskType;//(0,未完成,1,正在进行中)
    }
    [XLua.LuaCallCSharp]
    public class StoryMissionsModel : Model, IBeforePlayerDataInitialize
    {
        public Dictionary<int, int> StoryMissionsDic = new Dictionary<int, int>();//(value,0未完成,1完成)
        public Dictionary<int, List<TaskListConfig>> TaskCfgDict = new Dictionary<int, List<TaskListConfig>>();
        public Dictionary<int, int> TaskMainDic = new Dictionary<int, int>();//剧情编号,任务ID
        public Dictionary<int, List<TaskListType>> taskListConfig = new Dictionary<int, List<TaskListType>>();//关于任务列表
        TaskModel m_PlayerTaskDatas;
        TaskModel onPlayerTask { get { return m_PlayerTaskDatas ?? (m_PlayerTaskDatas = ModelCenter.Instance.GetModel<TaskModel>()); } }
        public override void Init()
        {
            var configTaskListValue = TaskListConfig.GetValues();
            foreach (var value in configTaskListValue)
            {
                List<TaskListConfig> _list = null;
                if (!TaskCfgDict.TryGetValue(value.ChapterID, out _list))
                {
                    _list = new List<TaskListConfig>();
                    TaskCfgDict.Add(value.ChapterID, _list);
                }
                _list.Add(value);
            }
        }
 
        public void OnBeforePlayerDataInitialize()
        {
 
        }
 
        public override void UnInit()
        {
 
        }
        public void TaskMain()
        {
            TaskMainDic.Clear();
            taskListConfig.Clear();
            if (onPlayerTask.MainTaskDic.Count != 0)
            {
                foreach (int key in onPlayerTask.MainTaskDic.Keys)
                {
                    int chapterID = TaskListConfig.Get(key).ChapterID;
                    if (TaskMainDic.ContainsKey(chapterID))
                    {
                        TaskMainDic[chapterID] = key;
                    }
                    else
                    {
                        TaskMainDic.Add(chapterID, key);
                    }
                }
            }
            foreach (var key in TaskCfgDict.Keys)
            {
 
                if (TaskMainDic.ContainsKey(key))//身上的挂载任务
                {
                    int taskID = TaskMainDic[key];
                    int cout = TaskCfgDict[key].Count;
                    if (!taskListConfig.ContainsKey(key))
                    {
                        List<TaskListType> taskType = new List<TaskListType>();
                        for (int i = 0; i < cout; i++)
                        {
                            TaskListType taskList = new TaskListType();
                            taskList.TaskID = TaskCfgDict[key][i].TaskID;
                            if (TaskCfgDict[key][i].TaskID < taskID)
                            {
                                taskList.TaskType = 0;
                            }
                            if (TaskCfgDict[key][i].TaskID == taskID)
                            {
                                taskList.TaskType = 1;
                            }
                            if (TaskCfgDict[key][i].TaskID > taskID)
                            {
                                taskList.TaskType = 2;
                            }
                            taskType.Add(taskList);
                        }
                        taskListConfig.Add(key, taskType);
                    }
                }
                if (StoryMissionsDic.ContainsKey(key))//服务端任务表
                {
                    int cout = TaskCfgDict[key].Count;
                    if (!taskListConfig.ContainsKey(key))
                    {
                        List<TaskListType> taskType = new List<TaskListType>();
                        for (int i = 0; i < cout; i++)
                        {
                            TaskListType taskList = new TaskListType();
                            taskList.TaskID = TaskCfgDict[key][i].TaskID;
                            taskList.TaskType = 0;
                            taskType.Add(taskList);
                        }
                        taskListConfig.Add(key, taskType);
                    }
                }
            }
        }
        public void StoryMissionStateInfo(HB104_tagMCStoryMissionStateInfo vNetData)
        {
            for (int i = 0; i < vNetData.StoryMissionStateList.Length; i++)
            {
                int storyNum = vNetData.StoryMissionStateList[i].StoryNum;
                int isAllFinish = vNetData.StoryMissionStateList[i].IsAllFinish;
                if (StoryMissionsDic.ContainsKey(storyNum))
                {
                    StoryMissionsDic[storyNum] = isAllFinish;
                }
                else
                {
                    StoryMissionsDic.Add(storyNum, isAllFinish);
                }
            }
        }
    }
}