| Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/LoginRewardModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/LoginRewardWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs
@@ -6,11 +6,13 @@ public class DTCAA0C_tagMCActLoginAwardInfo : DtcBasic { public class DTCAA0C_tagMCActLoginAwardInfo : DtcBasic { LoginRewardModel m_LoginRewardModel; LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } } public override void Done(GameNetPackBasic vNetPack) { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HAA0C_tagMCActLoginAwardInfo vNetData = vNetPack as HAA0C_tagMCActLoginAwardInfo; if (vNetData == null) { Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs
@@ -32,6 +32,7 @@ DayInfoList[i] = new tagMCActLoginAwardDayInfo(); TransBytes (out DayInfoList[i].ActCnt, vBytes, NetDataType.BYTE); TransBytes (out DayInfoList[i].TemplateList, vBytes, NetDataType.WORD, DayInfoList[i].ActCnt); TransBytes (out DayInfoList[i].WorldLV, vBytes, NetDataType.WORD); } TransBytes (out TCount, vBytes, NetDataType.BYTE); ActionInfo = new tagMCActLoginAwardAction[TCount]; @@ -41,21 +42,15 @@ TransBytes (out ActionInfo[i].ActionType, vBytes, NetDataType.WORD); TransBytes (out ActionInfo[i].TotalTimes, vBytes, NetDataType.DWORD); TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD); TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE); ActionInfo[i].ItemInfo = new tagMCActLoginAwardItem[ActionInfo[i].Count]; for (int j = 0; j < ActionInfo[i].Count; j ++) { ActionInfo[i].ItemInfo[j] = new tagMCActLoginAwardItem(); TransBytes (out ActionInfo[i].ItemInfo[j].ItemID, vBytes, NetDataType.DWORD); TransBytes (out ActionInfo[i].ItemInfo[j].ItemCnt, vBytes, NetDataType.WORD); TransBytes (out ActionInfo[i].ItemInfo[j].IsBind, vBytes, NetDataType.BYTE); } TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.WORD); TransBytes (out ActionInfo[i].ItemInfo, vBytes, NetDataType.Chars, ActionInfo[i].Count); } } public struct tagMCActLoginAwardItem { public uint ItemID; // 物品ID public ushort ItemCnt; // 物品数量 public byte IsBind; // 是否绑定 public struct tagMCActLoginAwardDayInfo { public byte ActCnt; // 数量 public ushort[] TemplateList; // 模板列表 public ushort WorldLV; // 世界等级 } public struct tagMCActLoginAwardAction { @@ -63,13 +58,8 @@ public ushort ActionType; // 活动类别 public uint TotalTimes; // 可完成的总次数,0表示不限次数 public uint SingleTimes; // 单次领奖需要的次数 public byte Count; // 物品数 public tagMCActLoginAwardItem[] ItemInfo; // 物品信息 } public struct tagMCActLoginAwardDayInfo { public byte ActCnt; // 数量 public ushort[] TemplateList; // 模板列表 public ushort Count; // 物品配置长度 public string ItemInfo; // 物品信息 } } System/OpenServerActivity/LoginRewardModel.cs
@@ -17,6 +17,7 @@ public Dictionary<int, WeekPartyDayClass> LoginAwardDayDic = new Dictionary<int, WeekPartyDayClass>();//每天的奖励信息 public Dictionary<int, WeekPartyActionClass> LoginAwardDic = new Dictionary<int, WeekPartyActionClass>();//活动模板信息 public Dictionary<int, Redpoint> RedPointDic = new Dictionary<int, Redpoint>();//红点 private Dictionary<int, int> WorldLvDic = new Dictionary<int, int>();//世界等级 public int DayNow = 0;//当前天 public int SelectedNow = 0;//获取选择天 public int LimitLV = 0;//限制等级 @@ -60,11 +61,14 @@ OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent; } public void OnBeforePlayerDataInitialize() { LoginAwardInfoDic.Clear(); LoginAwardDayDic.Clear(); LoginAwardDic.Clear(); WorldLvDic.Clear(); } public void OnPlayerLoginOk() @@ -78,7 +82,7 @@ } private void OperationEndEvent(Operation arg1, int arg2) { if (arg1 == Operation.LoginReward && arg2 == 0) if (arg1 == Operation.LoginReward && arg2 == 0) { if (onStateUpate != null) { @@ -114,7 +118,7 @@ public override void UnInit() { } public void LoginAwardInfo(HAA0C_tagMCActLoginAwardInfo info)//登录奖励活动信息 @@ -126,6 +130,10 @@ { int Index = i; var dayInfo = info.DayInfoList[i]; if (!WorldLvDic.ContainsKey(Index)) { WorldLvDic.Add(Index, dayInfo.WorldLV); } WeekPartyDayClass loginAwardDay = new WeekPartyDayClass(); loginAwardDay.TemplateList = new int[dayInfo.ActCnt]; for (int k = 0; k < dayInfo.ActCnt; k++) @@ -151,16 +159,18 @@ loginAward.ActionType = (int)ActionInfo.ActionType; loginAward.TotalTimes = (int)ActionInfo.TotalTimes; loginAward.SingleTimes = (int)ActionInfo.SingleTimes; loginAward.WeekPartyItem = new WeekPartyItemClass[ActionInfo.Count]; for (int z = 0; z < ActionInfo.Count; z++) { var item = ActionInfo.ItemInfo[z]; WeekPartyItemClass loginAwardItem = new WeekPartyItemClass(); loginAwardItem.ItemID = (int)item.ItemID; loginAwardItem.ItemCnt = (int)item.ItemCnt; loginAwardItem.IsBind = item.IsBind; loginAward.WeekPartyItem[z] = loginAwardItem; } string ItemInfoJason = ActionInfo.ItemInfo; loginAward.WeekPartyItem = GetLoginrewardItemList(i, ItemInfoJason); //for (int z = 0; z < ActionInfo.Count; z++) //{ // var item = ActionInfo.ItemInfo[z]; // WeekPartyItemClass loginAwardItem = new WeekPartyItemClass(); // loginAwardItem.ItemID = (int)item.ItemID; // loginAwardItem.ItemCnt = (int)item.ItemCnt; // loginAwardItem.IsBind = item.IsBind; // loginAward.WeekPartyItem[z] = loginAwardItem; //} if (LoginAwardDic.ContainsKey(templateID)) { LoginAwardDic[templateID] = loginAward; @@ -170,6 +180,45 @@ LoginAwardDic.Add(templateID, loginAward); } } } private WeekPartyItemClass[] GetLoginrewardItemList(int index, string jsonStr) { int count = 1; var jsonData = LitJson.JsonMapper.ToObject(jsonStr); Dictionary<int, WeekPartyItemClass[]> dic = new Dictionary<int, WeekPartyItemClass[]>(); foreach (var key in jsonData.Keys) { var worldLv = int.Parse(key); var itemArray = LitJson.JsonMapper.ToObject<int[][]>(jsonData[key].ToJson()); WeekPartyItemClass[] loginrewardItem = new WeekPartyItemClass[itemArray.Length]; count = itemArray.Length; for (int j = 0; j < itemArray.Length; j++) { WeekPartyItemClass loginAwardItem = new WeekPartyItemClass(); loginAwardItem.ItemID = itemArray[j][0]; loginAwardItem.ItemCnt = itemArray[j][1]; loginAwardItem.IsBind = itemArray[j][2]; loginrewardItem[j] = loginAwardItem; } dic.Add(worldLv, loginrewardItem); } int lv = 0; int type = 10000; if (WorldLvDic.ContainsKey(index)) { lv = WorldLvDic[index]; } WeekPartyItemClass[] Item = new WeekPartyItemClass[count]; foreach (var key in dic.Keys) { if (key > lv && type > key) { type = key; Item = dic[key]; } } return Item; } public void LoginAwardPlayerInfo(HAA0D_tagMCActLoginAwardPlayerInfo info)//登录奖励玩家活动信息 @@ -245,7 +294,7 @@ return Num; } public int GetCarryOutNum(int Day,int ID)//获取已完成次数 public int GetCarryOutNum(int Day, int ID)//获取已完成次数 { int Num = 0; if (LoginAwardInfoDic.ContainsKey(Day)) @@ -349,7 +398,8 @@ if (LoginAwardInfoDic.Count <= 0 && inday <= 0) { DayNow = 0; } else if (inday >= 0 && LoginAwardInfoDic.Count > 0 && inday < LoginAwardInfoDic.Count) } else if (inday >= 0 && LoginAwardInfoDic.Count > 0 && inday < LoginAwardInfoDic.Count) { DayNow = inday; } System/OpenServerActivity/LoginRewardWin.cs
@@ -20,6 +20,8 @@ [SerializeField] ScrollerController m_ScrollerController_2; LoginRewardModel m_LoginRewardModel; LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } } OpenServiceAchievementModel OpenServicemodel { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } } DailyQuestModel dailymodel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } List<int> SortList = new List<int>(); protected override void BindController() { @@ -145,6 +147,17 @@ private void ToAddSorting() { SortList.Clear(); int Weekday = OpenServicemodel.GetWeekDay(loginRewardModel.SelectedNow); var quests = dailymodel.GetQuestByWeekTime(Weekday); List<int> dailyIdlist = new List<int>(); foreach (var key in quests.Keys) { var _list = quests[key]; for (int i = 0; i < _list.Count; i++) { dailyIdlist.Add(_list[i]); } } foreach (var key in loginRewardModel.LoginAwardDayDic.Keys) { if (key == loginRewardModel.SelectedNow) @@ -153,7 +166,22 @@ for (int i = 0; i < loginReward.TemplateList.Length; i++) { var TemplateId = loginReward.TemplateList[i]; SortList.Add(TemplateId); var config = LoginRewardConfig.Get(TemplateId); if (config == null) { continue; } if (config.DailyQusetId != 0) { if (dailyIdlist.Contains(config.DailyQusetId)) { SortList.Add(TemplateId); } } else { SortList.Add(TemplateId); } } }