Core/NetworkPackage/ClientPack/ClientToGameServer/CC0_CrossRealm/CC001_tagCGViewCrossPKBillboard.cs
New file @@ -0,0 +1,20 @@ using UnityEngine; using System.Collections; // C0 01 查看跨服竞技场赛季排行榜 #tagCGViewCrossPKBillboard public class CC001_tagCGViewCrossPKBillboard : GameNetPackBasic { public byte ZoneID; // 赛区ID public byte SeasonID; // 赛季ID public CC001_tagCGViewCrossPKBillboard () { combineCmd = (ushort)0x1801; _cmd = (ushort)0xC001; } public override void WriteToBytes () { WriteBytes (ZoneID, NetDataType.BYTE); WriteBytes (SeasonID, NetDataType.BYTE); } } Core/NetworkPackage/ClientPack/ClientToGameServer/CC0_CrossRealm/CC001_tagCGViewCrossPKBillboard.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 61adcc2688515554d9bac55351d77dbd timeCreated: 1545460252 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ClientPack/ClientToGameServer/CC0_CrossRealm/CC002_tagCGViewCrossPlayerInfo.cs
New file @@ -0,0 +1,18 @@ using UnityEngine; using System.Collections; // C0 02 查看跨服玩家信息 #tagCGViewCrossPlayerInfo public class CC002_tagCGViewCrossPlayerInfo : GameNetPackBasic { public uint PlayerID; // 跨服玩家ID public CC002_tagCGViewCrossPlayerInfo () { combineCmd = (ushort)0x1801; _cmd = (ushort)0xC002; } public override void WriteToBytes () { WriteBytes (PlayerID, NetDataType.DWORD); } } Core/NetworkPackage/ClientPack/ClientToGameServer/CC0_CrossRealm/CC002_tagCGViewCrossPlayerInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 6f76fe869debd934989abb455cf25235 timeCreated: 1545460450 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC005_tagGCCrossRealmPKBillboardInfo.cs
New file @@ -0,0 +1,17 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // C0 05 跨服PK赛季排行榜 #tagGCCrossRealmPKBillboardInfo public class DTCC005_tagGCCrossRealmPKBillboardInfo : DtcBasic { CrossServerRewardModel m_CrossServerRewardModel; CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HC005_tagGCCrossRealmPKBillboardInfo vNetData = vNetPack as HC005_tagGCCrossRealmPKBillboardInfo; if (vNetData == null) { return; } crossServerRewardModel.CrossRealmPKBillboardInfo(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HC0_CrossRealm/DTCC005_tagGCCrossRealmPKBillboardInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: bc0f690f433c81a4b928d9436fa3dce0 timeCreated: 1545461267 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC005_tagGCCrossRealmPKBillboardInfo.cs
New file @@ -0,0 +1,45 @@ using UnityEngine; using System.Collections; // C0 05 跨服PK赛季排行榜 #tagGCCrossRealmPKBillboardInfo public class HC005_tagGCCrossRealmPKBillboardInfo : GameNetPackBasic { public byte ZoneID; // 赛区ID public byte SeasonID; // 赛季ID public ushort Count; public tagGCCrossRealmPKBillboardData[] PKBillboardList; public HC005_tagGCCrossRealmPKBillboardInfo () { _cmd = (ushort)0xC005; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out ZoneID, vBytes, NetDataType.BYTE); TransBytes (out SeasonID, vBytes, NetDataType.BYTE); TransBytes (out Count, vBytes, NetDataType.WORD); PKBillboardList = new tagGCCrossRealmPKBillboardData[Count]; for (int i = 0; i < Count; i ++) { PKBillboardList[i] = new tagGCCrossRealmPKBillboardData(); TransBytes (out PKBillboardList[i].PlayerID, vBytes, NetDataType.DWORD); TransBytes (out PKBillboardList[i].NameLen, vBytes, NetDataType.BYTE); TransBytes (out PKBillboardList[i].PlayerName, vBytes, NetDataType.Chars, PKBillboardList[i].NameLen); TransBytes (out PKBillboardList[i].Job, vBytes, NetDataType.BYTE); TransBytes (out PKBillboardList[i].FightPower, vBytes, NetDataType.DWORD); TransBytes (out PKBillboardList[i].RealmLV, vBytes, NetDataType.WORD); TransBytes (out PKBillboardList[i].PKScore, vBytes, NetDataType.DWORD); TransBytes (out PKBillboardList[i].DanLV, vBytes, NetDataType.BYTE); } } public struct tagGCCrossRealmPKBillboardData { public uint PlayerID; public byte NameLen; public string PlayerName; public byte Job; public uint FightPower; public ushort RealmLV; public uint PKScore; public byte DanLV; } } Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC005_tagGCCrossRealmPKBillboardInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: a9f1e99d3d1803748aea14f2bb5c04c6 timeCreated: 1545461266 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/CrossServerOneVsOne/CrossServerRewardModel.cs
@@ -27,11 +27,11 @@ public int Rankin;//名次 public int Realm;//境界 public int PlayerID;//玩家ID public string ServerName;//服务器名 public string PlayerName;//玩家名 public int Job;//职业 public int Power;//战力 public int Segment;//段位 public int Integral;//积分 public int DanLv;//段位 public int PkScore;//积分 } public enum CrossRealmPKAwardStateEnum { @@ -47,11 +47,14 @@ public ImpactRankModel.RankAwardItem SeasonRewardDic = new ImpactRankModel.RankAwardItem(); public Dictionary<int, RankingInformationClass> RankInformationDic = new Dictionary<int, RankingInformationClass>(); public Action CrossRealmPKAwardStateUpdate;//领取奖励刷新 public Action RankInformationUpdate;//排行奖励刷新 private uint DayPKCountAwardState; //每日匹配次数奖励记录 private uint DayWinCountAwardState; // 每日胜利次数奖励记录 private uint DanLVAwardState; // 段位达标奖励记录 private int SeasonAwardState; // 赛季结算奖励是否已领取 private bool m_IsOpenMatch; public int ZoneID = 0;//赛区ID public int SeasonID = 0;//赛季ID public bool IsOpenMatch { get { return m_IsOpenMatch; } @@ -71,6 +74,8 @@ public void OnBeforePlayerDataInitialize() { ZoneID = 0; SeasonID = 0; crossServerModel.UpdatePkResultEvent -= UpdatePkResultEvent; } @@ -79,7 +84,7 @@ crossServerModel.UpdatePkResultEvent += UpdatePkResultEvent; } public override void UnInit() { @@ -205,6 +210,55 @@ } return _bool; } public void ViewCrossPKBillboard(int ZoneID, int SeasonID)//(赛区,赛季) 查看跨服竞技场赛季排行榜 { CC001_tagCGViewCrossPKBillboard c001 = new CC001_tagCGViewCrossPKBillboard(); c001.ZoneID = (byte)ZoneID; c001.SeasonID = (byte)SeasonID; GameNetSystem.Instance.SendInfo(c001); } public void CrossRealmPKBillboardInfo(HC005_tagGCCrossRealmPKBillboardInfo info)//跨服PK赛季排行榜 { ZoneID = info.ZoneID; SeasonID = info.SeasonID; if (info.Count > 0) { RankInformationDic.Clear(); for (int i = 0; i < info.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.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); } 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.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; } } } if (RankInformationUpdate != null) { RankInformationUpdate(); } } } System/CrossServerOneVsOne/RankCellCtrl.cs
@@ -22,6 +22,7 @@ [SerializeField] Text m_RankWhatTxt; [SerializeField] Text m_SegmentTxt; [SerializeField] Text m_IntegralTxt; [SerializeField] Image m_RealmImage; CrossServerRewardModel m_CrossServerRewardModel; CrossServerRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerRewardModel>()); } } public override void Refresh(CellView cell) @@ -50,6 +51,7 @@ m_RankNum.text = (index + 1).ToString(); m_RankNum.gameObject.SetActive(true); } m_RealmImage.gameObject.SetActive(false); RankingInformationClass data = null; if (crossServerRewardModel.RankInformationDic != null && index < crossServerRewardModel.RankInformationDic.Count) { @@ -57,7 +59,21 @@ } if (data != null) { m_RankButton.SetListener(()=> { DebugEx.LogError(data.PlayerID); }); m_NameTxt.text = data.PlayerName; m_JobTxt.text = OccupationNameConfig.GetOccupationName(data.Job, 0); RealmConfig presentCfg = Config.Instance.Get<RealmConfig>(data.Realm); if (presentCfg != null) { m_RealmImage.gameObject.SetActive(true); m_RealmImage.SetSprite(presentCfg.Img); } m_RankWhatTxt.text = data.Power.ToString(); Segment(data.DanLv); m_IntegralTxt.text = data.PkScore.ToString(); } else { @@ -74,8 +90,32 @@ m_SegmentTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown); } } private void Segment(int Danlv) { var config = Config.Instance.Get<CrossServerArenaConfig>(Danlv); m_SegmentTxt.text = config.Name; if (Danlv >= 24) { m_SegmentTxt.color = new Color32(255, 3, 3, 255); } else if (Danlv < 24 && Danlv > 15) { m_SegmentTxt.color = new Color32(255, 103, 1, 255); } else if (Danlv < 15 && Danlv > 10) { m_SegmentTxt.color = new Color32(218, 72, 213, 255); } else { m_SegmentTxt.color = new Color32(104, 104, 104, 255); } } } } System/CrossServerOneVsOne/RankingWin.cs
@@ -18,6 +18,20 @@ { [SerializeField] ScrollerController m_ScrollerController; [SerializeField] Button m_CloseButton; [SerializeField] Text m_TextMyRank;//我的排名 [SerializeField] Text m_TextScores;//我的积分 [SerializeField] GameObject m_DivisionObj;//赛区 [SerializeField] Text m_DivisionNameText1;//赛区名 [SerializeField] Button m_PullButton1;//拉选按钮 [SerializeField] GameObject m_ClickScreenOtherSpace1; [SerializeField] ScrollerController m_ScrollerController1; [SerializeField] GameObject m_SeasonObj;//赛季 [SerializeField] Text m_DivisionNameText2;//赛季名 [SerializeField] Button m_PullButton2;//拉选按钮 [SerializeField] GameObject m_ClickScreenOtherSpace2; [SerializeField] ScrollerController m_ScrollerController2; #region Built-in protected override void BindController() { @@ -27,25 +41,45 @@ protected override void AddListeners() { m_CloseButton.AddListener(()=> { Close(); }); m_PullButton1.AddListener(OnClickPullButton1); m_PullButton2.AddListener(OnClickPullButton2); } protected override void OnPreOpen() { m_TextScores.text = CrossServerPlayerInfo.Instance.Score.ToString(); SetTextMyRank(); OnCreateGridLineCell(m_ScrollerController); } protected override void OnAfterOpen() { CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfoEvent; } protected override void OnPreClose() { } { CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfoEvent; } protected override void OnAfterClose() { } #endregion private void OnClickPullButton1() { m_ClickScreenOtherSpace1.SetActive(true); } private void OnClickPullButton2() { m_ClickScreenOtherSpace1.SetActive(false); } private void UpdatePlayerInfoEvent() { m_TextScores.text = CrossServerPlayerInfo.Instance.Score.ToString(); SetTextMyRank(); } void OnCreateGridLineCell(ScrollerController gridCtrl) { gridCtrl.Refresh(); @@ -70,8 +104,21 @@ } private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { //DebugEx.LogError(type); //DebugEx.LogError(cell.index); } private void SetTextMyRank() { int danlv = CrossServerPlayerInfo.Instance.DanLV; var config= Config.Instance.Get<CrossServerArenaConfig>(danlv); if (config != null && danlv >= 6) { m_TextMyRank.text = config.Name; } else { m_TextMyRank.text = "未上榜"; } } }