少年修仙传客户端代码仓库
hch
2025-03-13 1c504663da58efa829705edda4cbb049e677a847
0312 跨服天梯增加跳过战斗
5个文件已修改
67 ■■■■■ 已修改文件
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerSettlementWin.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
@@ -26,8 +26,12 @@
        [SerializeField] Text refreshMoneyText;
        [SerializeField] Text freeRefreshText;
        [SerializeField] Button refreshBtn;
        [SerializeField] ToggleButton m_ToggleButton; //跳过战斗
        CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
        int needChallengeCount = 10;
        #region Built-in
        protected override void BindController()
        {
@@ -40,6 +44,7 @@
            matchRecordBtn.AddListener(ClickMatchRecord);
            scoreRankBtn.AddListener(ClickScoreRank);
            refreshBtn.AddListener(ClickBuyRefreshMatch);
            m_ToggleButton.AddListener(SkipChallenge);
        }
        protected override void OnPreOpen()
@@ -50,6 +55,8 @@
            TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
            crossServerModel.UpdateMatchPlayersEvent += UpdateMatchPlayers;
            RoleParticularModel.OnRevPackage += OnRecvPlayerViewPack;
            m_ToggleButton.isOn = crossServerModel.isSkipFightChoose;
        }
        protected override void OnAfterOpen()
@@ -72,6 +79,18 @@
        #endregion
        void SkipChallenge()
        {
            if (CrossServerOneVsOnePlayerInfo.Instance.PKCount < needChallengeCount)
            {
                SysNotifyMgr.Instance.ShowTip("NeedChallengeCount", needChallengeCount);
                return;
            }
            m_ToggleButton.isOn = !m_ToggleButton.isOn;
            crossServerModel.isSkipFightChoose = m_ToggleButton.isOn;
        }
        private void OnRecvPlayerViewPack(int viewType, int playerID, RoleParticularModel.ViewPlayerData data)
        {
            if (crossServerModel.matchPlayers.Count == 0)
@@ -87,6 +106,8 @@
            }
        }
        private void UpdatePlayerInfo()
        {
            UpdateMatchInfo();
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -33,6 +33,7 @@
        public Dictionary<int, GA_PlayerClient.PlayerInfo> robots = new Dictionary<int, GA_PlayerClient.PlayerInfo>();
        public bool isSkipFightChoose;
        public override void Init()
        {
            ParseFuncConfig();
@@ -57,6 +58,7 @@
            robots.Clear();
            matchPlayers.Clear();
            queryMatchTime = 0;
            isSkipFightChoose = false;
        }
        public void OnAfterPlayerDataInitialize()
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs
@@ -46,6 +46,29 @@
                    return;
                }
                //跳过战斗
                if (crossServerModel.isSkipFightChoose)
                {
                    if (matchPlayer.PlayerID > 10000)
                    {
                        CrossServerLogin.Instance.InitOneVsOnePlayerInfo(matchPlayer);
                        LoadingWin.isCrossServerOneVsOne = false;
                        mirrorFightModel.SendMirrorFight(CrossServerOneVsOneModel.CrossServerDataMapId, 0, matchPlayer.PlayerID, 3);
                    }
                    else
                    {
                        CrossServerLogin.Instance.InitOneVsOneClientPlayerInfo(matchPlayer);
                        ClientCrossServerOneVsOne.OPPONENT_PLAYERID = matchPlayer.PlayerID;
                        ulong tagetFightPower = matchPlayer.FightPowerEx * Constants.ExpPointValue + matchPlayer.FightPower;
                        ClientCrossServerOneVsOne.ReportDungeonResult(new ClientCrossServerOneVsOne.FightResultSupplement()
                        {
                            endTime = TimeUtility.ServerNow,
                            winPlayerId = (int)(PlayerDatas.Instance.baseData.FightPoint >= tagetFightPower ? PlayerDatas.Instance.baseData.PlayerID : matchPlayer.PlayerID),
                        });
                    }
                    return;
                }
                if (matchPlayer.PlayerID > 10000)
                {
System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
@@ -187,7 +187,7 @@
    private void UpdatePkResultEvent()
    {
        if (CrossServerUtility.IsCrossServerOneVsOne() )//副本结算界面
        //if (CrossServerUtility.IsCrossServerOneVsOne() )//副本结算界面
        {
            WindowCenter.Instance.Open<CrossServerSettlementWin>();
        }
System/CrossServerOneVsOne/CrossServerSettlementWin.cs
@@ -34,7 +34,11 @@
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        BuffModel m_BuffModel;
        BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
        CrossServerOneVsOneRewardModel crossServerRewardModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>(); } }
        float timer = 0f;
        DateTime endTime;
        protected override void BindController()
        {
@@ -47,7 +51,11 @@
        protected override void OnPreOpen()
        {
            PlayerDatas.Instance.hero.StopAll();
            endTime = TimeUtility.ServerNow.AddSeconds(3);
            if (!crossServerModel.isSkipFightChoose)
            {
                PlayerDatas.Instance.hero.StopAll();
            }
            timer = 0f;
            int WinnerID = crossServerModel.pkResultInfo.WinnerID;
            int playerID = (int)PlayerDatas.Instance.baseData.PlayerID;
@@ -87,7 +95,7 @@
            if (timer < 0f)
            {
                timer = 1f;
                var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
                //var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
                var seconds = (endTime - TimeUtility.ServerNow).TotalSeconds;
                m_DropOutBtnText.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
                if (seconds <= 0)
@@ -99,6 +107,13 @@
        #endregion
        private void ExitDungeon()
        {
            if (crossServerModel.isSkipFightChoose)
            {
                crossServerRewardModel.ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID, true);
                CloseClick();
                return;
            }
            if (ClientCrossServerOneVsOne.isClientCrossServerOneVsOne)
            {
                ClientCrossServerOneVsOne.StopClientCrossServerOneVsOne();