Core/GameEngine/DataToCtl/ConnectedState.cs
@@ -44,12 +44,12 @@ } if (GameNetSystem.Instance.timeSinceMainSocketLastProtocol > OVERTIME_THRESHOLD || (!GameNetSystem.Instance.crossServerConnected_Loigc && GameNetSystem.Instance.timeSinceCrossServerSocketLastProtocol > OVERTIME_THRESHOLD)) || (GameNetSystem.Instance.crossServerConnected_Loigc && GameNetSystem.Instance.timeSinceCrossServerSocketLastProtocol > OVERTIME_THRESHOLD)) { DetectConnected(3); } else if (!GameNetSystem.Instance.mainSocketConnected || (!GameNetSystem.Instance.crossServerConnected_Loigc && !GameNetSystem.Instance.crossServerSocketConnected)) || (GameNetSystem.Instance.crossServerConnected_Loigc && !GameNetSystem.Instance.crossServerSocketConnected)) { DetectConnected(3); } Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -498,14 +498,14 @@ packageInstance.socketType = socketType; #if UNITY_EDITOR NetPkgCtl.AddNetPkg(socketType, vStr, NetPkgType.Server, packageInstance.ToString(), FieldPrint.PrintFields(packageInstance), FieldPrint.PrintFieldsExpand(packageInstance, true)); NetPkgCtl.RecordPackage(socketType, vStr, NetPackagetType.Server, packageInstance.ToString(), FieldPrint.PrintFields(packageInstance), FieldPrint.PrintFieldsExpand(packageInstance, true)); #endif return packageInstance; } else { #if UNITY_EDITOR NetPkgCtl.AddNetPkg(socketType, vStr, NetPkgType.Server, string.Empty, string.Empty, null); NetPkgCtl.RecordPackage(socketType, vStr, NetPackagetType.Server, string.Empty, string.Empty, null); #endif } return null; Core/NetworkPackage/GameNetSystem.cs
@@ -73,7 +73,7 @@ public bool mainSocketConnected { get { return mainSocket == null ? false : mainSocket.connected; } } public float timeSinceMainSocketLastProtocol { get { return mainSocket == null ? 0f : (float)(DateTime.Now - mainSocket.lastPackageTime).TotalSeconds; } get { return mainSocket == null ? Time.time : (float)(DateTime.Now - mainSocket.lastPackageTime).TotalSeconds; } } public bool crossServerConnected_Loigc { get; set; } @@ -81,7 +81,7 @@ public bool crossServerSocketConnected { get { return crossServerConnected_Loigc && (crossServerSocket == null ? false : crossServerSocket.connected); } } public float timeSinceCrossServerSocketLastProtocol { get { return crossServerSocket == null ? 0f : (float)(DateTime.Now - crossServerSocket.lastPackageTime).TotalSeconds; } get { return crossServerSocket == null ? Time.time : (float)(DateTime.Now - crossServerSocket.lastPackageTime).TotalSeconds; } } Queue<GameNetPackBasic> mainProtocolQueue = new Queue<GameNetPackBasic>(); Core/NetworkPackage/NetPkgCtl.cs
@@ -7,97 +7,71 @@ public class NetPkgCtl { private static List<NetPkg> _typeLst = null; //发送接收封包存储列表 private static List<NetPkg> _tempNetPkgLst = null;//暂停时缓存的封包列表 public static bool IsStopRec = false; public static bool getNewPackage = false; private static List<NetPackage> packages = new List<NetPackage>(); //发送接收封包存储列表 private static List<NetPackage> tempPackages = new List<NetPackage>();//暂停时缓存的封包列表 public static bool stopRecieve = false; /// <summary> /// 添加封包到封包查看工具 /// </summary> /// <param name="gameNetPkg"></param> /// <param name="typeLst"></param> public static void AddNetPkg( GameNetSystem.SocketType socketType, string pkgByte, NetPkgType netPkgType, string _packName, string _fields, List<string> _fieldDetails) public static void RecordPackage(GameNetSystem.SocketType socketType, string bytes, NetPackagetType packType, string packageName, string fields, List<string> fieldDetails) { #if UNITY_EDITOR if (_typeLst == null) var package = new NetPackage(); package.socketType = socketType; package.time = DateTime.Now.ToString("HH:mm:ss:fff"); package.type = packType; if (string.IsNullOrEmpty(packageName)) { _typeLst = new List<NetPkg>(); } if (_tempNetPkgLst == null) { _tempNetPkgLst = new List<NetPkg>(); } getNewPackage = true; NetPkg netPkg = new NetPkg(); netPkg.socketType = socketType; netPkg.SendOrGetTime = DateTime.Now.ToString("HH:mm:ss:fff"); netPkg.NetPkgTp = netPkgType; string netPkgStr = pkgByte.Replace(",", " "); netPkg.GameNetPkgStr = netPkgStr; var gameNetPkgName = _packName; string[] byteStr = netPkgStr.Split(' '); if (string.IsNullOrEmpty(gameNetPkgName)) { package.content = bytes.Replace(",", " "); var byteStr = package.content.Split(' '); if (byteStr.Length > 1) { StringBuilder _stringBuilder = new StringBuilder(); _stringBuilder.Append("H"); _stringBuilder.Append(byteStr[0]); _stringBuilder.Append(byteStr[1]); _stringBuilder.Append("(未注册)"); netPkg.GameNetName = _stringBuilder.ToString(); _stringBuilder = null; package.name = StringUtility.Contact("H", byteStr[0], byteStr[1], "(未注册)"); } } else { netPkg.GameNetName = gameNetPkgName; netPkg.fields = _fields; netPkg.fieldDetails = _fieldDetails; package.name = packageName; package.fields = fields; package.fieldDetails = fieldDetails; } if (!IsStopRec) if (!stopRecieve) { _typeLst.Add(netPkg); packages.Add(package); } else { _tempNetPkgLst.Add(netPkg); tempPackages.Add(package); } #endif } public static List<NetPkg> GetNetPkg() public static List<NetPackage> GetPackages() { return _typeLst; return packages; } public static List<NetPkg> GetTempNetPkg() public static List<NetPackage> GetTempPackages() { return _tempNetPkgLst; return tempPackages; } public static void WriteAllNetLog(bool @details) { if (_typeLst != null) if (packages != null) { var count = 0; var lines = new List<string>(); for (int i = _typeLst.Count - 1; i >= 0; i--) for (int i = packages.Count - 1; i >= 0; i--) { if (count > 20000) { break; } var package = _typeLst[i]; var package = packages[i]; var line = string.Empty; line = StringUtility.Contact(package.NetPkgTp == NetPkgType.Client ? "【发送】\t" : "【接收】\t", package.SendOrGetTime, ":", package.GameNetName, @details ? "\r\n" : "-->" + package.fields); line = StringUtility.Contact(package.type == NetPackagetType.Client ? "【发送】\t" : "【接收】\t", package.time, ":", package.name, @details ? "\r\n" : "-->" + package.fields); if (@details && package.fieldDetails != null) { @@ -116,19 +90,19 @@ } } public class NetPkg public class NetPackage { public GameNetSystem.SocketType socketType; public string SendOrGetTime; public string GameNetPkgStr; public string GameNetName; public NetPkgType NetPkgTp; public bool show = false; public string time; public string content; public string name; public NetPackagetType type; public string fields; public List<string> fieldDetails; } public enum NetPkgType public enum NetPackagetType { Client = 1, Server = 2, Core/NetworkPackage/Socket/ClientSocket.cs
@@ -332,7 +332,7 @@ } protocol.CombineDatas(encoder); #if UNITY_EDITOR NetPkgCtl.AddNetPkg(socketType, protocol.vInfoCont, NetPkgType.Client, protocol.ToString(), FieldPrint.PrintFields(protocol), FieldPrint.PrintFieldsExpand(protocol, true)); NetPkgCtl.RecordPackage(socketType, protocol.vInfoCont, NetPackagetType.Client, protocol.ToString(), FieldPrint.PrintFields(protocol), FieldPrint.PrintFieldsExpand(protocol, true)); #endif sendBytesTotal += protocol.combineBytes.Length; SendBytes(protocol.combineBytes); Lua/Gen/SnxxzUICrossServerOneVsOneModelWrap.cs
@@ -578,7 +578,7 @@ { gen_to_be_invoked.UpdateCrossArenaRedpoint( ); gen_to_be_invoked.UpdateCrossDayAwardsRedpoint( ); System/Activity/ActivityModel.cs
@@ -273,7 +273,8 @@ break; case DailyQuestType.CrossServerPk: { if(TimeUtility.OpenDay < ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>().afterOpenDayOpenCross) bool isStatify = CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch; if (!isStatify) { return true; } System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -41,6 +41,8 @@ public void OnBeforePlayerDataInitialize() { CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo; CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent -= UpdateSeason; TimeMgr.Instance.OnMinuteEvent -= UpdateMinute; dungeonModel.updateMissionEvent -= UpdateFBHelp; rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState; @@ -62,6 +64,8 @@ public void OnPlayerLoginOk() { CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo; CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent += UpdateSeason; TimeMgr.Instance.OnMinuteEvent += UpdateMinute; rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState; CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState; @@ -72,7 +76,8 @@ SendCrossMatch(1); } UpdateCrossArenaRedpoint(); UpdateCrossDayAwardsRedpoint(); UpdateCrossMatchRedpoint(); } public override void UnInit() @@ -88,9 +93,9 @@ oneVsOneHistoryDict.Clear(); } private void UpdateMinute() { UpdateCrossMatchRedpoint(); if (!IsMatching) return; if(!CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch) @@ -125,7 +130,18 @@ UpdateDayAwardsEvent(); } UpdateCrossArenaRedpoint(); UpdateCrossDayAwardsRedpoint(); } private void UpdateSeason() { UpdateCrossMatchRedpoint(); } private void UpdatePlayerInfo() { UpdateCrossDayAwardsRedpoint(); UpdateCrossMatchRedpoint(); } private void UpdateFBHelp() @@ -398,6 +414,14 @@ SysNotifyMgr.Instance.ShowTip("CrossMatching7"); return true; } int remainMatchNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum(); if(remainMatchNum <= 0) { SysNotifyMgr.Instance.ShowTip("CrossMatching16"); return true; } return false; } @@ -418,7 +442,7 @@ division = data.DanLV, order = data.Order, rewardLevel = data.AwardLV, score = (int)data.Score, score = (int)data.Score }; } if (oneVsOneHistoryRefresh != null) @@ -487,23 +511,8 @@ public Redpoint crossDayAwardsRedpoint = new Redpoint(CrossArenaRedKey,CrossDayAwardsRedKey); public const int CrossMatchRedKey = 21301012; public Redpoint crossMatchRedpoint = new Redpoint(CrossArenaRedKey, CrossMatchRedKey); public void UpdateCrossArenaRedpoint() public void UpdateCrossDayAwardsRedpoint() { var playerInfo = CrossServerOneVsOnePlayerInfo.Instance; var pkSeason = CrossServerOneVsOnePKSeason.Instance; if(pkSeason.InPkSeason(TimeUtility.ServerNow) && pkSeason.InOpenTime() && playerInfo.GetDayRemainNum() > 0) { crossMatchRedpoint.state = RedPointState.Simple; } else { crossMatchRedpoint.state = RedPointState.None; } bool isReceive = false; for(int i = 0; i < dayAwardTypelist.Count; i++) { @@ -523,8 +532,24 @@ { crossDayAwardsRedpoint.state = RedPointState.None; } } if(crossMatchRedpoint.state != RedPointState.None) public void UpdateCrossMatchRedpoint() { var playerInfo = CrossServerOneVsOnePlayerInfo.Instance; var pkSeason = CrossServerOneVsOnePKSeason.Instance; if (pkSeason.isSatisfyMatch && playerInfo.GetDayRemainNum() > 0) { crossMatchRedpoint.state = RedPointState.Simple; } else { crossMatchRedpoint.state = RedPointState.None; } if (crossMatchRedpoint.state != RedPointState.None) { crossServerRedpoint.count = playerInfo.GetDayRemainNum(); crossServerRedpoint.state = RedPointState.Quantity; System/CrossServerOneVsOne/CrossServerOneVsOnePKSeason.cs
@@ -21,7 +21,16 @@ public int MatchState { get; private set; } // 匹配状态;0-未开启;1-开启中 public bool isSatisfyMatch { get { return InPkSeason(TimeUtility.ServerNow) && InOpenTime(); } } public bool isSatisfyMatch { get { return FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.CrossServer) && TimeUtility.OpenDay >= crossServerModel.afterOpenDayOpenCross && InPkSeason(TimeUtility.ServerNow) && InOpenTime(); } } public class PkZoneInfo { @@ -151,6 +160,14 @@ this.SeasonState = pKSeasonState.SeasonState; this.MatchState = pKSeasonState.MatchState; if(this.SeasonState != 1 || this.MatchState != 1) { if(crossServerModel.IsMatching) { crossServerModel.IsMatching = false; } } if(updateSelfSeasonEvent != null) { updateSelfSeasonEvent(); System/CrossServerOneVsOne/CrossServerOneVsOnePlayerInfo.cs
@@ -50,7 +50,6 @@ this.DayPKCount = playerInfo.DayPKCount; this.DayBuyCount = playerInfo.DayBuyCount; this.DayWinCount = playerInfo.DayWinCount; crossServerModel.UpdateCrossArenaRedpoint(); if (UpdatePlayerInfoEvent != null) { UpdatePlayerInfoEvent(); System/CrossServerOneVsOne/SeasonRewardWin.cs
@@ -11,7 +11,8 @@ using TableConfig; using EnhancedUI.EnhancedScroller; namespace Snxxz.UI { namespace Snxxz.UI { //赛季奖励 [XLua.Hotfix] public class SeasonRewardWin : Window @@ -39,6 +40,7 @@ { IsInquireReward(); OnCreateGridLineCell(m_ScrollerController); m_ScrollerController.JumpIndex(JumpIndex()); } protected override void OnAfterOpen() @@ -53,7 +55,7 @@ CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfoEvent; } protected override void OnAfterClose() { } @@ -75,7 +77,7 @@ gridCtrl.AddCell(ScrollerDataType.Header, key); } for (int i = SortList.Count - 1; i >= 0; i--) { { gridCtrl.AddCell(ScrollerDataType.Normal, SortList[i]); } gridCtrl.Restart(); @@ -84,17 +86,51 @@ { int Index = cell.index; SeasonRewardCell seasonRewardCell = cell.GetComponent<SeasonRewardCell>(); seasonRewardCell.ScrollerDataTypAndId(type, Index); seasonRewardCell.ScrollerDataTypAndId(type, Index); } private void IsInquireReward() { bool isbool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState,-1); bool isbool = crossServerRewardModel.IsAwardState(CrossRealmPKAwardStateEnum.SeasonAwardState, -1); if (CrossServerOneVsOnePKSeason.Instance.SeasonState == 2 && !isbool) { crossServerRewardModel.ViewCrossPKBillboard(CrossServerOneVsOnePKSeason.Instance.ZoneID, CrossServerOneVsOnePKSeason.Instance.SeasonID); } } private int JumpIndex() { int Index = 0; if (CrossServerOneVsOnePKSeason.Instance.SeasonState != 2) { return Index; } if (crossServerRewardModel.MyRank > -1 && crossServerRewardModel.MyRank < 100)//存在世界排名 { int Type = 0; foreach (var key in crossServerRewardModel.SeasonRewardDic.AwardDic.Keys) { if (crossServerRewardModel.MyRank < key) { Index = Type; return Index; } Type += 1; } } int Type1 = 3; for (int i = SortList.Count - 1; i >= 0; i--) { if (CrossServerOneVsOnePlayerInfo.Instance.DanLV == SortList[i]) { Index = Type1; return Index; } Type1 += 1; } return Index; } } } System/DailyQuest/DailyQuestModel.cs
@@ -172,7 +172,7 @@ if ((DailyQuestType)key == DailyQuestType.CrossServerPk) { if (TimeUtility.OpenDay >= GeneralDefine.crossServerOneVsOneOpenDay && CrossServerOneVsOnePKSeason.Instance.SeasonState == 1) && CrossServerOneVsOnePKSeason.Instance.InPkSeason(TimeUtility.ServerNow)) { quests.Add(key); } @@ -612,6 +612,16 @@ dailyQuest.redpoint.state = RedPointState.None; } break; case DailyQuestType.CrossServerPk: if (CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch) { dailyQuest.redpoint.state = completedTimes >= totalTimes ? RedPointState.None : RedPointState.Simple; } else { dailyQuest.redpoint.state = RedPointState.None; } break; default: if (dailyQuestState == DailyQuestState.CanBuyTimes || dailyQuestState == DailyQuestState.Normal) { System/Treasure/KingThreeDimensionsBehaviour.cs
@@ -49,11 +49,11 @@ if (model.TryGetSeason(treasureId, out season) && treasureModel.TryGetTreasure(treasureId, out treasure)) { var seasonNotStart = season > CrossServerOneVsOnePKSeason.Instance.SeasonID; var seasonNotStart = model.GetSeasonState(treasureId) == 0; m_ContainerSeasonNotStart.gameObject.SetActive(seasonNotStart); m_ContainerSeasonStartOrEnd.gameObject.SetActive(!seasonNotStart); bool seasonEnd = season < CrossServerOneVsOnePKSeason.Instance.SeasonID; bool seasonEnd = model.GetSeasonState(treasureId) == 2; if (!seasonNotStart) { m_EndState.gameObject.SetActive(seasonEnd); System/Treasure/KingTreasureModel.cs
@@ -254,6 +254,32 @@ } } public int GetSeasonState(int treasureId) { var season = 0; if (TryGetSeason(treasureId, out season)) { if (season < CrossServerOneVsOnePKSeason.Instance.SeasonID || (season == CrossServerOneVsOnePKSeason.Instance.SeasonID && CrossServerOneVsOnePKSeason.Instance.SeasonState == 2)) { return 2; } if((season == CrossServerOneVsOnePKSeason.Instance.SeasonID && CrossServerOneVsOnePKSeason.Instance.SeasonState == 1)) { return 1; } if (season > CrossServerOneVsOnePKSeason.Instance.SeasonID || (season == CrossServerOneVsOnePKSeason.Instance.SeasonID && CrossServerOneVsOnePKSeason.Instance.SeasonState == 0)) { return 0; } } return 0; } public struct Division { public int division; System/Treasure/KingTreasureWin.cs
@@ -128,7 +128,7 @@ { DisplayGot(); } else if (season < CrossServerOneVsOnePKSeason.Instance.SeasonID) else if (kingTreasureModel.GetSeasonState(model.selectedTreasure) == 2) { DisplayEnd(); } @@ -229,14 +229,10 @@ private bool AllowSelectTreasure(int id) { var list = kingTreasureModel.GetDisplayList(); var season = 0; if (kingTreasureModel.TryGetSeason(id, out season)) if (kingTreasureModel.GetSeasonState(id) == 0) { if (season == CrossServerOneVsOnePKSeason.Instance.SeasonID + 1) { SysNotifyMgr.Instance.ShowTip("TreasureOneVsOneSeasonNotStart"); return false; } SysNotifyMgr.Instance.ShowTip("TreasureOneVsOneSeasonNotStart"); return false; } return list.Contains(id); } System/Treasure/UI3DTreasureSelectStage.cs
@@ -709,14 +709,10 @@ case TreasureCategory.King: { var model = ModelCenter.Instance.GetModel<KingTreasureModel>(); var season = 0; if (model.TryGetSeason(_treasureId, out season)) if (model.GetSeasonState(_treasureId) == 0) { if (season == CrossServerOneVsOnePKSeason.Instance.SeasonID + 1) { SysNotifyMgr.Instance.ShowTip("TreasureOneVsOneSeasonNotStart"); return; } SysNotifyMgr.Instance.ShowTip("TreasureOneVsOneSeasonNotStart"); return; } } break; Utility/EnumHelper.cs
@@ -898,6 +898,7 @@ TreasureFindHost = 124, //法宝认主 Dogz = 138, //神兽 AddPoint = 145,//加点 CrossServer = 157, //跨服天梯赛 } //属性类型 public enum AttrEnum