少年修仙传客户端代码仓库
10349 【越南】【英文】【BT】【砍树】跨服竞技场优化  - 跨服排位赛

# Conflicts:
# LogicProject/System/CrossServerQualifying/CrossServerQualifyingModel.cs
# LogicProject/System/CrossServerQualifying/CrossServerQualifyingRaceCell.cs
# LogicProject/System/CrossServerQualifying/CrossServerQualifyingTimeCell.cs
4个文件已删除
12个文件已修改
426 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0431_tagTimeTick.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/Protocol/DTCFile/ServerPack/HC0_CrossRealm/IL_DTCC016_tagGCCrossChampionshipPKOver.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/Protocol/DTCFile/ServerPack/HC0_CrossRealm/IL_DTCC016_tagGCCrossChampionshipPKOver.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/Protocol/ILPackageRegedit.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/Protocol/ServerPack/HC0_CrossRealm/IL_HC016_tagGCCrossChampionshipPKOver.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/Protocol/ServerPack/HC0_CrossRealm/IL_HC016_tagGCCrossChampionshipPKOver.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/CrossServerQualifying/CrossServerQualifying64Win.cs 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/CrossServerQualifying/CrossServerQualifying8Win.cs 133 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/CrossServerQualifying/CrossServerQualifyingSettlementWin.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/CrossServerQualifying/ILCrossServerModel.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/PlayerCommon/HeroControler.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/FightingPKWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralDefine.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/CrossServerLogin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0431_tagTimeTick.cs
@@ -28,11 +28,7 @@
                    break;
                case CrossServerOneVsOneModel.CrossServerDataMapId:
                case ClientCrossServerOneVsOne.mapId:
                    if (!WindowCenter.Instance.IsOpen<BattlePrepareCoolDownWin>())
                    {
                        WindowCenter.Instance.Open<BattlePrepareCoolDownWin>();
                    }
                    break;
                case CrossServerQualifyingModel.DATA_MAPID:
                case ArenaManager.MapID:
                    if (!WindowCenter.Instance.IsOpen<BattlePrepareCoolDownWin>())
                    {
@@ -44,9 +40,8 @@
        switch (mapId)
        {
            case CrossServerOneVsOneModel.CrossServerDataMapId:
                WindowCenter.Instance.Close<DungeonEndCoolDownWin>();
                WindowCenter.Instance.Close<DungeonBeginCoolDownWin>();
                break;
            case ClientCrossServerOneVsOne.mapId:
            case CrossServerQualifyingModel.DATA_MAPID:
            case ArenaManager.MapID:
                WindowCenter.Instance.Close<DungeonEndCoolDownWin>();
                WindowCenter.Instance.Close<DungeonBeginCoolDownWin>();
LogicProject/Protocol/DTCFile/ServerPack/HC0_CrossRealm/IL_DTCC016_tagGCCrossChampionshipPKOver.cs
File was deleted
LogicProject/Protocol/DTCFile/ServerPack/HC0_CrossRealm/IL_DTCC016_tagGCCrossChampionshipPKOver.cs.meta
File was deleted
LogicProject/Protocol/ILPackageRegedit.cs
@@ -80,7 +80,7 @@
        //跨服排位赛
        Register(typeof(HC015_tagGCCrossChampionshipPKZoneGroupInfo), typeof(DTCC015_tagGCCrossChampionshipPKZoneGroupInfo));
        Register(typeof(IL_HC016_tagGCCrossChampionshipPKOver), typeof(IL_DTCC016_tagGCCrossChampionshipPKOver));
        //Register(typeof(IL_HC016_tagGCCrossChampionshipPKOver), typeof(IL_DTCC016_tagGCCrossChampionshipPKOver));
        Register(typeof(IL_HC022_tagGCChampionshipGuessPubInfo), typeof(IL_DTCC022_tagGCChampionshipGuessPubInfo));
        Register(typeof(IL_HC023_tagGCChampionshipGuessPriInfo), typeof(IL_DTCC023_tagGCChampionshipGuessPriInfo));
        Register(typeof(HC018_tagGCChampionshipOfficialInfo), typeof(DTCC018_tagGCChampionshipOfficialInfo));
LogicProject/Protocol/ServerPack/HC0_CrossRealm/IL_HC016_tagGCCrossChampionshipPKOver.cs
File was deleted
LogicProject/Protocol/ServerPack/HC0_CrossRealm/IL_HC016_tagGCCrossChampionshipPKOver.cs.meta
File was deleted
LogicProject/System/CrossServerQualifying/CrossServerQualifying64Win.cs
@@ -17,16 +17,25 @@
    Button btn16;
    List<Image> selectImgs = new List<Image>();
    Button timeBtn;
    ButtonEx enterGame;
    ScrollerController scroller;
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Button guessBtn;
    Image lineImg;
    Text waitTxt;
    Image arrow;
    Image arrow;
    ButtonEx enterGame;
    Text pkResultText;
    RectTransform pkTagetObjs; //有比赛场次的时候显示
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Text pkTimesText;
    Text pkScoreText;
    RectTransform tagPlayerObj;
    RectTransform todayRaceObj;
    Text todayRaceText;
    Button littleCloseBtn;
    #region Built-in
    protected override void BindController()
    {
@@ -47,6 +56,16 @@
        lineImg = proxy.GetWidgtEx<Image>("line");
        guessBtn = proxy.GetWidgtEx<Button>("guessBtn");
        arrow = proxy.GetWidgtEx<Image>("arrow");
        pkResultText = proxy.GetWidgtEx<Text>("pkResult");
        pkTagetObjs = proxy.GetWidgtEx<RectTransform>("chanllenge");
        pkTimesText = proxy.GetWidgtEx<Text>("challengeTimes");
        pkScoreText = proxy.GetWidgtEx<Text>("score");
        tagPlayerObj = proxy.GetWidgtEx<RectTransform>("tagetPlayer");
        todayRaceObj = proxy.GetWidgtEx<RectTransform>("raceTip");
        todayRaceText = proxy.GetWidgtEx<Text>("todayrace");
        littleCloseBtn = proxy.GetWidgtEx<Button>("littleClose");
    }
    protected override void AddListeners()
@@ -78,6 +97,11 @@
            arrow.SetActiveIL(false);
            WindowCenter.Instance.OpenIL<CrossServerQualifyingGuess8Win>();
        });
        littleCloseBtn.SetListener(()=>{
            CrossServerQualifyingModel.Instance.isShowRaceInfoYet = true;
            todayRaceObj.SetActive(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        });
    }
    protected override void OnPreOpen()
@@ -96,7 +120,12 @@
        else
        {
            arrow.SetActiveIL(ILChampionshipTimeConfig.Get(battleID).StateValue == 80);
        }
        }
        //顶部晋级信息显示
        var nextBattle = CrossServerQualifyingModel.Instance.GetMyNextBattle();
        pkResultText.SetActive(nextBattle != 0);
        pkResultText.text = Language.Get("CrossServerQualifying71", nextBattle);
    }
@@ -211,25 +240,92 @@
    void OnMinuteEvent()
    {
        var groupMark = CrossServerQualifyingModel.Instance.nowGroupMark;
        enterGame.SetActiveIL(false);
        pkTagetObjs.SetActiveIL(false);
        todayRaceObj.SetActiveIL(false);
        timeTip.text = string.Empty;
        var findIndex = CrossServerQualifyingModel.Instance.groupBtnMarks.IndexOf(groupMark);
        if (findIndex != -1 && groupMark <= 64 && groupMark >= 16)
        {
            var isInBattle = CrossServerQualifyingModel.Instance.HaveMyBattle(groupMark);
            enterGame.SetActiveIL(isInBattle);
            if (isInBattle)
            int battleID = CrossServerQualifyingModel.Instance.GetBattleID();
            if (isInBattle && ILChampionshipTimeConfig.Get(battleID).StateValue % 10 == 2)
            {
                var battleID = ILChampionshipTimeConfig.GetBattleID((int)groupMark * 10 + 2);
                if (battleID != 0)
                {
                    timeTip.text = Language.Get("CrossServerQualifying20", CrossServerQualifyingModel.Instance.GetStartBattleTime(battleID));
                    return;
                pkTagetObjs.SetActiveIL(true);
                //ItemOverdue104 {0}分
                //ItemTipTime1    剩余时间:
                //OSCActivityNotOpen    活动未开始
                //FamilyMatchAlreadyEnd < color =#109d06>已结束</color>
                double minute = CrossServerQualifyingModel.Instance.GetRaceEndRemindMinute(battleID);
                if (minute >= 0)
                {
                    timeTip.text = StringUtility.Contact(Language.Get("ItemTipTime1"), " ", Language.Get("ItemOverdue104", (int)minute));
                }
                else
                {
                    timeTip.text = Language.Get("FamilyMatchAlreadyEnd");
                }
                ShowBattleInfo(groupMark);
            }
        }
            if (isInBattle)
            {
                ShowTodayRaceInfo();
            }
        }
    }
    void ShowBattleInfo(uint groupMark)
    {
        uint tagPlayerID;
        var battleResult = CrossServerQualifyingModel.Instance.GetMyBattleInfo(groupMark, out tagPlayerID);
        int challengeCnt = battleResult.ContainsKey((int)PlayerDatas.Instance.baseData.PlayerID) ? battleResult[(int)PlayerDatas.Instance.baseData.PlayerID].Length : 0;
        //FindPrecious_14    挑战次数:
        pkTimesText.text = StringUtility.Contact(Language.Get("FindPrecious_14"), " ",
            CrossServerQualifyingModel.Instance.challengeMaxCnt - challengeCnt,
            "/", CrossServerQualifyingModel.Instance.challengeMaxCnt);
        // 战斗结果明细 {"playerID":[[第1局胜负,第1局总积分,胜负基础分,hp分,时间分], ...], ...}
        int myScore = 0;
        int tagScore = 0;
        var keys = battleResult.Keys.ToList();
        for (int i = 0; i < keys.Count; i++)
        {
            var key = keys[i];
            if (key == (int)PlayerDatas.Instance.baseData.PlayerID)
            {
                for (int j = 0; j < battleResult[key].Length; j++)
                {
                    myScore += battleResult[key][j][1];
                }
            }
            else
            {
                for (int j = 0; j < battleResult[key].Length; j++)
                {
                    tagScore += battleResult[key][j][1];
                }
            }
        }
        //L2033    比分:
        pkScoreText.text = StringUtility.Contact( Language.Get("L2033"), " ", myScore, " - ", tagScore);
        var _cell = tagPlayerObj.GetILBehaviour<CSQShootOutPlayerCell>();
        _cell.Display(tagPlayerID, 0);
    }
    void ShowTodayRaceInfo()
    {
        todayRaceObj.SetActiveIL(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        string raceInfo = StringUtility.Contact(Language.Get("CrossServerQualifying70"), "</r>");
        foreach (int mark in CrossServerQualifyingModel.Instance.groupBtnMarks)
        {
            int tmpBattleID = ILChampionshipTimeConfig.GetBattleID(mark * 10 + 2);
            var tmpConfig = ILChampionshipTimeConfig.Get(tmpBattleID);
            raceInfo = StringUtility.Contact(raceInfo, "</r>", tmpConfig.Title, "    ",
                tmpConfig.StartHour.ToString("D2"), ":", tmpConfig.StartMinute.ToString("D2"), " - ",
                tmpConfig.EndHour.ToString("D2"), ":", tmpConfig.EndMinute.ToString("D2"));
        }
        todayRaceText.text = raceInfo;
    }
    void UpdateRace()
LogicProject/System/CrossServerQualifying/CrossServerQualifying8Win.cs
@@ -14,9 +14,7 @@
{
    Transform raceTable;
    Text waitTxt;
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Button raceBtn;
    ButtonEx enterGame;
    Button giftBtn;
    Button guessBtn;
    Text time1;
@@ -33,8 +31,17 @@
    Text fightPowerA;
    Text fightPowerB;
    Image arrow;
    Text nextTime;
    Text nextTime;
    ButtonEx enterGame;
    RectTransform pkTagetObjs; //有比赛场次的时候显示
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Text pkTimesText;
    Text pkScoreText;
    RectTransform tagPlayerObj;
    RectTransform todayRaceObj;
    Text todayRaceText;
    Button littleCloseBtn;
    #region Built-in
    protected override void BindController()
@@ -69,7 +76,15 @@
        fightPowerA = proxy.GetWidgtEx<Text>("fightPowerA");
        fightPowerB = proxy.GetWidgtEx<Text>("fightPowerB");
        arrow = proxy.GetWidgtEx<Image>("arrow");
        nextTime = proxy.GetWidgtEx<Text>("nextTime");
        nextTime = proxy.GetWidgtEx<Text>("nextTime");
        pkTagetObjs = proxy.GetWidgtEx<RectTransform>("chanllenge");
        pkTimesText = proxy.GetWidgtEx<Text>("challengeTimes");
        pkScoreText = proxy.GetWidgtEx<Text>("score");
        tagPlayerObj = proxy.GetWidgtEx<RectTransform>("tagetPlayer");
        todayRaceObj = proxy.GetWidgtEx<RectTransform>("raceTip");
        todayRaceText = proxy.GetWidgtEx<Text>("todayrace");
        littleCloseBtn = proxy.GetWidgtEx<Button>("littleClose");
    }
    protected override void AddListeners()
@@ -88,6 +103,11 @@
        giftBtn.SetListener(() => {
            WindowCenter.Instance.OpenIL<CrossServerQualifyingRankWin>();
        });
        littleCloseBtn.SetListener(() => {
            CrossServerQualifyingModel.Instance.isShowRaceInfoYet = true;
            todayRaceObj.SetActive(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        });
    }
@@ -129,9 +149,9 @@
        }
        else
        {
            enterGame.SetActiveIL(false);
            timeTip.text = string.Empty;
        {
            pkTagetObjs.SetActiveIL(false);
            todayRaceObj.SetActiveIL(false);
            DisplayTime();
            raceTable.SetActiveIL(false);
            waitTxt.SetActiveIL(true);
@@ -305,24 +325,95 @@
    void OnMinuteEvent()
    {
        enterGame.SetActiveIL(false);
        timeTip.text = string.Empty;
        pkTagetObjs.SetActiveIL(false);
        todayRaceObj.SetActiveIL(false);
        var groupMark = CrossServerQualifyingModel.Instance.nowGroupMark;
        if (groupMark <= 8 && groupMark != 0)
        {
            //如果玩家界面一直开着就需要刷新
            if (CrossServerQualifyingModel.Instance.HaveMyBattle(groupMark))
            {
                enterGame.SetActiveIL(true);
                var battleID = ILChampionshipTimeConfig.GetBattleID((int)groupMark * 10 + 2);
                if (battleID != 0)
                {
                    timeTip.text = Language.Get("CrossServerQualifying20", CrossServerQualifyingModel.Instance.GetStartBattleTime(battleID));
                }
        {
            var isInBattle = CrossServerQualifyingModel.Instance.HaveMyBattle(groupMark);
            //如果玩家界面一直开着就需要刷新
            int battleID = CrossServerQualifyingModel.Instance.GetBattleID();
            if (isInBattle && ILChampionshipTimeConfig.Get(battleID).StateValue % 10 == 2)
            {
                pkTagetObjs.SetActiveIL(true);
                //ItemOverdue104 {0}分
                //ItemTipTime1    剩余时间:
                //OSCActivityNotOpen    活动未开始
                //FamilyMatchAlreadyEnd < color =#109d06>已结束</color>
                double minute = CrossServerQualifyingModel.Instance.GetRaceEndRemindMinute(battleID);
                if (minute >= 0)
                {
                    timeTip.text = StringUtility.Contact(Language.Get("ItemTipTime1"), " ", Language.Get("ItemOverdue104", (int)minute));
                }
                else
                {
                    timeTip.text = Language.Get("FamilyMatchAlreadyEnd");
                }
                ShowBattleInfo(groupMark);
            }
            if (isInBattle)
            {
                ShowTodayRaceInfo();
            }
        }
        }
    }
    void ShowBattleInfo(uint groupMark)
    {
        uint tagPlayerID;
        var battleResult = CrossServerQualifyingModel.Instance.GetMyBattleInfo(groupMark, out tagPlayerID);
        int challengeCnt = battleResult.ContainsKey((int)PlayerDatas.Instance.baseData.PlayerID) ? battleResult[(int)PlayerDatas.Instance.baseData.PlayerID].Length : 0;
        //FindPrecious_14    挑战次数:
        pkTimesText.text = StringUtility.Contact(Language.Get("FindPrecious_14"), " ",
            CrossServerQualifyingModel.Instance.challengeMaxCnt - challengeCnt,
            "/", CrossServerQualifyingModel.Instance.challengeMaxCnt);
        // 战斗结果明细 {"playerID":[[第1局胜负,第1局总积分,胜负基础分,hp分,时间分], ...], ...}
        int myScore = 0;
        int tagScore = 0;
        var keys = battleResult.Keys.ToList();
        for (int i = 0; i < keys.Count; i++)
        {
            var key = keys[i];
            if (key == (int)PlayerDatas.Instance.baseData.PlayerID)
            {
                for (int j = 0; j < battleResult[key].Length; j++)
                {
                    myScore += battleResult[key][j][1];
                }
            }
            else
            {
                for (int j = 0; j < battleResult[key].Length; j++)
                {
                    tagScore += battleResult[key][j][1];
                }
            }
        }
        //L2033    比分:
        pkScoreText.text = StringUtility.Contact(Language.Get("L2033"), " ", myScore, " - ", tagScore);
        var _cell = tagPlayerObj.GetILBehaviour<CSQShootOutPlayerCell>();
        _cell.Display(tagPlayerID, 0);
    }
    void ShowTodayRaceInfo()
    {
        todayRaceObj.SetActiveIL(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        string raceInfo = StringUtility.Contact(Language.Get("CrossServerQualifying70"), "</r>");
        foreach (int mark in CrossServerQualifyingModel.Instance.group8BtnMarks)
        {
            int tmpBattleID = ILChampionshipTimeConfig.GetBattleID(mark * 10 + 2);
            var tmpConfig = ILChampionshipTimeConfig.Get(tmpBattleID);
            raceInfo = StringUtility.Contact(raceInfo, "</r>", tmpConfig.Title, "    ",
                tmpConfig.StartHour.ToString("D2"), ":", tmpConfig.StartMinute.ToString("D2"), " - ",
                tmpConfig.EndHour.ToString("D2"), ":", tmpConfig.EndMinute.ToString("D2"));
        }
        todayRaceText.text = raceInfo;
    }
    void UpdateRace()
LogicProject/System/CrossServerQualifying/CrossServerQualifyingSettlementWin.cs
@@ -15,25 +15,23 @@
    Text outTimeText;
    Transform backFail;
    Transform backWin;
    List<Transform> rounds = new List<Transform>();
    List<Text> results = new List<Text>();
    Text resultScore;
    Transform caidaiEffect;
    float timer = 0f;
    int outTime = 5;
    #region Built-in
    DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
    protected override void BindController()
    {
        outBtn = proxy.GetWidgtEx<Button>("DropOutBtn");
        outTimeText = proxy.GetWidgtEx<Text>("DropOutBtn_text");
        backFail = proxy.GetWidgtEx<Transform>("Back_Failure");
        backWin = proxy.GetWidgtEx<Transform>("Back_Win");
        for (int i = 0; i < 3; i++)
        {
            rounds.Add(proxy.GetWidgtEx<Transform>("RoundWin" + i));
            results.Add(proxy.GetWidgtEx<Text>("Text_" + i));
        }
        caidaiEffect = proxy.GetWidgtEx<Transform>("CaidaiEffect");
        resultScore = proxy.GetWidgtEx<Text>("Text_2");
    }
    protected override void AddListeners()
@@ -59,40 +57,14 @@
            backWin.SetActiveIL(false);
            caidaiEffect.SetActiveIL(false);
        }
        for (int i = 0; i < rounds.Count; i++)
        {
            if (i < CrossServerQualifyingModel.Instance.RoundWinnerID.Count)
            {
                rounds[i].SetActiveIL(true);
                if (CrossServerQualifyingModel.Instance.RoundWinnerID[i] == playerID)
                {
                    results[i].text = Language.Get("CrossServer113");
                    results[i].color = new Color32(255, 239, 71, 255);
                }
                else
                {
                    results[i].text = Language.Get("CrossServer114");
                    results[i].color = new Color32(255, 244, 205, 255);
                }
            }
            else
            {
                rounds[i].SetActiveIL(false);
            }
        }
        //如果对方离线,并且一场未打,显示第一回胜利
        if (CrossServerQualifyingModel.Instance.RoundWinnerID.Count == 0 && CrossServerQualifyingModel.Instance.OverType == 1)
        {
            rounds[0].SetActiveIL(true);
            results[0].text = Language.Get("CrossServer113");
            results[0].color = new Color32(255, 239, 71, 255);
        }
        resultScore.text = Language.Get("XMZZ106", CrossServerQualifyingModel.Instance.score);
    }
    protected override void OnPreClose()
    {
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        PopupWindowsProcessor.Instance.Add("CrossServerQualifyingWin");
    }
    #endregion
@@ -114,7 +86,7 @@
    private void ExitDungeon()
    {
        WindowCenter.Instance.CloseIL<CrossServerQualifyingSettlementWin>();
        CrossServerOneVsOneRewardModel.ExitCrossRealm();
        model.ExitCurrentDungeon();
    }
}
LogicProject/System/CrossServerQualifying/ILCrossServerModel.cs
@@ -41,9 +41,6 @@
    void ParseConfig()
    {
        var CrossRealmCfg = FuncConfigConfig.Get("CrossRealmCfg");
        afterOpenDayOpenCrossBattle = int.Parse(CrossRealmCfg.Numerical1);
        var config = FuncConfigConfig.Get("CrossBattlefieldOpen");
        var sysTimes = JsonMapper.ToObject<int[][]>(config.Numerical1);
        for (int i = 0; i < sysTimes.Length; i++)
@@ -278,7 +275,6 @@
    public event Action UpdateBuyInfoEvent;
    public int afterOpenDayOpenCrossBattle;
    //活动开启时间int3 = 时 分 类型(0系统1玩家)
    public List<Int3> crossBattleFieldOpenTimes = new List<Int3>();
    public int processTime; //游戏运行时间(分),此时间也当作游戏进行中和可进入时间,比实际少了准备时间
@@ -341,12 +337,12 @@
    public const int openUIMark = 2080000;
    public int zoneID = 0;
    //同PK一样赛区和赛季总时间,底层c#用到
    //古神战场是否开启
    public bool IsOpen()
    {
        return FuncOpen.Instance.IsFuncOpen(208)
            && TimeUtility.OpenDay >= afterOpenDayOpenCrossBattle
            //&& CrossServerOneVsOnePKSeason.Instance.InPkSeason(TimeUtility.ServerNow)
            && TimeUtility.OpenDay >= GeneralDefine.crossServerBattleFieldOpenDay
            //&& CrossServerOneVsOnePKSeason.Instance.InPkSeason(TimeUtility.ServerNow)
            && InOpenTime();
    }
LogicProject/System/PlayerCommon/HeroControler.cs
@@ -80,7 +80,7 @@
    }
    //参考 RoleModel . OnFuncStateChangeEvent  0 未推送 1已推送
    //功能:是否提醒过  1豪华首充 2无限货币 3 在线特惠 4 1元30倍 5 玩法前瞻 6 战场召集 7跨服64排位
    //功能:是否提醒过  1豪华首充 2无限货币 3 在线特惠 4 1元30倍 5 玩法前瞻 6 战场召集 7跨服64排位 8 跨服天梯
    public void FuncPush(int id)
    {
        if (id == 203)
@@ -101,10 +101,18 @@
            {
                roleModel.funcInfo[7] = 0;
            }
        }
        else if (id == 157)
        {
            if (CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch &&
                CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum() > 0)
            {
                roleModel.funcInfo[8] = 0;
            }
        }
    }
    List<int> funcPushIDS = new List<int>() { 203, 208, 210 };
    List<int> funcPushIDS = new List<int>() { 157, 208, 210 };
    void OnPlayerLoginOk()
    {
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -131,7 +131,7 @@
                }
            }
            recordDataMapId = dataMapId;
            if (dataMapId == CrossServerDataMapId)
            if (dataMapId == CrossServerDataMapId || dataMapId == CrossServerQualifyingModel.DATA_MAPID)
            {
                PersonalEnemy.OnMirrorPlayerAppear += OnPlayerAppear;
            }
@@ -347,6 +347,7 @@
            var CrossRealmCfg = FuncConfigConfig.Get("CrossRealmCfg");
            afterOpenDayOpenCross = int.Parse(CrossRealmCfg.Numerical1);
            GeneralDefine.crossServerOneVsOneOpenDay = afterOpenDayOpenCross;
        }
        public class AwardType
@@ -720,6 +721,7 @@
            }
        }
        #region 荣誉商店红点
        public const int CrossHonorStoreRedKey = 2130104;
System/CrossServerOneVsOne/FightingPKWin.cs
@@ -623,7 +623,7 @@
        {
            List<int> buffIds = new List<int>();
            _OpponentBuffSortList.Clear();
            StatusMgr.Instance.GetBuffIds((uint)CrossServerLogin.Instance.oneVsOnePlayerData.opponentPlayerId, ref buffIds);
            StatusMgr.Instance.GetBuffIds((uint)CrossServerLogin.Instance.oneVsOnePlayerData.mirrorPlayerID, ref buffIds);
            if (buffIds.Count > 0)
            {
                for (int i = 0; i < buffIds.Count; i++)
System/Dungeon/DungeonModel.cs
@@ -1449,6 +1449,9 @@
                        case ArenaManager.MapID:
                            ArenaManagerModel.Instance.UpdateFBEnd();
                            break;
                        case CrossServerQualifyingModel.DATA_MAPID:
                            CrossServerQualifyingModel.Instance.UpdatePKResult();
                            break;
                        default:
                            WindowCenter.Instance.Open<DungeonVictoryWin>();
                            break;
System/GeneralConfig/GeneralDefine.cs
@@ -180,7 +180,7 @@
    public static Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>> SgzzRobotEquipDict { get; private set; }
    public static Dictionary<int, int> SgzcRealm { get; private set; }
    public static int crossServerOneVsOneOpenDay { get; private set; }
    public static int crossServerOneVsOneOpenDay { get; set; }
    public static int crossServerBattleFieldOpenDay { get; private set; }
    public static int UISpringDecorate { get; private set; }
    public static Dictionary<int, List<int>> skillAttrIDDict { get; private set; }
@@ -856,7 +856,6 @@
                }
            }
            crossServerOneVsOneOpenDay = GetInt("CrossRealmCfg");
            crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2);
            UISpringDecorate = GetInt("UISpringDecorate");
System/Login/CrossServerLogin.cs
@@ -57,6 +57,7 @@
                opponentLevel = player.LV,
                opponentPlayerId = (int)player.PlayerID,
            };
            LoadingWin.isCrossServerOneVsOne = true;
        }
        public void UpdatePKPlayerInfo(GA_Player player)
@@ -77,6 +78,7 @@
                opponentLevel = oneVsOnePlayerData.opponentLevel,
                opponentPlayerId = oneVsOnePlayerData.opponentPlayerId,
                MaxProDef = (int)player.ActorInfo.maxProDef,
                mirrorPlayerID = (int)player.ServerInstID,
            };
        }
@@ -332,6 +334,7 @@
        public int opponentLevel;
        public ulong opponentMaxHp;
        public int MaxProDef;// 最大护盾
        public int mirrorPlayerID; //镜像玩家ID
        public bool IsCrossServerOneVsOneEntering()