| Core/GameEngine/Model/Player/PlayerDatas.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ClientPack.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0109_tagServerPrepareOK.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA127_tagMCStartChangeMap.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Fight/Stage/StageManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -514,7 +514,7 @@ GameNetSystem.Instance.crossServerConnected_Loigc = false; LoadingWin.targetMapResId = 1; WindowCenter.Instance.Open<LoadingWin>(); StageManager.Instance.Load<DungeonStage>(baseData.MapID, true); StageManager.Instance.Load<DungeonStage>(baseData.MapID,GameNetSystem.SocketType.Main, true); if (hero != null && !hero.ActorInfo.serverDie) { hero.RequestName(); Core/NetworkPackage/DTCFile/ClientPack.meta
File was deleted Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -116,7 +116,15 @@ } } StageManager.Instance.isServerPreparing = true; switch (vNetData.socketType) { case GameNetSystem.SocketType.Main: StageManager.Instance.isServerPreparing = true; break; case GameNetSystem.SocketType.CrossSever: StageManager.Instance.isCrossServerPreparing = true; break; } if (vNetData.socketType == GameNetSystem.SocketType.Main && GameNetSystem.Instance.crossServerData.crossState == GameNetSystem.CrossServerState.Yes) @@ -132,16 +140,16 @@ switch (vNetData.MapID) { case 31250: StageManager.Instance.Load<GuardDungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<GuardDungeonStage>(_mapConfig.MapID,vNetData.socketType); break; case RuneTowerModel.RUNETOWER_MAPID: StageManager.Instance.Load<RuneTowerDungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<RuneTowerDungeonStage>(_mapConfig.MapID, vNetData.socketType); break; case DemonJarModel.DEMONJAR_SINGLEMAPID: StageManager.Instance.Load<FakeDemonJarDungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<FakeDemonJarDungeonStage>(_mapConfig.MapID, vNetData.socketType); break; default: StageManager.Instance.Load<DungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<DungeonStage>(_mapConfig.MapID, vNetData.socketType); break; } } Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0109_tagServerPrepareOK.cs
@@ -9,6 +9,10 @@ public class DTC0109_tagServerPrepareOK : DtcBasic { LoginModel loginModel { get { return ModelCenter.Instance.GetModel<LoginModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); @@ -25,31 +29,39 @@ //修改技能快捷设置发包顺序 PlayerDatas.Instance.skill.CheckQuickSet(); if (vNetData.socketType == GameNetSystem.SocketType.CrossSever && GameNetSystem.Instance.crossServerSocketConnected) switch (vNetData.socketType) { C0107_tagCInitMapOK mapOk = new C0107_tagCInitMapOK(); mapOk.MapID = PlayerDatas.Instance.baseData.MapID; mapOk.Type = 0; GameNetSystem.Instance.SendToCrossServer(mapOk); } else { if (StageManager.Instance.StageType == Stage.E_StageType.Dungeon && StageManager.Instance.isServerPreparing == false) { C0107_tagCInitMapOK mapOk = new C0107_tagCInitMapOK(); mapOk.MapID = PlayerDatas.Instance.baseData.MapID; mapOk.Type = 0; GameNetSystem.Instance.SendInfo(mapOk); } else { Debug.LogFormat("Recieve 0109,would not send0107,Current Stage:{0},Server Preparing:{1}", StageManager.Instance.StageType, StageManager.Instance.isServerPreparing); } case GameNetSystem.SocketType.Main: if (loginModel.reconnectBackGround || PlayerDatas.Instance.baseData.ExAttr1 == 1) { var mapOk = new C0107_tagCInitMapOK(); mapOk.MapID = PlayerDatas.Instance.baseData.MapID; mapOk.Type = 0; GameNetSystem.Instance.SendInfo(mapOk); } break; case GameNetSystem.SocketType.CrossSever: if (loginModel.reconnectBackGround) { var mapOk = new C0107_tagCInitMapOK(); mapOk.MapID = PlayerDatas.Instance.baseData.MapID; mapOk.Type = 0; GameNetSystem.Instance.SendToCrossServer(mapOk); } break; default: break; } StageManager.Instance.isServerPreparing = false; switch (vNetPack.socketType) { case GameNetSystem.SocketType.Main: StageManager.Instance.isServerPreparing = false; break; case GameNetSystem.SocketType.CrossSever: StageManager.Instance.isCrossServerPreparing = false; break; } // // 查错预留 // if (DTC0102_tagCDBPlayer.DEBUG_0102 && DTC0102_tagCDBPlayer.DEBUG_STEP != 9) Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA127_tagMCStartChangeMap.cs
@@ -139,13 +139,21 @@ return; } StageManager.Instance.isServerPreparing = true; switch (vNetPack.socketType) { case GameNetSystem.SocketType.Main: StageManager.Instance.isServerPreparing = true; break; case GameNetSystem.SocketType.CrossSever: StageManager.Instance.isCrossServerPreparing = true; break; } DEBUG_STEP = 4; switch (_mapConfig.MapFBType) { case 0: foreach(var _id in DTCB206_tagMCHelpBattleCallResult.s_CacheObjIdList) foreach (var _id in DTCB206_tagMCHelpBattleCallResult.s_CacheObjIdList) { LocalSave.DeleteKey("GA_NpcFightZZPlayer_" + _id); } @@ -162,16 +170,16 @@ switch (package.MapID) { case 31250: StageManager.Instance.Load<GuardDungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<GuardDungeonStage>(_mapConfig.MapID, package.socketType); break; case RuneTowerModel.RUNETOWER_MAPID: StageManager.Instance.Load<RuneTowerDungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<RuneTowerDungeonStage>(_mapConfig.MapID, package.socketType); break; case DemonJarModel.DEMONJAR_SINGLEMAPID: StageManager.Instance.Load<FakeDemonJarDungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<FakeDemonJarDungeonStage>(_mapConfig.MapID, package.socketType); break; default: StageManager.Instance.Load<DungeonStage>(_mapConfig.MapID); StageManager.Instance.Load<DungeonStage>(_mapConfig.MapID, package.socketType); break; } Fight/Stage/StageManager.cs
@@ -18,40 +18,38 @@ public event Action<float> loadingProgressEvent; bool m_IsServerPreparing = false; public bool isServerPreparing { public bool isServerPreparing { get { return m_IsServerPreparing; } set { m_IsServerPreparing = value; } } public Stage.E_StageType StageType { get { bool m_IsCrossServerPreparing = false; public bool isCrossServerPreparing { get { return m_IsCrossServerPreparing; } set { m_IsCrossServerPreparing = value; } } public Stage.E_StageType StageType { get { return m_StageType; } } public Stage CurrentStage { get { public Stage CurrentStage { get { return m_CurrentStage; } } int m_CurrentMapId; public int currentMapId { public int currentMapId { get { return m_CurrentMapId; } private set { m_CurrentMapId = value; } } int m_CurrentMapResID; public int currentMapResId { get { public int currentMapResId { get { return m_CurrentMapResID; } private set { m_CurrentMapResID = value; } @@ -62,11 +60,9 @@ float m_LoadingProgress = 0f; float loadingProgress { float loadingProgress { get { return m_LoadingProgress; } set { set { m_LoadingProgress = value; if (loadingProgressEvent != null) { @@ -85,10 +81,12 @@ } public bool isClientChangeMap { get; private set; } public GameNetSystem.SocketType socketType { get; private set; } public void Load<T>(int stageId, bool isClientChangeMap = false) where T : Stage public void Load<T>(int stageId, GameNetSystem.SocketType socketType, bool isClientChangeMap = false) where T : Stage { this.isClientChangeMap = isClientChangeMap; this.socketType = socketType; loadTimeOutCatcher = StageLoadTimeOutCatcher.Begin(stageId); // 读取配置的方式创建场景 @@ -337,7 +335,8 @@ progressBuf = loadingProgress; timer = 0f; duration = 1f; while (isServerPreparing) while (WaitForServer(this.socketType)) { timer += Time.deltaTime; loadingProgress = Mathf.Clamp(progressBuf + timer / duration * 0.2f, progressBuf, progressBuf + 0.2f); @@ -372,7 +371,16 @@ Debug.LogFormat("不发包0107:当前Stage:{0}", CurrentStage); } isServerPreparing = false; switch (this.socketType) { case GameNetSystem.SocketType.Main: isServerPreparing = false; break; case GameNetSystem.SocketType.CrossSever: isCrossServerPreparing = false; break; } //如果是登录,那么要等待登录过程全部完成 while (m_StageType == Stage.E_StageType.Dungeon && DTC0403_tagPlayerLoginLoadOK.neverLoginOk) { @@ -415,7 +423,7 @@ LoadingWin.targetMapResId = 1; WindowCenter.Instance.Open<LoadingWin>(true); while (isServerPreparing) while (WaitForServer(this.socketType)) { yield return null; } @@ -452,6 +460,19 @@ loadTimeOutCatcher = null; } private bool WaitForServer(GameNetSystem.SocketType socketType) { switch (socketType) { case GameNetSystem.SocketType.Main: return isServerPreparing; case GameNetSystem.SocketType.CrossSever: return isCrossServerPreparing; default: return false; } } private void InitHero() {