From dac2b2669e7eb8da6719e8d5f9391ad1061ac4a5 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 14 二月 2019 12:04:21 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs |  101 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 70 insertions(+), 31 deletions(-)

diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
index 699cb79..7a4227a 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
+++ b/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; }
     }

--
Gitblit v1.8.0