少年修仙传客户端代码仓库
client_Wu Xijin
2019-01-31 5caaaec514a33fb4e6484ef38a89d10e33b9e842
3335 场景切换重构
9个文件已修改
110 ■■■■ 已修改文件
Core/GameEngine/Login/Launch.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/PlayerDatas.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA127_tagMCStartChangeMap.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/GameNetSystem.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/StageLoad.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/StageLoadProcessor.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/Launch.cs
@@ -248,6 +248,7 @@
                toMapId = 1,
                toLineId = 0,
                needEmpty = false,
                needLoadResource = true,
                serverType = ServerType.Main,
                isClientLoadMap = true
            });
Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -614,6 +614,7 @@
                            toMapId = baseData.MapID,
                            toLineId = 0,
                            needEmpty = true,
                            needLoadResource = true,
                            serverType = ServerType.CrossSever,
                            isClientLoadMap = true
                        });
Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs
@@ -101,7 +101,7 @@
            }
        }
        if (package.socketType== ServerType.CrossSever)
        if (package.socketType == ServerType.CrossSever)
        {
            if (PlayerDatas.Instance.hero != null)
            {
@@ -163,6 +163,18 @@
        if (package.socketType == ServerType.Main
    && GameNetSystem.Instance.crossServerData.crossState == GameNetSystem.CrossServerState.Yes)
        {
            StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
            {
                fromMapId = StageLoad.Instance.mapIdRecord,
                fromLineId = StageLoad.Instance.lineIdRecord,
                toMapId = mapConfig.MapID,
                toLineId = MapUtility.GetLineId(mapConfig.MapID, PlayerDatas.Instance.baseData.dungeonLineId),
                needEmpty = true,
                needLoadResource = false,
                serverType = package.socketType,
                isClientLoadMap = false
            });
            var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
            var account = loginModel.accountBuf;
            var ip = GameNetSystem.Instance.crossServerData.ip;
@@ -171,13 +183,28 @@
        }
        else
        {
            var fromMapId = StageLoad.Instance.mapIdRecord;
            var fromLineId = StageLoad.Instance.lineIdRecord;
            var needLoadResource = true;
            if (fromMapId != package.MapID)
            {
                needLoadResource = true;
            }
            else
            {
                var config1 = MapResourcesConfig.GetConfig(MapUtility.GetDataMapId(fromMapId), fromLineId);
                var config2 = MapResourcesConfig.GetConfig(MapUtility.GetDataMapId(package.MapID), lineId);
                needLoadResource = config1.MapResources != config2.MapResources;
            }
            StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
            {
                fromMapId = StageLoad.Instance.mapIdRecord,
                fromLineId=StageLoad.Instance.lineIdRecord,
                fromLineId = StageLoad.Instance.lineIdRecord,
                toMapId = mapConfig.MapID,
                toLineId = MapUtility.GetLineId( mapConfig.MapID,PlayerDatas.Instance.baseData.dungeonLineId),
                toLineId = MapUtility.GetLineId(mapConfig.MapID, PlayerDatas.Instance.baseData.dungeonLineId),
                needEmpty = true,
                needLoadResource = needLoadResource,
                serverType = package.socketType,
                isClientLoadMap = false
            });
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0403_tagPlayerLoginLoadOK.cs
@@ -18,7 +18,6 @@
        StageLoadTimeOutCatcher.RecordProtocol(vNetPack.socketType, "0403", DateTime.Now);
        GameNetSystem.Instance.netState = GameNetSystem.NetState.Connected;
        StageLoad.Instance.UpdateServerFlag(StageLoad.ServerFlagType.Flag_0403, vNetData.socketType, true);
        finishedLogin = true;
        GA_Hero.s_MapSwitching = false;
Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA127_tagMCStartChangeMap.cs
@@ -97,6 +97,20 @@
                break;
        }
        var fromMapId = StageLoad.Instance.mapIdRecord;
        var fromLineId = StageLoad.Instance.lineIdRecord;
        var needLoadResource = true;
        if (fromMapId != (int)package.MapID)
        {
            needLoadResource = true;
        }
        else
        {
            var config1 = MapResourcesConfig.GetConfig(MapUtility.GetDataMapId(fromMapId), fromLineId);
            var config2 = MapResourcesConfig.GetConfig(MapUtility.GetDataMapId((int)package.MapID), lineId);
            needLoadResource = config1.MapResources != config2.MapResources;
        }
        StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
        {
            fromMapId = StageLoad.Instance.mapIdRecord,
@@ -104,6 +118,7 @@
            toMapId = (int)package.MapID,
            toLineId = lineId,
            needEmpty = true,
            needLoadResource = needLoadResource,
            serverType = package.socketType,
            isClientLoadMap = false
        });
Core/NetworkPackage/GameNetSystem.cs
@@ -346,6 +346,7 @@
                toMapId = 1,
                toLineId = 0,
                needEmpty = false,
                needLoadResource = true,
                serverType = ServerType.Main,
                isClientLoadMap = true
            });
Fight/Stage/StageLoad.cs
@@ -71,40 +71,18 @@
        }
        else
        {
            var needChangeScene = false;
            switch (command.toMapId)
            {
                case 1:
                case 2:
                case 3:
                    needChangeScene = true;
                    break;
                default:
                    if (command.fromMapId != command.toMapId)
                    {
                        needChangeScene = true;
                    }
                    else
                    {
                        var config1 = MapResourcesConfig.GetConfig(MapUtility.GetDataMapId(command.fromMapId), command.fromLineId);
                        var config2 = MapResourcesConfig.GetConfig(MapUtility.GetDataMapId(command.toMapId), command.toLineId);
                        needChangeScene = config1.MapResources != config2.MapResources;
                    }
                    break;
            }
            if (needChangeScene)
            if (command.needLoadResource)
            {
                tasks.Enqueue(new StageLoadProcessor.PreProcessTask(command));
                tasks.Enqueue(new StageLoadProcessor.UnLoadAndGCTask(command));
            }
            if (needChangeScene && command.needEmpty)
            if (command.needLoadResource && command.needEmpty)
            {
                tasks.Enqueue(new StageLoadProcessor.LoadEmptyTask(command));
            }
            if (needChangeScene)
            if (command.needLoadResource)
            {
                tasks.Enqueue(new StageLoadProcessor.LoadNewSceneTask(command));
            }
@@ -118,14 +96,13 @@
                }
            }
            if (needChangeScene)
            if (command.needLoadResource)
            {
                tasks.Enqueue(new StageLoadProcessor.PostProcessTask(command));
            }
        }
        serverFlag_0109 = default(ServerFlag);
        serverFlag_0403 = default(ServerFlag);
        var gameObject = new GameObject("StageLoadProcessor");
        DontDestroyOnLoad(gameObject);
@@ -156,14 +133,6 @@
        {
            case ServerFlagType.Flag_0109:
                serverFlag_0109 = new ServerFlag()
                {
                    flagType = flagType,
                    serverType = socketType,
                    flag = flag,
                };
                break;
            case ServerFlagType.Flag_0403:
                serverFlag_0403 = new ServerFlag()
                {
                    flagType = flagType,
                    serverType = socketType,
@@ -226,6 +195,7 @@
        public bool needEmpty;
        public ServerType serverType;
        public bool isClientLoadMap;
        public bool needLoadResource;
    }
    public enum ServerFlagType
@@ -256,20 +226,6 @@
                    && serverFlag_0109.flag;
            default:
                return false;
        }
    }
    public bool IsLoginOk()
    {
        if (serverFlag_0403.flagType == ServerFlagType.Flag_0403
            && serverFlag_0403.serverType == ServerType.Main
            && serverFlag_0403.flag)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
Fight/Stage/StageLoadProcessor.cs
@@ -424,7 +424,7 @@
        public override void Update()
        {
            timer += Time.deltaTime;
            if (!StageLoad.Instance.IsLoginOk())
            if (DTC0403_tagPlayerLoginLoadOK.neverLoginOk)
            {
                done = false;
                progress = timer / duration;
System/Login/LoginModel.cs
@@ -387,6 +387,7 @@
                        toMapId = 2,
                        toLineId = 0,
                        needEmpty = false,
                        needLoadResource=true,
                        serverType = ServerType.Main,
                        isClientLoadMap = true
                    });
@@ -408,6 +409,7 @@
                                toMapId = 3,
                                toLineId = 0,
                                needEmpty = false,
                                needLoadResource = true,
                                serverType = ServerType.Main,
                                isClientLoadMap = true
                            });