From f48909e1d7d0956abb833a315a56d6f1242f2a93 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期三, 19 十二月 2018 10:33:37 +0800
Subject: [PATCH] 5398  【前端】【1.4】跨服竞技场开发

---
 System/CrossServerOneVsOne/CrossServerModel.cs |  101 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 87 insertions(+), 14 deletions(-)

diff --git a/System/CrossServerOneVsOne/CrossServerModel.cs b/System/CrossServerOneVsOne/CrossServerModel.cs
index 56d4881..5121c14 100644
--- a/System/CrossServerOneVsOne/CrossServerModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerModel.cs
@@ -18,7 +18,7 @@
 
         public void OnBeforePlayerDataInitialize()
         {
-            ResetData();
+            InitData();
         }
 
         public void OnAfterPlayerDataInitialize()
@@ -36,10 +36,24 @@
 
         }
 
+        private void InitData()
+        {
+            curWinRate = 0;
+            sumBattleNum = 0;
+            dayMatchNum = 0;
+            alreadyBuyNum = 0;
+            pkResultInfo = new PkResultInfo();
+        }
+
         public bool TryGetMaxRank(out int upScore)
         {
-            var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(curRank);
-            upScore = arenaConfig.LVUpScore;
+            upScore = 0;
+            if (pkResultInfo == null) return false;
+            var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(pkResultInfo.DanLV);
+            if(arenaConfig != null)
+            {
+                upScore = arenaConfig.LVUpScore;
+            }
             return upScore == 0;
         }
 
@@ -200,24 +214,83 @@
         #endregion
 
         #region 鍗忚
-        public int curRank { get; private set; } //褰撳墠娈典綅
-        public int curScore { get; private set; } //褰撳墠绉垎
         public int curWinRate { get; private set; } //褰撳墠鑳滅巼
         public int sumBattleNum { get; private set; } //瀵规垬鎬诲満鏁�
         public int dayMatchNum { get; private set; } //浠婃棩鍖归厤娆℃暟
         public int alreadyBuyNum { get; private set;} //浠婃棩璐拱鍖归厤娆℃暟
-        #endregion
-
-        private void ResetData()
+        public PkResultInfo pkResultInfo { get; private set;}
+        public event Action UpdatePkResultEvent;
+        public void UpdatePKResultInfo(HC003_tagGCCrossRealmPKOverInfo pKOverInfo)
         {
-            curRank = 0;
-            curScore = 0;
-            curWinRate = 0;
-            sumBattleNum = 0;
-            dayMatchNum = 0;
-            alreadyBuyNum = 0;
+            pkResultInfo.PkEndTime = pKOverInfo.TimeStr;
+            pkResultInfo.OverType = pKOverInfo.OverType;
+            pkResultInfo.WinnerID = (int)pKOverInfo.WinnerID;
+            pkResultInfo.RoundCount = pKOverInfo.RoundCount;
+            pkResultInfo.RoundWinnerIDs = pKOverInfo.RoundWinnerID;
+            pkResultInfo.AddScore = pKOverInfo.AddScore;
+            pkResultInfo.CurScore = pKOverInfo.Score;
+            pkResultInfo.DanLV = pKOverInfo.DanLV;
+            pkResultInfo.WinStreak = pKOverInfo.CWinCnt;
+            pkResultInfo.VsPlayerName = pKOverInfo.TagName;
+            if(UpdatePkResultEvent != null)
+            {
+                UpdatePkResultEvent();
+            }
         }
 
+        public class PkResultInfo
+        {
+            public string PkEndTime;    // 缁撶畻鏃堕棿锛屾牸寮� yyyy-MM-dd HH:mm:ss
+
+            public int OverType;    // 0-姝e父锛�1-鏈変汉绂荤嚎
+
+            public int WinnerID;    // 鑳滄柟ID
+
+            public int RoundCount;    // PK鍥炲悎鏁�
+
+            public uint[] RoundWinnerIDs;    // 鍥炲悎鑾疯儨ID鍒楄〃
+
+            public int AddScore;    // 鏈満鍔犲垎
+
+            public int CurScore;    // 褰撳墠绉垎
+
+            public int DanLV;    // 褰撳墠娈典綅
+
+            public int WinStreak;    // 褰撳墠杩炶儨鏁�
+
+            public string VsPlayerName; //瀵规墜鍚嶅瓧
+        }
+
+        public void GetWinAndFailNum(out int winNum,out int failNum)
+        {
+            winNum = 0;
+            failNum = 0;
+            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
+            for(int i = 0; i < pkResultInfo.RoundCount; i++)
+            {
+                var winnerId = pkResultInfo.RoundWinnerIDs[i];
+                if(winnerId == playerId)
+                {
+                    winNum += 1;
+                }
+                else
+                {
+                    failNum += 1;
+                }
+            }
+        }
+
+        /// <summary>
+        ///0-鍙栨秷鍖归厤; 1-杩涜鍖归厤
+        /// </summary>
+        /// <param name="type"></param>
+        public void SendCrossMatch(int type)
+        {
+            CC101_tagCMCrossRealmPKMatch match = new CC101_tagCMCrossRealmPKMatch();
+            match.Type = (byte)type;
+            GameNetSystem.Instance.SendInfo(match);
+        }
+        #endregion
         #region 绾㈢偣
         #endregion
 

--
Gitblit v1.8.0