From d5fb58e6d77bf3dee64b2f2420bbdec38b424ab6 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 20 十二月 2018 20:51:11 +0800
Subject: [PATCH] 5398 子 【开发】【1.4】跨服竞技场 / 【前端】【1.4】跨服竞技场开发

---
 Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs         |   19 ++++++
 Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs.meta    |   12 ++++
 Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs      |   31 ++++++++++
 Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs.meta |   12 ++++
 Core/GameEngine/Model/Player/PlayerDatas.cs                                                      |    9 +++
 Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs.meta           |   12 ++++
 Core/GameEngine/DataToCtl/PackageRegedit.cs                                                      |    1 
 Core/NetworkPackage/GameNetSystem.cs                                                             |    4 +
 Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs                |   32 ++++++++++
 System/Login/CrossServerLogin.cs                                                                 |    2 
 Core/GameEngine/Model/Player/Character/PlayerBaseData.cs                                         |   16 ++++-
 11 files changed, 145 insertions(+), 5 deletions(-)

diff --git a/Core/GameEngine/DataToCtl/PackageRegedit.cs b/Core/GameEngine/DataToCtl/PackageRegedit.cs
index e433df7..bd9bece 100644
--- a/Core/GameEngine/DataToCtl/PackageRegedit.cs
+++ b/Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -31,6 +31,7 @@
     public static void Init()
     {
         // 鐧昏鐩稿簲鐨勬暟鎹綋鍙婂搴旂殑鏁版嵁杞�昏緫绫�
+		Register(typeof(HC103_tagMCExitCrossRealmRefresh), typeof(DTCC103_tagMCExitCrossRealmRefresh));
         Register(typeof(HAA1D_tagMCActTotalRechargeInfo), typeof(DTCAA1D_tagMCActTotalRechargeInfo));
         Register(typeof(HAA1C_tagMCTotalRechargePlayerInfo), typeof(DTCAA1C_tagMCTotalRechargePlayerInfo));
         Register(typeof(HA717_tagMCChatBubbleBoxState), typeof(DTCA717_tagMCChatBubbleBoxState));
diff --git a/Core/GameEngine/Model/Player/Character/PlayerBaseData.cs b/Core/GameEngine/Model/Player/Character/PlayerBaseData.cs
index bb13126..fc02dfd 100644
--- a/Core/GameEngine/Model/Player/Character/PlayerBaseData.cs
+++ b/Core/GameEngine/Model/Player/Character/PlayerBaseData.cs
@@ -62,10 +62,8 @@
     public int BasicsDefense;//鍩虹闃插尽
     public int BasicsScoreAHit;//鍩虹鍛戒腑
     public int BasicsDodge;//鍩虹闂伩
-    public long treasurePotentialSp
-    {
-        get
-        {
+    public long treasurePotentialSp {
+        get {
             return ExAttr8 * (long)100000000 + ExAttr7;
         }
     }
@@ -137,5 +135,15 @@
         godWeaponLV_4 = (int)_serverInfo.ExAttr18;
     }
 
+    public void UpdateData(HC103_tagMCExitCrossRealmRefresh serverInfo)
+    {
+        PlayerName = serverInfo.PlayerName;
+        MapID = serverInfo.MapID;
+        FBID = serverInfo.FBID;
+        dungeonLineId = serverInfo.FuncLineID;
+        PosX = serverInfo.PosX;
+        PosY = serverInfo.PosY;
+        HP = serverInfo.HP;
+    }
 
 }
diff --git a/Core/GameEngine/Model/Player/PlayerDatas.cs b/Core/GameEngine/Model/Player/PlayerDatas.cs
index fad48b8..8b0ca4d 100644
--- a/Core/GameEngine/Model/Player/PlayerDatas.cs
+++ b/Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -66,6 +66,15 @@
         }
     }
 
+    public void UpdatePlayerData(HC103_tagMCExitCrossRealmRefresh data)
+    {
+        baseData.UpdateData(data);
+        if (RefreshPlayerInfoEvent != null)
+        {
+            RefreshPlayerInfoEvent();
+        }
+    }
+
     public void FightRefreshPlayerHp(uint hp)
     {
         RefreshProperty(PlayerDataRefresh.HP, hp);
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs b/Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs
new file mode 100644
index 0000000..0453f2f
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs
@@ -0,0 +1,19 @@
+锘縰sing UnityEngine;
+using System.Collections;
+
+// C1 04 涓诲姩閫�鍑鸿法鏈� #tagCMExitCrossRealm
+
+public class CC104_tagCMExitCrossRealm : GameNetPackBasic
+{
+
+    public CC104_tagCMExitCrossRealm()
+    {
+        combineCmd = (ushort)0x03FE;
+        _cmd = (ushort)0xC104;
+    }
+
+    public override void WriteToBytes()
+    {
+    }
+
+}
\ No newline at end of file
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs.meta b/Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs.meta
new file mode 100644
index 0000000..9fe1ff9
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/C01_System/CC104_tagCMExitCrossRealm.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 162213b07a435ba4fba1bfc0c20e3dea
+timeCreated: 1545308621
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs b/Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs
new file mode 100644
index 0000000..d66a18c
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs
@@ -0,0 +1,31 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Thursday, December 20, 2018
+//--------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Snxxz.UI;
+
+public class DTCC103_tagMCExitCrossRealmRefresh : DtcBasic
+{
+
+    public override void Done(GameNetPackBasic vNetPack)
+    {
+        base.Done(vNetPack);
+        var package = vNetPack as HC103_tagMCExitCrossRealmRefresh;
+
+        GameNetSystem.Instance.crossServerConnected_Loigc = false;
+        PlayerDatas.Instance.UpdatePlayerData(package);
+
+        LoadingWin.targetMapResId = 1;
+        WindowCenter.Instance.Open<LoadingWin>();
+        StageManager.Instance.Load<DungeonStage>(PlayerDatas.Instance.baseData.MapID, true);
+    }
+
+}
+
+
+
+
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs.meta b/Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs.meta
new file mode 100644
index 0000000..e166df2
--- /dev/null
+++ b/Core/NetworkPackage/DTCFile/ServerPack/HC1_CrossRealm/DTCC103_tagMCExitCrossRealmRefresh.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 14f7dd7102df83747afb909b5c649715
+timeCreated: 1545309199
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Core/NetworkPackage/GameNetSystem.cs b/Core/NetworkPackage/GameNetSystem.cs
index 2b5313b..57348d7 100644
--- a/Core/NetworkPackage/GameNetSystem.cs
+++ b/Core/NetworkPackage/GameNetSystem.cs
@@ -76,8 +76,9 @@
         get { return mainSocket == null ? 0f : (float)(DateTime.Now - mainSocket.lastPackageTime).TotalSeconds; }
     }
 
+    public bool crossServerConnected_Loigc { get; set; }
     private ClientSocket crossServerSocket;
-    public bool crossServerSocketConnected { get { return crossServerSocket == null ? false : crossServerSocket.connected; } }
+    public bool crossServerSocketConnected { get { return crossServerConnected_Loigc && crossServerSocket == null ? false : crossServerSocket.connected; } }
 
     public float timeSinceCrossServerSocketLastProtocol {
         get { return crossServerSocket == null ? 0f : (float)(DateTime.Now - crossServerSocket.lastPackageTime).TotalSeconds; }
@@ -137,6 +138,7 @@
     {
         try
         {
+            crossServerConnected_Loigc = false;
             if (crossServerSocketConnected)
             {
                 crossServerSocket.CloseConnect();
diff --git a/Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs b/Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs
new file mode 100644
index 0000000..4fa7642
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs
@@ -0,0 +1,32 @@
+锘縰sing UnityEngine;
+using System.Collections;
+
+// C1 03 閫�鍑鸿法鏈嶅埛鏂� #tagMCExitCrossRealmRefresh
+
+public class HC103_tagMCExitCrossRealmRefresh : GameNetPackBasic
+{
+    public string PlayerName;
+    public ushort MapID;
+    public byte FBID;
+    public byte FuncLineID;
+    public ushort PosX;
+    public ushort PosY;
+    public uint HP;
+
+    public HC103_tagMCExitCrossRealmRefresh()
+    {
+        _cmd = (ushort)0xC103;
+    }
+
+    public override void ReadFromBytes(byte[] vBytes)
+    {
+        TransBytes(out PlayerName, vBytes, NetDataType.Chars, 33);
+        TransBytes(out MapID, vBytes, NetDataType.WORD);
+        TransBytes(out FBID, vBytes, NetDataType.BYTE);
+        TransBytes(out FuncLineID, vBytes, NetDataType.BYTE);
+        TransBytes(out PosX, vBytes, NetDataType.WORD);
+        TransBytes(out PosY, vBytes, NetDataType.WORD);
+        TransBytes(out HP, vBytes, NetDataType.DWORD);
+    }
+
+}
\ No newline at end of file
diff --git a/Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs.meta b/Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs.meta
new file mode 100644
index 0000000..a44c338
--- /dev/null
+++ b/Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC103_tagMCExitCrossRealmRefresh.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 594f22856ab123f4ca4b9f80b5031090
+timeCreated: 1545308834
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/System/Login/CrossServerLogin.cs b/System/Login/CrossServerLogin.cs
index 62821d0..822b987 100644
--- a/System/Login/CrossServerLogin.cs
+++ b/System/Login/CrossServerLogin.cs
@@ -283,6 +283,8 @@
                 return;
             }
 
+            GameNetSystem.Instance.crossServerConnected_Loigc = true;
+
             var tagCRoleLoginAsk = new C0108_tagCRoleLoginAsk();
             tagCRoleLoginAsk.Type = (byte)_type;//杩涘叆娓告垙
             tagCRoleLoginAsk.ClientID = SDKUtility.Instance.RegistrationID;

--
Gitblit v1.8.0