diff --git a/AxibugEmuOnline.Client/Assets/Plugins/AxiReplay/NetReplay.cs b/AxibugEmuOnline.Client/Assets/Plugins/AxiReplay/NetReplay.cs index fba2489..3a97a6e 100644 --- a/AxibugEmuOnline.Client/Assets/Plugins/AxiReplay/NetReplay.cs +++ b/AxibugEmuOnline.Client/Assets/Plugins/AxiReplay/NetReplay.cs @@ -8,11 +8,10 @@ namespace AxiReplay /// 客户端当前帧 /// public int mCurrClientFrameIdx => mCurrReplay.FrameStartID; - //public int mCurrClientFrameIdx /// /// 服务器远端当前帧 /// - public int mRemoteFrameIdx { get; private set; } = -1; + public int mRemoteFrameIdx { get; private set; } = int.MinValue; /// /// 网络数据队列 /// @@ -34,9 +33,9 @@ namespace AxiReplay mNetReplayQueue.Clear(); mRemoteFrameIdx = 0; mCurrReplay = default(ReplayStep); - mCurrReplay.FrameStartID = 0; + mCurrReplay.FrameStartID = int.MinValue; mNextReplay = default(ReplayStep); - mNextReplay.FrameStartID = -1; + mNextReplay.FrameStartID = 0; } public void InData(ReplayStep inputData, int ServerFrameIdx) { @@ -52,10 +51,9 @@ namespace AxiReplay { inputDiff = false; int targetFrame = mCurrClientFrameIdx + addFrame; - if (targetFrame >= mNextReplay.FrameStartID && targetFrame <= mRemoteFrameIdx && mNetReplayQueue.Count > 0) + if (targetFrame <= mNextReplay.FrameStartID + 1 && targetFrame <= mRemoteFrameIdx && mNetReplayQueue.Count > 0) { //当前帧追加 - //mCurrClientFrameIdx = targetFrame; ulong oldInput = mCurrReplay.InPut; mCurrReplay = mNextReplay; if (oldInput != mCurrReplay.InPut) diff --git a/AxibugEmuOnline.Client/Assets/Script/App.cs b/AxibugEmuOnline.Client/Assets/Script/App.cs index aaeb8c6..9f0994f 100644 --- a/AxibugEmuOnline.Client/Assets/Script/App.cs +++ b/AxibugEmuOnline.Client/Assets/Script/App.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using UnityEngine; using UnityEngine.Networking; using static AxibugEmuOnline.Client.HttpAPI; +using static AxibugEmuOnline.Client.Manager.LogManager; namespace AxibugEmuOnline.Client.ClientCore { @@ -157,8 +158,21 @@ namespace AxibugEmuOnline.Client.ClientCore App.log.Info("停止"); } static void OnNoSugarNetLog(int LogLevel, string msg) - { - Debug.Log("[AxibugEmuOnline]:" + msg); + { + E_LogType logType =(E_LogType)LogLevel; + switch (logType) + { + case E_LogType.Debug: + case E_LogType.Info: + Debug.Log("[AxiEmu]:" + msg); + break; + case E_LogType.Warning: + Debug.LogWarning("[AxiEmu]:" + msg); + break; + case E_LogType.Error: + Debug.LogError("[AxiEmu]:" + msg); + break; + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppRoom.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppRoom.cs index 5be4626..d9639a4 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppRoom.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppRoom.cs @@ -407,7 +407,7 @@ namespace AxibugEmuOnline.Client.Manager void RecvHostSyn_RoomFrameAllInputData(byte[] reqData) { Protobuf_Room_Syn_RoomFrameAllInputData msg = ProtoBufHelper.DeSerizlize(reqData); - App.log.Debug($"ServerFrameID->{msg.ServerFrameID} FrameID->{msg.FrameID} ClientFrame->{netReplay.mCurrClientFrameIdx} InputData->{msg.InputData}"); + //App.log.Debug($"ServerFrameID->{msg.ServerFrameID} FrameID->{msg.FrameID} ClientFrame->{netReplay.mCurrClientFrameIdx} InputData->{msg.InputData}"); netReplay.InData(new ReplayStep() { FrameStartID = (int)msg.FrameID, InPut = msg.InputData }, (int)msg.ServerFrameID); } diff --git a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs index 6ef8c4b..b13440e 100644 --- a/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs +++ b/AxibugEmuOnline.Client/Assets/Script/NesEmulator/CoreSupporter.cs @@ -104,6 +104,8 @@ namespace AxibugEmuOnline.Client { if (App.roomMgr.netReplay.TryGetNextFrame(out var replayData, out int frameDiff, out bool inputDiff)) { + App.log.Debug($"TryGetNextFrame remoteFrame->{App.roomMgr.netReplay.mRemoteFrameIdx} diff->{frameDiff} " + + $"frame=>{replayData.FrameStartID} InPut=>{replayData.InPut}"); m_sampledState = FromNet(replayData); var localState = NesControllerMapper.Get().CreateState(); var rawData = ToNet(localState); @@ -111,6 +113,8 @@ namespace AxibugEmuOnline.Client } else { + App.log.Error($"Server Lag remoteFrame->{App.roomMgr.netReplay.mRemoteFrameIdx} diff->{frameDiff} " + + $"frame=>{replayData.FrameStartID} InPut=>{replayData.InPut}"); m_sampledState = default; } }