| Core/GameEngine/Model/Player/PlayerDatas.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Actor/UserInputHandler.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GActor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/GameActor/GActorFight.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/MapTransferUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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,12 +453,10 @@ case PlayerDataRefresh.BillboardLV: break; case PlayerDataRefresh.Tick: if (GameNetSystem.Instance.crossServerSocketConnected) { if (!isMainServerData) { #if UNITY_EDITOR DebugEx.LogFormat("---- 收到服务端Tick: {0}", value); if (isMainServerData) { if (extersion.Tick != 0) { uint _curWorldTick = GetWorldTick(); @@ -467,17 +466,11 @@ { DebugEx.LogFormat(" |-------- <color=red>收到服务端WorldTick与当前的客户端Tick差异超过5秒</color>"); } } #endif extersion.Tick = value; m_Tick = Environment.TickCount; } } else { #if UNITY_EDITOR DebugEx.LogFormat("---- 收到服务端Tick: {0}", value); if (extersion.Tick != 0) if (m_CrossServerTick != 0) { uint _curWorldTick = GetWorldTick(); uint _diffValue = value > _curWorldTick ? value - _curWorldTick : _curWorldTick - value; @@ -487,10 +480,18 @@ DebugEx.LogFormat(" |-------- <color=red>收到服务端WorldTick与当前的客户端Tick差异超过5秒</color>"); } } #endif extersion.Tick = value; m_Tick = Environment.TickCount; } #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; } Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -53,6 +53,7 @@ } PlayerDatas.Instance.InitPlayerData(vNetData); PlayerDatas.Instance.RequestWorldTick(); SDKUtility.Instance.RoleLogin(vNetData.PlayerID.ToString(), vNetData.PlayerName, @@ -242,6 +243,8 @@ DEBUG_STEP = 9; StageLoadTimeOutCatcher.RecordProtocol(vNetPack.socketType, "0102", DateTime.Now); GA_Hero.s_MapSwitching = true; } } Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs
@@ -78,7 +78,6 @@ } } PlayerDatas.Instance.RequestWorldTick(); MapTransferUtility.Instance.CheckMap(PlayerDatas.Instance.baseData.MapID); GA_Hero.s_MapSwitching = false; Fight/Actor/UserInputHandler.cs
@@ -396,7 +396,7 @@ _b409.Dir = (ushort)(_hero.Root.transform.eulerAngles.y * 100); } if (GameNetSystem.Instance.crossServerSocketConnected) if (CrossServerUtility.IsCrossServer()) { GameNetSystem.Instance.SendToCrossServer(_b409); } Fight/GameActor/GActor.cs
@@ -32,7 +32,7 @@ { m_Root.position = m_Pos; } //if (this is GA_NpcFightNorm) //if (this is GA_Hero) //{ // Debug.Log("坐标改变.....: " + value); //} @@ -426,7 +426,8 @@ if (State == E_ActorState.AutoRun && PathFindStatus == E_PathFindStatus.Moving && m_Path.corners != null && m_Path.corners.Length > 0 && !ActorInfo.serverDie) && !ActorInfo.serverDie && PlayerDatas.Instance.IsTickVaild()) { if (m_CornerIndex > m_Path.corners.Length - 1) { Fight/GameActor/GActorFight.cs
@@ -22,6 +22,10 @@ return; } m_PrevPos = value; //if (ServerInstID == PlayerDatas.Instance.PlayerId) //{ // Debug.Log("设置PrePos: " + m_PrevPos); //} } } Fight/MapTransferUtility.cs
@@ -956,8 +956,11 @@ { if (NpcID != GeneralDefine.GatherSoulDZ) { if (_npc != null) { NPCInteractProcessor.InvokeEvent(E_NpcType.Func, NpcID, _npc.ServerInstID); } } Clear(); } }