using System; using System.Collections.Generic; using System.Linq; using System.Text; using TableConfig; using LitJson; namespace Snxxz.UI { [XLua.Hotfix] [XLua.LuaCallCSharp] public class CrossServerModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk { public override void Init() { ParseFuncConfig(); } public void OnBeforePlayerDataInitialize() { } public void OnAfterPlayerDataInitialize() { } public void OnPlayerLoginOk() { } public override void UnInit() { } public bool TryGetMaxRank(out int upScore) { var arenaConfig = Config.Instance.Get(curRank); upScore = arenaConfig.LVUpScore; return upScore == 0; } #region 表数据 public int dayMaxMatchNum { get; private set; } //匹配次数上限 public List dayAwardTypelist { get; private set; } private void ParseFuncConfig() { var CrossRealmPKAward = Config.Instance.Get("CrossRealmPKAward"); var dayMatchAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical1); var dayWinAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical2); dayAwardTypelist = new List(); foreach (var num in dayWinAwardData.Keys) { int times = int.Parse(num); var items = dayWinAwardData[num]; var awardType = new AwardType(times,1); dayAwardTypelist.Add(awardType); if (items.IsArray) { for(int i = 0; i < items.Count; i++) { var itemInfo = items[i]; if(itemInfo.IsArray && itemInfo.Count >= 3) { int id = 0; int.TryParse(itemInfo[0].ToString(), out id); int count = 0; int.TryParse(itemInfo[1].ToString(), out count); int isBind = 0; int.TryParse(itemInfo[2].ToString(), out isBind); AwardItem awardItem = new AwardItem(id, count, isBind); awardType.SetAwardItems(awardItem); } } } } foreach (var num in dayMatchAwardData.Keys) { int times = int.Parse(num); var items = dayMatchAwardData[num]; var awardType = new AwardType(times,2); dayAwardTypelist.Add(awardType); if (items.IsArray) { for(int i = 0;i < items.Count; i++) { var itemInfo = items[i]; if (itemInfo.IsArray && itemInfo.Count >= 3) { int id = 0; int.TryParse(itemInfo[0].ToString(), out id); int count = 0; int.TryParse(itemInfo[1].ToString(), out count); int isBind = 0; int.TryParse(itemInfo[2].ToString(), out isBind); AwardItem awardItem = new AwardItem(id, count, isBind); awardType.SetAwardItems(awardItem); } } } } } public class AwardType { public int type; //1 胜利奖励 2 匹配奖励 public int num { get; private set;} public List awardItems = new List(); public AwardType(int _num,int _type) { type = _type; num = _num; awardItems.Clear(); } public void SetAwardItems(AwardItem awardItem) { awardItems.Add(awardItem); } } public struct AwardItem { public int itemId; public int itemCount; public int isBind; public AwardItem(int _id,int _count,int _isBind) { itemId = _id; itemCount = _count; isBind = _isBind; } } #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; } //今日匹配次数 #endregion #region 红点 #endregion } }