少年修仙传客户端代码仓库
client_Wu Xijin
2019-02-14 dac2b2669e7eb8da6719e8d5f9391ad1061ac4a5
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
6个文件已添加
11个文件已修改
503 ■■■■ 已修改文件
Core/GameEngine/Model/Config/CrossRealmPKOrderAwardConfig.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/CrossRealmPKOrderAwardConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/CrossServerArenaConfig.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/CrossServerArenaConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC006_tagGCCrossRealmPKSeasonState.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC006_tagGCCrossRealmPKSeasonState.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePKSeason.cs 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/SeasonRewardWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/SegmentRewardWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueModel.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/CrossRealmPKOrderAwardConfig.cs
New file
@@ -0,0 +1,47 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class CrossRealmPKOrderAwardConfig : ConfigBase {
        public int ID { get ; private set ; }
        public string CrossZoneName { get ; private set; }
        public int SeasonID { get ; private set ; }
        public string SeasonOrderAward { get ; private set; }
        public override string getKey()
        {
            return ID.ToString();
        }
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                CrossZoneName = rawContents[1].Trim();
                SeasonID=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                SeasonOrderAward = rawContents[3].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/CrossRealmPKOrderAwardConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 935c90b542889744aac8be6af43b554a
timeCreated: 1550111952
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/Config/CrossServerArenaConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Wednesday, February 13, 2019
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using UnityEngine;
@@ -15,9 +15,7 @@
        public string Name { get ; private set; } 
        public int DanType { get ; private set ; }
        public string IconKey { get ; private set; } 
        public int LVUpScore { get ; private set ; }
        public string DanLVAwardList { get ; private set; }
        public string SeasonAwardList { get ; private set; }
        public int LVUpScore { get ; private set ; }
        public override string getKey()
        {
@@ -35,11 +33,7 @@
            
                IconKey = rawContents[3].Trim();
            
                LVUpScore=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                DanLVAwardList = rawContents[5].Trim();
                SeasonAwardList = rawContents[6].Trim();
                LVUpScore=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/CrossServerArenaConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: f10a2faba8659904ab5c13d1a770a7e2
timeCreated: 1550050368
timeCreated: 1550111506
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs
New file
@@ -0,0 +1,62 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class DungeonMixServerStateTimeConfig : ConfigBase {
        public int ID { get ; private set ; }
        public int MixServerDay { get ; private set ; }
        public int DataMapID { get ; private set ; }
        public int StartHour { get ; private set ; }
        public int StartMinute { get ; private set ; }
        public int EndHour { get ; private set ; }
        public int EndMinute { get ; private set ; }
        public int CanEnter { get ; private set ; }
        public int StateValue { get ; private set ; }
        public override string getKey()
        {
            return ID.ToString();
        }
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                MixServerDay=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                DataMapID=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                StartHour=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0;
                StartMinute=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0;
                EndHour=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0;
                EndMinute=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0;
                CanEnter=IsNumeric(rawContents[7]) ? int.Parse(rawContents[7]):0;
                StateValue=IsNumeric(rawContents[8]) ? int.Parse(rawContents[8]):0;
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/DungeonMixServerStateTimeConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 064382600d4565645a1b561e934fc3fa
timeCreated: 1550111985
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/ConfigManager.cs
@@ -238,6 +238,8 @@
        AddAsyncTask<HolidayHomingPointConfig>();
        AddAsyncTask<LoginRewardConfig>();
        AddAsyncTask<CrossRealmPKDanAwardConfig>();
        AddAsyncTask<DungeonMixServerStateTimeConfig>();
        AddAsyncTask<CrossRealmPKOrderAwardConfig>();
        while (!AllCompleted())
        {
            var completedCount = 0;
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs
New file
@@ -0,0 +1,36 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TableConfig
{
    public partial class DungeonMixServerStateTimeConfig : ConfigBase, IConfigPostProcess
    {
        static Dictionary<int, List<DungeonMixServerStateTimeConfig>> dungeonTimes = new Dictionary<int, List<DungeonMixServerStateTimeConfig>>();
        public void OnConfigParseCompleted()
        {
            if (!dungeonTimes.ContainsKey(DataMapID))
            {
                dungeonTimes[DataMapID] = new List<DungeonMixServerStateTimeConfig>();
            }
            dungeonTimes[DataMapID].Add(this);
        }
        public static List<DungeonMixServerStateTimeConfig> GetDungeonTimes(int dataMapId)
        {
            if (dungeonTimes.ContainsKey(dataMapId))
            {
                return dungeonTimes[dataMapId];
            }
            else
            {
                return null;
            }
        }
    }
}
Core/GameEngine/Model/TelPartialConfig/DungeonMixServerStateTimeConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cb3c639467226e14aa8a31413a42dbe2
timeCreated: 1550112217
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC006_tagGCCrossRealmPKSeasonState.cs
@@ -6,9 +6,11 @@
public class DTCC006_tagGCCrossRealmPKSeasonState : DtcBasic {
public class DTCC006_tagGCCrossRealmPKSeasonState : DtcBasic
{
    public override void Done(GameNetPackBasic vNetPack) {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
@@ -16,5 +18,4 @@
        CrossServerOneVsOnePKSeason.Instance.UpdateSelfSeason(vNetData);
    }
}
}
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC006_tagGCCrossRealmPKSeasonState.cs
@@ -8,6 +8,8 @@
    public ushort SeasonID;    // 当前赛季ID
    public byte SeasonState;    // 赛季状态;0-未开启,1-开启中,2-已结束
    public byte MatchState;    // 匹配状态;0-未开启;1-开启中
    public byte CrossZoneNameLen;
    public string CrossZoneName;    // 跨服分区名
    public HC006_tagGCCrossRealmPKSeasonState () {
        _cmd = (ushort)0xC006;
@@ -18,6 +20,8 @@
        TransBytes (out SeasonID, vBytes, NetDataType.WORD);
        TransBytes (out SeasonState, vBytes, NetDataType.BYTE);
        TransBytes (out MatchState, vBytes, NetDataType.BYTE);
        TransBytes (out CrossZoneNameLen, vBytes, NetDataType.BYTE);
        TransBytes (out CrossZoneName, vBytes, NetDataType.Chars, CrossZoneNameLen);
    }
}
System/CrossServerOneVsOne/CrossServerOneVsOnePKSeason.cs
@@ -9,7 +9,7 @@
    [XLua.Hotfix]
    public class CrossServerOneVsOnePKSeason : Singleton<CrossServerOneVsOnePKSeason>
    {
        public int ZoneCount { get; private set;}    // 所有赛区个数
        public int ZoneCount { get; private set; }    // 所有赛区个数
        public List<PkZoneInfo> ZoneIDList { get; private set; }    // 所有赛区列表
@@ -21,13 +21,15 @@
        public int MatchState { get; private set; }    // 匹配状态;0-未开启;1-开启中
        public string CrossZoneName { get; private set; }     // 跨服分区名
        public bool isSatisfyMatch
        {
            get
            {
                return FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.CrossServer)
                    && TimeUtility.OpenDay >= crossServerModel.afterOpenDayOpenCross
                    && InPkSeason(TimeUtility.ServerNow)
                    && InPkSeason(TimeUtility.ServerNow)
                    && InOpenTime();
            }
        }
@@ -48,7 +50,7 @@
                this.ZoneName = pKZone.ZoneName;
                this.SeasonCount = pKZone.SeasonCount;
                SeasonList = new List<PkSeasonInfo>();
                for(int i = 0; i < pKZone.SeasonCount; i++)
                for (int i = 0; i < pKZone.SeasonCount; i++)
                {
                    var pkSeason = pKZone.SeasonList[i];
                    PkSeasonInfo seasonInfo = new PkSeasonInfo();
@@ -113,24 +115,25 @@
            SeasonID = 0;
            SeasonState = 0;
            MatchState = 0;
            CrossZoneName = string.Empty;
        }
        private void SecondEvent()
        {
            if(!inDateNotify && InPkSeason(TimeUtility.ServerNow))
            if (!inDateNotify && InPkSeason(TimeUtility.ServerNow))
            {
                inDateNotify = true;
                stepDateNotify = false;
                if(activityStartEvent != null)
                if (activityStartEvent != null)
                {
                    activityStartEvent();
                }
            }
            else if(!stepDateNotify && !InPkSeason(TimeUtility.ServerNow))
            else if (!stepDateNotify && !InPkSeason(TimeUtility.ServerNow))
            {
                inDateNotify = false;
                stepDateNotify = true;
                if(activityEndEvent != null)
                if (activityEndEvent != null)
                {
                    activityEndEvent();
                }
@@ -143,11 +146,11 @@
            bool isOpenDay = TimeUtility.OpenDay >= crossServerModel.afterOpenDayOpenCross;
            if (!isFuncOpen)
            {
                if(isTip)
                if (isTip)
                {
                    SysNotifyMgr.Instance.ShowTip("FuncLimit_Level");
                }
                return false;
            }
            if (!isOpenDay)
@@ -169,7 +172,7 @@
            this.ZoneCount = pkSeason.ZoneCount;
            var zoneIDs = pkSeason.ZoneList;
            this.ZoneIDList = new List<PkZoneInfo>();
            for(int i = 0; i < pkSeason.ZoneCount; i++)
            for (int i = 0; i < pkSeason.ZoneCount; i++)
            {
                var pkZone = pkSeason.ZoneList[i];
                PkZoneInfo zoneInfo = new PkZoneInfo();
@@ -184,16 +187,16 @@
            this.SeasonID = pKSeasonState.SeasonID;
            this.SeasonState = pKSeasonState.SeasonState;
            this.MatchState = pKSeasonState.MatchState;
            if(this.SeasonState != 1 || this.MatchState != 1)
            this.CrossZoneName = pKSeasonState.CrossZoneName;
            if (this.SeasonState != 1 || this.MatchState != 1)
            {
                if(crossServerModel.IsMatching)
                if (crossServerModel.IsMatching)
                {
                    crossServerModel.IsMatching = false;
                }
            }
            if(updateSelfSeasonEvent != null)
            if (updateSelfSeasonEvent != null)
            {
                updateSelfSeasonEvent();
            }
@@ -205,7 +208,7 @@
            zoneInfo = null;
            if (ZoneIDList == null) return false;
            for(int i = 0; i < ZoneIDList.Count; i++)
            for (int i = 0; i < ZoneIDList.Count; i++)
            {
                var info = ZoneIDList[i];
                if (this.ZoneID == info.ZoneID)
@@ -224,10 +227,10 @@
            bool isZone = TryGetZoneInfo(out zoneInfo);
            if (!isZone) return false;
            for(int i = 0; i < zoneInfo.SeasonList.Count; i++)
            for (int i = 0; i < zoneInfo.SeasonList.Count; i++)
            {
                var info = zoneInfo.SeasonList[i];
                if(this.SeasonID == info.SeasonID)
                if (this.SeasonID == info.SeasonID)
                {
                    seasonInfo = info;
                    return true;
@@ -246,7 +249,7 @@
            for (int i = 0; i < zoneInfo.SeasonList.Count; i++)
            {
                var info = zoneInfo.SeasonList[i];
                if(info.SeasonID > this.SeasonID)
                if (info.SeasonID > this.SeasonID)
                {
                    seasonInfo = info;
                    return true;
@@ -265,7 +268,7 @@
            };
            PkSeasonInfo seasonInfo = null;
            bool isSeason = TryGetSeasonInfo(out seasonInfo);
            if(isSeason && SeasonState == 1)
            if (isSeason && SeasonState == 1)
            {
                return date >= seasonInfo.StartDate && date <= seasonInfo.EndDate;
            }
@@ -295,10 +298,10 @@
            dailyQuestModel.TryGetOpenTime((int)DailyQuestType.CrossServerPk, out _openTime);
            var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
            Dictionary<int, List<HourMinute>> keyValues = null;
            if(_openTime != null)
            if (_openTime != null)
            {
                keyValues = _openTime.NormalOpenTimes;
                if(keyValues.ContainsKey(dayOfWeek))
                if (keyValues.ContainsKey(dayOfWeek))
                {
                    return keyValues[dayOfWeek];
                }
@@ -314,7 +317,7 @@
            }
            PkSeasonInfo seasonInfo = null;
            bool isSeason = TryGetSeasonInfo(out seasonInfo);
            if(isSeason)
            if (isSeason)
            {
                DateTime s = new DateTime(seasonInfo.StartDate.year, seasonInfo.StartDate.month, seasonInfo.StartDate.day);
                return (time - s).Days;
@@ -326,7 +329,7 @@
        {
            PkSeasonInfo seasonInfo = null;
            bool isSeason = TryGetSeasonInfo(out seasonInfo);
            if(isSeason)
            if (isSeason)
            {
                if (!seasonInfo.StartDate.Equals(default(OperationDate))
                    && InPkSeason(TimeUtility.ServerNow))
@@ -344,11 +347,11 @@
            return Language.Get("CrossServer107", Language.Get("CrossServer108"));
        }
        private string ToDisplayTime(OperationDate start,OperationDate end)
        private string ToDisplayTime(OperationDate start, OperationDate end)
        {
           if(start != end)
            if (start != end)
            {
                return StringUtility.Contact(start.ToDisplay(),"-",end.ToDisplay());
                return StringUtility.Contact(start.ToDisplay(), "-", end.ToDisplay());
            }
            return start.ToDisplay();
        }
System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
@@ -81,11 +81,11 @@
    private int MianOpenLV = 0;//跨服按钮开启条件
    public string ZoneName = string.Empty;//赛区名
    private int currentId = 0;
    private int currentId = 0;//获取当前赛区ID
    private string crossZoneName = string.Empty;//赛区编号
    public override void Init()
    {
        GetSeasonAward();
        GetSegmentReward();
        var config = Config.Instance.Get<FuncConfigConfig>("CrossServerIcon").Numerical1;
        MianOpenLV = int.Parse(config);
    }
@@ -102,6 +102,8 @@
    public void OnPlayerLoginOk()
    {
        GetSeasonAward();
        GetSegmentReward();
        crossServerModel.UpdatePkResultEvent += UpdatePkResultEvent;
        CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfoEvent;
        GetZoneName();
@@ -159,21 +161,30 @@
            WindowCenter.Instance.Open<CrossServerSettlementWin>();
        }
    }
    public  void GetSeasonAward()//段位奖励数据获取
    public void GetSeasonAward()//段位奖励数据获取
    {
        // if(currentId)
        var seasonID = CrossServerOneVsOnePKSeason.Instance.SeasonID;
        if (CrossServerOneVsOnePKSeason.Instance.CrossZoneName != null)
        {
            crossZoneName = CrossServerOneVsOnePKSeason.Instance.CrossZoneName;
        }
        if (seasonID == 0)
        {
            seasonID +=1;
            seasonID += 1;
        }
        if (currentId == seasonID && SegmentRewardDic.Count != 0)
        {
            return;
        }
        var configPK = Config.Instance.GetAllValues<CrossRealmPKDanAwardConfig>();
      //  var config = Config.Instance.GetAllValues<CrossServerArenaConfig>();
        SegmentRewardDic.Clear();
        for (int i = 0; i < configPK.Count; i++)
        {
            var _config = configPK[i];
            if (!SegmentRewardDic.ContainsKey(_config.DanLV) && _config.SeasonID== seasonID)
            {
            bool result = crossZoneName.Equals(_config.CrossZoneName);
            if (!SegmentRewardDic.ContainsKey(_config.DanLV) && _config.SeasonID == seasonID && result)
            {
                SeasonAwardClass seasonAwardClass = new SeasonAwardClass();
                seasonAwardClass.DanLv = _config.DanLV;
                var crossServerArena = Config.Instance.Get<CrossServerArenaConfig>(_config.DanLV);
@@ -181,7 +192,7 @@
                {
                    seasonAwardClass.Name = crossServerArena.Name;
                    seasonAwardClass.Score = crossServerArena.LVUpScore;
                }
                }
                var _jsonData = LitJson.JsonMapper.ToObject(_config.DanLVAwardList);
                List<Item_Class> itemClassList = new List<Item_Class>();
                for (int j = 0; j < _jsonData.Count; j++)
@@ -200,31 +211,57 @@
                SegmentRewardDic.Add(_config.DanLV, seasonAwardClass);
            }
        }
        currentId = seasonID;
    }
    private void GetSegmentReward()
    public void GetSegmentReward()//赛季奖励
    {
        var CrossRealmPKAward = Config.Instance.Get<FuncConfigConfig>("CrossRealmPKAward");
        ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
        var _jsonData = LitJson.JsonMapper.ToObject(CrossRealmPKAward.Numerical3);
        foreach (string key in _jsonData.Keys)
        var seasonID = CrossServerOneVsOnePKSeason.Instance.SeasonID;
        if (CrossServerOneVsOnePKSeason.Instance.CrossZoneName != null)
        {
            var _ranking = int.Parse(key);
            var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
            for (int j = 0; j < _itemArray.Length; j++)
            {
                _award.Add(_ranking, new AwardItem()
                {
                    item = new Item(_itemArray[j][0], _itemArray[j][1]),
                    isBind = _itemArray[j][2],
                });
            }
            crossZoneName = CrossServerOneVsOnePKSeason.Instance.CrossZoneName;
        }
        SeasonRewardDic = _award;
        var config = Config.Instance.GetAllValues<CrossServerArenaConfig>();
        for (int i = 0; i < config.Count; i++)
        if (seasonID == 0)
        {
            var _config = config[i];
            if (!SeasonRewardConfigDic.ContainsKey(_config.DanLV))
            seasonID += 1;
        }
        if (currentId == seasonID && SeasonRewardConfigDic.Count != 0)
        {
            return;
        }
        var crossRealmPKOrderAward = Config.Instance.GetAllValues<CrossRealmPKOrderAwardConfig>();
        for (int i = 0; i < crossRealmPKOrderAward.Count; i++)
        {
            var _config = crossRealmPKOrderAward[i];
            bool result = crossZoneName.Equals(_config.CrossZoneName);
            if (seasonID == _config.SeasonID && result)
            {
                ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
                var _jsonData = LitJson.JsonMapper.ToObject(_config.SeasonOrderAward);
                foreach (string key in _jsonData.Keys)
                {
                    var _ranking = int.Parse(key);
                    var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
                    for (int j = 0; j < _itemArray.Length; j++)
                    {
                        _award.Add(_ranking, new AwardItem()
                        {
                            item = new Item(_itemArray[j][0], _itemArray[j][1]),
                            isBind = _itemArray[j][2],
                        });
                    }
                }
                SeasonRewardDic = _award;
            }
        }
        //---
        SeasonRewardConfigDic.Clear();
        var configPK = Config.Instance.GetAllValues<CrossRealmPKDanAwardConfig>();
        for (int i = 0; i < configPK.Count; i++)
        {
            var _config = configPK[i];
            bool result = crossZoneName.Equals(_config.CrossZoneName);
            if (!SeasonRewardConfigDic.ContainsKey(_config.DanLV) && _config.SeasonID == seasonID && result)
            {
                var _jsonDataC = LitJson.JsonMapper.ToObject(_config.SeasonAwardList);
                List<Item_Class> itemClassList = new List<Item_Class>();
@@ -243,6 +280,7 @@
                SeasonRewardConfigDic.Add(_config.DanLV, itemClassList);
            }
        }
        currentId = seasonID;
    }
    public void CrossRealmPKAwardState(HC102_tagMCCrossRealmPKAwardState info)//c102跨服PK玩家奖励记录
    {
@@ -441,7 +479,8 @@
    }
    private static int m_PkType = 0;
    public static int PkType {
    public static int PkType
    {
        get { return m_PkType; }
        set { m_PkType = value; }
    }
System/CrossServerOneVsOne/SeasonRewardWin.cs
@@ -38,6 +38,7 @@
        protected override void OnPreOpen()
        {
            crossServerRewardModel.GetSegmentReward();
            IsInquireReward();
            OnCreateGridLineCell(m_ScrollerController);
            m_ScrollerController.JumpIndex(JumpIndex());
System/CrossServerOneVsOne/SegmentRewardWin.cs
@@ -33,6 +33,7 @@
        protected override void OnPreOpen()
        {
            crossServerRewardModel.GetSeasonAward();
            ToAddSorting();
            OnCreateGridLineCell(m_ScrollerController);
            m_ScrollerController.JumpIndex(JumpIndex());
System/FairyAu/FairyLeagueModel.cs
@@ -18,6 +18,30 @@
        {
            get
            {
                if (TimeUtility.IsMixServer && TimeUtility.MixOpenDay < GeneralDefine.mixServerCustomDays)
                {
                    var week = GetMixServerWeek(TimeUtility.MixOpenDay);
                    var lastWeek = GetMixServerWeek(GeneralDefine.mixServerCustomDays - 1);
                    if (mixServerWeekTimes.ContainsKey(week)
                        && (week < lastWeek || TimeUtility.MixOpenDay <= mixServerWeekTimes[week].lastMixServerDay))
                    {
                        return mixServerWeekTimes[week];
                    }
                    if (week < lastWeek)
                    {
                        return null;
                    }
                    else if (week == lastWeek)
                    {
                        var date = TimeUtility.ServerNow.AddTicks(-TimeUtility.MixOpenDay * TimeSpan.TicksPerDay);
                        var lastDayOfWeek = date.AddTicks((GeneralDefine.mixServerCustomDays - 1) * TimeSpan.TicksPerDay).DayOfWeek;
                        var dayOfWeek = lastDayOfWeek == DayOfWeek.Sunday ? 7 : (int)lastDayOfWeek;
                        if (dayOfWeek >= fairyLeagueWeekTime.rings[0].dayOfWeek)
                        {
                            return null;
                        }
                    }
                }
                var openServerWeekDay = TimeUtility.openServerDayOfWeek == DayOfWeek.Sunday ? 7 : (int)TimeUtility.openServerDayOfWeek;
                if (specialLeagueTimes.ContainsKey(openServerWeekDay))
                {
@@ -40,6 +64,14 @@
        {
            get
            {
                if (TimeUtility.IsMixServer && TimeUtility.MixOpenDay < GeneralDefine.mixServerCustomDays)
                {
                    var week = GetMixServerWeek(TimeUtility.MixOpenDay);
                    if (mixServerWeekTimes.ContainsKey(week + 1))
                    {
                        return mixServerWeekTimes[week + 1];
                    }
                }
                var openServerWeekDay = TimeUtility.openServerDayOfWeek == DayOfWeek.Sunday ? 7 : (int)TimeUtility.openServerDayOfWeek;
                if (specialLeagueTimes.ContainsKey(openServerWeekDay))
                {
@@ -140,6 +172,7 @@
        {
            ClearFairyWarHelp();
            frontFairyList.Clear();
            mixServerWeekTimes.Clear();
            fairyLeagueFairyId = 0;
            fairyLeagueFairyName = string.Empty;
            serverInited = false;
@@ -151,6 +184,7 @@
        public void OnPlayerLoginOk()
        {
            ParseMixServerLeagueTimes();
            ResetFairyLeagueTime();
            cacheLeagueStage = fairyLeagueStage;
            CheckFairyLeagueData();
@@ -161,7 +195,11 @@
        private void OnServerOpenDayRefresh()
        {
            ParseMixServerLeagueTimes();
            ResetFairyLeagueTime();
            cacheLeagueStage = fairyLeagueStage;
            CheckFairyLeagueData();
            UpdateRedpoint();
        }
        private void DayEvent()
@@ -248,6 +286,7 @@
        readonly List<int> fairyLeagueStateValues = new List<int>() { 11, 12, 13, 21, 22, 23 };
        FairyLeagueWeekTime fairyLeagueWeekTime = new FairyLeagueWeekTime();
        Dictionary<int, Dictionary<int, FairyLeagueWeekTime>> specialLeagueTimes = new Dictionary<int, Dictionary<int, FairyLeagueWeekTime>>();
        Dictionary<int, FairyLeagueWeekTime> mixServerWeekTimes = new Dictionary<int, FairyLeagueWeekTime>();
        public Dictionary<int,int> leagueNoticeWeapons { get; private set; }
        private void ParseConfig()
        {
@@ -431,6 +470,41 @@
        public bool TryGetCrystalRate(int _npcId, out float _rate)
        {
            return crystalRateDict.TryGetValue(_npcId, out _rate);
        }
        void ParseMixServerLeagueTimes()
        {
            mixServerWeekTimes.Clear();
            if (!TimeUtility.IsMixServer)
            {
                return;
            }
            var configs = DungeonMixServerStateTimeConfig.GetDungeonTimes(FAIRY_LEAGUE_DUNGEON);
            foreach (var config in configs)
            {
                var week = GetMixServerWeek(config.MixServerDay - 1);
                FairyLeagueWeekTime leagueTime;
                if (!mixServerWeekTimes.TryGetValue(week, out leagueTime))
                {
                    leagueTime = new FairyLeagueWeekTime();
                    mixServerWeekTimes.Add(week, leagueTime);
                }
                var date = TimeUtility.ServerNow.AddTicks(-TimeUtility.MixOpenDay * TimeSpan.TicksPerDay);
                var dayOfWeek = date.AddTicks((config.MixServerDay - 1) * TimeSpan.TicksPerDay).DayOfWeek;
                leagueTime.AddStage(config, dayOfWeek == DayOfWeek.Sunday ? 7 : (int)dayOfWeek);
            }
            foreach (var weekTime in mixServerWeekTimes.Values)
            {
                weekTime.Sort();
            }
        }
        int GetMixServerWeek(int mixDays)
        {
            var date = TimeUtility.ServerNow.AddTicks(-TimeUtility.MixOpenDay * TimeSpan.TicksPerDay);
            var dayOfWeek = date.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)date.DayOfWeek;
            var week = Mathf.CeilToInt((mixDays - (7 - dayOfWeek)) / (float)7);
            return week;
        }
        #endregion
@@ -1186,6 +1260,14 @@
            }
        }
        public int lastMixServerDay
        {
            get
            {
                return rings[rings.Count - 1].mixServerDay;
            }
        }
        public void AddStage(DungeonStateTimeConfig config)
        {
            var ring = rings.Find((x) =>
@@ -1202,6 +1284,22 @@
        }
        public void AddStage(DungeonSpecialStateTimeConfig config, int dayOfWeek)
        {
            var ring = rings.Find((x) =>
            {
                return x.dayOfWeek == dayOfWeek;
            });
            if (ring == null)
            {
                ring = new Ring();
                rings.Add(ring);
                ring.dayOfWeek = dayOfWeek;
            }
            ring.ParseConfig(config, dayOfWeek);
        }
        public void AddStage(DungeonMixServerStateTimeConfig config, int dayOfWeek)
        {
            var ring = rings.Find((x) =>
            {
@@ -1280,6 +1378,8 @@
            public int openServerDay { get; private set; }
            public int mixServerDay { get; private set; }
            public void Sort()
            {
                sessions.Sort((Session x, Session y) =>
@@ -1310,6 +1410,23 @@
            public void ParseConfig(DungeonSpecialStateTimeConfig config, int dayOfWeek)
            {
                openServerDay = config.OpenServerDay;
                var session = sessions.Find((x) =>
                {
                    return x.session == (config.StateValue < 20 ? 0 : 1);
                });
                if (session == null)
                {
                    session = new Session();
                    session.session = config.StateValue < 20 ? 0 : 1;
                    sessions.Add(session);
                }
                session.ParseConfig(config, dayOfWeek);
            }
            public void ParseConfig(DungeonMixServerStateTimeConfig config, int dayOfWeek)
            {
                mixServerDay = config.MixServerDay - 1;
                var session = sessions.Find((x) =>
                {
@@ -1415,6 +1532,21 @@
                stages.Add(stage);
            }
            public void ParseConfig(DungeonMixServerStateTimeConfig config, int dayOfWeek)
            {
                var state = config.StateValue % 10;
                var stage = new Stage()
                {
                    stage = state == 1 ? FairyLeagueStage.Grouping : (state == 2 ? FairyLeagueStage.Fight : FairyLeagueStage.Over),
                    dayOfWeek = dayOfWeek,
                    startHour = config.StartHour,
                    endHour = config.EndHour,
                    startMinute = config.StartMinute,
                    endMinute = config.EndMinute
                };
                stages.Add(stage);
            }
            public bool InSession(DateTime time)
            {
                var groupStage = stages.Find((x) =>
System/GeneralConfig/GeneralDefine.cs
@@ -174,6 +174,7 @@
    public static int crossServerOneVsOneOpenDay { get; private set; }
    public static int UISpringDecorate { get; private set; }
    public static Dictionary<int, List<int>> skillAttrIDDict { get; private set; }
    public static int mixServerCustomDays { get; private set; }
    public static void Init()
    {
@@ -703,6 +704,8 @@
            crossServerOneVsOneOpenDay = GetInt("CrossRealmCfg");
            UISpringDecorate = GetInt("UISpringDecorate");
            mixServerCustomDays = GetInt("MixServer");
        }
        catch (Exception ex)
        {