From 5cdc8bb45069b50f1ff8f3abf16f2831622877b3 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 15 一月 2019 14:57:12 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Core/GameEngine/Model/Player/PlayerDatas.cs |   79 ++++++++++++++++++++++++---------------
 1 files changed, 49 insertions(+), 30 deletions(-)

diff --git a/Core/GameEngine/Model/Player/PlayerDatas.cs b/Core/GameEngine/Model/Player/PlayerDatas.cs
index b4ebc51..56a3a00 100644
--- a/Core/GameEngine/Model/Player/PlayerDatas.cs
+++ b/Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -44,6 +44,7 @@
     public uint worldExpRate { get; private set; }
     public List<uint> maliciousAtkPlayer = new List<uint>();// 鍙戝姩鎭舵剰鏀诲嚮鐨勭帺瀹跺垪琛�
     private int m_Tick;
+    private uint m_CrossServerTick;
 
     public event Action OnRoleAttrRefresh;
     public event Action<E_AttackMode> OnSwitchAttackMode;
@@ -452,31 +453,10 @@
             case PlayerDataRefresh.BillboardLV:
                 break;
             case PlayerDataRefresh.Tick:
-                if (GameNetSystem.Instance.crossServerSocketConnected)
-                {
-                    if (!isMainServerData)
-                    {
 #if UNITY_EDITOR
-                        DebugEx.LogFormat("---- 鏀跺埌鏈嶅姟绔疶ick: {0}", value);
-                        if (extersion.Tick != 0)
-                        {
-                            uint _curWorldTick = GetWorldTick();
-                            uint _diffValue = value > _curWorldTick ? value - _curWorldTick : _curWorldTick - value;
-                            DebugEx.LogFormat(" |-------- 褰撳墠瀹㈡埛绔疶ick: {0}, 宸紓: {1}", _curWorldTick, _diffValue);
-                            if (_diffValue > 5000)
-                            {
-                                DebugEx.LogFormat(" |-------- <color=red>鏀跺埌鏈嶅姟绔疻orldTick涓庡綋鍓嶇殑瀹㈡埛绔疶ick宸紓瓒呰繃5绉�</color>");
-                            }
-                        }
-#endif
-                        extersion.Tick = value;
-                        m_Tick = Environment.TickCount;
-                    }
-                }
-                else
+                DebugEx.LogFormat("---- 鏀跺埌鏈嶅姟绔疶ick: {0}", value);
+                if (isMainServerData)
                 {
-#if UNITY_EDITOR
-                    DebugEx.LogFormat("---- 鏀跺埌鏈嶅姟绔疶ick: {0}", value);
                     if (extersion.Tick != 0)
                     {
                         uint _curWorldTick = GetWorldTick();
@@ -487,10 +467,31 @@
                             DebugEx.LogFormat(" |-------- <color=red>鏀跺埌鏈嶅姟绔疻orldTick涓庡綋鍓嶇殑瀹㈡埛绔疶ick宸紓瓒呰繃5绉�</color>");
                         }
                     }
-#endif
-                    extersion.Tick = value;
-                    m_Tick = Environment.TickCount;
                 }
+                else
+                {
+                    if (m_CrossServerTick != 0)
+                    {
+                        uint _curWorldTick = GetWorldTick();
+                        uint _diffValue = value > _curWorldTick ? value - _curWorldTick : _curWorldTick - value;
+                        DebugEx.LogFormat(" |-------- 褰撳墠瀹㈡埛绔疶ick: {0}, 宸紓: {1}", _curWorldTick, _diffValue);
+                        if (_diffValue > 5000)
+                        {
+                            DebugEx.LogFormat(" |-------- <color=red>鏀跺埌鏈嶅姟绔疻orldTick涓庡綋鍓嶇殑瀹㈡埛绔疶ick宸紓瓒呰繃5绉�</color>");
+                        }
+                    }
+                }
+#endif
+                if (isMainServerData)
+                {
+                    extersion.Tick = value;
+                }
+                else
+                {
+                    m_CrossServerTick = value;
+                }
+                m_Tick = Environment.TickCount;
+
                 break;
             case PlayerDataRefresh.CurrentPlayerType:
                 break;
@@ -983,20 +984,38 @@
     public void RequestWorldTick()
     {
         CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
-        if (!GameNetSystem.Instance.crossServerSocketConnected)
+        if (CrossServerUtility.IsCrossServer())
         {
-            GameNetSystem.Instance.SendInfo(_proto);
+            GameNetSystem.Instance.SendToCrossServer(_proto);
         }
         else
         {
-            GameNetSystem.Instance.SendToCrossServer(_proto);
+            GameNetSystem.Instance.SendInfo(_proto);
+        }
+    }
+
+    public void ClearTick()
+    {
+        extersion.Tick = 0;
+        m_CrossServerTick = 0;
+    }
+
+    public bool IsTickVaild()
+    {
+        if (CrossServerUtility.IsCrossServer())
+        {
+            return m_CrossServerTick != 0;
+        }
+        else
+        {
+            return extersion.Tick != 0;
         }
     }
 
     public uint GetWorldTick()
     {
         int _currentTick = Environment.TickCount - m_Tick;
-        uint _tick = extersion.Tick + (uint)_currentTick;
+        uint _tick = CrossServerUtility.IsCrossServer() ? m_CrossServerTick + (uint)_currentTick : extersion.Tick + (uint)_currentTick;
         return _tick;
     }
 

--
Gitblit v1.8.0