Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -22,9 +22,6 @@ PlayerSkillDatas m_Skill = new PlayerSkillDatas(); public PlayerSkillDatas skill { get { return m_Skill; } } PlayerRankData m_Rank = new PlayerRankData(); public PlayerRankData rank { get { return m_Rank; } } StrengthenModel strengthengmodel { get { return ModelCenter.Instance.GetModel<StrengthenModel>(); } } PlayerMethodData method { get { return ModelCenter.Instance.GetModel<PlayerMethodData>(); } } StoreModel StoreModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } } Core/GameEngine/Model/Player/Rank/PlayerRankData.cs
File was deleted Core/NetworkPackage/DTCFile/ServerPack/H10_Billboard/DTC1001_tagBillboard.cs
@@ -1,22 +1,22 @@ using UnityEngine; using System.Collections; //10 01 排行榜信息#tagBillboard// 对性能影响比较大, 需要限制tick public class DTC1001_tagBillboard : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); H1001_tagBillboard vNetData = vNetPack as H1001_tagBillboard; if (vNetData != null) { PlayerDatas.Instance.rank.OnUpdateRank(vNetData); } } } using UnityEngine; using System.Collections; using Snxxz.UI; //10 01 排行榜信息#tagBillboard// 对性能影响比较大, 需要限制tick public class DTC1001_tagBillboard : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); H1001_tagBillboard vNetData = vNetPack as H1001_tagBillboard; ModelCenter.Instance.GetModel<RankModel>().ReceivePackage(vNetData); } } Lua/Gen/PlayerDatasWrap.cs
@@ -49,7 +49,6 @@ Utils.RegisterFunc(L, Utils.GETTER_IDX, "baseData", _g_get_baseData); Utils.RegisterFunc(L, Utils.GETTER_IDX, "extersion", _g_get_extersion); Utils.RegisterFunc(L, Utils.GETTER_IDX, "skill", _g_get_skill); Utils.RegisterFunc(L, Utils.GETTER_IDX, "rank", _g_get_rank); Utils.RegisterFunc(L, Utils.GETTER_IDX, "totalExpRate", _g_get_totalExpRate); Utils.RegisterFunc(L, Utils.GETTER_IDX, "worldLv", _g_get_worldLv); Utils.RegisterFunc(L, Utils.GETTER_IDX, "worldExpRate", _g_get_worldExpRate); @@ -585,20 +584,6 @@ PlayerDatas gen_to_be_invoked = (PlayerDatas)translator.FastGetCSObj(L, 1); translator.Push(L, gen_to_be_invoked.skill); } catch(System.Exception gen_e) { return LuaAPI.luaL_error(L, "c# exception:" + gen_e); } return 1; } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int _g_get_rank(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); PlayerDatas gen_to_be_invoked = (PlayerDatas)translator.FastGetCSObj(L, 1); translator.Push(L, gen_to_be_invoked.rank); } catch(System.Exception gen_e) { return LuaAPI.luaL_error(L, "c# exception:" + gen_e); } Lua/Gen/SnxxzUIFairylandCeremonyModelWrap.cs
@@ -439,7 +439,7 @@ { PlayerRankData.RankType _type;translator.Get(L, 2, out _type); RankType _type;translator.Get(L, 2, out _type); gen_to_be_invoked.SendGetRankInfo( _type ); Lua/Gen/SnxxzUIImpactRankModelWrap.cs
@@ -662,7 +662,7 @@ { int __type = LuaAPI.xlua_tointeger(L, 2); PlayerRankData.RankType gen_ret = gen_to_be_invoked.GetRankType( __type ); RankType gen_ret = gen_to_be_invoked.GetRankType( __type ); translator.Push(L, gen_ret); @@ -1203,7 +1203,7 @@ ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); Snxxz.UI.ImpactRankModel gen_to_be_invoked = (Snxxz.UI.ImpactRankModel)translator.FastGetCSObj(L, 1); PlayerRankData.RankType gen_value;translator.Get(L, 2, out gen_value); RankType gen_value;translator.Get(L, 2, out gen_value); gen_to_be_invoked.presentBillRankType = gen_value; } catch(System.Exception gen_e) { Lua/Gen/SnxxzUINewYearFairylandCeremonyModelWrap.cs
@@ -439,7 +439,7 @@ { PlayerRankData.RankType _type;translator.Get(L, 2, out _type); RankType _type;translator.Get(L, 2, out _type); gen_to_be_invoked.SendGetRankInfo( _type ); Lua/Gen/SnxxzUIRankModelWrap.cs
@@ -29,11 +29,8 @@ Utils.RegisterFunc(L, Utils.METHOD_IDX, "SendBegRank", _m_SendBegRank); Utils.RegisterFunc(L, Utils.GETTER_IDX, "rankType", _g_get_rankType); Utils.RegisterFunc(L, Utils.GETTER_IDX, "rankList", _g_get_rankList); Utils.RegisterFunc(L, Utils.GETTER_IDX, "jumpRankType", _g_get_jumpRankType); Utils.RegisterFunc(L, Utils.SETTER_IDX, "rankType", _s_set_rankType); Utils.RegisterFunc(L, Utils.SETTER_IDX, "jumpRankType", _s_set_jumpRankType); @@ -174,7 +171,7 @@ { PlayerRankData.RankType _rankType;translator.Get(L, 2, out _rankType); RankType _rankType;translator.Get(L, 2, out _rankType); gen_to_be_invoked.SendBegRank( _rankType ); @@ -187,37 +184,6 @@ return LuaAPI.luaL_error(L, "c# exception:" + gen_e); } } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int _g_get_rankType(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1); LuaAPI.xlua_pushinteger(L, gen_to_be_invoked.rankType); } catch(System.Exception gen_e) { return LuaAPI.luaL_error(L, "c# exception:" + gen_e); } return 1; } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int _g_get_rankList(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1); translator.Push(L, gen_to_be_invoked.rankList); } catch(System.Exception gen_e) { return LuaAPI.luaL_error(L, "c# exception:" + gen_e); } return 1; } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] @@ -234,22 +200,6 @@ return 1; } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int _s_set_rankType(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); Snxxz.UI.RankModel gen_to_be_invoked = (Snxxz.UI.RankModel)translator.FastGetCSObj(L, 1); gen_to_be_invoked.rankType = LuaAPI.xlua_tointeger(L, 2); } catch(System.Exception gen_e) { return LuaAPI.luaL_error(L, "c# exception:" + gen_e); } return 0; } [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int _s_set_jumpRankType(RealStatePtr L) System/FairylandCeremony/CeremonyOutOfPrintWin.cs
@@ -20,6 +20,7 @@ ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } KingFairyModel kingFairyModel { get { return ModelCenter.Instance.GetModel<KingFairyModel>(); } } RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } } protected override void BindController() { @@ -33,7 +34,7 @@ protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList; rankModel.onRankRefresh += OnRefreshRankList; Init(); } @@ -45,7 +46,7 @@ protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList; rankModel.onRankRefresh -= OnRefreshRankList; } protected override void OnAfterClose() @@ -55,7 +56,7 @@ private void Init() { ceremonyModel.SendGetRankInfo(PlayerRankData.RankType.Def_BT_FCCostGold); ceremonyModel.SendGetRankInfo(RankType.Def_BT_FCCostGold); SetRankAward(firstItemlist,ceremonyModel.GetRankAwardByLv(1)); SetRankAward(secondItemlist, ceremonyModel.GetRankAwardByLv(2)); SetRankAward(thirdItemlist, ceremonyModel.GetRankAwardByLv(3)); @@ -66,14 +67,15 @@ private void OnRefreshRankList(int type) { if (type != (int)PlayerRankData.RankType.Def_BT_FCCostGold) return; if (type != (int)RankType.Def_BT_FCCostGold) return; RefreshRankInfo(); } private void RefreshRankInfo() { List<PlayerRankData.RankData> list = PlayerDatas.Instance.rank.GetRankList((int)PlayerRankData.RankType.Def_BT_FCCostGold); List<RankData> list = null; rankModel.TryGetRanks((int)RankType.Def_BT_FCCostGold, out list); firstNameText.text = Language.Get("CeremoneyOutOfPrint"); secondNameText.text = Language.Get("CeremoneyOutOfPrint"); thirdNameText.text = Language.Get("CeremoneyOutOfPrint"); @@ -82,20 +84,20 @@ { if (list.Count > 0) { firstNameText.text = list[0].Name1; SetRankEffect(0,(int)list[0].ID); firstNameText.text = list[0].name1; SetRankEffect(0,(int)list[0].id); } if (list.Count > 1) { secondNameText.text = list[1].Name1; SetRankEffect(1, (int)list[1].ID); secondNameText.text = list[1].name1; SetRankEffect(1, (int)list[1].id); } if (list.Count > 2) { thirdNameText.text = list[2].Name1; SetRankEffect(2, (int)list[2].ID); thirdNameText.text = list[2].name1; SetRankEffect(2, (int)list[2].id); } } } System/FairylandCeremony/FairylandCeremonyModel.cs
@@ -273,7 +273,7 @@ GameNetSystem.Instance.SendInfo(getReward); } public void SendGetRankInfo(PlayerRankData.RankType type) public void SendGetRankInfo(RankType type) { C1001_tagCWatchBillboard rankPack = new C1001_tagCWatchBillboard(); rankPack.Type = (byte)type; System/JadeDynastyTower/JadeDynastyTowerWin.cs
@@ -26,6 +26,7 @@ JadeDynastyTowerModel model { get { return ModelCenter.Instance.GetModel<JadeDynastyTowerModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } } ChallengeButtonShowState challengeButtonShowState = ChallengeButtonShowState.Normal; float timer = 0f; @@ -42,17 +43,17 @@ protected override void OnPreOpen() { model.ConfirmRedpoint02(); ModelCenter.Instance.GetModel<RankModel>().SendBegRank(PlayerRankData.RankType.JadeDynastyTower); ModelCenter.Instance.GetModel<RankModel>().SendBegRank(RankType.JadeDynastyTower); } protected override void OnAfterOpen() { PlayerDatas.Instance.rank.OnRefreshRank += DisplayRankInfo; rankModel.onRankRefresh += DisplayRankInfo; } protected override void OnPreClose() { PlayerDatas.Instance.rank.OnRefreshRank -= DisplayRankInfo; rankModel.onRankRefresh -= DisplayRankInfo; } protected override void OnAfterClose() @@ -127,7 +128,8 @@ private void DisplayRankInfo(int type) { var rankInfos = new JadeDynastyTowerRankBehaviour.RankInfo[3]; var rankDatas = PlayerDatas.Instance.rank.GetRankList(23); List<RankData> rankDatas = null; rankModel.TryGetRanks(23, out rankDatas); if (rankDatas != null) { for (var i = 0; i < Mathf.Min(3, rankDatas.Count); i++) @@ -135,15 +137,22 @@ var data = rankDatas[i]; rankInfos[i] = new JadeDynastyTowerRankBehaviour.RankInfo() { name = data.Name1, name = data.name1, floor = (int)data.cmpValue, time = (int)data.cmpValue2 }; } } var myRank = PlayerDatas.Instance.rank.GetSelfRank(23); m_RankBehaviour.Display(rankInfos, myRank); var myRank = 0; if (rankModel.TryGetMyRank(23, out myRank)) { m_RankBehaviour.Display(rankInfos, myRank); } else { m_RankBehaviour.Display(rankInfos, -1); } } private void Challenge() System/NewYearFairylandCeremony/NewYearCeremonyOutOfPrintWin.cs
@@ -20,6 +20,7 @@ ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } NewYearFairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<NewYearFairylandCeremonyModel>(); } } KingFairyModel kingFairyModel { get { return ModelCenter.Instance.GetModel<KingFairyModel>(); } } RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } } protected override void BindController() { @@ -33,7 +34,7 @@ protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList; rankModel.onRankRefresh += OnRefreshRankList; Init(); } @@ -45,7 +46,7 @@ protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList; rankModel.onRankRefresh -= OnRefreshRankList; } protected override void OnAfterClose() @@ -55,7 +56,7 @@ private void Init() { ceremonyModel.SendGetRankInfo(PlayerRankData.RankType.Def_BT_NewFCCostGold); ceremonyModel.SendGetRankInfo(RankType.Def_BT_NewFCCostGold); SetRankAward(firstItemlist,ceremonyModel.GetRankAwardByLv(1)); SetRankAward(secondItemlist, ceremonyModel.GetRankAwardByLv(2)); SetRankAward(thirdItemlist, ceremonyModel.GetRankAwardByLv(3)); @@ -66,14 +67,15 @@ private void OnRefreshRankList(int type) { if (type != (int)PlayerRankData.RankType.Def_BT_NewFCCostGold) return; if (type != (int)RankType.Def_BT_NewFCCostGold) return; RefreshRankInfo(); } private void RefreshRankInfo() { List<PlayerRankData.RankData> list = PlayerDatas.Instance.rank.GetRankList((int)PlayerRankData.RankType.Def_BT_NewFCCostGold); List<RankData> list = null; rankModel.TryGetRanks((int)RankType.Def_BT_NewFCCostGold, out list); firstNameText.text = Language.Get("CeremoneyOutOfPrint"); secondNameText.text = Language.Get("CeremoneyOutOfPrint"); thirdNameText.text = Language.Get("CeremoneyOutOfPrint"); @@ -82,20 +84,20 @@ { if (list.Count > 0) { firstNameText.text = list[0].Name1; SetRankEffect(0,(int)list[0].ID); firstNameText.text = list[0].name1; SetRankEffect(0,(int)list[0].id); } if (list.Count > 1) { secondNameText.text = list[1].Name1; SetRankEffect(1, (int)list[1].ID); secondNameText.text = list[1].name1; SetRankEffect(1, (int)list[1].id); } if (list.Count > 2) { thirdNameText.text = list[2].Name1; SetRankEffect(2, (int)list[2].ID); thirdNameText.text = list[2].name1; SetRankEffect(2, (int)list[2].id); } } } System/NewYearFairylandCeremony/NewYearFairylandCeremonyModel.cs
@@ -154,7 +154,7 @@ GameNetSystem.Instance.SendInfo(getReward); } public void SendGetRankInfo(PlayerRankData.RankType type) public void SendGetRankInfo(RankType type) { C1001_tagCWatchBillboard rankPack = new C1001_tagCWatchBillboard(); rankPack.Type = (byte)type; System/OpenServerActivity/ImpactBillRankCell.cs
@@ -34,6 +34,8 @@ } } ImpactRankModel model { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } } public override void Refresh(CellView cell) { int index = cell.index; @@ -49,19 +51,23 @@ m_RankTxt.text = (index + 1).ToString(); } PlayerRankData.RankData data = null; if (rankModel.rankList != null && index < rankModel.rankList.Count) { data = rankModel.rankList[index]; RankData data = null; List<RankData> rankDatas = null; if (rankModel.TryGetRanks((int)model.presentBillRankType, out rankDatas)) { if (index < rankDatas.Count) { data = rankDatas[index]; } } m_Compare.gameObject.SetActive(true); m_CompareImg.gameObject.SetActive(false); if (data != null) { m_NameTxt.text = data.Name1; switch ((PlayerRankData.RankType)data.type) m_NameTxt.text = data.name1; switch ((RankType)data.type) { case PlayerRankData.RankType.OpenServerRealm: case RankType.OpenServerRealm: m_Compare.gameObject.SetActive(data.cmpValue == 0); m_CompareImg.gameObject.SetActive(data.cmpValue > 0); var _realmCfg = RealmConfig.Get((int)data.cmpValue); @@ -71,7 +77,7 @@ m_CompareImg.SetNativeSize(); } break; case PlayerRankData.RankType.OpenServerRecharge: case RankType.OpenServerRecharge: m_Compare.text = (data.cmpValue / 100).ToString(); break; default: @@ -81,12 +87,12 @@ m_RankBtn.onClick.RemoveAllListeners(); m_RankBtn.onClick.AddListener(() => { if (data.ID == PlayerDatas.Instance.baseData.PlayerID) if (data.id == PlayerDatas.Instance.baseData.PlayerID) { SysNotifyMgr.Instance.ShowTip("SeePlayer_Cannot"); return; } particularModel.ViewRoleEquip((int)data.ID); particularModel.ViewRoleEquip((int)data.id); }); } else System/OpenServerActivity/ImpactBillRankWin.cs
@@ -9,7 +9,8 @@ using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { namespace Snxxz.UI { public class ImpactBillRankWin : Window { @@ -27,6 +28,8 @@ return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<ImpactRankModel>()); } } RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } } #region Built-in protected override void BindController() { @@ -39,7 +42,7 @@ protected override void OnPreOpen() { PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRank; rankModel.onRankRefresh += OnRefreshRank; OnRefreshRank((int)model.presentBillRankType); RefreshRankType(); } @@ -50,7 +53,7 @@ protected override void OnPreClose() { PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRank; rankModel.onRankRefresh -= OnRefreshRank; } protected override void OnAfterClose() @@ -91,7 +94,11 @@ m_RankCtrl.m_Scorller.RefreshActiveCellViews(); m_RankCtrl.JumpIndex(0); } int rank = PlayerDatas.Instance.rank.GetSelfRank(type); var rank = 0; if (!rankModel.TryGetMyRank(type, out rank)) { rank = -1; } if (rank == -1) { m_SelfRank.text = Language.Get("L1045"); System/OpenServerActivity/ImpactRankModel.cs
@@ -10,10 +10,13 @@ [XLua.LuaCallCSharp] public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity { RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } } public override void Init() { ParseConfig(); PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRank; rankModel.onRankRefresh += OnRefreshRank; TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; OpenServerActivityCenter.Instance.Register(0, this); @@ -21,7 +24,7 @@ public override void UnInit() { PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRank; rankModel.onRankRefresh -= OnRefreshRank; TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh; } @@ -72,8 +75,8 @@ private void OnRefreshRank(int type) { if (type >= (int)PlayerRankData.RankType.OpenServerStrengthen && type <= (int)PlayerRankData.RankType.OpenServerPet) if (type >= (int)RankType.OpenServerStrengthen && type <= (int)RankType.OpenServerPet) { foreach (var _type in m_Redpoints.Keys) { @@ -320,7 +323,11 @@ { return false; } var _rank = PlayerDatas.Instance.rank.GetSelfRank((int)GetRankType(_type)); var _rank = 0; if (!rankModel.TryGetMyRank((int)GetRankType(_type), out _rank)) { _rank = -1; } if (_rank == -1) { return false; @@ -355,32 +362,32 @@ return impactRankTypeOpenDict.ContainsKey(_type); } public PlayerRankData.RankType GetRankType(int _type) public RankType GetRankType(int _type) { switch (_type) { case 2: return PlayerRankData.RankType.OpenServerMount; return RankType.OpenServerMount; case 1: return PlayerRankData.RankType.OpenServerStrengthen; return RankType.OpenServerStrengthen; case 3: return PlayerRankData.RankType.OpenServerGem; return RankType.OpenServerGem; case 4: return PlayerRankData.RankType.OpenServerLv; return RankType.OpenServerLv; case 5: return PlayerRankData.RankType.OpenServerRealm; return RankType.OpenServerRealm; case 6: return PlayerRankData.RankType.OpenServerFightPower; return RankType.OpenServerFightPower; case 7: return PlayerRankData.RankType.OpenServerRune; return RankType.OpenServerRune; case 8: return PlayerRankData.RankType.OpenServerGodWeapon; return RankType.OpenServerGodWeapon; case 9: return PlayerRankData.RankType.OpenServerRecharge; return RankType.OpenServerRecharge; case 10: return PlayerRankData.RankType.OpenServerPet; return RankType.OpenServerPet; } return PlayerRankData.RankType.OpenServerMount; return RankType.OpenServerMount; } public struct OSCbillBoardCondition @@ -437,8 +444,8 @@ } } private PlayerRankData.RankType m_PresentBillRankType = PlayerRankData.RankType.OpenServerMount; public PlayerRankData.RankType presentBillRankType private RankType m_PresentBillRankType = RankType.OpenServerMount; public RankType presentBillRankType { get { return m_PresentBillRankType; } set @@ -563,7 +570,11 @@ var _cfg = GetRankAwardConfig(_type, i); var _start = _cfg.RankA; var _end = _cfg.RankB; var _rank = PlayerDatas.Instance.rank.GetSelfRank((int)GetRankType(_type)); var _rank = 0; if (!rankModel.TryGetMyRank((int)GetRankType(_type), out _rank)) { _rank = -1; } if (_rank != -1 && _rank >= _start && _rank <= _end && !_playerData.billAwardGet) { @@ -615,7 +626,11 @@ var _cfg = GetRankAwardConfig(_type, i); var _start = _cfg.RankA; var _end = _cfg.RankB; var _rank = PlayerDatas.Instance.rank.GetSelfRank((int)GetRankType(_type)); var _rank = 0; if (!rankModel.TryGetMyRank((int)GetRankType(_type), out _rank)) { _rank = -1; } if (_rank != -1 && _rank >= _start && _rank <= _end && !_playerData.billAwardGet) { System/OpenServerActivity/ImpactRankWin.cs
@@ -58,7 +58,7 @@ { TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh; model.OnSelectRankTypeEvent += OnSelectRankTypeEvent; PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList; rankModel.onRankRefresh += OnRefreshRankList; model.OnAwardGetEvent += OnAwardGetEvent; m_ActivityCloseList.Clear(); m_ActivityCloseTimeDict.Clear(); @@ -79,7 +79,7 @@ { TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh; model.OnSelectRankTypeEvent -= OnSelectRankTypeEvent; PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList; rankModel.onRankRefresh -= OnRefreshRankList; model.OnAwardGetEvent -= OnAwardGetEvent; } @@ -117,7 +117,6 @@ { if (type == (int)model.presentBillRankType) { rankModel.rankType = type; UpdateRanks(); } } @@ -225,7 +224,11 @@ } else { var _rank = PlayerDatas.Instance.rank.GetSelfRank((int)model.GetRankType(model.presentSelectType)); var _rank = 0; if(!rankModel.TryGetMyRank((int)model.GetRankType(model.presentSelectType),out _rank)) { _rank = -1; } if (_rank == -1) { m_RankTxt.text = Language.Get("FamilyMatchUnBeOnList"); @@ -240,7 +243,7 @@ var _hasData = model.TryGetOpenServerPlayerData(model.presentSelectType, out _playerData); switch (model.GetRankType(model.presentSelectType)) { case PlayerRankData.RankType.OpenServerRealm: case RankType.OpenServerRealm: m_TargetImg.gameObject.SetActive(_hasData && _playerData.value >= 0); m_TotalTargetValue.gameObject.SetActive(!_hasData); if (_hasData && _playerData.value >= 0) @@ -352,7 +355,11 @@ { var _start = _billRankCfg.RankA; var _end = _billRankCfg.RankB; var _rank = PlayerDatas.Instance.rank.GetSelfRank((int)model.GetRankType(model.presentSelectType)); var _rank = 0; if (!rankModel.TryGetMyRank((int)model.GetRankType(model.presentSelectType), out _rank)) { _rank = -1; } if (_rank == -1 || _rank < _start || _rank > _end) { _cell.unCompleteImg.gameObject.SetActive(!model.InImpactRank(model.presentSelectType)); @@ -460,7 +467,6 @@ SysNotifyMgr.Instance.ShowTip("FunctionNotOpen", Language.Get(StringUtility.Contact("ImpactRankType_", model.presentSelectType))); return; } ModelCenter.Instance.GetModel<RankModel>().rankType = (int)model.presentBillRankType; WindowCenter.Instance.Open<ImpactBillRankWin>(); } System/Rank/RankHeadCell.cs
@@ -8,14 +8,6 @@ { public class RankHeadCell : ScrollerUI { private RankModel m_Model; private RankModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RankModel>()); } } [SerializeField] Button rankBtn; [SerializeField] Image rankBg; [SerializeField] Image rankImgBg; @@ -28,46 +20,36 @@ [SerializeField] RectTransform m_ContainerNameMiddle; [SerializeField] RectTransform m_ContainerNameRight; RankModel model { get { return ModelCenter.Instance.GetModel<RankModel>(); } } public override void Refresh(CellView cell) { int index = cell.index; rankImgBg.gameObject.SetActive(index < 3); rankNumText.gameObject.SetActive(index >= 3); rankNumText.text = (index + 1).ToString(); if (index < 3) { rankImgBg.gameObject.SetActive(true); if (index == 0) { rankImgBg.SetSprite("Rank_First"); } else if (index == 1) { rankImgBg.SetSprite("Rank_Second"); } else if (index == 2) { rankImgBg.SetSprite("Rank_Third"); } rankNumText.gameObject.SetActive(false); } else { rankImgBg.gameObject.SetActive(false); rankNumText.text = (index + 1).ToString(); rankNumText.gameObject.SetActive(true); rankImgBg.SetSprite(index == 0 ? "Rank_First" : index == 1 ? "Rank_Second" : "Rank_Third"); } PlayerRankData.RankData data = null; if (model.rankList != null && index < model.rankList.Count) RankData data = null; List<RankData> rankDatas = null; model.TryGetRanks(model.selectRankType, out rankDatas); if (rankDatas != null && index < rankDatas.Count) { data = model.rankList[index]; data = rankDatas[index]; } realmImg.gameObject.SetActive(false); m_CompareImg.gameObject.SetActive(false); textName.rectTransform.SetParent(model.rankType != (int)PlayerRankData.RankType.Realm ? m_ContainerNameRight : m_ContainerNameMiddle); textName.rectTransform.SetParent(model.selectRankType != (int)RankType.Realm ? m_ContainerNameRight : m_ContainerNameMiddle); textName.rectTransform.localPosition = Vector3.zero; rankWhat.gameObject.SetActive(true); if (data != null) { textName.text = data.Name1; textName.text = data.name1; string jobStr = data.subType.ToString(); int occupa = 1; int.TryParse(jobStr[jobStr.Length - 1].ToString(), out occupa); @@ -75,9 +57,9 @@ int.TryParse(jobStr.Substring(0, jobStr.Length - 1), out classLv); jobText.text = OccupationNameConfig.GetOccupationName(occupa, classLv); int realmLv = 0; switch ((PlayerRankData.RankType)data.type) switch ((RankType)data.type) { case PlayerRankData.RankType.RuneTower: case RankType.RuneTower: var _runeTowerFloorCfg = RuneTowerFloorConfig.Get((int)data.cmpValue); if (_runeTowerFloorCfg == null) { @@ -100,17 +82,17 @@ } realmLv = (int)data.value1; break; case PlayerRankData.RankType.OfflineExp: case RankType.OfflineExp: ulong _expRate = (ulong)data.cmpValue * 100000000 + data.cmpValue2; rankWhat.text = UIHelper.ReplaceLargeNum(_expRate); realmLv = (int)data.value1; break; case PlayerRankData.RankType.Realm: case RankType.Realm: rankWhat.gameObject.SetActive(false); //rankWhat.text = data.cmpValue2.ToString(); realmLv = (int)data.cmpValue; break; case PlayerRankData.RankType.JadeDynastyTower: case RankType.JadeDynastyTower: realmLv = (int)data.value1; jobText.text = data.cmpValue +Language.Get("JadeDynastyBossDungeon_Floor") ; rankWhat.text =(10000-data.cmpValue2) +Language.Get("RealmWin_Bewrite_35") ; @@ -123,15 +105,15 @@ RealmConfig presentCfg = RealmConfig.Get(realmLv); if (presentCfg != null) { realmImg.gameObject.SetActive(data.type != (int)PlayerRankData.RankType.Realm); m_CompareImg.gameObject.SetActive(data.type == (int)PlayerRankData.RankType.Realm); realmImg.gameObject.SetActive(data.type != (int)RankType.Realm); m_CompareImg.gameObject.SetActive(data.type == (int)RankType.Realm); realmImg.SetSprite(presentCfg.Img); realmImg.SetNativeSize(); m_CompareImg.SetSprite(presentCfg.Img); m_CompareImg.SetNativeSize(); } bool isSelf = data.ID == PlayerDatas.Instance.PlayerId; bool isSelf = data.id == PlayerDatas.Instance.PlayerId; textName.color = UIHelper.GetUIColor(isSelf ? TextColType.DarkGreen : TextColType.NavyBrown); jobText.color = UIHelper.GetUIColor(isSelf ? TextColType.DarkGreen : TextColType.NavyBrown); rankWhat.color = UIHelper.GetUIColor(isSelf ? TextColType.DarkGreen : TextColType.NavyBrown); System/Rank/RankModel.cs
@@ -5,43 +5,236 @@ namespace Snxxz.UI { [XLua.LuaCallCSharp] public class RankModel : Model, IPlayerLoginOk { private int m_RankType = 0; public int rankType { get { return m_RankType; } public class RankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { Dictionary<int, List<RankData>> m_RankDatas = new Dictionary<int, List<RankData>>(); public Dictionary<int, List<int>> displaySubRanks = new Dictionary<int, List<int>>(); public Dictionary<int, bool> subRankSpreads = new Dictionary<int, bool>(); public List<int> displayRanks = new List<int>(); int m_SelectRankId = 0; public int selectRankId { get { return m_SelectRankId; } set { m_RankType = value; rankList = PlayerDatas.Instance.rank.GetRankList(value); } } { if (m_SelectRankId != value) { m_SelectRankId = value; if (selectRankIdRefresh != null) { selectRankIdRefresh(); } } } } int m_SelectSubRankId = 0; public int selectSubRankId { get { return m_SelectSubRankId; } set { if (m_SelectSubRankId != value) { m_SelectSubRankId = value; if (selectSubRankIdRefresh != null) { selectSubRankIdRefresh(); } } } } public int selectRankType { get { if (displaySubRanks.ContainsKey(selectRankId)) { var config = RankListConfig.Get(selectSubRankId); return config == null ? 0 : config.type; } else { var config = RankListConfig.Get(selectRankId); return config == null ? 0 : config.type; } } } public List<PlayerRankData.RankData> rankList { get; private set; } public int displayRankCount { get; private set; } public int jumpRankType { get; set; } readonly ObjectPool<RankData> m_RankDataPool = new ObjectPool<RankData>(OnGetRankData, OnReleaseRankData); public int jumpRankType { get; set; } public event Action selectRankIdRefresh; public event Action selectSubRankIdRefresh; public event Action<int> onRankRefresh; public override void Init() { jumpRankType = -1; ParseConfig(); } public void OnBeforePlayerDataInitialize() { foreach (var rankDatas in m_RankDatas.Values) { foreach (var item in rankDatas) { m_RankDataPool.Add(item); } } m_RankDatas.Clear(); } public void OnPlayerLoginOk() { SendBegRank(PlayerRankData.RankType.JadeDynastyTower); SendBegRank(RankType.JadeDynastyTower); } public override void UnInit() { } public void SendBegRank(PlayerRankData.RankType rankType) void ParseConfig() { { var config = FuncConfigConfig.Get("RankListCnt"); displayRankCount = int.Parse(config.Numerical1); } { var configs = RankListConfig.GetValues(); foreach (var config in configs) { if (config.ID >= 100) { var rankId = config.ID / 100; List<int> subRanks = null; if (!displaySubRanks.TryGetValue(rankId, out subRanks)) { subRanks = new List<int>(); displaySubRanks.Add(rankId, subRanks); } subRanks.Add(config.ID); } else { displayRanks.Add(config.ID); } } } } public bool TryGetRanks(int type, out List<RankData> ranks) { return m_RankDatas.TryGetValue(type, out ranks); } public bool TryGetMyRank(int type, out int rank) { rank = 0; var playerId = PlayerDatas.Instance.baseData.PlayerID; List<RankData> rankDatas = null; if (TryGetRanks(type, out rankDatas)) { for (int i = 0; i < rankDatas.Count; i++) { if (rankDatas[i].id == playerId) { rank = i + 1; return true; } } } return false; } public void SendBegRank(RankType rankType) { C1001_tagCWatchBillboard rankPack = new C1001_tagCWatchBillboard(); rankPack.Type = (byte)rankType; GameNetSystem.Instance.SendInfo(rankPack); } } public void ReceivePackage(H1001_tagBillboard package) { List<RankData> rankDatas = null; if (!m_RankDatas.TryGetValue(package.Type, out rankDatas)) { rankDatas = new List<RankData>(); m_RankDatas.Add(package.Type, rankDatas); } for (int i = 0; i < package.BillboardCount; i++) { if (i < rankDatas.Count) { rankDatas[i].type = package.Type; ReSetRankData(rankDatas[i], package.Billboard[i]); } else { var rankData = m_RankDataPool.inactivedCount > 0 ? m_RankDataPool.Get() : new RankData(); ReSetRankData(rankData, package.Billboard[i]); rankDatas.Add(rankData); } } var start = package.BillboardCount; var end = rankDatas.Count; for (int i = end - 1; i >= start; i--) { RankData data = rankDatas[i]; rankDatas.RemoveAt(i); m_RankDataPool.Add(data); } if (onRankRefresh != null) { onRankRefresh(package.Type); } } void ReSetRankData(RankData data, H1001_tagBillboard.tagBillboardList serverData) { data.id = serverData.ID; data.name1 = serverData.Name1; data.name2 = serverData.Name2; data.subType = serverData.Type2; data.value1 = serverData.Value1; data.value2 = serverData.Value2; data.cmpValue = serverData.CmpValue; data.cmpValue2 = serverData.CmpValue2; data.cmpValue3 = serverData.CmpValue3; } static void OnGetRankData(RankData data) { } static void OnReleaseRankData(RankData data) { } } public class RankData { public int type; public int subType; public uint id; public string name1; public string name2; public uint value1; public uint value2; public uint cmpValue; public uint cmpValue2; public uint cmpValue3; } } System/Rank/RankPanel.cs
@@ -10,290 +10,18 @@ { public class RankPanel : Window { [SerializeField] FunctionButton titleRank; [SerializeField] Text m_RankTip; [SerializeField] ScrollerController rankTypeCtrl; private List<RankListConfig> m_RankTypeCfgList; private List<RankListConfig> m_SubRankCfgList = new List<RankListConfig>(); private Dictionary<int, bool> m_SubRankSpread = new Dictionary<int, bool>(); private int sltRankType = 0; private int sltSubRank = 0; private int sltRankServerType = -1; [SerializeField] FunctionButton m_RankFunc; [SerializeField] Text m_RankRemind; [SerializeField] ScrollerController m_RankTypeController; [SerializeField] Text[] m_RankTitles; [SerializeField] Text m_MyRank; [SerializeField] ScrollerController m_RankListController; [SerializeField] Button m_Close; [SerializeField] List<Text> textAttrList; RankModel model { get { return ModelCenter.Instance.GetModel<RankModel>(); } } RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } } [SerializeField] Text textSelfRank; [SerializeField] ScrollerController rankListCtrl; List<PlayerRankData.RankData> rankList = null; FuncConfigConfig funcRankCnt; [SerializeField] Button closeBtn; private RankModel m_Model; private RankModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RankModel>()); } } private RoleParticularModel m_RoleParticularModel; private RoleParticularModel particularModel { get { return m_RoleParticularModel ?? (m_RoleParticularModel = ModelCenter.Instance.GetModel<RoleParticularModel>()); } } private void OnCloseClick() { CloseClick(); } void OnRefreshRankType() { if (m_RankTypeCfgList == null) { m_RankTypeCfgList = RankListConfig.GetAllRankType().Values.ToList(); for (int i = 0; i < m_RankTypeCfgList.Count; i++) { m_SubRankSpread.Add(m_RankTypeCfgList[i].ID, false); } } rankTypeCtrl.Refresh(); m_SubRankCfgList.Clear(); for (int i = 0; i < m_RankTypeCfgList.Count; i++) { RankListConfig rank = m_RankTypeCfgList[i]; List<RankListConfig> list = RankListConfig.GetAllSubRank(rank.ID); rankTypeCtrl.AddCell(ScrollerDataType.Header, i, OnRankTypeClick); if (list != null && sltRankType == rank.ID && m_SubRankSpread[rank.ID]) { for (int j = 0; j < list.Count; j++) { rankTypeCtrl.AddCell(ScrollerDataType.Normal, list[j].ID); } m_SubRankCfgList.AddRange(list); } } rankTypeCtrl.Restart(); } private void OnRankTypeClick(CellView cell) { OnRankTypeClick(m_RankTypeCfgList[cell.index].ID); } private void OnRankTypeClick(int type) { if (type == sltRankType && RankListConfig.GetAllSubRank(type) == null) { return; } if (RankListConfig.GetAllSubRank(type) != null) { bool _same = sltRankType == type; if (!_same && m_SubRankSpread.ContainsKey(sltRankType)) { m_SubRankSpread[sltRankType] = !m_SubRankSpread[sltRankType]; } sltRankType = type; m_SubRankSpread[type] = !m_SubRankSpread[type]; OnRefreshRankType(); if (!_same) OnSubRankClick(RankListConfig.GetAllSubRank(type)[0]); } else { ClearSubRankSpread(); sltRankType = type; OnRefreshRankType(); var config = RankListConfig.GetRankType(sltRankType); SetRankAttr(config.RankAtt); sltRankServerType = RankListConfig.GetRankType(sltRankType).type; SendBegRank(RankListConfig.GetRankType(sltRankType)); sltSubRank = 0; } m_RankTip.text = UIHelper.ReplaceNewLine(Language.Get(StringUtility.Contact("RankTip_", sltRankType))); } private void ClearSubRankSpread() { for (int i = 0; i < m_RankTypeCfgList.Count; i++) { m_SubRankSpread[m_RankTypeCfgList[i].ID] = false; } } private void OnRefreshRankTypeCell(ScrollerDataType type, CellView cell) { switch (type) { case ScrollerDataType.Header: { RankListConfig cfg = m_RankTypeCfgList[cell.index]; if (cfg != null) { Text text = cell.transform.Find("Txt").GetComponent<Text>(); text.text = cfg.ListName; Image img = cell.GetComponent<Image>(); if (cfg.ID == sltRankType) { img.SetSprite("ListBtn_Select"); } else { img.SetSprite("ListBtn_UnSelect"); } if (RankListConfig.GetAllSubRank(cfg.ID) == null) { img = cell.transform.Find("Arrow").GetComponent<Image>(); img.gameObject.SetActive(false); } else { if (m_SubRankSpread[cfg.ID]) { img.SetSprite("ListBtn_UnSelect"); } img = cell.transform.Find("Arrow").GetComponent<Image>(); img.gameObject.SetActive(true); img.transform.localEulerAngles = m_SubRankSpread[cfg.ID] ? new Vector3(0, 0, -90) : Vector3.zero; img.SetSprite(m_SubRankSpread[cfg.ID] ? "Arrow_a" : "ArrowLight_a"); } } } break; case ScrollerDataType.Normal: { RankListConfig cfg = RankListConfig.GetSubRank(cell.index); if (cfg != null) { Text text = cell.transform.Find("Button/Text").GetComponent<Text>(); text.text = cfg.ListName; Button btn = cell.transform.Find("Button").GetComponent<Button>(); btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => { OnSubRankClick(cfg); }); Image img = btn.GetComponent<Image>(); if (cfg.ID == sltSubRank) { img.SetSprite("ChildListBtn_Select"); } else { img.SetSprite("ChildListBtn_UnSelect"); } } } break; } } private void OnSubRankClick(RankListConfig cfg) { if (sltSubRank == cfg.ID) return; sltRankServerType = cfg.type; sltSubRank = cfg.ID; SetRankAttr(cfg.RankAtt); rankTypeCtrl.m_Scorller.RefreshActiveCellViews(); SendBegRank(cfg); } private void SendBegRank(RankListConfig cfg) { OnRefreshRankList(cfg.type); if (PlayerDatas.Instance.rank.GetRankList((int)cfg.type) != null) { if (!CoroutineMgr.Instance.CanBegRank(cfg.type)) { return; } } if (CoroutineMgr.Instance.CanBegRank(cfg.type)) { CoroutineMgr.Instance.StartBegRank(cfg.type); } C1001_tagCWatchBillboard rankPack = new C1001_tagCWatchBillboard(); rankPack.Type = (byte)cfg.type; GameNetSystem.Instance.SendInfo(rankPack); } private void SetRankAttr(string[] strs) { for (int i = 0; i < textAttrList.Count; i++) { if (strs != null && i < strs.Length) { textAttrList[i].gameObject.SetActive(true); textAttrList[i].text = strs[i]; } else { textAttrList[i].gameObject.SetActive(false); } } } private void OnRefreshRankList(int type) { if (type != sltRankServerType) return; model.rankType = type; rankList = PlayerDatas.Instance.rank.GetRankList(type); if (rankListCtrl.GetNumberOfCells(rankListCtrl.m_Scorller) < 1) { rankListCtrl.Refresh(); for (int i = 0; i < int.Parse(funcRankCnt.Numerical1); i++) { if (i % 2 == 0) { rankListCtrl.AddCell(ScrollerDataType.Normal, i, OnRankListClick); } else { rankListCtrl.AddCell(ScrollerDataType.Header, i, OnRankListClick); } } rankListCtrl.Restart(); } else { rankListCtrl.m_Scorller.RefreshActiveCellViews(); rankListCtrl.JumpIndex(0); } int rank = PlayerDatas.Instance.rank.GetSelfRank(type); if (rank == -1) { textSelfRank.text = Language.Get("L1045"); } else { textSelfRank.text = Language.Get("L1092", rank); } } private void OnRankListClick(CellView cell) { int index = cell.index; if (model.rankList == null) { return; } if (index < model.rankList.Count) { if (model.rankList[index].ID == PlayerDatas.Instance.baseData.PlayerID) { SysNotifyMgr.Instance.ShowTip("SeePlayer_Cannot"); return; } particularModel.ViewRoleEquip((int)model.rankList[index].ID); } } Dictionary<int, DateTime> requestRankTime = new Dictionary<int, DateTime>(); protected override void BindController() { @@ -302,48 +30,36 @@ protected override void AddListeners() { rankTypeCtrl.OnRefreshCell += OnRefreshRankTypeCell; rankTypeCtrl.lockType = EnhanceLockType.KeepVertical; closeBtn.onClick.AddListener(OnCloseClick); m_RankTypeController.OnRefreshCell += OnRefreshRankTypeCell; m_RankTypeController.lockType = EnhanceLockType.KeepVertical; m_Close.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList; model.onRankRefresh += OnRankRefresh; model.selectRankIdRefresh += SelectRankIdRefresh; model.selectSubRankIdRefresh += SelectSubRankIdRefresh; if (funcRankCnt == null) requestRankTime.Clear(); for (int i = 0; i < model.displayRanks.Count; i++) { funcRankCnt = FuncConfigConfig.Get("RankListCnt"); model.subRankSpreads[model.displayRanks[i]] = false; } sltRankType = 0; sltSubRank = 0; SetDefaultSelect(); var clickRankType = 1; Display(); var index = -1; if (model.jumpRankType != -1) { var list = RankListConfig.GetAllRankType().Keys.ToList(); index = list.IndexOf(model.jumpRankType); } if (index != -1) { clickRankType = model.jumpRankType; model.jumpRankType = -1; } index = index == -1 ? 0 : index; OnRefreshRankType(); rankTypeCtrl.JumpIndex(index); OnRankTypeClick(clickRankType); var index = model.displayRanks.IndexOf(model.selectRankId); m_RankTypeController.JumpIndex(index); } protected override void OnActived() { base.OnActived(); titleRank.state = TitleBtnState.Click; m_RankFunc.state = TitleBtnState.Click; } protected override void OnAfterOpen() @@ -353,17 +69,241 @@ protected override void OnPreClose() { ClearSubRankSpread(); model.onRankRefresh -= OnRankRefresh; model.selectRankIdRefresh -= SelectRankIdRefresh; model.selectSubRankIdRefresh -= SelectSubRankIdRefresh; } protected override void OnAfterClose() { PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList; if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } void SetDefaultSelect() { if (model.jumpRankType != -1) { var rankId = model.jumpRankType; if (model.jumpRankType > 100) { rankId = model.jumpRankType / 100; } if (model.displayRanks.Contains(rankId)) { model.selectRankId = rankId; if (model.displaySubRanks.ContainsKey(rankId)) { model.selectSubRankId = model.jumpRankType; } } } else { model.selectRankId = 1; } model.jumpRankType = -1; } void Display() { DisplayRankTypes(); DisplayRankTitles(); DisplayRemind(); DisplayRanks(); } void DisplayRankTypes() { m_RankTypeController.Refresh(); for (int i = 0; i < model.displayRanks.Count; i++) { var rankId = model.displayRanks[i]; m_RankTypeController.AddCell(ScrollerDataType.Header, rankId, OnSelectRankId); if (model.displaySubRanks.ContainsKey(rankId) && model.selectRankId == rankId && model.subRankSpreads[rankId]) { var subRanks = model.displaySubRanks[rankId]; for (int j = 0; j < subRanks.Count; j++) { m_RankTypeController.AddCell(ScrollerDataType.Normal, subRanks[j], OnSelectSubRankId); } } } m_RankTypeController.Restart(); } void DisplayRankTitles() { var rankId = model.selectRankId; if (model.displaySubRanks.ContainsKey(model.selectRankId)) { rankId = model.selectSubRankId; } var config = RankListConfig.Get(rankId); for (int i = 0; i < m_RankTitles.Length; i++) { if (config.RankAtt != null && i < config.RankAtt.Length) { m_RankTitles[i].gameObject.SetActive(true); m_RankTitles[i].text = config.RankAtt[i]; } else { m_RankTitles[i].gameObject.SetActive(false); } } } void DisplayRemind() { m_RankRemind.text = UIHelper.ReplaceNewLine(Language.Get(StringUtility.Contact("RankTip_", model.selectRankId))); } void DisplayRanks() { if (m_RankListController.GetNumberOfCells(m_RankListController.m_Scorller) < 1) { m_RankListController.Refresh(); for (int i = 0; i < model.displayRankCount; i++) { m_RankListController.AddCell(i % 2 == 0 ? ScrollerDataType.Normal : ScrollerDataType.Header, i, OnSelectRank); } m_RankListController.Restart(); } else { m_RankListController.m_Scorller.RefreshActiveCellViews(); m_RankListController.JumpIndex(0); } int rank = 0; if (model.TryGetMyRank(model.selectRankType, out rank)) { m_MyRank.text = Language.Get("L1092", rank); } else { m_MyRank.text = Language.Get("L1045"); } } private void OnRankRefresh(int type) { if (type == model.selectRankType) { DisplayRanks(); } } private void OnSelectRankId(CellView cell) { var rankId = cell.index; if (model.selectRankId == rankId) { if (model.displaySubRanks.ContainsKey(rankId)) { model.subRankSpreads[rankId] = !model.subRankSpreads[rankId]; DisplayRankTypes(); } } else { model.selectRankId = rankId; } } void OnSelectSubRankId(CellView cell) { model.selectSubRankId = cell.index; m_RankTypeController.m_Scorller.RefreshActiveCellViews(); } private void OnRefreshRankTypeCell(ScrollerDataType type, CellView cell) { switch (type) { case ScrollerDataType.Header: { var rankTypeCell = cell as RankTypeCell; rankTypeCell.Display(cell.index); } break; case ScrollerDataType.Normal: { var rankSubTypeCell = cell as RankSubTypeCell; rankSubTypeCell.Display(cell.index); } break; } } private void RequestRanks(int type) { if (requestRankTime.ContainsKey(type)) { if ((DateTime.Now - requestRankTime[type]).TotalSeconds < 1f) { return; } } var pak = new C1001_tagCWatchBillboard(); pak.Type = (byte)type; GameNetSystem.Instance.SendInfo(pak); requestRankTime[type] = DateTime.Now; } private void SelectSubRankIdRefresh() { m_RankTypeController.m_Scorller.RefreshActiveCellViews(); RequestRanks(model.selectRankType); DisplayRanks(); DisplayRankTitles(); } private void SelectRankIdRefresh() { foreach (var rankId in model.displayRanks) { model.subRankSpreads[rankId] = false; } if (model.displaySubRanks.ContainsKey(model.selectRankId)) { var subRanks = model.displaySubRanks[model.selectRankId]; model.selectSubRankId = subRanks[0]; model.subRankSpreads[model.selectRankId] = true; DisplayRemind(); } else { RequestRanks(model.selectRankType); DisplayRanks(); DisplayRankTitles(); DisplayRemind(); } DisplayRankTypes(); } private void OnSelectRank(CellView cell) { List<RankData> rankDatas = null; if (model.TryGetRanks(model.selectRankType, out rankDatas)) { int index = cell.index; if (index < rankDatas.Count) { if (rankDatas[index].id == PlayerDatas.Instance.baseData.PlayerID) { SysNotifyMgr.Instance.ShowTip("SeePlayer_Cannot"); return; } roleParticularModel.ViewRoleEquip((int)rankDatas[index].id); } } } } } System/Rank/RankSubTypeCell.cs
New file @@ -0,0 +1,23 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RankSubTypeCell : CellView { [SerializeField] Text m_RankType; [SerializeField] Image m_Bottom; RankModel model { get { return ModelCenter.Instance.GetModel<RankModel>(); } } public void Display(int subRankId) { var config = RankListConfig.Get(subRankId); m_RankType.text = config.ListName; m_Bottom.SetSprite(subRankId == model.selectSubRankId ? "ChildListBtn_Select" : "ChildListBtn_UnSelect"); } } } System/Rank/RankSubTypeCell.cs.meta
File was renamed from Core/GameEngine/Model/Player/Rank/PlayerRankData.cs.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: aebaa8b5f6b13d540a3669d76915f5ff timeCreated: 1503386620 licenseType: Free guid: 9bbada0efe8c2da478109a7980a012f8 timeCreated: 1552641950 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] System/Rank/RankTypeCell.cs
New file @@ -0,0 +1,34 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RankTypeCell : CellView { [SerializeField] Text m_RankType; [SerializeField] Image m_Bottom; [SerializeField] Image m_Arrow; RankModel model { get { return ModelCenter.Instance.GetModel<RankModel>(); } } public void Display(int rankId) { var config = RankListConfig.Get(rankId); m_RankType.text = config.ListName; m_Bottom.SetSprite(rankId == model.selectRankId ? "ListBtn_Select" : "ListBtn_UnSelect"); m_Arrow.gameObject.SetActive(model.displaySubRanks.ContainsKey(rankId)); if (model.subRankSpreads[rankId]) { m_Bottom.SetSprite("ListBtn_UnSelect"); } m_Arrow.transform.localEulerAngles = model.subRankSpreads[rankId] ? new Vector3(0, 0, -90) : Vector3.zero; m_Arrow.SetSprite(model.subRankSpreads[rankId] ? "Arrow_a" : "ArrowLight_a"); } } } System/Rank/RankTypeCell.cs.metacopy from Core/GameEngine/Model/Player/Rank/PlayerRankData.cs.meta copy to System/Rank/RankTypeCell.cs.meta
File was copied from Core/GameEngine/Model/Player/Rank/PlayerRankData.cs.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: aebaa8b5f6b13d540a3669d76915f5ff timeCreated: 1503386620 licenseType: Free guid: 00eb1dda1f1890b42819c44c1728f35a timeCreated: 1552641183 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] System/SystemSetting/ActivitiesPushModel.cs
@@ -94,7 +94,7 @@ int remainSecond = day * 24 * 60 * 60 + remainHour * 60 * 60 + remainMinute * 60; if (remainSecond > 0) { PlayerRankData.RankType rankType = impactRank.GetRankType(rankTypelist[i]); RankType rankType = impactRank.GetRankType(rankTypelist[i]); string rankName = StringUtility.Contact("OSCBillRankTitle_", rankType); SendPushInfo(GetPushJsonData(rankStartId, remainSecond, Language.Get("SetUpPrivate106"), Language.Get("SetUpPrivate107", Language.Get(rankName)))); } @@ -119,7 +119,7 @@ int remainSecond = (day - 1) * 24 * 60 * 60 + remainHour * 60 * 60 + remainMinute * 60; if (remainSecond > 0) { PlayerRankData.RankType rankType = impactRank.GetRankType(rankTypelist[i]); RankType rankType = impactRank.GetRankType(rankTypelist[i]); string rankName = StringUtility.Contact("OSCBillRankTitle_", rankType); SendPushInfo(GetPushJsonData(rankEndId, remainSecond, Language.Get("SetUpPrivate106"), Language.Get("SetUpPrivate108", Language.Get(rankName)))); } Utility/EnumHelper.cs
@@ -1696,3 +1696,30 @@ ExitPrepare, ElderGodAreaNearDead, } public enum RankType { FightPower = 0, Job1FightPower = 1, Job2FightPower = 2, Job3FightPower = 3, Level = 4, Mount = 5, Pet = 6, RuneTower = 7, OfflineExp = 8, Realm = 9, OpenServerStrengthen = 11, OpenServerMount = 12, OpenServerGem = 13, OpenServerLv = 14, OpenServerRealm = 15, OpenServerFightPower = 16, Def_BT_FCCostGold = 17, //消费排行榜(仙界盛典) OpenServerRune = 18, OpenServerGodWeapon = 20, OpenServerRecharge = 21, OpenServerPet = 22, JadeDynastyTower = 23,//诛仙塔排行榜 Def_BT_NewFCCostGold = 24, //消费排行榜(新仙界盛典) 24 }