| Core/GameEngine/DataToCtl/PackageRegedit.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC003_tagGCCrossRealmPKOverInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerOneVsOne/CrossServerArenaWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerOneVsOne/CrossServerModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerOneVsOne/CrossServerWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -197,6 +197,9 @@ Register(typeof(HB207_tagMCHelpBattleList), typeof(DTCB207_tagMCHelpBattleList)); 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)); #region 背包 Register(typeof(H0724_tagRolePackCanUseCount), typeof(DTC0724_tagRolePackCanUseCount)); Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC003_tagGCCrossRealmPKOverInfo.cs
@@ -1,11 +1,13 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // C0 03 跨服PK战斗结果 #tagGCCrossRealmPKOverInfo public class DTCC003_tagGCCrossRealmPKOverInfo : DtcBasic { CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HC003_tagGCCrossRealmPKOverInfo vNetData = vNetPack as HC003_tagGCCrossRealmPKOverInfo; HC003_tagGCCrossRealmPKOverInfo vNetData = vNetPack as HC003_tagGCCrossRealmPKOverInfo; crossServerModel.UpdatePKResultInfo(vNetData); } } System/CrossServerOneVsOne/CrossServerArenaWin.cs
@@ -122,6 +122,7 @@ private void ClickMatch() { CloseImmediately(); crossServerModel.SendCrossMatch(1); crossServerRewardModel.IsOpenMatch = true; crossServerRewardModel.ResetTime(); WindowCenter.Instance.Open<MatchWin>(); System/CrossServerOneVsOne/CrossServerModel.cs
@@ -18,7 +18,7 @@ public void OnBeforePlayerDataInitialize() { ResetData(); InitData(); } public void OnAfterPlayerDataInitialize() @@ -36,10 +36,24 @@ } private void InitData() { curWinRate = 0; sumBattleNum = 0; dayMatchNum = 0; alreadyBuyNum = 0; pkResultInfo = new PkResultInfo(); } public bool TryGetMaxRank(out int upScore) { var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(curRank); upScore = arenaConfig.LVUpScore; upScore = 0; if (pkResultInfo == null) return false; var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(pkResultInfo.DanLV); if(arenaConfig != null) { upScore = arenaConfig.LVUpScore; } return upScore == 0; } @@ -200,24 +214,83 @@ #endregion #region 协议 public int curRank { get; private set; } //当前段位 public int curScore { get; private set; } //当前积分 public int curWinRate { get; private set; } //当前胜率 public int sumBattleNum { get; private set; } //对战总场数 public int dayMatchNum { get; private set; } //今日匹配次数 public int alreadyBuyNum { get; private set;} //今日购买匹配次数 #endregion private void ResetData() public PkResultInfo pkResultInfo { get; private set;} public event Action UpdatePkResultEvent; public void UpdatePKResultInfo(HC003_tagGCCrossRealmPKOverInfo pKOverInfo) { curRank = 0; curScore = 0; curWinRate = 0; sumBattleNum = 0; dayMatchNum = 0; alreadyBuyNum = 0; pkResultInfo.PkEndTime = pKOverInfo.TimeStr; pkResultInfo.OverType = pKOverInfo.OverType; pkResultInfo.WinnerID = (int)pKOverInfo.WinnerID; pkResultInfo.RoundCount = pKOverInfo.RoundCount; pkResultInfo.RoundWinnerIDs = pKOverInfo.RoundWinnerID; pkResultInfo.AddScore = pKOverInfo.AddScore; pkResultInfo.CurScore = pKOverInfo.Score; pkResultInfo.DanLV = pKOverInfo.DanLV; pkResultInfo.WinStreak = pKOverInfo.CWinCnt; pkResultInfo.VsPlayerName = pKOverInfo.TagName; if(UpdatePkResultEvent != null) { UpdatePkResultEvent(); } } public class PkResultInfo { public string PkEndTime; // 结算时间,格式 yyyy-MM-dd HH:mm:ss public int OverType; // 0-正常,1-有人离线 public int WinnerID; // 胜方ID public int RoundCount; // PK回合数 public uint[] RoundWinnerIDs; // 回合获胜ID列表 public int AddScore; // 本场加分 public int CurScore; // 当前积分 public int DanLV; // 当前段位 public int WinStreak; // 当前连胜数 public string VsPlayerName; //对手名字 } public void GetWinAndFailNum(out int winNum,out int failNum) { winNum = 0; failNum = 0; int playerId = (int)PlayerDatas.Instance.baseData.PlayerID; for(int i = 0; i < pkResultInfo.RoundCount; i++) { var winnerId = pkResultInfo.RoundWinnerIDs[i]; if(winnerId == playerId) { winNum += 1; } else { failNum += 1; } } } /// <summary> ///0-取消匹配; 1-进行匹配 /// </summary> /// <param name="type"></param> public void SendCrossMatch(int type) { CC101_tagCMCrossRealmPKMatch match = new CC101_tagCMCrossRealmPKMatch(); match.Type = (byte)type; GameNetSystem.Instance.SendInfo(match); } #endregion #region 红点 #endregion System/CrossServerOneVsOne/CrossServerWin.cs
@@ -85,20 +85,20 @@ scoreSlider.maxValue = 1; UpdateScore(); var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(crossServerModel.curRank); var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(crossServerModel.pkResultInfo.DanLV); rankText.text = arenaConfig.Name; } private void UpdateScore() { curScoreText.text = crossServerModel.curScore.ToString(); curScoreText.text = crossServerModel.pkResultInfo.CurScore.ToString(); int maxScore = 0; bool isMaxRank = crossServerModel.TryGetMaxRank(out maxScore); if (!isMaxRank) { scorePerText.text = StringUtility.Contact(crossServerModel.curScore, "/", maxScore); scoreSlider.value = (float)crossServerModel.curScore / maxScore; scorePerText.text = StringUtility.Contact(crossServerModel.pkResultInfo.CurScore, "/", maxScore); scoreSlider.value = (float)crossServerModel.pkResultInfo.CurScore / maxScore; } }