少年修仙传客户端代码仓库
client_Wu Xijin
2018-12-27 03fbe45e8bfaa066356d2365cbab0c11d88d56d0
5398 【前端】【1.4】跨服竞技场开发
5个文件已修改
1个文件已删除
174 ■■■■■ 已修改文件
Core/GameEngine/Model/Player/PlayerDatas.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ClientPack.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0102_tagCDBPlayer.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H01_System/DTC0109_tagServerPrepareOK.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA127_tagMCStartChangeMap.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/StageManager.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | 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()
    {