From 45dc7ce48270b41e9c287ddab3e827d52480cf8c Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 08 一月 2019 14:48:35 +0800
Subject: [PATCH] 5725 【前端】【1.5】跨服BOSS开发

---
 Core/GameEngine/Model/Player/PlayerDatas.cs |   34 +++++++++++++++++++++++++++-------
 1 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/Core/GameEngine/Model/Player/PlayerDatas.cs b/Core/GameEngine/Model/Player/PlayerDatas.cs
index b3d87ee..068a628 100644
--- a/Core/GameEngine/Model/Player/PlayerDatas.cs
+++ b/Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -65,6 +65,15 @@
         }
     }
 
+    public void UpdatePlayerData(HA112_tagMCDBPlayer data)
+    {
+        baseData.UpdateData(data);
+        if (InitPlayerInfoEvent != null)
+        {
+            InitPlayerInfoEvent();
+        }
+    }
+
     public void FightRefreshPlayerHp(uint hp)
     {
         RefreshProperty(false, PlayerDataRefresh.HP, hp);
@@ -273,15 +282,16 @@
                 break;
             case PlayerDataRefresh.MapID:
                 baseData.MapID = (ushort)value;
-                baseData.RecordMainServerData(isMainServerData, _type, value);
+                if (isMainServerData)
+                {
+                    baseData.mainServerMapIdRecord = baseData.MapID;
+                }
                 break;
             case PlayerDataRefresh.PosX:
                 baseData.PosX = (ushort)value;//瑙掕壊鍧愭爣x
-                baseData.RecordMainServerData(isMainServerData, _type, value);
                 break;
             case PlayerDataRefresh.PosY:
                 baseData.PosY = (ushort)value;//瑙掕壊鍧愭爣y
-                baseData.RecordMainServerData(isMainServerData, _type, value);
                 break;
             case PlayerDataRefresh.State:
                 baseData.State = (byte)value;
@@ -295,7 +305,6 @@
                 break;
             case PlayerDataRefresh.HP:
                 baseData.HP = value;
-                baseData.RecordMainServerData(isMainServerData, _type, value);
                 break;
             case PlayerDataRefresh.MaxMP:
                 extersion.MaxMP = (int)value;
@@ -409,7 +418,6 @@
                 break;
             case PlayerDataRefresh.FBID:
                 baseData.FBID = (byte)value;
-                baseData.RecordMainServerData(isMainServerData, _type, value);
                 break;
             case PlayerDataRefresh.FamilyLV:
                 break;
@@ -515,7 +523,6 @@
                 break;
             case PlayerDataRefresh.ExAttr3:
                 baseData.dungeonLineId = (int)value;
-                baseData.RecordMainServerData(isMainServerData, _type, value);
                 break;
             case PlayerDataRefresh.ExAttr4:
                 baseData.ExAttr4 = value;
@@ -531,7 +538,20 @@
                         GameNetSystem.Instance.crossServerConnected_Loigc = false;
                         LoadingWin.targetMapResId = 1;
                         WindowCenter.Instance.Open<LoadingWin>();
-                        GameNetSystem.Instance.Reconnect();
+
+                        var sendInfo = new CA108_tagCMRefreshMainServerRole();
+                        GameNetSystem.Instance.SendInfo(sendInfo);
+                        StageManager.Instance.Load<DungeonStage>(baseData.MapID, GameNetSystem.SocketType.CrossSever, true);
+
+                        if (hero != null && !hero.ActorInfo.serverDie)
+                        {
+                            hero.RequestName();
+                            hero.SwitchRedName(StatusMgr.Instance.IsExist(PlayerId, StatusMgr.Instance.redNameBuffID));
+                            hero.IdleImmediate();
+                            hero.State = E_ActorState.Idle;
+                            extersion.pkState = 0;
+                        }
+
                     }
                 }
                 break;

--
Gitblit v1.8.0