少年修仙传客户端代码仓库
hch
2025-02-19 bc20563f3bdfba7a4e3e6d1a4770f86bc7cfa998
0312 本服/跨服竞技场进入防范问题
4个文件已修改
104 ■■■■■ 已修改文件
LogicProject/System/ArenaActivity/ArenaManagerModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/ArenaActivity/ArenaWin.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/ArenaActivity/ArenaManagerModel.cs
@@ -1095,7 +1095,7 @@
    public class ILFightStage : ILPKStage
    {
        bool figthCompleted = false;
        float restTime = 2f;
        float restTime = 0.5f;
        float restTimeTimer = 0f;
        public override void Begin()
LogicProject/System/ArenaActivity/ArenaWin.cs
@@ -46,6 +46,8 @@
    ServerMirrorFightModel mirrorFightModel { get { return ModelCenter.Instance.GetModel<ServerMirrorFightModel>(); } }
    DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
    float DeltaTmp = 0;
    float lastClickFightTime = 0;
@@ -162,6 +164,13 @@
                    return;
                }
                int error;
                if (!dungeonModel.CanEnter(out error))
                {
                    dungeonModel.ProcessEnterError(error);
                    return;
                }
                if (Time.realtimeSinceStartup - lastClickFightTime < 0.5)
                    return;
                lastClickFightTime = Time.realtimeSinceStartup;
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs
@@ -17,7 +17,7 @@
        RoleParticularModel model { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
        ServerMirrorFightModel mirrorFightModel { get { return ModelCenter.Instance.GetModel<ServerMirrorFightModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public void Display(int index)
        {
@@ -39,6 +39,14 @@
                    return;
                }
                int error;
                if (!dungeonModel.CanEnter(out error))
                {
                    dungeonModel.ProcessEnterError(error);
                    return;
                }
                if (matchPlayer.PlayerID > 10000)
                {
                    var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
System/Dungeon/DungeonModel.cs
@@ -147,6 +147,7 @@
        BossRebornModel bossRebornModel { get { return ModelCenter.Instance.GetModel<BossRebornModel>(); } }
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
        public override void Init()
        {
            ParseConfig();
@@ -611,6 +612,88 @@
            RequestChallangeDungeon(_dungeon.mapId, _dungeon.lineId);
        }
        public bool CanEnter(out int error)
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = MapConfig.Get(mapId);
            if (mapConfig.MapFBType != (int)MapType.OpenCountry ||
                ArenaManager.IsArenaStage() ||
                ClientDungeonStageUtility.isClientDungeon ||
                ClientCrossServerOneVsOne.isClientCrossServerOneVsOne ||
                AdventureStage.Instance.IsInAdventureStage
                )
            {
                error = 1;
                return false;
            }
            if (teamModel.isMatching)
            {
                error = 2;
                return false;
            }
            if (teamModel.teamPrepare.isPreparing)
            {
                error = 3;
                return false;
            }
            if (CrossServerLogin.Instance.IsEnterCrossServerPreparing())
            {
                error = 4;
                return false;
            }
            var deadModel = ModelCenter.Instance.GetModel<PlayerDeadModel>();
            if (deadModel.playerIsDie)
            {
                error = 5;
                return false;
            }
            if (PlayerDatas.Instance.extersion.bossState == 1)
            {
                error = 6;
                return false;
            }
            if (CrossServerUtility.IsCrossServer())
            {
                error = 7;
                return false;
            }
            error = 0;
            return true;
        }
        public void ProcessEnterError(int error)
        {
            switch (error)
            {
                case 1:
                    SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
                    break;
                case 2:
                    SysNotifyMgr.Instance.ShowTip("CrossMap1");
                    break;
                case 3:
                    SysNotifyMgr.Instance.ShowTip("CrossMap2");
                    break;
                case 4:
                    SysNotifyMgr.Instance.ShowTip("CrossMap3");
                    break;
                case 5:
                    SysNotifyMgr.Instance.ShowTip("CrossMap4");
                    break;
                case 6:
                    SysNotifyMgr.Instance.ShowTip("CrossMap11");
                    break;
                case 7:
                    SysNotifyMgr.Instance.ShowTip("CrossMap10");
                    break;
            }
        }
        public void GroupChallenge(int _dungeonId, int _lineId = 0)
        {
            GroupChallenge(new Dungeon(_dungeonId, _lineId));