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()