少年修仙传客户端代码仓库
0312 10349 【越南】【英文】【BT】【砍树】跨服竞技场优化 - 第一版
11个文件已删除
1 文件已重命名
1个文件已添加
28个文件已修改
1598 ■■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CC1_CrossRealm/CC101_tagCMCrossRealmPKMatch.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CC1_CrossRealm/CC108_tagCMCrossRealmPKRobotOver.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC001_tagGCCrossRealmPKMatchOK.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC002_tagGCCrossRealmPKStartMatch.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC002_tagGCCrossRealmPKStartMatch.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC005_tagGCCrossRealmPKBillboardInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC001_tagGCCrossRealmPKMatchOK.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC002_tagGCCrossRealmPKStartMatch.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC002_tagGCCrossRealmPKStartMatch.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC015_tagGCCrossChampionshipPKZoneGroupInfo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC101_tagMCCrossRealmPKPlayerInfo.cs 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/ClientDungeonStageUtility.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/ArenaActivity/ArenaManagerModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/ArenaActivity/ArenaSettlementWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/CrossServerQualifying/CrossServerQualifyingModel.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossSercerOneVsOneMatchState.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossSercerOneVsOneMatchState.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneEnterConfirmWin.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs.meta 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePKSeason.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerInfo.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerLeaveCoolDownWin.cs 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerLeaveCoolDownWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneWaitPlayerCoolDownWin.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneWaitPlayerCoolDownWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerSettlementWin.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/RankCellCtrl.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/RankingWin.cs 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/SeasonRewardWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarAutoChallenge.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionModel.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/CrossServerLogin.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Rank/RankModel.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamModel.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -228,12 +228,11 @@
        Register(typeof(HB208_tagMCAddXianyuanCoinMsg), typeof(DTCB208_tagMCAddXianyuanCoinMsg));
        Register(typeof(HB211_tagMCHelpBattleRecordList), typeof(DTCB211_tagMCHelpBattleRecordList));
        Register(typeof(HC001_tagGCCrossRealmPKMatchOK), typeof(DTCC001_tagGCCrossRealmPKMatchOK));
        Register(typeof(HC002_tagGCCrossRealmPKStartMatch), typeof(DTCC002_tagGCCrossRealmPKStartMatch));
        Register(typeof(HC003_tagGCCrossRealmPKOverInfo), typeof(DTCC003_tagGCCrossRealmPKOverInfo));
        Register(typeof(HC004_tagGCCrossRealmPKSeasonInfo), typeof(DTCC004_tagGCCrossRealmPKSeasonInfo));
        Register(typeof(HC101_tagMCCrossRealmPKPlayerInfo), typeof(DTCC101_tagMCCrossRealmPKPlayerInfo));
        Register(typeof(HC102_tagMCCrossRealmPKAwardState), typeof(DTCC102_tagMCCrossRealmPKAwardState));
        Register(typeof(HC005_tagGCCrossRealmPKBillboardInfo), typeof(DTCC005_tagGCCrossRealmPKBillboardInfo));
        //Register(typeof(HC005_tagGCCrossRealmPKBillboardInfo), typeof(DTCC005_tagGCCrossRealmPKBillboardInfo));
        Register(typeof(HC006_tagGCCrossRealmPKSeasonState), typeof(DTCC006_tagGCCrossRealmPKSeasonState));
        Register(typeof(HAA1F_tagMCLuckyTreasureInfo), typeof(DTCAA1F_tagMCLuckyTreasureInfo));
        Register(typeof(HAA1E_tagMCLuckyTreasureResultInfo), typeof(DTCAA1E_tagMCLuckyTreasureResultInfo));
Core/NetworkPackage/ClientPack/ClientToMapServer/CC1_CrossRealm/CC101_tagCMCrossRealmPKMatch.cs
@@ -1,18 +1,18 @@
using UnityEngine;
using System.Collections;
using UnityEngine;
using System.Collections;
// C1 01 跨服PK匹配 #tagCMCrossRealmPKMatch
// C1 01 跨服PK匹配 #tagCMCrossRealmPKMatch
public class CC101_tagCMCrossRealmPKMatch : GameNetPackBasic {
    public byte Type;    // 0-取消匹配; 1-进行匹配
    public CC101_tagCMCrossRealmPKMatch () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xC101;
    }
    public override void WriteToBytes () {
        WriteBytes (Type, NetDataType.BYTE);
    }
}
public class CC101_tagCMCrossRealmPKMatch : GameNetPackBasic {
    public byte Type;    // 0-查询匹配;1-刷新匹配
    public CC101_tagCMCrossRealmPKMatch () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xC101;
    }
    public override void WriteToBytes () {
        WriteBytes (Type, NetDataType.BYTE);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CC1_CrossRealm/CC108_tagCMCrossRealmPKRobotOver.cs
@@ -1,22 +1,20 @@
using UnityEngine;
using UnityEngine;
using System.Collections;
// C1 08 跨服PK挑战机器人结算 #tagCMCrossRealmPKRobotOver
public class CC108_tagCMCrossRealmPKRobotOver : GameNetPackBasic
{
    public byte IsWin;    //是否获胜
    public CC108_tagCMCrossRealmPKRobotOver()
    {
        Debug.Log("CC108_tagCMCrossRealmPKRobotOver");
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xC108;
    }
    public override void WriteToBytes()
    {
        WriteBytes(IsWin, NetDataType.BYTE);
    }
}
// C1 08 跨服PK挑战机器人结算 #tagCMCrossRealmPKRobotOver
public class CC108_tagCMCrossRealmPKRobotOver : GameNetPackBasic {
    public byte IsWin;    //是否获胜
    public uint TagPlayerID;    //目标玩家ID
    public CC108_tagCMCrossRealmPKRobotOver () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xC108;
    }
    public override void WriteToBytes () {
        WriteBytes (IsWin, NetDataType.BYTE);
        WriteBytes (TagPlayerID, NetDataType.DWORD);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC001_tagGCCrossRealmPKMatchOK.cs
@@ -6,7 +6,7 @@
public class DTCC001_tagGCCrossRealmPKMatchOK : DtcBasic
{
    CrossServerOneVsOneModel model { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
@@ -16,15 +16,7 @@
        if (package.socketType == ServerType.Main)
        {
            var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
            if (teamModel.isMatching)
            {
                teamModel.RequestCancelAutoMatchTeam();
            }
            CrossServerLogin.Instance.UpdateCrossServerOneVsOneData(package,false);
            WindowCenter.Instance.Open<CrossServerOneVsOneEnterConfirmWin>();
            ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>().IsMatching = false;
            model.UpdateOneVSOneMatch(package);
        }
    }
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC002_tagGCCrossRealmPKStartMatch.cs
File was deleted
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC002_tagGCCrossRealmPKStartMatch.cs.meta
File was deleted
Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC005_tagGCCrossRealmPKBillboardInfo.cs
@@ -14,6 +14,6 @@
        {
            return;
        }
        crossServerRewardModel.CrossRealmPKBillboardInfo(vNetData);
        //crossServerRewardModel.CrossRealmPKBillboardInfo(vNetData);
    }
}
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC001_tagGCCrossRealmPKMatchOK.cs
@@ -4,10 +4,6 @@
// C0 01 跨服PK匹配成功 #tagGCCrossRealmPKMatchOK
public class HC001_tagGCCrossRealmPKMatchOK : GameNetPackBasic {
    public ushort RoomID;    // 房间ID
    public byte NameLen;
    public string PlayerName;    // 跨服名字
    public byte Number;    // 位置编号;1-左,2-右
    public byte MatchPlayerCount;
    public  tagGCCrossRealmPKMatchPlayer[] MatchPlayer;    // 匹配到的玩家
@@ -16,10 +12,6 @@
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out RoomID, vBytes, NetDataType.WORD);
        TransBytes (out NameLen, vBytes, NetDataType.BYTE);
        TransBytes (out PlayerName, vBytes, NetDataType.Chars, NameLen);
        TransBytes (out Number, vBytes, NetDataType.BYTE);
        TransBytes (out MatchPlayerCount, vBytes, NetDataType.BYTE);
        MatchPlayer = new tagGCCrossRealmPKMatchPlayer[MatchPlayerCount];
        for (int i = 0; i < MatchPlayerCount; i ++) {
@@ -29,11 +21,11 @@
            TransBytes (out MatchPlayer[i].PlayerName, vBytes, NetDataType.Chars, MatchPlayer[i].NameLen);
            TransBytes (out MatchPlayer[i].Job, vBytes, NetDataType.BYTE);
            TransBytes (out MatchPlayer[i].LV, vBytes, NetDataType.WORD);
            TransBytes (out MatchPlayer[i].RealmLV, vBytes, NetDataType.WORD);
            TransBytes (out MatchPlayer[i].Face, vBytes, NetDataType.DWORD);
            TransBytes (out MatchPlayer[i].FacePic, vBytes, NetDataType.DWORD);
            TransBytes (out MatchPlayer[i].MaxHP, vBytes, NetDataType.DWORD);
            TransBytes (out MatchPlayer[i].MaxHPEx, vBytes, NetDataType.DWORD);
            TransBytes (out MatchPlayer[i].MaxProDef, vBytes, NetDataType.DWORD);
            TransBytes (out MatchPlayer[i].FightPower, vBytes, NetDataType.DWORD);
            TransBytes (out MatchPlayer[i].FightPowerEx, vBytes, NetDataType.DWORD);
        }
    }
@@ -43,11 +35,11 @@
        public string PlayerName;        // 跨服名字
        public byte Job;
        public ushort LV;
        public ushort RealmLV;        //境界
        public uint Face;        //基本脸型
        public uint FacePic;        //头像框
        public uint MaxHP;        // 默认满血,求余亿部分
        public uint MaxHPEx;        // 默认满血,整除亿部分
        public uint MaxProDef;        // 最大护盾
        public uint FightPower;        //战力,求余亿部分
        public uint FightPowerEx;        //战力,整除亿部分
    }
}
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC002_tagGCCrossRealmPKStartMatch.cs
File was deleted
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC002_tagGCCrossRealmPKStartMatch.cs.meta
File was deleted
Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC015_tagGCCrossChampionshipPKZoneGroupInfo.cs
@@ -48,6 +48,8 @@
                TransBytes (out GroupList[i].BattleList[j].WinPlayerID, vBytes, NetDataType.DWORD);
                TransBytes (out GroupList[i].BattleList[j].PlayerIDA, vBytes, NetDataType.DWORD);
                TransBytes (out GroupList[i].BattleList[j].PlayerIDB, vBytes, NetDataType.DWORD);
                TransBytes (out GroupList[i].BattleList[j].BattleRetLen, vBytes, NetDataType.BYTE);
                TransBytes (out GroupList[i].BattleList[j].BattleRet, vBytes, NetDataType.Chars, GroupList[i].BattleList[j].BattleRetLen);
            }
        }
    }
@@ -63,6 +65,8 @@
        public uint WinPlayerID;        // 获胜玩家ID
        public uint PlayerIDA;        // 玩家IDA
        public uint PlayerIDB;        // 玩家IDB
        public byte BattleRetLen;
        public string BattleRet;        // 战斗结果明细 {"playerID":[[第1局胜负,第1局总积分,胜负基础分,hp分,时间分], ...], ...}
    }
    public struct tagGCCrossChampionshipPKPlayer {
Core/NetworkPackage/ServerPack/HC1_CrossRealm/HC101_tagMCCrossRealmPKPlayerInfo.cs
@@ -1,33 +1,35 @@
using UnityEngine;
using System.Collections;
using UnityEngine;
using System.Collections;
// C1 01 跨服PK玩家信息 #tagMCCrossRealmPKPlayerInfo
// C1 01 跨服PK玩家信息 #tagMCCrossRealmPKPlayerInfo
public class HC101_tagMCCrossRealmPKPlayerInfo : GameNetPackBasic {
    public uint Score;    // 当前积分
    public byte DanLV;    // 当前段位
    public ushort PKCount;    // PK次数
    public ushort WinCount;    // 胜利次数
    public ushort CWinCount;    // 连胜次数
    public byte DayPKCount;    // 当日已PK次数
    public byte DayWinCount;    // 当日已胜利次数
    public byte DayBuyCount;    // 当日已购买次数
    public byte DayItemAddCount;    // 当日物品增加次数
    public HC101_tagMCCrossRealmPKPlayerInfo () {
        _cmd = (ushort)0xC101;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Score, vBytes, NetDataType.DWORD);
        TransBytes (out DanLV, vBytes, NetDataType.BYTE);
        TransBytes (out PKCount, vBytes, NetDataType.WORD);
        TransBytes (out WinCount, vBytes, NetDataType.WORD);
        TransBytes (out CWinCount, vBytes, NetDataType.WORD);
        TransBytes (out DayPKCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayWinCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayBuyCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayItemAddCount, vBytes, NetDataType.BYTE);
    }
}
public class HC101_tagMCCrossRealmPKPlayerInfo : GameNetPackBasic {
    public uint Score;    // 当前积分
    public byte DanLV;    // 当前段位
    public ushort PKCount;    // PK次数
    public ushort WinCount;    // 胜利次数
    public ushort CWinCount;    // 连胜次数
    public byte DayPKCount;    // 当日已PK次数
    public byte DayWinCount;    // 当日已胜利次数
    public byte DayBuyCount;    // 当日已购买次数
    public byte DayItemAddCount;    // 当日物品增加次数
    public ushort DayRefreshCount;    // 今日已刷新匹配次数
    public HC101_tagMCCrossRealmPKPlayerInfo () {
        _cmd = (ushort)0xC101;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Score, vBytes, NetDataType.DWORD);
        TransBytes (out DanLV, vBytes, NetDataType.BYTE);
        TransBytes (out PKCount, vBytes, NetDataType.WORD);
        TransBytes (out WinCount, vBytes, NetDataType.WORD);
        TransBytes (out CWinCount, vBytes, NetDataType.WORD);
        TransBytes (out DayPKCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayWinCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayBuyCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayItemAddCount, vBytes, NetDataType.BYTE);
        TransBytes (out DayRefreshCount, vBytes, NetDataType.WORD);
    }
}
Fight/Stage/Dungeon/ClientDungeonStageUtility.cs
@@ -84,12 +84,6 @@
            }
        }
        if (crossServerOneVsOneModel.IsMatching)
        {
            SysNotifyMgr.Instance.ShowTip("CrossOneVsOneMatching");
            return;
        }
        RequestStartClientDungeon(mapId, lineId, (dungeonInfo, isOk) =>
        {
            if (!isOk)
LogicProject/System/ArenaActivity/ArenaManagerModel.cs
@@ -1207,8 +1207,7 @@
            if (figthCompleted)
            {
                PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
                PlayerDatas.Instance.hero.StopPathFind();
                PlayerDatas.Instance.hero.StopAll();
                ArenaModel.Instance.bILAI = false;
                restTimeTimer += Time.deltaTime;
                completed = restTimeTimer >= restTime;
LogicProject/System/ArenaActivity/ArenaSettlementWin.cs
@@ -141,6 +141,8 @@
                else
                    ArenaModel.Instance.StopClientArena();
            }
            PlayerDatas.Instance.hero.StopAll();
        }
    }
    
@@ -159,6 +161,7 @@
            else
                ArenaModel.Instance.StopClientArena();
        }
        PlayerDatas.Instance.hero.StopAll();
    }
    protected virtual void DrawExitTimer(int seconds)
LogicProject/System/CrossServerQualifying/CrossServerQualifyingModel.cs
@@ -404,9 +404,9 @@
        var otherPlayerInfo = fightersInfo[otherPlayerID];
        var package = new HC001_tagGCCrossRealmPKMatchOK();
        package.RoomID = 1001;
        package.PlayerName = PlayerDatas.Instance.baseData.PlayerName;
        package.Number = (byte)pos;
        //package.RoomID = 1001;
        //package.PlayerName = PlayerDatas.Instance.baseData.PlayerName;
        //package.Number = (byte)pos;
        var opponent = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer();
        opponent.Job = otherPlayerInfo.Job;
@@ -415,17 +415,14 @@
        opponent.LV = otherPlayerInfo.LV;
        //待进入游戏刷新对方血量
        opponent.MaxProDef = 100;
        opponent.MaxHP = 100;
        opponent.MaxHPEx = 0;
        //opponent.MaxProDef = 100;
        //opponent.MaxHP = 100;
        //opponent.MaxHPEx = 0;
        package.MatchPlayer = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer[] { opponent };
        CrossServerLogin.Instance.UpdateCrossServerOneVsOneData(package, false);
        CrossServerLogin.Instance.SetWaitForLoginCrossServerState(false);
        var sendInfo = new CC105_tagCMEnterCrossServer();
        sendInfo.DataMapID = DATA_MAPID;
        GameNetSystem.Instance.SendInfo(sendInfo);
        //var sendInfo = new CC105_tagCMEnterCrossServer();
        //sendInfo.DataMapID = DATA_MAPID;
        //GameNetSystem.Instance.SendInfo(sendInfo);
        return;
    }
System/CrossServerOneVsOne/CrossSercerOneVsOneMatchState.cs
File was deleted
System/CrossServerOneVsOne/CrossSercerOneVsOneMatchState.cs.meta
File was deleted
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
@@ -8,26 +8,25 @@
    public class CrossServerOneVsOneArenaWin : Window
    {
        [SerializeField] Button scoreRankBtn;
        [SerializeField] Button matchBtn;
        [SerializeField] Image matchBtn_Img;
        [SerializeField] Text matchBtn_Text;
        [SerializeField] Button dayAwardBtn;
        [SerializeField] Text winRateText;
        [SerializeField] Text sumNumText;
        [SerializeField] Text reaminNumText;
        [SerializeField] Text seasonTimeText;
        [SerializeField] Text openTimeText;
        [SerializeField] Text winStreakText;
        [SerializeField] Text reaminNumText;
        [SerializeField] Button buyTimesBtn;
        [SerializeField] Button matchRecordBtn;
        [SerializeField] RedpointBehaviour matchRedPointBeh;
        [SerializeField] GameObject inSeasonTimeObj;
        [SerializeField] GameObject outSeasonTimeObj;
        [SerializeField] GameObject lookPlayerObj;
        [SerializeField] Text lookTimeText;
        [SerializeField] Text curSeasonNumText;
        [SerializeField] Transform playerObjs;
        [SerializeField] CrossServerOneVsOnePKPlayerCell[] matchPlayerObjs;
        [SerializeField] Image refreshMoneyIcon;
        [SerializeField] Text refreshMoneyText;
        [SerializeField] Text freeRefreshText;
        [SerializeField] Button refreshBtn;
        CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
        float coolTime = 0;
        #region Built-in
        protected override void BindController()
        {
@@ -39,17 +38,16 @@
            buyTimesBtn.AddListener(ClickBuyTimes);
            matchRecordBtn.AddListener(ClickMatchRecord);
            scoreRankBtn.AddListener(ClickScoreRank);
            refreshBtn.AddListener(ClickBuyRefreshMatch);
        }
        protected override void OnPreOpen()
        {
            coolTime = 0;
            crossServerModel.isClickCoolTime = false;
            crossServerModel.SendCrossMatch(0);
            SetDisplay();
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;
            TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
            GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
            DTCC002_tagGCCrossRealmPKStartMatch.CrossServerStartMatchEvent += OnStartMatch;
            crossServerModel.UpdateMatchPlayersEvent += UpdateMatchPlayers;
        }
        protected override void OnAfterOpen()
@@ -57,26 +55,12 @@
            
        }
        protected override void LateUpdate()
        {
            base.LateUpdate();
            if(crossServerModel.isClickCoolTime)
            {
                coolTime += Time.deltaTime;
                if(coolTime >= 1)
                {
                    coolTime = 0;
                    crossServerModel.isClickCoolTime = false;
                }
            }
        }
        protected override void OnPreClose()
        {
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;
            TimeMgr.Instance.OnMinuteEvent -= UpdateMinute;
            GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
            DTCC002_tagGCCrossRealmPKStartMatch.CrossServerStartMatchEvent -= OnStartMatch;
            crossServerModel.UpdateMatchPlayersEvent -= UpdateMatchPlayers;
        }
        protected override void OnAfterClose()
        {
@@ -90,53 +74,55 @@
            UpdatePKInfo();
        }
        private void UpdateMatchPlayers()
        {
            playerObjs.SetActive(true);
            for (int i = 0; i < matchPlayerObjs.Length; i++)
            {
                matchPlayerObjs[i].Display(i);
            }
        }
        private void SetDisplay()
        {
            UpdateMatchInfo();
            UpdatePKInfo();
            UpdateActivityState();
            UpdateLookPlayerTime();
            UpdateMatchPlayers();
            var pkSeason = CrossServerOneVsOnePKSeason.Instance;
            seasonTimeText.text = pkSeason.ToDisplaySeasonTime();
            curSeasonNumText.text = pkSeason.SeasonID.ToString();
            var openTimes = pkSeason.GetActivityTimes();
            openTimeText.SetActive(openTimes != null && openTimes.Count > 0);
            if(openTimes != null)
            {
                string openTimeDes = string.Empty;
                for(int i = 0; i < openTimes.Count; i++)
                {
                    var openTime = openTimes[i];
                    string timeDes = StringUtility.Contact(openTime.hourBegin.ToString("D2"), ":", openTime.minuteBegin.ToString("D2")
                        ,"-",openTime.hourEnd.ToString("D2"),":",openTime.minuteEnd.ToString("D2"));
                    if(i == 0)
                    {
                        openTimeDes = timeDes;
                    }
                    else
                    {
                        openTimeDes = StringUtility.Contact(openTimeDes,",",timeDes);
                    }
                }
                openTimeText.text = Language.Get("CrossServer119", openTimeDes);
            }
            lookPlayerObj.SetActive(crossServerModel.IsMatching);
            matchRedPointBeh.SetActive(!crossServerModel.IsMatching);
        }
        private void UpdateMatchInfo()
        {
            int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
            if (remainNum > 0)
            //if (remainNum > 0)
            //{
            //    reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
            //}
            //else
            //{
            //    reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
            //}
            reaminNumText.text = StringUtility.Contact(remainNum, "/", crossServerModel.freeMaxMatchNum);
            int remainFreeNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshNum();
            if (remainFreeNum > 0)
            {
                reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
                freeRefreshText.SetActive(true);
                refreshMoneyIcon.SetActive(false);
                freeRefreshText.text = StringUtility.Contact(Language.Get("L2032"), Language.Get("BlessedLand036", remainFreeNum, crossServerModel.freeMaxMatchRefreshNum));
            }
            else
            {
                reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
                freeRefreshText.SetActive(false);
                refreshMoneyIcon.SetActive(true);
                refreshMoneyIcon.SetSmallIconWithMoneyType(crossServerModel.refreshMoneyType);
                refreshMoneyText.text = StringUtility.Contact(Language.Get("BlessedLand036", CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshPrice(), UIHelper.ReplaceLargeNum( UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType))));
            }
        }
        private void UpdatePKInfo()
        {
@@ -152,72 +138,13 @@
            UpdateActivityState();
        }
        private void UpdateSecond()
        {
            UpdateLookPlayerTime();
        }
        private void UpdateLookPlayerTime()
        {
            if (!crossServerModel.IsMatching)
            {
                if(lookPlayerObj.activeInHierarchy)
                {
                    matchRedPointBeh.SetActive(true);
                    lookPlayerObj.SetActive(false);
                }
                return;
            }
            if(CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch)
            {
                int totalSeconds = Mathf.RoundToInt((float)(DateTime.Now - crossServerModel.matchStartTime).TotalSeconds);
                if (totalSeconds < 3600)
                {
                    int minute = totalSeconds / 60;
                    int seconds = totalSeconds % 60;
                    lookTimeText.text = StringUtility.Contact(minute.ToString("D2"), ":", seconds.ToString("D2"));
                }
                else
                {
                    ClickMatch(0);
                }
            }
            else
            {
                ClickMatch(0);
            }
        }
        private void UpdateActivityState()
        {
            bool isInTime = CrossServerOneVsOnePKSeason.Instance.InPkSeason(TimeUtility.ServerNow);
            bool isOpen = CrossServerOneVsOnePKSeason.Instance.InOpenTime();
            inSeasonTimeObj.SetActive(isInTime);
            outSeasonTimeObj.SetActive(!isInTime);
            matchBtn.RemoveAllListeners();
            if (isInTime)
            {
                matchBtn_Text.text = Language.Get("CrossServer109");
                if (isOpen)
                {
                    matchBtn_Img.material = MaterialUtility.GetUIDefaultGraphicMaterial();
                    if (!crossServerModel.IsMatching)
                    {
                        matchBtn.AddListener(() => { ClickMatch(1); });
                    }
                    else
                    {
                        matchBtn_Text.text = Language.Get("CrossServer110");
                        matchBtn.AddListener(() => { ClickMatch(0); });
                    }
                }
                else
                {
                    matchBtn_Img.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                    matchBtn.AddListener(() => { SysNotifyMgr.Instance.ShowTip("CrossMatching20"); });
                }
            }
            playerObjs.SetActive(isInTime);
        }
        private void ClickBuyTimes()
@@ -225,6 +152,32 @@
            if (!crossServerModel.TryGetBuyMatchTimes("CrossMatching21")) return;
         
            WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
        }
        private void ClickBuyRefreshMatch()
        {
            int price = CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshPrice();
            //    UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType)
            if (price == 0)
            {
                crossServerModel.SendCrossMatch(1);
                return;
            }
            if (UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType) < (ulong)price)
            {
                SysNotifyMgr.Instance.ShowTip("LackMoney", crossServerModel.refreshMoneyType);
                return;
            }
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
            Language.Get("CrossServerOneVsOne1", price), (bool isOk) =>
            {
                if (isOk)
                {
                    crossServerModel.SendCrossMatch(1);
                }
            });
        }
        private void ClickDayAward()
@@ -238,45 +191,6 @@
            WindowCenter.Instance.Open<RankingWin>();
        }
        private void OnStartMatch()
        {
            matchRedPointBeh.SetActive(false);
            lookPlayerObj.SetActive(true);
            crossServerModel.matchStartTime = DateTime.Now;
            UpdateLookPlayerTime();
            UpdateActivityState();
        }
        private void ClickMatch(int type)
        {
            if (type == 1)
            {
                if (!AssetVersionUtility.IsUnpriorAssetDownLoadOk())
                {
                    InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
                    return;
                }
                int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
                if (remainNum < 1)
                {
                    WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
                    return;
                }
            }
            if (crossServerModel.isClickCoolTime) return;
            DebugEx.Log("ClickMatch......");
            crossServerModel.isClickCoolTime = true;
            crossServerModel.SendCrossMatch(type);
            if(type == 0)
            {
                crossServerModel.IsMatching = false;
                matchRedPointBeh.SetActive(true);
                lookPlayerObj.SetActive(false);
                UpdateActivityState();
            }
        }
        private void ClickMatchRecord()
        {
System/CrossServerOneVsOne/CrossServerOneVsOneEnterConfirmWin.cs
File was deleted
System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -10,7 +10,7 @@
{
    
    
    public class CrossServerOneVsOneModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, ISwitchAccount, IPlayerLoginOk
    public class CrossServerOneVsOneModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        public string PkResultLocalSaveKey { get; private set; }
        public List<CrossServerOneVsOnePkResult> localSaveResults { get; private set; }
@@ -18,29 +18,20 @@
        public event Action UpdateDayAwardsEvent;
        public const int CrossServerDataMapId = 32010;
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public bool isClickCoolTime { get; set; }
        public event Action UpdateMatchStateEvent;
        private bool _isMatching;
        public bool IsMatching {
            get { return _isMatching; }
            set {
                _isMatching = value;
                if (UpdateMatchStateEvent != null)
                {
                    UpdateMatchStateEvent();
                }
            }
        }
        public DateTime matchStartTime { get; set; }
        public DateTime roundEndTime { get; private set; }
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
        public string LocalSaveThirdTypeKey = string.Empty;
        private int recordDataMapId;
        private int loadSecond;
        // 跨服竞技场改成匹配3个对象,进行选择挑战
        public List<HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer> matchPlayers = new List<HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer>();
        public event Action UpdateMatchPlayersEvent;
        public bool loginQueryMatch = false;
        public override void Init()
        {
            IsMatching = false;
            ParseFuncConfig();
            SetHonorRedpoint();
        }
@@ -59,6 +50,7 @@
            dungeonModel.updateMissionEvent -= UpdateFBHelp;
            rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState;
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
            TimeMgr.Instance.OnDayEvent -= OnDay;
            InitData();
        }
@@ -70,10 +62,6 @@
            GetLocalSaveData();
        }
        public void OnSwitchAccount()
        {
            IsMatching = false;
        }
        public void OnPlayerLoginOk()
        {
@@ -88,13 +76,9 @@
            rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
            dungeonModel.updateMissionEvent += UpdateFBHelp;
            TimeMgr.Instance.OnDayEvent += OnDay;
            UpdateServerOpenDay();
            UpdateDayAwardState();
            if (IsMatching && CrossServerOneVsOnePKSeason.Instance.InOpenTime())
            {
                SendCrossMatch(1);
            }
            UpdateCrossDayAwardsRedpoint();
            UpdateCrossMatchRedpoint();
            UpdateCanBuyRedpoint();
@@ -111,6 +95,11 @@
            CrossServerOneVsOnePlayerInfo.Instance.InitData();
            pkResultInfo = new CrossServerOneVsOnePkResult();
            oneVsOneHistoryDict.Clear();
        }
        void OnDay()
        {
            loginQueryMatch = false;
        }
        private void UpdateSecond()
@@ -143,13 +132,6 @@
        private void UpdateMinute()
        {
            UpdateCrossMatchRedpoint();
            if (!IsMatching) return;
            if (!CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch)
            {
                IsMatching = false;
                SendCrossMatch(0);
            }
        }
        public void UpdateDayAwardState()
@@ -292,12 +274,23 @@
        }
        #region 表数据
        public int freeMaxMatchNum { get; private set; } //每日免费匹配次数
        public int buyMaxMatchNum { get; private set; } //每日可购买次数
        public string priceFormula { get; private set; } //购买匹配次数需要价格公式
        //挑战
        public int freeMaxMatchNum { get; private set; } //每日免费匹配次数(挑战)
        public int buyMaxMatchNum { get; private set; } //每日可购买次数(挑战)
        public string priceFormula { get; private set; } //购买匹配次数需要价格公式(挑战)
        //刷新匹配
        public int freeMaxMatchRefreshNum { get; private set; } //每日免费刷新匹配次数(刷新)
        public int buyMaxMatchRefreshNum { get; private set; } //每日可购买刷新次数(刷新)
        public string priceRefreshFormula { get; private set; } //购买刷新匹配次数需要价格公式(刷新)
        public int refreshMoneyType { get; private set; } //刷新匹配次数消耗货币类型(刷新)
        public int[] winConstScoreArr { get; private set; } //胜利固定积分
        public string winStreakScoreFormula { get; private set; } //连胜积分公式
        public List<AwardType> dayAwardTypelist { get; private set; }
        public int afterOpenDayOpenCross { get; private set; }
        private void ParseFuncConfig()
        {
            var CrossRealmPKAward = FuncConfigConfig.Get("CrossRealmPKAward");
@@ -367,7 +360,14 @@
            buyMaxMatchNum = int.Parse(CrossRealmPKMatchCount.Numerical2);
            priceFormula = CrossRealmPKMatchCount.Numerical3;
            var CrossRealmPKScore = FuncConfigConfig.Get("CrossRealmPKScore");
            var CrossRealmPKRefreshCount = FuncConfigConfig.Get("CrossRealmPKMatchRefresh");
            freeMaxMatchRefreshNum = int.Parse(CrossRealmPKRefreshCount.Numerical1);
            buyMaxMatchRefreshNum = int.Parse(CrossRealmPKRefreshCount.Numerical2);
            priceRefreshFormula = CrossRealmPKRefreshCount.Numerical3;
            refreshMoneyType = int.Parse(CrossRealmPKRefreshCount.Numerical4);
            var CrossRealmPKScore = FuncConfigConfig.Get("CrossRealmPKScore2");
            winConstScoreArr = JsonMapper.ToObject<int[]>(CrossRealmPKScore.Numerical1);
            winStreakScoreFormula = CrossRealmPKScore.Numerical3;
            var CrossRealmCfg = FuncConfigConfig.Get("CrossRealmCfg");
@@ -449,14 +449,33 @@
            }
        }
        public void UpdateOneVSOneMatch(HC001_tagGCCrossRealmPKMatchOK package)
        {
            matchPlayers.Clear();
            for (int i = 0; i < package.MatchPlayerCount; i++)
            {
                matchPlayers.Add(package.MatchPlayer[i]);
                //服务端没有主动推送的话,这里需要请求一次玩家缓存数据
            }
            UpdateMatchPlayersEvent?.Invoke();
        }
        BuffModel buffDatas { get { return ModelCenter.Instance.GetModel<BuffModel>(); } }
        /// <summary>
        ///0-取消匹配; 1-进行匹配
        /// 0-查询匹配;1-刷新匹配
        /// </summary>
        /// <param name="type"></param>
        public void SendCrossMatch(int type)
        {
            if (type == 1 && TryGetMatchTip()) return;
            if (type == 0)
            {
                if (loginQueryMatch)
                    return;
                else
                    loginQueryMatch = true;
            }
            var match = new CC101_tagCMCrossRealmPKMatch();
            match.Type = (byte)type;
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs
New file
@@ -0,0 +1,82 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
namespace vnxbqy.UI
{
    public class CrossServerOneVsOnePKPlayerCell : MonoBehaviour
    {
        [SerializeField] RawImage playerRaw;
        [SerializeField] Text nameText;
        [SerializeField] Text fightPointTxt;
        [SerializeField] Text winScoreTxt;
        [SerializeField] Button challengeBtn;
        CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
        RoleParticularModel model { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
        ServerMirrorFightModel mirrorFightModel { get { return ModelCenter.Instance.GetModel<ServerMirrorFightModel>(); } }
        public void Display(int index)
        {
            if (index >= crossServerModel.matchPlayers.Count)
                return;
            var matchPlayer = crossServerModel.matchPlayers[index];
            ShowRawPlayer((int)matchPlayer.PlayerID);
            nameText.text = matchPlayer.PlayerName;
            fightPointTxt.text = UIHelper.ReplaceLargeArtNum(matchPlayer.FightPowerEx * Constants.ExpPointValue + matchPlayer.FightPower);
            winScoreTxt.text = crossServerModel.winConstScoreArr[index].ToString();
            challengeBtn.AddListener(() =>
            {
                if (matchPlayer.PlayerID > 10000)
                {
                    mirrorFightModel.SendMirrorFight(CrossServerOneVsOneModel.CrossServerDataMapId, 0, matchPlayer.PlayerID, 0);
                }
            });
        }
        void ShowRawPlayer(int playerID)
        {
            var viewPlayerData = model.GetViewPlayerData(playerID);
            if (viewPlayerData == null)
            {
                return;
            }
            int _suitLevel = (int)(viewPlayerData.rolePropData.EquipShowSwitch % 10);
            int clothes = viewPlayerData.GetItemId(RoleEquipType.Clothes);
            int weapon = viewPlayerData.GetItemId(RoleEquipType.Weapon);
            int wing = viewPlayerData.GetItemId(RoleEquipType.Wing);
            int weapon2 = viewPlayerData.GetItemId(RoleEquipType.Weapon2);
            int fashionClothes = viewPlayerData.GetItemId(RoleEquipType.FashionClothes);
            int fashionWeapon = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon);
            int fashionWeapon2 = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon2);
            var reikiRootEffectId = viewPlayerData.rolePropData.EquipShowSwitch / 1000 % 1000;
            var data = new UI3DPlayerExhibitionData
            {
                job = viewPlayerData.rolePropData.Job,
                fashionClothesId = fashionClothes,
                fashionWeaponId = fashionWeapon,
                fashionSecondaryId = fashionWeapon2,
                clothesId = clothes,
                suitLevel = _suitLevel,
                weaponId = weapon,
                wingsId = wing,
                secondaryId = weapon2,
                reikiRootEffectId = (int)reikiRootEffectId,
                isDialogue = false,
                equipLevel = (int)viewPlayerData.rolePropData.EquipShowSwitch / 10 % 100,
                titleID = viewPlayerData.rolePropData.TitleID,
            };
            UI3DModelExhibition.Instance.ShowPlayer(playerRaw, data);
        }
    }
}
System/CrossServerOneVsOne/CrossServerOneVsOnePKPlayerCell.cs.meta
File was renamed from System/CrossServerOneVsOne/CrossServerOneVsOneEnterConfirmWin.cs.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: 7d82e5e3617bae642a3c6c95df07800c
timeCreated: 1545204096
licenseType: Pro
guid: 40a2ad8e551eec5458e5c9ce456c2a5b
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
System/CrossServerOneVsOne/CrossServerOneVsOnePKSeason.cs
@@ -23,6 +23,7 @@
        public string CrossZoneName { get; private set; }     // 跨服分区名
        // 是否跨服竞技场可战斗状态
        public bool isSatisfyMatch
        {
            get
@@ -188,13 +189,6 @@
            this.SeasonState = pKSeasonState.SeasonState;
            this.MatchState = pKSeasonState.MatchState;
            this.CrossZoneName = pKSeasonState.CrossZoneName;
            if (this.SeasonState != 1 || this.MatchState != 1)
            {
                if (crossServerModel.IsMatching)
                {
                    crossServerModel.IsMatching = false;
                }
            }
            if (updateSelfSeasonEvent != null)
            {
@@ -289,7 +283,7 @@
                }
            }
            return false;
            return MatchState == 1;
        }
        public List<HourMinute> GetActivityTimes()
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerInfo.cs
@@ -12,7 +12,7 @@
        public int DanLV { get; private set; }    // 当前段位
        public int PKCount { get; private set; }     // PK次数
        public int PKCount { get; private set; }     // 总PK次数
        public int WinCount { get; private set; }     // 胜利次数
@@ -25,6 +25,7 @@
        public int DayBuyCount { get; private set; }     // 当日已购买次数
        public int DayItemAddCount { get; private set; } // 当日物品增加次数
        public int DayRefreshCount { get; private set; } // 今日已刷新匹配次数
        private int preDayPkCount;
        CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
@@ -42,6 +43,7 @@
            DayPKCount = 0;
            DayBuyCount = 0;
            DayWinCount = 0;
            DayRefreshCount = 0;
        }
        public void UpdatePlayerInfo(HC101_tagMCCrossRealmPKPlayerInfo playerInfo)
@@ -55,6 +57,7 @@
            this.DayWinCount = playerInfo.DayWinCount;
            this.DayItemAddCount = playerInfo.DayItemAddCount;
            this.DayPKCount = playerInfo.DayPKCount;
            this.DayRefreshCount = playerInfo.DayRefreshCount;
            if (this.preDayPkCount != playerInfo.DayPKCount)
            {
@@ -109,6 +112,26 @@
            return remainNum > 0 ? remainNum : 0;
        }
        //正数代表还有几次免费刷新机会,负数代表仙玉刷新次数
        public int GetDayFreeRefreshNum()
        {
            return crossServerModel.freeMaxMatchRefreshNum - DayRefreshCount;
        }
        public int GetDayFreeRefreshPrice()
        {
            int count = GetDayFreeRefreshNum();
            if (count > 0)
            {
                return 0;
            }
            count = Math.Abs(count);
            Equation.Instance.Clear();
            Equation.Instance.AddKeyValue("refreshBuyCount", count);
            return Equation.Instance.Eval<int>(crossServerModel.priceRefreshFormula);
        }
        public string DisplayWinningRate()
        {
            float rate = PKCount != 0 ? (float)WinCount / PKCount : 0;
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerLeaveCoolDownWin.cs
File was deleted
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerLeaveCoolDownWin.cs.meta
File was deleted
System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
@@ -4,6 +4,7 @@
//--------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using vnxbqy.UI;
//跨服PK奖励信息
@@ -61,9 +62,10 @@
public class CrossServerOneVsOneRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
    RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } }
    public Dictionary<int, SeasonAwardClass> SegmentRewardDic = new Dictionary<int, SeasonAwardClass>();//段位奖励
    public ImpactRankModel.RankAwardItem SeasonRewardDic = new ImpactRankModel.RankAwardItem();//赛季奖励
    public Dictionary<int, List<Item_Class>> SeasonRewardConfigDic = new Dictionary<int, List<Item_Class>>(); //赛季奖励
    public Dictionary<int, List<Item_Class>> SeasonRewardConfigDic = new Dictionary<int, List<Item_Class>>(); //赛季的段位奖励(废弃)
    public Dictionary<ZoneRankingStruct, Dictionary<int, RankingInformationClass>> ZoneRankingDic = new Dictionary<ZoneRankingStruct, Dictionary<int, RankingInformationClass>>();
    private List<CrossRealmPKDanAwardConfig> CrossRealmPKDanAwardList = new List<CrossRealmPKDanAwardConfig>();
    public Action CrossRealmPKAwardStateUpdate;//领取奖励刷新
@@ -85,12 +87,20 @@
    public string ZoneName = string.Empty;//赛区名
    private int currentId = 0;//获取当前赛区ID
    private string crossZoneName = string.Empty;//赛区编号
    public const int rankType = 165;
    public override void Init()
    {
        var config = FuncConfigConfig.Get("CrossServerIcon").Numerical1;
        MianOpenLV = int.Parse(config);
        CrossRealmPKDanAwardList = CrossRealmPKDanAwardConfig.GetValues();
        rankModel.onRankRefresh -= OnRefreshRankList;
        rankModel.onRankRefresh += OnRefreshRankList;
        rankModel.onMyRankRefresh -= RankModel_onMyRankRefresh;
        rankModel.onMyRankRefresh += RankModel_onMyRankRefresh;
    }
    public void OnBeforePlayerDataInitialize()
@@ -117,10 +127,9 @@
        GetZoneName();
        RedPointSeg();
        RedPointSea();
        bool isbool = IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState, -1);
        if (CrossServerOneVsOnePKSeason.Instance.SeasonState == 2)
        {
            ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID);//关于赛季查询
            ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID, true);//关于赛季查询
        }
    }
@@ -137,6 +146,24 @@
    }
    void OnRefreshRankList(int type)
    {
        if (type % 1000 == rankType)
        {
            CrossRealmPKBillboardInfo(type);
        }
    }
    private void RankModel_onMyRankRefresh(int type)
    {
        if (type % 1000 == rankType)
        {
            CrossRealmPKBillboardInfo(type);
        }
    }
    public override void UnInit()
    {
@@ -169,9 +196,8 @@
            WindowCenter.Instance.Open<CrossServerSettlementWin>();
        }
    }
    public void GetSeasonAward()//段位奖励数据获取
    public void GetSeasonAward()//赛季奖励数据获取
    {
        var seasonID = CrossServerOneVsOnePKSeason.Instance.SeasonID;
        var configPK = CrossRealmPKDanAwardList;
        var result2 = false;
@@ -186,7 +212,6 @@
                    result2 = true;
                }
            }
        }
        if (CrossServerOneVsOnePKSeason.Instance.CrossZoneName != null && result2)
        {
@@ -236,7 +261,7 @@
        }
        currentId = seasonID;
    }
    public void GetSegmentReward()//赛季奖励
    public void GetSegmentReward()//段位奖励
    {
        var seasonID = CrossServerOneVsOnePKSeason.Instance.SeasonID;
        var configPK = CrossRealmPKDanAwardList;
@@ -261,7 +286,7 @@
        {
            seasonID += 1;
        }
        if (currentId == seasonID && SeasonRewardConfigDic.Count != 0)
        if (currentId == seasonID && SeasonRewardDic.AwardDic.Count != 0)
        {
            return;
        }
@@ -285,34 +310,33 @@
                }
                SeasonRewardDic = _award;
            }
        }
        //---
        SeasonRewardConfigDic.Clear();
        //SeasonRewardConfigDic.Clear();
        for (int i = 0; i < configPK.Count; i++)
        {
            var _config = configPK[i];
            bool result = crossZoneName.Equals(_config.CrossZoneName);
            if (!SeasonRewardConfigDic.ContainsKey(_config.DanLV) && _config.SeasonID == seasonID && result)
            {
                var _jsonDataC = LitJson.JsonMapper.ToObject(_config.SeasonAwardList);
                List<Item_Class> itemClassList = new List<Item_Class>();
                for (int j = 0; j < _jsonDataC.Count; j++)
                {
                    Item_Class itemClass = new Item_Class();
                    itemClass.ItemId = int.Parse((_jsonDataC[j][0]).ToString());
                    itemClass.ItemNumber = int.Parse((_jsonDataC[j][1]).ToString());
                    itemClass.Isbind = int.Parse((_jsonDataC[j][2]).ToString());
                    itemClassList.Add(itemClass);
                }
                if (itemClassList.Count <= 0)
                {
                    continue;
                }
                SeasonRewardConfigDic.Add(_config.DanLV, itemClassList);
            }
        }
        //for (int i = 0; i < configPK.Count; i++)
        //{
        //    var _config = configPK[i];
        //    bool result = crossZoneName.Equals(_config.CrossZoneName);
        //    if (!SeasonRewardConfigDic.ContainsKey(_config.DanLV) && _config.SeasonID == seasonID && result)
        //    {
        //        var _jsonDataC = LitJson.JsonMapper.ToObject(_config.SeasonAwardList);
        //        List<Item_Class> itemClassList = new List<Item_Class>();
        //        for (int j = 0; j < _jsonDataC.Count; j++)
        //        {
        //            Item_Class itemClass = new Item_Class();
        //            itemClass.ItemId = int.Parse((_jsonDataC[j][0]).ToString());
        //            itemClass.ItemNumber = int.Parse((_jsonDataC[j][1]).ToString());
        //            itemClass.Isbind = int.Parse((_jsonDataC[j][2]).ToString());
        //            itemClassList.Add(itemClass);
        //        }
        //        if (itemClassList.Count <= 0)
        //        {
        //            continue;
        //        }
        //        SeasonRewardConfigDic.Add(_config.DanLV, itemClassList);
        //    }
        //}
        currentId = seasonID;
    }
    public void CrossRealmPKAwardState(HC102_tagMCCrossRealmPKAwardState info)//c102跨服PK玩家奖励记录
@@ -369,12 +393,12 @@
        GameNetSystem.Instance.SendInfo(c103);
    }
    public void ViewCrossPKBillboard(int ZoneID, int SeasonID)//(赛区,赛季) 查看跨服竞技场赛季排行榜
    public void ViewCrossPKBillboard(int ZoneID, int SeasonID, bool isQuerySelf = false)//(赛区,赛季) 查看跨服竞技场赛季排行榜
    {
        ZoneRankingStruct zoneRanking = new ZoneRankingStruct();
        zoneRanking.ZoneID = ZoneID;
        zoneRanking.SeasonID = SeasonID;
        int seasonIDNow = CrossServerOneVsOnePKSeason.Instance.SeasonID;
        //int seasonIDNow = CrossServerOneVsOnePKSeason.Instance.SeasonID;
        if (ZoneRankingDic.ContainsKey(zoneRanking))
        {
            if (RankInformationUpdate != null)
@@ -382,56 +406,53 @@
                RankInformationUpdate();
            }
        }
        CC001_tagCGViewCrossPKBillboard c001 = new CC001_tagCGViewCrossPKBillboard();
        c001.ZoneID = (byte)ZoneID;
        c001.SeasonID = (byte)SeasonID;
        GameNetSystem.Instance.SendInfo(c001);
        //CC001_tagCGViewCrossPKBillboard c001 = new CC001_tagCGViewCrossPKBillboard();
        //c001.ZoneID = (byte)ZoneID;
        //c001.SeasonID = (byte)SeasonID;
        //GameNetSystem.Instance.SendInfo(c001);
        if (isQuerySelf)
            rankModel.QueryCrossRank(rankType, ZoneID, watchID: (int)PlayerDatas.Instance.baseData.PlayerID, forceQuery: true, groupValue2:SeasonID);
        else
        {
            rankModel.ResetQueryParam();
            rankModel.QueryCrossRank(rankType, ZoneID, groupValue2: SeasonID);
        }
    }
    public void CrossRealmPKBillboardInfo(HC005_tagGCCrossRealmPKBillboardInfo info)//跨服PK赛季排行榜
    public void CrossRealmPKBillboardInfo(int type)//跨服PK赛季排行榜
    {
        var datas = rankModel.GetRankPageDatas(type);
        Dictionary<int, RankingInformationClass> RankInformationDic = new Dictionary<int, RankingInformationClass>();
        if (info.Count > 0)
        ZoneRankingStruct zoneRank = new ZoneRankingStruct();
        if (datas.Count > 0)
        {
            for (int i = 0; i < info.Count; i++)
            var keys = datas.Keys.ToList();
            for (int i = 0; i < keys.Count; i++)
            {
                if (!RankInformationDic.ContainsKey(i))
                {
                    RankingInformationClass RankingInformation = new RankingInformationClass();
                    RankingInformation.PlayerID = (int)info.PKBillboardList[i].PlayerID;
                    RankingInformation.PlayerName = info.PKBillboardList[i].PlayerName;
                    RankingInformation.Job = info.PKBillboardList[i].Job;
                    RankingInformation.Face = (int)info.PKBillboardList[i].Face;
                    RankingInformation.FacePic = (int)info.PKBillboardList[i].FacePic;
                    RankingInformation.Power = (int)info.PKBillboardList[i].FightPower;
                    RankingInformation.Realm = (int)info.PKBillboardList[i].RealmLV;
                    RankingInformation.DanLv = (int)info.PKBillboardList[i].DanLV;
                    RankingInformation.PkScore = (int)info.PKBillboardList[i].PKScore;
                    RankInformationDic.Add(i, RankingInformation);
                    if (PlayerDatas.Instance.baseData.PlayerID == info.PKBillboardList[i].PlayerID)
                    {
                        MyRank = i;
                    }
                }
                else
                {
                    RankingInformationClass RankingInformation = new RankingInformationClass();
                    RankingInformation.PlayerID = (int)info.PKBillboardList[i].PlayerID;
                    RankingInformation.PlayerName = info.PKBillboardList[i].PlayerName;
                    RankingInformation.Job = info.PKBillboardList[i].Job;
                    RankingInformation.Face = (int)info.PKBillboardList[i].Face;
                    RankingInformation.FacePic = (int)info.PKBillboardList[i].FacePic;
                    RankingInformation.Power = (int)info.PKBillboardList[i].FightPower;
                    RankingInformation.Realm = (int)info.PKBillboardList[i].RealmLV;
                    RankingInformation.DanLv = (int)info.PKBillboardList[i].DanLV;
                    RankingInformation.PkScore = (int)info.PKBillboardList[i].PKScore;
                    RankInformationDic[i] = RankingInformation;
                }
                int index = keys[i];
                var info = datas[index];
                RankingInformationClass RankingInformation = new RankingInformationClass();
                RankingInformation.PlayerID = (int)info.id;
                RankingInformation.PlayerName = info.name1;
                RankingInformation.Job = info.subType;
                RankingInformation.Face = (int)info.value3;
                RankingInformation.FacePic = (int)info.value4;
                RankingInformation.Power = 0;
                RankingInformation.Realm = (int)info.value1;
                RankingInformation.DanLv = (int)info.value2;
                RankingInformation.PkScore = (int)info.cmpValue;
                RankInformationDic[index] = RankingInformation;
            }
        }
        ZoneRankingStruct zoneRank = new ZoneRankingStruct();
        zoneRank.ZoneID = info.ZoneID;
        zoneRank.SeasonID = info.SeasonID;
        var myData = rankModel.GetMyRank(type);
        MyRank = myData != null ? myData.index : -1;
        //赛区3位+赛季3位+排行榜类型3位
        zoneRank.ZoneID = type / 1000000;
        zoneRank.SeasonID = type/1000 % 1000;
        if (!ZoneRankingDic.ContainsKey(zoneRank))
        {
            ZoneRankingDic.Add(zoneRank, RankInformationDic);
System/CrossServerOneVsOne/CrossServerOneVsOneWaitPlayerCoolDownWin.cs
File was deleted
System/CrossServerOneVsOne/CrossServerOneVsOneWaitPlayerCoolDownWin.cs.meta
File was deleted
System/CrossServerOneVsOne/CrossServerSettlementWin.cs
@@ -52,17 +52,9 @@
        BuffModel m_BuffModel;
        BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
        float timer = 0f;
        private int WinSorce = 0;
        private int FailureSorce = 0;
        protected override void BindController()
        {
            var configNum1 = FuncConfigConfig.Get("CrossRealmPKScore").Numerical2;
            var _jsonDataC = LitJson.JsonMapper.ToObject(configNum1);
            if (_jsonDataC.Count > 0)
            {
                WinSorce = int.Parse(_jsonDataC[0].ToString());
                FailureSorce = int.Parse(_jsonDataC[1].ToString());
            }
        }
        protected override void AddListeners()
@@ -217,7 +209,7 @@
            }
            if (crossServerModel.pkResultInfo.WinStreak > 1)
            {
                m_SorceText.text = Language.Get("CrossServer_Z1", crossServerModel.pkResultInfo.AddScore, (crossServerModel.pkResultInfo.AddScore - WinSorce));
                m_SorceText.text = Language.Get("CrossServer_Z2", crossServerModel.pkResultInfo.AddScore);//, (crossServerModel.pkResultInfo.AddScore - WinSorce));
            }
            else
            {
@@ -267,7 +259,7 @@
            }
            if (crossServerModel.pkResultInfo.WinStreak > 1)
            {
                m_Sorce_Txt.text = Language.Get("CrossServer_Z1", crossServerModel.pkResultInfo.AddScore, (crossServerModel.pkResultInfo.AddScore - WinSorce));
                m_Sorce_Txt.text = Language.Get("CrossServer_Z2", crossServerModel.pkResultInfo.AddScore);//, (crossServerModel.pkResultInfo.AddScore - WinSorce));
            }
            else
            {
System/CrossServerOneVsOne/RankCellCtrl.cs
@@ -13,7 +13,7 @@
namespace vnxbqy.UI
{
    public class RankCellCtrl : ScrollerUI
    public class RankCellCtrl : MonoBehaviour
    {
        [SerializeField] Button m_RankButton;
        [SerializeField] Text m_RankNum;
@@ -27,9 +27,9 @@
        CrossServerOneVsOneRewardModel m_CrossServerRewardModel;
        CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>()); } }
        RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
        public override void Refresh(CellView cell)
        public void OnRefresh(int index)
        {
            int index = cell.index;
            //int index = cell.index;
            if (index < 3)
            {
                m_RankNumBottom.SetActive(true);
@@ -63,7 +63,7 @@
            {
                rankDic = crossServerRewardModel.ZoneRankingDic[zoneRanking];
            }
            if (rankDic != null && index < rankDic.Count)
            if (rankDic != null && rankDic.ContainsKey(index))
            {
                data = rankDic[index];
            }
@@ -86,7 +86,7 @@
                    m_NameTxt.color = new Color32(64, 28, 6, 255); ;
                }
                m_NameTxt.text = data.PlayerName;
                m_JobTxt.text = OccupationNameConfig.GetOccupationName(data.Job);
                m_JobTxt.text = OccupationNameConfig.GetOccupationName(Math.Max(1, data.Job));
                RealmConfig presentCfg = RealmConfig.Get(data.Realm);
                if (data.Realm > 0 && presentCfg != null)
                {
System/CrossServerOneVsOne/RankingWin.cs
@@ -8,7 +8,7 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
namespace vnxbqy.UI
{
@@ -32,11 +32,11 @@
        [SerializeField] Button m_PullButton2;//拉选按钮
        [SerializeField] GameObject m_ClickScreenOtherSpace2;
        [SerializeField] ScrollerController m_ScrollerController2;
        [SerializeField] Text m_Text_A;
        RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } }
        CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
        CrossServerOneVsOneRewardModel m_CrossServerRewardModel;
        CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>()); } }
        private int NeedDanLv = 0;
        #region Built-in
@@ -54,17 +54,7 @@
            m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
            m_ScrollerController1.OnRefreshCell += OnRefreshGridCell_Z;//赛区
            m_ScrollerController2.OnRefreshCell += OnRefreshGridCell_S;//赛季
            var configNum1 = FuncConfigConfig.Get("CrossRealmPKCfg").Numerical1;
            var _jsonDataC = LitJson.JsonMapper.ToObject(configNum1);
            if (_jsonDataC.Count > 0)
            {
                NeedDanLv = int.Parse(_jsonDataC[1].ToString());
            }
            var config = CrossServerArenaConfig.Get(NeedDanLv);
            if (config != null)
            {
                m_Text_A.text = Language.Get("CrossServer121", config.Name);
            }
        }
        protected override void AddListeners()
@@ -108,14 +98,16 @@
        }
        #endregion
        private void RankInformationUpdate()
        {
            SetZoneAndSeasonNum();
            OnCreateGridLineCell(m_ScrollerController);
            //OnCreateGridLineCell(m_ScrollerController);
            m_ScrollerController.m_Scorller.RefreshActiveCellViews();
            OnCreateGridLineCell_S(m_ScrollerController2);
            SetTextMyRank();
            ZoneAndSeasonpanel();
            m_ScrollerController.JumpIndex(0);
            //m_ScrollerController.JumpIndex(0);
        }
        private void OnClickPullButton1()
@@ -134,7 +126,7 @@
        void OnCreateGridLineCell(ScrollerController gridCtrl)
        {
            gridCtrl.Refresh();
            for (int i = 0; i < 100; i++)
            for (int i = 0; i < 1000; i++)
            {
                if (i == 0)
                {
@@ -182,7 +174,10 @@
        }
        private void OnRefreshGridCell(ScrollerDataType type, CellView cell)
        {
            var _cell = cell.GetComponent<RankCellCtrl>();
            _cell.OnRefresh(cell.index);
            rankModel.ListenCrossRankPage(CrossServerOneVsOneRewardModel.rankType, crossServerRewardModel.ZoneID, cell.index, crossServerRewardModel.SeasonID);
        }
        private void OnRefreshGridCell_Z(ScrollerDataType type, CellView cell)//赛区
        {
@@ -267,7 +262,7 @@
                if (crossServerRewardModel.SeasonID == CrossServerOneVsOnePKSeason.Instance.SeasonID)
                {
                    m_TextScores.text = CrossServerOneVsOnePlayerInfo.Instance.Score.ToString();
                    if (crossServerRewardModel.MyRank > -1 && crossServerRewardModel.MyRank < 100)
                    if (crossServerRewardModel.MyRank > -1 && crossServerRewardModel.MyRank < 1000)
                    {
                        m_TextMyRank.text = (crossServerRewardModel.MyRank + 1).ToString();
                    }
@@ -281,7 +276,7 @@
                    CrossServerOneVsOneModel.CrossServerOneVsOneHistory history;
                    if (crossServerModel.TryGetOneVsOneHistory(crossServerRewardModel.SeasonID,out history))
                    {
                        if (history.order > 0 && history.order < 101)
                        if (history.order > 0 && history.order < 1001)
                        {
                            m_TextMyRank.text = history.order.ToString();
                        }
@@ -333,17 +328,17 @@
            }
            bool isBool = false;
            for (int i = 0; i < CrossServerOneVsOnePKSeason.Instance.ZoneCount; i++)
            {
                if (CrossServerOneVsOnePKSeason.Instance.ZoneIDList[i].ZoneID == crossServerRewardModel.ZoneID)
                {
                    var list = CrossServerOneVsOnePKSeason.Instance.ZoneIDList[i].SeasonList;
                    if (list.Count > 1)
                    {
                        isBool = true;
                    }
                }
            }
            //for (int i = 0; i < CrossServerOneVsOnePKSeason.Instance.ZoneCount; i++)
            //{
            //    if (CrossServerOneVsOnePKSeason.Instance.ZoneIDList[i].ZoneID == crossServerRewardModel.ZoneID)
            //    {
            //        var list = CrossServerOneVsOnePKSeason.Instance.ZoneIDList[i].SeasonList;
            //        if (list.Count > 1)
            //        {
            //            isBool = true;
            //        }
            //    }
            //}
            if (isBool)//赛季
            {
                m_SeasonObj.SetActive(true);
System/CrossServerOneVsOne/SeasonRewardWin.cs
@@ -95,7 +95,7 @@
            bool isbool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState, -1);
            if (CrossServerOneVsOnePKSeason.Instance.SeasonState == 2 && !isbool)
            {
                crossServerRewardModel.ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID);
                crossServerRewardModel.ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID, true);
            }
        }
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs
@@ -24,19 +24,18 @@
        {
            if (m_Obstacles == null)
            {
                var configString = FuncConfigConfig.Get("CrossRealmPKFB").Numerical2;
                var matches = Regex.Matches(configString, "\\[[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}\\]");
                m_Obstacles = new FightObstacle[matches.Count];
                for (var i = 0; i < matches.Count; i++)
                var configString = FuncConfigConfig.Get("CrossRealmPKFB").Numerical1;
                var matches = JsonMapper.ToObject<int[][]>(configString);
                m_Obstacles = new FightObstacle[matches.Length];
                for (var i = 0; i < matches.Length; i++)
                {
                    var subMatches = Regex.Matches(matches[i].Value, "[0-9]{1,3}");
                    m_Obstacles[i] = new FightObstacle()
                    {
                        aPosX = subMatches.Count > 0 ? int.Parse(subMatches[0].Value) : 0,
                        aPosY = subMatches.Count > 1 ? int.Parse(subMatches[1].Value) : 0,
                        bPosX = subMatches.Count > 2 ? int.Parse(subMatches[2].Value) : 0,
                        bPosY = subMatches.Count > 3 ? int.Parse(subMatches[3].Value) : 0,
                        angle = subMatches.Count > 4 ? int.Parse(subMatches[4].Value) : 0,
                        aPosX = matches[i][0],
                        aPosY = matches[i][1],
                        bPosX = matches[i][2],
                        bPosY = matches[i][3],
                        angle = matches[i][4],
                    };
                }
            }
@@ -131,6 +130,7 @@
        return playerInfo;
    }
    //改为直接挑战机器人
    public static void JiaMatchOk()
    {
        var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
@@ -140,11 +140,11 @@
        }
        var package = new HC001_tagGCCrossRealmPKMatchOK();
        package.RoomID = 1000;
        //package.RoomID = 1000;
        var serverName = ServerListCenter.Instance.currentServer.name;
        var playerName = PlayerDatas.Instance.baseData.PlayerName;
        package.PlayerName = StringUtility.Contact("[", serverName.Replace("@gm", ""), "]", playerName);
        package.Number = (byte)UnityEngine.Random.Range(1, 3);
        //package.PlayerName = StringUtility.Contact("[", serverName.Replace("@gm", ""), "]", playerName);
        //package.Number = (byte)UnityEngine.Random.Range(1, 3);
        var opponent = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer();
        opponent.Job = (byte)UnityEngine.Random.Range(1, 3);
@@ -153,17 +153,15 @@
        var exceptedLevel = PlayerDatas.Instance.baseData.LV - UnityEngine.Random.Range(1, 5);
        opponent.LV = (ushort)(Mathf.Clamp(exceptedLevel, FuncOpenLVConfig.Get(157).LimitLV, 999));
        opponent.MaxProDef = 100;
        var maxHP = (ulong)(PlayerDatas.Instance.extersion.MaxHP * UnityEngine.Random.Range(0.7f, 0.95f));
        opponent.MaxHP = (uint)(maxHP % Constants.ExpPointValue);
        opponent.MaxHPEx = (uint)(maxHP / Constants.ExpPointValue);
        //opponent.MaxProDef = 100;
        //var maxHP = (ulong)(PlayerDatas.Instance.extersion.MaxHP * UnityEngine.Random.Range(0.7f, 0.95f));
        //opponent.MaxHP = (uint)(maxHP % Constants.ExpPointValue);
        //opponent.MaxHPEx = (uint)(maxHP / Constants.ExpPointValue);
        package.MatchPlayer = new HC001_tagGCCrossRealmPKMatchOK.tagGCCrossRealmPKMatchPlayer[] { opponent };
        myPlace = package.Number;
        //myPlace = package.Number;
        opponentName = opponent.PlayerName;
        CrossServerLogin.Instance.UpdateCrossServerOneVsOneData(package, true);
        WindowCenter.Instance.Open<CrossServerOneVsOneEnterConfirmWin>();
        ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>().IsMatching = false;
        StartClientCrossServerOneVsOne();
    }
    public static void StartClientCrossServerOneVsOne()
@@ -175,7 +173,6 @@
        ClientDungeonStageUtility.SetClientDungeon(true, mapId);
        var sendInfo = new CA231_tagCMClientStartCustomScene();
        GameNetSystem.Instance.SendInfo(sendInfo);
        CrossServerLogin.Instance.SetWaitForLoginCrossServerState(false);
        StageLoad.Instance.PushSceneLoadCommand(new StageLoad.StageLoadCommand()
        {
            toMapId = mapId,
System/Dungeon/DungeonModel.cs
@@ -805,21 +805,21 @@
                        break;
                }
                switch (_type)
                {
                    case DungeonCoolDownType.WaitPlayer:
                        if (!WindowCenter.Instance.IsOpen<CrossServerOneVsOneWaitPlayerCoolDownWin>())
                        {
                            WindowCenter.Instance.Open<CrossServerOneVsOneWaitPlayerCoolDownWin>();
                        }
                        break;
                    case DungeonCoolDownType.PlayerLeave:
                        if (!WindowCenter.Instance.IsOpen<CrossServerOneVsOnePlayerLeaveCoolDownWin>())
                        {
                            WindowCenter.Instance.Open<CrossServerOneVsOnePlayerLeaveCoolDownWin>();
                        }
                        break;
                }
                //switch (_type)
                //{
                //    case DungeonCoolDownType.WaitPlayer:
                //        if (!WindowCenter.Instance.IsOpen<CrossServerOneVsOneWaitPlayerCoolDownWin>())
                //        {
                //            WindowCenter.Instance.Open<CrossServerOneVsOneWaitPlayerCoolDownWin>();
                //        }
                //        break;
                //    case DungeonCoolDownType.PlayerLeave:
                //        if (!WindowCenter.Instance.IsOpen<CrossServerOneVsOnePlayerLeaveCoolDownWin>())
                //        {
                //            WindowCenter.Instance.Open<CrossServerOneVsOnePlayerLeaveCoolDownWin>();
                //        }
                //        break;
                //}
            }
            if (_type == DungeonCoolDownType.WaitStart)
@@ -1561,13 +1561,6 @@
                    InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
                    return;
                }
            }
            var model = ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>();
            if (model.IsMatching)
            {
                SysNotifyMgr.Instance.ShowTip("CrossMatching8", dungeonConfig.MapID);
                return;
            }
            if (CrossServerLogin.Instance.IsEnterCrossServerPreparing())
System/FindPrecious/DemonJarAutoChallenge.cs
@@ -60,11 +60,6 @@
        timer = 0f;
        if (crossServerOneVsOneModel.IsMatching)
        {
            return;
        }
        if (CrossServerLogin.Instance.IsEnterCrossServerPreparing())
        {
            return;
System/HazyRegion/HazyRegionModel.cs
@@ -317,11 +317,7 @@
                error = 1;
                return false;
            }
            if (crossServerOneVsOneModel.IsMatching)
            {
                error = 8;
                return false;
            }
            var mapId = PlayerDatas.Instance.baseData.MapID;
            if (MapUtility.IsDungeon(mapId))
            {
System/Login/CrossServerLogin.cs
@@ -40,64 +40,25 @@
        public string accountBuf { get; private set; }
        public string passwordBuf { get; private set; }
        public void UpdateCrossServerOneVsOneData(HC001_tagGCCrossRealmPKMatchOK matchOK, bool isClient)
        {
            oneVsOnePlayerData = new CrossServerOneVsOne()
            {
                isClient = isClient,
                roomId = matchOK.RoomID,
                waitForLoginCrossServer = true,
                validTimeLimited = Time.time + 30f,
                autoEnsureTime = Time.time + 3f,
                myName = matchOK.PlayerName.Replace("@gm", ""),
                myJob = PlayerDatas.Instance.baseData.Job,
                myFace = AvatarHelper.GetMyAvatarID(),
                myFacePic = AvatarHelper.GetMyAvatarFrameID(),
                myBornPoint = matchOK.Number,
                opponentName = matchOK.MatchPlayer[0].PlayerName.Replace("@gm", ""),
                opponentJob = matchOK.MatchPlayer[0].Job,
                opponentFace = (int)matchOK.MatchPlayer[0].Face,
                opponentFacePic = (int)matchOK.MatchPlayer[0].FacePic,
                opponentMaxHp = matchOK.MatchPlayer[0].MaxHP + matchOK.MatchPlayer[0].MaxHPEx * Constants.ExpPointValue,
                opponentLevel = (int)matchOK.MatchPlayer[0].LV,
                opponentPlayerId = (int)matchOK.MatchPlayer[0].PlayerID,
                MaxProDef = (int)matchOK.MatchPlayer[0].MaxProDef,
            };
            Clock.AlarmAt(DateTime.Now + new TimeSpan(3 * TimeSpan.TicksPerSecond), () =>
            {
                if (oneVsOnePlayerData.waitForLoginCrossServer)
                {
                    if (oneVsOnePlayerData.isClient)
                    {
                        ClientCrossServerOneVsOne.StartClientCrossServerOneVsOne();
                    }
                    else
                    {
                        CrossServerOneVsOneLogin();
                    }
                }
            });
        }
        //public void CrossServerOneVsOneLogin()
        //{
        //    var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
        //    var account = loginModel.accountBuf;
        //    var ip = GameNetSystem.Instance.crossServerData.ip;
        //    var port = GameNetSystem.Instance.crossServerData.port;
        public void CrossServerOneVsOneLogin()
        {
            var loginModel = ModelCenter.Instance.GetModel<LoginModel>();
            var account = loginModel.accountBuf;
            var ip = GameNetSystem.Instance.crossServerData.ip;
            var port = GameNetSystem.Instance.crossServerData.port;
        //    LoadingWin.isCrossServerOneVsOne = true;
        //    WindowCenter.Instance.Open<LoadingWin>();
        //    SetWaitForLoginCrossServerState(false);
            LoadingWin.isCrossServerOneVsOne = true;
            WindowCenter.Instance.Open<LoadingWin>();
            SetWaitForLoginCrossServerState(false);
        //    AccountLogin(account, ip, port, false);
        //}
            AccountLogin(account, ip, port, false);
        }
        public void SetWaitForLoginCrossServerState(bool state)
        {
            oneVsOnePlayerData = oneVsOnePlayerData.SetWaitForLoginCrossServer(false);
        }
        //public void SetWaitForLoginCrossServerState(bool state)
        //{
        //    oneVsOnePlayerData = oneVsOnePlayerData.SetWaitForLoginCrossServer(false);
        //}
        public bool IsEnterCrossServerPreparing()
        {
System/Rank/RankModel.cs
@@ -285,13 +285,13 @@
        Dictionary<int, int> queryRankCD = new Dictionary<int, int>(); //查询CD
        Dictionary<int, Dictionary<int, RankData>> m_RankPageDatas = new Dictionary<int, Dictionary<int, RankData>>();  //分页查询 排名索引按字段存储 0代表第一名
        //类型:ID -排名索引,通过ID进行排重删除 不同名次 同ID的数据
        Dictionary<int, Dictionary<int, int>> m_RankIDToIndex = new Dictionary<int, Dictionary<int, int>>();
        Dictionary<int, Dictionary<int, int>> m_RankIDToIndex = new Dictionary<int, Dictionary<int, int>>();
        //本服分页查询使用说明
        //1. QueryRankByPage:先查询第一页,startIndex = 0, count = 30, 在第一页查询前可以选择初始化ResetQueryParam
        //2. ListenRankPage:一般在滚动条OnRefreshCell监听排行榜显示名次,用于分页查询
        // isSelf =1 固定返回自己的排名附近10条,其他参数无效
        // WatchID;    //查看指定ID名次前后,其他参数无效
        public void QueryRankByPage(int type, int startIndex = 0, int count = 30, int watchID = 0, bool forceQuery = false)
        {
            if (queryRankCD.ContainsKey(type) && !forceQuery)
@@ -351,10 +351,10 @@
        //分页查询使用说明
        //1. QueryCrossRank:先查询第一页,startIndex = 0, count = 30, 在第一页查询前可以选择初始化ResetQueryParam
        //2. ListenCrossRankPage:一般在滚动条OnRefreshCell监听排行榜显示名次,用于分页查询
        // isSelf =1 固定返回自己的排名附近10条,其他参数无效
        //查询跨服排行榜
        // WatchID;    //查看指定ID名次前后,其他参数无效
        //查询跨服排行榜,排行榜类型可能因跨服功能不同 由分组分赛季等情况组合
        /// <param name="count"> 查看条数,服务端默认20,最大不超过100 </param>
        public void QueryCrossRank(int type, int groupID, int startIndex = 0, int count = 30, int watchID = 0, int cd = 2, bool forceQuery = false)
        public void QueryCrossRank(int type, int groupID, int startIndex = 0, int count = 30, int watchID = 0, int cd = 2, bool forceQuery = false, int groupValue2 = 0)
        {
            if (queryRankCD.ContainsKey(type) && !forceQuery)
            {
@@ -367,6 +367,7 @@
            var pak = new CC004_tagCGViewCrossBillboard();
            pak.Type = (byte)type;
            pak.GroupValue1 = (byte)groupID;
            pak.GroupValue2 = (byte)groupValue2;
            pak.StartIndex = (uint)startIndex;
            pak.WatchCnt = (byte)count;
            pak.WatchID = (uint)watchID;
@@ -375,8 +376,8 @@
            queryRankCD[type] = (int)Time.time;
        }
        public void ListenCrossRankPage(int type, int groupID, int index)
        //groupVaule2 用于分组分赛季等情况
        public void ListenCrossRankPage(int type, int groupID, int index, int groupVaule2 = 0)
        {
            int page = index / pageCnt;
            if (index > page * pageCnt + queryPointNum)
@@ -384,7 +385,7 @@
                if (queryPageTimes.ContainsKey(page) && Time.realtimeSinceStartup - queryPageTimes[page] < queryPageCD)
                    return;
                Debug.LogFormat("跨服分页查询:{0} - {1}", index, page);
                QueryCrossRank(type, groupID, pageCnt * (page + 1), pageCnt, forceQuery: true);
                QueryCrossRank(type, groupID, pageCnt * (page + 1), pageCnt, forceQuery: true, groupValue2: groupVaule2);
                queryPageTimes[page] = Time.realtimeSinceStartup;
            }
        }
@@ -406,30 +407,35 @@
        //跨服排行榜信息
        public void ReceivePackageCross(HC007_tagGCCrossBillboardInfo package)
        {
            if (!m_RankPageDatas.ContainsKey(package.Type))
            int rankType = package.Type;
            //部分跨服排行榜同一个榜存在分组分区的情况 //赛区3位+赛季3位+排行榜类型3位
            if (rankType == CrossServerOneVsOneRewardModel.rankType)
            {
                m_RankPageDatas.Add(package.Type, new Dictionary<int, RankData>());
                rankType = package.GroupValue1 * 1000000 + package.GroupValue2 * 1000 + rankType;
            }
            if (!m_RankPageDatas.ContainsKey(rankType))
            {
                m_RankPageDatas.Add(rankType, new Dictionary<int, RankData>());
            }
            //同ID排重删除
            if (!m_RankIDToIndex.ContainsKey(package.Type))
            if (!m_RankIDToIndex.ContainsKey(rankType))
            {
                m_RankIDToIndex.Add(package.Type, new Dictionary<int, int>());
                m_RankIDToIndex.Add(rankType, new Dictionary<int, int>());
            }
            for (int i = 0; i < package.BillboardCount; i++)
            {
                int id = (int)package.CrossBillboardDataList[i].ID;
                int orderIndex = (int)package.CrossBillboardDataList[i].OrderIndex;
                if (!m_RankIDToIndex[package.Type].ContainsKey(id))
                if (!m_RankIDToIndex[rankType].ContainsKey(id))
                {
                    m_RankIDToIndex[package.Type][id] = orderIndex;
                    m_RankIDToIndex[rankType][id] = orderIndex;
                }
                else if (m_RankIDToIndex[package.Type][id] != orderIndex)
                else if (m_RankIDToIndex[rankType][id] != orderIndex)
                {
                    m_RankPageDatas[package.Type].Remove(m_RankIDToIndex[package.Type][id]);
                    m_RankIDToIndex[package.Type][id] = orderIndex;
                    m_RankPageDatas[rankType].Remove(m_RankIDToIndex[rankType][id]);
                    m_RankIDToIndex[rankType][id] = orderIndex;
                }
            }
@@ -437,20 +443,20 @@
            for (int i = 0; i < package.BillboardCount; i++)
            {
                int orderIndex = (int)package.CrossBillboardDataList[i].OrderIndex;
                if (!m_RankPageDatas[package.Type].ContainsKey(orderIndex))
                if (!m_RankPageDatas[rankType].ContainsKey(orderIndex))
                {
                    m_RankPageDatas[package.Type][orderIndex] = new RankData();
                    m_RankPageDatas[rankType][orderIndex] = new RankData();
                }
                ReSetRankData(m_RankPageDatas[package.Type][orderIndex], package.CrossBillboardDataList[i], package.Type);
                ReSetRankData(m_RankPageDatas[rankType][orderIndex], package.CrossBillboardDataList[i], package.Type);
            }
            if (package.WatchID != 0)
            {
                onMyRankRefresh?.Invoke(package.Type);
                onMyRankRefresh?.Invoke(rankType);
            }
            else
            {
                onRankRefresh?.Invoke(package.Type);
                onRankRefresh?.Invoke(rankType);
            }
        }
@@ -475,7 +481,7 @@
            data.cmpValue3 = serverData.CmpValue3;
            data.userData = serverData.UserData;
            data.index = serverData.OrderIndex;
            data.type = type;
            data.type = type;   //与服务端一致的跨服排行榜类型,外部自行处理不同分组分赛季等情况
        }
        //查询本服排行榜
@@ -535,6 +541,7 @@
        }
        //排名从0 开始
        //如果是跨服排行榜 类型可能因跨服功能不同 由分组分赛季等情况组合
        public Dictionary<int, RankData> GetRankPageDatas(int type)
        {
            Dictionary<int, RankData> datas = null;
@@ -545,6 +552,8 @@
            return null;
        }
        ////如果是跨服排行榜 类型可能因跨服功能不同 由分组分赛季等情况组合
        public RankData GetMyRank(int type)
        {
            var playerId = PlayerDatas.Instance.baseData.PlayerID;
System/Team/TeamModel.cs
@@ -614,12 +614,6 @@
        public void RequestPrepareEnterDungeon(bool _prepare)
        {
            var crossServerOneVsOneModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>();
            if (crossServerOneVsOneModel.IsMatching)
            {
                crossServerOneVsOneModel.SendCrossMatch(0);
            }
            var sendInfo = new CB909_tagCGTeamMemberPrepare();
            sendInfo.PrepareState = (byte)(_prepare ? 1 : 2);
            GameNetSystem.Instance.SendInfo(sendInfo);