yyl
2025-11-27 9914a39516a2479a02dd59584884e01e6d3ed7b2
Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
5个文件已修改
94 ■■■■ 已修改文件
Main/Component/UI/Common/FuncOpen.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/Configs/FuncOpenLVConfig.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BaseBattleWin.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleConst.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleManager.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Common/FuncOpen.cs
@@ -154,6 +154,11 @@
            errorCode = 1;
            return false;
        }
        if (config.ManLevel > 0 && PlayerDatas.Instance.baseData.ExAttr1 < config.ManLevel)
        {
            errorCode = 5;
            return false;
        }
        return true;
        // return false;
    }
@@ -212,6 +217,9 @@
                    case 4:
                        SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID)));
                        break;
                    case 5:
                        SysNotifyMgr.Instance.ShowStringTip(Language.Get("FuncLimit_ManLevel", config.ManLevel/10000, config.ManLevel/100%100, config.ManLevel%100));
                        break;
                }
            }
        }
@@ -252,6 +260,8 @@
                    return Language.Get("FuncLimit_Realm", RealmConfig.Get(config.LimiRealmLV).Name);
                case 4:
                    return Language.Get("FuncLimit_Mission", TaskManager.Instance.GetNeedFinishTaskCount(config.LimitMissionID));
                case 5:
                    return Language.Get("FuncLimit_ManLevel", config.ManLevel/10000, config.ManLevel/100%100, config.ManLevel%100);
            }
        }
        return string.Empty;
Main/Config/Configs/FuncOpenLVConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           YYL
//    [  Date ]:           2025年8月28日
//    [  Date ]:           Thursday, November 27, 2025
//--------------------------------------------------------
using System.Collections.Generic;
@@ -21,6 +21,7 @@
    public int LimiRealmLV;
    public int LimitMissionID;
    public int OpenDay;
    public int ManLevel;
    public string Name;
    public string Desc;
    public string Icon;
@@ -46,13 +47,15 @@
            int.TryParse(tables[4],out OpenDay); 
            Name = tables[5];
            int.TryParse(tables[5],out ManLevel);
            Desc = tables[6];
            Name = tables[6];
            Icon = tables[7];
            Desc = tables[7];
            Award = ConfigParse.ParseIntArray2Dict(tables[8]);
            Icon = tables[8];
            Award = ConfigParse.ParseIntArray2Dict(tables[9].Replace("(", "[").Replace(")", "]"));
        }
        catch (Exception exception)
        {
Main/System/Battle/BaseBattleWin.cs
@@ -194,17 +194,49 @@
        if (!FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId, true))
            return;
        //主线Boss之外的战斗支持永久特权跳过
        int passRound = BattleManager.Instance.defaultPassRound;
        var name = battleField.ToString();
        bool isStoryBossBattleField = name == "StoryBossBattleField";
        // 检查是否为永久特权卡玩家
        bool hasForeverPrivilege = InvestModel.Instance.IsInvested(InvestModel.foreverCardType);
        if (hasForeverPrivilege && !isStoryBossBattleField)
        if (hasForeverPrivilege)
        {
            battleField.ForceFinish();
            return;
            // 永久特权卡玩家逻辑
            if (BattleConst.FieldNameToIndex.ContainsKey(name))
            {
                int index = BattleConst.FieldNameToIndex[name];
                if (BattleManager.Instance.foreverPrivilegePassDict.ContainsKey(index))
                {
                    passRound = BattleManager.Instance.foreverPrivilegePassDict[index];
                }
                else
                {
                    // 未配置的战场类型,使用普通玩家规则
                    if (BattleManager.Instance.passDict.ContainsKey(index))
                    {
                        passRound = BattleManager.Instance.passDict[index];
                    }
                    // 否则使用默认配置
                }
            }
            // 如果战场类型不在 FieldNameToIndex 中,使用默认配置
        }
        else
        {
            // 普通玩家逻辑
            if (BattleConst.FieldNameToIndex.ContainsKey(name))
            {
                int index = BattleConst.FieldNameToIndex[name];
                if (BattleManager.Instance.passDict.ContainsKey(index))
                {
                    passRound = BattleManager.Instance.passDict[index];
                }
                // 否则使用默认配置
            }
            // 如果战场类型不在 FieldNameToIndex 中,使用默认配置
        }
        int passRound = BattleManager.Instance.passRound;
        int nowRound = battleField.round;
        if (nowRound < passRound)
        {
@@ -214,6 +246,9 @@
        battleField.ForceFinish();
    }
    /// <summary>
    /// 改变速度
    /// </summary>
Main/System/Battle/BattleConst.cs
@@ -22,6 +22,14 @@
        { "TianziBillboradBattleField", "TianziBillboradBattleWin" },
    };
    public static Dictionary<string, int> FieldNameToIndex = new Dictionary<string, int>()
    {
        { "StoryBossBattleField", 1 },
        { "ArenaBattleField", 2 },
        { "BoneBattleField", 3},
        { "TianziBillboradBattleField", 4 },
    };
    public const int BattleStartEffectID = 1001; // Example effect ID for battle start
    public const int skillMotionFps = 30;
Main/System/Battle/BattleManager.cs
@@ -26,7 +26,11 @@
    }
    public readonly int[] speedIndexfuncIdArr = new int[] { 34, 35, 36 };  // 战斗倍数对应的功能ID
    public readonly int passFuncId = 33;    // 跳过战斗对应的功能ID
    public int passRound;   // 超过X回合可跳过
    public int defaultPassRound;
    public Dictionary<int, int> passDict = new Dictionary<int, int>();
    public Dictionary<int, int> foreverPrivilegePassDict = new Dictionary<int, int>();
    public int fightGuideID;
    public int fightGuideMainLevelLimit;
    public int fightGuideNoClickSeconds;
@@ -46,7 +50,7 @@
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
        ParseConfig();
    }
    void ParseConfig()
@@ -61,7 +65,9 @@
        challengeBossGuides = JsonMapper.ToObject<int[]>(config.Numerical4);
        config = FuncConfigConfig.Get("BattleButton");
        passRound= int.Parse(config.Numerical1);
        defaultPassRound = int.Parse(config.Numerical1);
        passDict = ConfigParse.ParseIntDict(config.Numerical2);
        foreverPrivilegePassDict = ConfigParse.ParseIntDict(config.Numerical3);
    }
@@ -269,9 +275,9 @@
            packQueue.Enqueue(pack);
        }
            // packQueue = new Queue<GameNetPackBasic>(newPackList);
        // packQueue = new Queue<GameNetPackBasic>(newPackList);
        DistributeNextPackage();
    }