Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -437,6 +437,8 @@ Register(typeof(HB204_tagMCIceLodeInfo), typeof(DTCB204_tagMCIceLodeInfo)); Register(typeof(HB204_tagMCIceLodeInfo), typeof(DTCB204_tagMCIceLodeInfo)); Register(typeof(HA806_tagMCMysticalShopTimeInfo), typeof(DTCA806_tagMCMysticalShopTimeInfo)); Register(typeof(HAA0A_tagMCWeekPartyInfo), typeof(DTCAA0A_tagMCWeekPartyInfo)); Register(typeof(HAA0B_tagMCWeekPartyPlayerInfo), typeof(DTCAA0B_tagMCWeekPartyPlayerInfo)); } private static void Register(Type _pack, Type _business) Core/GameEngine/Model/Config/WeekPartyConfig.cs
New file @@ -0,0 +1,53 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, January 10, 2019 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class WeekPartyConfig : ConfigBase { public int Id { get ; private set ; } public int ActionType { get ; private set ; } public string Description { get ; private set; } public int jump { get ; private set ; } public int order { get ; private set ; } public int DailyQusetId { get ; private set ; } public override string getKey() { return Id.ToString(); } public override void Parse() { try { Id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; ActionType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; Description = rawContents[2].Trim(); jump=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; order=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; DailyQusetId=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/WeekPartyConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 59a36668b02da3d4fb47cbc1579228be timeCreated: 1547105026 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -220,6 +220,7 @@ AddAsyncTask<KingTreasureConfig>(); AddAsyncTask<KingTreasureItemConfig>(); AddAsyncTask<CrossServerBossConfig>(); AddAsyncTask<WeekPartyConfig>(); AddAsyncTask<FashionDressCabinetConfig>(); AddAsyncTask<FashionDressConfig>(); Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs
New file @@ -0,0 +1,18 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo public class DTCAA0A_tagMCWeekPartyInfo : DtcBasic { OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HAA0A_tagMCWeekPartyInfo vNetData = vNetPack as HAA0A_tagMCWeekPartyInfo; if (vNetData == null) { return; } model.WeekPartyInfo(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 72692874cbc2b764695a9f3d16eaa2ef timeCreated: 1546914880 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs
New file @@ -0,0 +1,19 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // AA 0B 周狂欢玩家活动信息 #tagMCWeekPartyPlayerInfo public class DTCAA0B_tagMCWeekPartyPlayerInfo : DtcBasic { OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HAA0B_tagMCWeekPartyPlayerInfo vNetData = vNetPack as HAA0B_tagMCWeekPartyPlayerInfo; if (vNetData == null) { return; } model.WeekPartyPlayerInfo(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0B_tagMCWeekPartyPlayerInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 58aba46fc0042c3418fb8532a50ab92d timeCreated: 1546914879 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs
New file @@ -0,0 +1,88 @@ using UnityEngine; using System.Collections; // AA 0A 周狂欢活动信息 #tagMCWeekPartyInfo public class HAA0A_tagMCWeekPartyInfo : GameNetPackBasic { public string StartDate; // 开始日期 y-m-d public string EndtDate; // 结束日期 y-m-d public byte IsDayReset; //是否每天重置 public byte ResetType; // 重置类型,0-0点重置;1-5点重置 public ushort LimitLV; // 限制等级 public byte DayCnt; // 天数 public tagMCWeekPartyDayInfo[] DayInfoList; // 每天模板 public byte TCount; // 模板数 public tagMCWeekPartyAction[] ActionInfo; // 活动模板信息 public HAA0A_tagMCWeekPartyInfo () { _cmd = (ushort)0xAA0A; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out StartDate, vBytes, NetDataType.Chars, 10); TransBytes (out EndtDate, vBytes, NetDataType.Chars, 10); TransBytes (out IsDayReset, vBytes, NetDataType.BYTE); TransBytes (out ResetType, vBytes, NetDataType.BYTE); TransBytes (out LimitLV, vBytes, NetDataType.WORD); TransBytes (out DayCnt, vBytes, NetDataType.BYTE); DayInfoList = new tagMCWeekPartyDayInfo[DayCnt]; for (int i = 0; i < DayCnt; i ++) { DayInfoList[i] = new tagMCWeekPartyDayInfo(); TransBytes (out DayInfoList[i].ActCnt, vBytes, NetDataType.BYTE); TransBytes (out DayInfoList[i].TemplateList, vBytes, NetDataType.WORD, DayInfoList[i].ActCnt); TransBytes (out DayInfoList[i].PCount, vBytes, NetDataType.BYTE); DayInfoList[i].PItemInfo = new tagMCWeekPartyItem[DayInfoList[i].PCount]; for (int j = 0; j < DayInfoList[i].PCount; j ++) { DayInfoList[i].PItemInfo[j] = new tagMCWeekPartyItem(); TransBytes (out DayInfoList[i].PItemInfo[j].NeedPoint, vBytes, NetDataType.WORD); TransBytes (out DayInfoList[i].PItemInfo[j].ItemID, vBytes, NetDataType.DWORD); TransBytes (out DayInfoList[i].PItemInfo[j].ItemCnt, vBytes, NetDataType.WORD); TransBytes (out DayInfoList[i].PItemInfo[j].IsBind, vBytes, NetDataType.BYTE); } } TransBytes (out TCount, vBytes, NetDataType.BYTE); ActionInfo = new tagMCWeekPartyAction[TCount]; for (int i = 0; i < TCount; i ++) { ActionInfo[i] = new tagMCWeekPartyAction(); TransBytes (out ActionInfo[i].TemplateID, vBytes, NetDataType.DWORD); TransBytes (out ActionInfo[i].ActionType, vBytes, NetDataType.WORD); TransBytes (out ActionInfo[i].TotalTimes, vBytes, NetDataType.BYTE); TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD); TransBytes (out ActionInfo[i].Point, vBytes, NetDataType.DWORD); TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE); ActionInfo[i].ItemInfo = new tagMCWeekPartyItem[ActionInfo[i].Count]; for (int j = 0; j < ActionInfo[i].Count; j ++) { ActionInfo[i].ItemInfo[j] = new tagMCWeekPartyItem(); TransBytes (out ActionInfo[i].ItemInfo[j].NeedPoint, vBytes, NetDataType.WORD); 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); } } } public struct tagMCWeekPartyItem { public ushort NeedPoint; // 领奖需要积分 public uint ItemID; // 物品ID public ushort ItemCnt; // 物品数量 public byte IsBind; // 是否绑定 } public struct tagMCWeekPartyAction { public uint TemplateID; // 模板ID public ushort ActionType; // 活动类别 public byte TotalTimes; // 可完成的总次数,0表示不限次数 public uint SingleTimes; // 单次领奖需要的次数 public uint Point; // 单次领奖积分 public byte Count; // 物品数 public tagMCWeekPartyItem[] ItemInfo; // 物品信息 } public struct tagMCWeekPartyDayInfo { public byte ActCnt; // 数量 public ushort[] TemplateList; // 模板列表 public byte PCount; // 物品数 public tagMCWeekPartyItem[] PItemInfo; // 物品信息 } } Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0A_tagMCWeekPartyInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 105a5325e78cad84baafa89fb8522311 timeCreated: 1546914879 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs
New file @@ -0,0 +1,47 @@ using UnityEngine; using System.Collections; // AA 0B 周狂欢玩家活动信息 #tagMCWeekPartyPlayerInfo public class HAA0B_tagMCWeekPartyPlayerInfo : GameNetPackBasic { public byte Count; public tagMCWeekPartyDayPlayerInfo[] DayInfoList; //活动完成次数信息 public HAA0B_tagMCWeekPartyPlayerInfo () { _cmd = (ushort)0xAA0B; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out Count, vBytes, NetDataType.BYTE); DayInfoList = new tagMCWeekPartyDayPlayerInfo[Count]; for (int i = 0; i < Count; i ++) { DayInfoList[i] = new tagMCWeekPartyDayPlayerInfo(); TransBytes (out DayInfoList[i].DayIndex, vBytes, NetDataType.DWORD); TransBytes (out DayInfoList[i].Point, vBytes, NetDataType.DWORD); TransBytes (out DayInfoList[i].AwardRecord, vBytes, NetDataType.DWORD); TransBytes (out DayInfoList[i].ACount, vBytes, NetDataType.DWORD); DayInfoList[i].TaskList = new tagMCWeekPartyTaskInfo[DayInfoList[i].ACount]; for (int j = 0; j < DayInfoList[i].ACount; j ++) { DayInfoList[i].TaskList[j] = new tagMCWeekPartyTaskInfo(); TransBytes (out DayInfoList[i].TaskList[j].TemplateID, vBytes, NetDataType.WORD); TransBytes (out DayInfoList[i].TaskList[j].CurTimes, vBytes, NetDataType.WORD); TransBytes (out DayInfoList[i].TaskList[j].GotTimes, vBytes, NetDataType.WORD); } } } public struct tagMCWeekPartyDayPlayerInfo { public uint DayIndex; //第X天 public uint Point; //积分 public uint AwardRecord; //积分领奖记录 public uint ACount; //任务条目数 public tagMCWeekPartyTaskInfo[] TaskList; //活动完成次数信息 } public struct tagMCWeekPartyTaskInfo { public ushort TemplateID; // 模板ID public ushort CurTimes; //已完成次数 public ushort GotTimes; //已领取次数 } } Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0B_tagMCWeekPartyPlayerInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 1ed838c254d198840b0c0e9e5da66eaa timeCreated: 1546914879 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/MainInterfacePanel/HighSettingTip.cs
@@ -52,6 +52,7 @@ [SerializeField] Button m_AllThePeopleBtn;//全民冲榜 [SerializeField] Button m_FlashRushBtn;//限时抢购 [SerializeField] Button m_CrossServerBtn;//跨服1V1按钮 [SerializeField] Button m_OpenServiceBtn;//周狂欢按钮 private bool _bool = true; private int swicthCdTime = 0; private bool IsFadeOut = true; @@ -94,6 +95,7 @@ m_AllThePeopleBtn.AddListener(OnClickmAllThePeopleBtn); m_FlashRushBtn.AddListener(OnClickFlashRushBtn); m_CrossServerBtn.AddListener(OnClickCrossServerBtn); m_OpenServiceBtn.AddListener(OnClickOpenServiceBtn); if (_bool) { ColseButton(); @@ -383,7 +385,11 @@ } } void OnClickOpenServiceBtn() { WindowCenter.Instance.Open<AchievementActivityWin>(); } public void ShowButton()//向上 { System/OpenServerActivity/AchievementActivityWin.cs
New file @@ -0,0 +1,110 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, January 09, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { //成就活动面板 public class AchievementActivityWin : Window { #region Built-in [SerializeField] FunctionButtonGroup FuncBtnGroup; [SerializeField] Button _CloseBtn; [SerializeField] Button _LeftBtn; [SerializeField] Button _RightBtn; [SerializeField] FunctionButton m_OpenServiceAchievementBtn;//周狂欢 protected override void BindController() { } protected override void AddListeners() { _CloseBtn.AddListener(OnClickClose); _LeftBtn.AddListener(OnClickLeftBtn); _RightBtn.AddListener(OnClickRight); m_OpenServiceAchievementBtn.AddListener(OpenServiceAchievementButton); } protected override void OnPreOpen() { if (WindowCenter.Instance.IsOpen<MainInterfaceWin>()) { WindowCenter.Instance.Close<MainInterfaceWin>(); } functionOrder = 0; } protected override void OnActived() { FuncBtnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { CloseChild(); if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>()) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } protected override void OnAfterClose() { } public void OnClickClose() { Close(); } public void OnClickLeftBtn() { FuncBtnGroup.TriggerLast(); } public void OnClickRight() { FuncBtnGroup.TriggerNext(); } void CloseChild() { if (WindowCenter.Instance.IsOpen<OpenServiceAchievementWin>()) { WindowCenter.Instance.CloseImmediately<OpenServiceAchievementWin>(); } } private void OpenServiceAchievementButton() { CloseChild(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<OpenServiceAchievementWin>(); } else { WindowCenter.Instance.Open<OpenServiceAchievementWin>(true); } functionOrder = 0; } #endregion } } System/OpenServerActivity/AchievementActivityWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 3d89f97ebb8d8bf4ba18dd39af06835f timeCreated: 1547026414 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/OpenServiceAchievementCell.cs
New file @@ -0,0 +1,191 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, January 08, 2019 //-------------------------------------------------------- using EnhancedUI.EnhancedScroller; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; using System; namespace Snxxz.UI { [XLua.Hotfix] public class OpenServiceAchievementCell : ScrollerUI { [SerializeField] Text m_TextA; [SerializeField] Text m_TextB; [SerializeField] Text m_TextC; [SerializeField] Transform m_ItemList; [SerializeField] Button m_Btn; [SerializeField] Text m_BtnText; [SerializeField] GameObject m_Miss;//错过 [SerializeField] GameObject m_Reach;//未达成 [SerializeField] GameObject m_Draw;//已领取 [SerializeField] Text m_TextNumber;//已领取次数 OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } public override void Refresh(CellView cell) { int ID = cell.index; var config = Config.Instance.Get<WeekPartyConfig>(ID); if (config==null||!model.WeekPartyDayInfoDic.ContainsKey(model.SelectedNow) || !model.WeekPartyActionDic.ContainsKey(ID)) { return; } var WeekPartyAction = model.WeekPartyActionDic[ID]; int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数 int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数 int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes; if (number - rewardNum > 0) { m_TextA.text = Language.Get("OSA_1", (number - rewardNum)); } else { m_TextA.text = Language.Get("OSA_4"); } m_TextB.text = string.Format(config.Description,1); m_TextC.text = Language.Get("OSA_2", WeekPartyAction.Point); for (int i = 0; i < m_ItemList.childCount; i++) { GameObject Obj = m_ItemList.GetChild(i).gameObject; ItemCell itemCell = Obj.GetComponent<ItemCell>(); if (i < WeekPartyAction.WeekPartyItem.Length) { Obj.SetActive(true); var Item = WeekPartyAction.WeekPartyItem[i]; ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt, Item.IsBind); itemCell.Init(cellModel); itemCell.cellBtn.SetListener(() => { ItemAttrData attrData = new ItemAttrData(Item.ItemID, false, (ulong)Item.ItemCnt, -1, Item.IsBind); itemTipsModel.SetItemTipsModel(attrData); }); } else { Obj.SetActive(false); } } if (model.SelectedNow != model.DayNow) { if (model.SelectedNow > model.DayNow)//还未到达的天数 { m_Btn.gameObject.SetActive(false); m_TextNumber.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); } else//已过的天数 { int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes; } if (TaypeNumber > 0)//可领 { m_TextNumber.gameObject.SetActive(true); m_TextNumber.text = carryOutNum + "/" + number; m_Btn.gameObject.SetActive(true); UIEffect uieffect = m_Btn.GetComponent<UIEffect>(); uieffect.Play(); m_BtnText.text = Language.Get("RealmPractice109");//领取 m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); m_Btn.SetListener(() => { model.SendGetWeekParty(model.SelectedNow, ID); DebugEx.LogError("-----------------------------"); }); } else { if (rewardNum >= number)//已经领完 { m_TextNumber.gameObject.SetActive(false); m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(true); } else//未到达 { m_TextNumber.gameObject.SetActive(false); m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(true); m_Draw.SetActive(false); } } } } else//当前天 { int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes; } if (TaypeNumber > 0)//可领 { m_TextNumber.gameObject.SetActive(true); m_TextNumber.text = carryOutNum + "/" + number; m_Btn.gameObject.SetActive(true); UIEffect uieffect = m_Btn.GetComponent<UIEffect>(); uieffect.Play(); m_BtnText.text = Language.Get("RealmPractice109");//领取 m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); m_Btn.SetListener(() => { model.SendGetWeekParty(model.SelectedNow, ID); DebugEx.LogError("-----------------------------"); }); } else { if (rewardNum >= number)//已经领完 { m_TextNumber.gameObject.SetActive(false); m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(true); } else//未到达(前往) { m_TextNumber.gameObject.SetActive(true); m_TextNumber.text = carryOutNum + "/" + number; m_Btn.gameObject.SetActive(true); m_BtnText.text = Language.Get("RealmPractice108");//前往 UIEffect uieffect = m_Btn.GetComponent<UIEffect>(); uieffect.Stop(); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); m_Btn.SetListener(() => { WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump); }); } } } } } } System/OpenServerActivity/OpenServiceAchievementCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 4496751da23fc9a4398c7108cb98aa34 timeCreated: 1546914150 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/OpenServiceAchievementModel.cs
New file @@ -0,0 +1,513 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, January 08, 2019 //-------------------------------------------------------- using System; using System.Collections.Generic; using TableConfig; using Snxxz.UI; using System.Linq; [XLua.LuaCallCSharp] public class ActionTypeClass { public int TemplateID; // 模板ID public int CurTimes; //已完成次数 public int GotTimes; //已领取次数 } public class WeekPartyDayInfoClass { public int DayIndex;//第X天 public int Point;//积分 public int AwardRecord;//领奖记录 public ActionTypeClass[] ActionType;//领奖信息 } public class TimeDayClass { public int Year; public int Month; public int Day; public string TimeStr; } public class WeekPartyItemClass { public int NeedPoint; // 领奖需要积分 public int ItemID; // 物品ID public int ItemCnt; // 物品数量 public int IsBind; // 是否绑定 } public class WeekPartyDayClass { public int Day; public int[] TemplateList;// 模板列表 public WeekPartyItemClass[] WeekPartyItem;//奖励列表 } public class WeekPartyActionClass//模板信息 { public int TemplateID; // 模板ID public int ActionType; // 活动类别 public int TotalTimes; // 可完成的总次数,0表示不限次数 public int SingleTimes; // 单次领奖需要的次数 public int Point; // 单次领奖积分 public WeekPartyItemClass[] WeekPartyItem;//物品奖励列表 } public class OpenServiceAchievementModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary<int, WeekPartyDayInfoClass> WeekPartyDayInfoDic = new Dictionary<int, WeekPartyDayInfoClass>();//每天领取奖励信息 public event Action WeekPartyDayInfoUpdate;//领奖记录变更 public TimeDayClass[] TimeDayBeginAndOver = new TimeDayClass[2];//开始和结束时间 public int LimitLV = 0;//限制等级 public Dictionary<int, WeekPartyDayClass> WeekPartyDayDic = new Dictionary<int, WeekPartyDayClass>();//每天的奖励信息 public Dictionary<int, WeekPartyActionClass> WeekPartyActionDic = new Dictionary<int, WeekPartyActionClass>();//活动模板信息 public Dictionary<int, Redpoint> RedPointDic = new Dictionary<int, Redpoint>();//红点 public event Action WeekPartyUpdate;//活动信息变更 private const int Redpoint_key1 = 21401;//周狂欢红点 public Redpoint redPointStre1 = new Redpoint(214, Redpoint_key1); private int _SelectedNow = 0; private int ResetType = 0;// 重置类型,0-0点重置;1-5点重置 public event Action IsOpenEvent; public int SelectedNow//选中天 { get { return _SelectedNow; } set { _SelectedNow = value; } } private int _DayNow = 0; public int DayNow//当前天 { get { return _DayNow; } set { _DayNow = value; } } private bool _IsOpen = false;//功能是否开启 public bool IsOpen { get { return _IsOpen; } set { _IsOpen = value; } } public override void Init() { } public void OnBeforePlayerDataInitialize() { } public void OnPlayerLoginOk() { GlobalTimeEvent.Instance.secondEvent -= secondEvent; GlobalTimeEvent.Instance.secondEvent += secondEvent; } private void secondEvent() { GetIsOpen();//判断功能是否开启 } public override void UnInit() { } public void WeekPartyPlayerInfo(HAA0B_tagMCWeekPartyPlayerInfo info) { for (int i = 0; i < info.Count; i++) { var DayInfo = info.DayInfoList[i]; WeekPartyDayInfoClass WeekPartyDayInfo = new WeekPartyDayInfoClass(); WeekPartyDayInfo.DayIndex = (int)DayInfo.DayIndex; WeekPartyDayInfo.Point = (int)DayInfo.Point; WeekPartyDayInfo.AwardRecord = (int)DayInfo.AwardRecord; WeekPartyDayInfo.ActionType = new ActionTypeClass[DayInfo.ACount]; for (int k = 0; k < DayInfo.ACount; k++) { var Task = DayInfo.TaskList[k]; ActionTypeClass ActionType = new ActionTypeClass(); ActionType.TemplateID = Task.TemplateID; ActionType.CurTimes = Task.CurTimes; ActionType.GotTimes = Task.GotTimes; WeekPartyDayInfo.ActionType[k] = ActionType; } if (WeekPartyDayInfoDic.ContainsKey((int)DayInfo.DayIndex)) { WeekPartyDayInfoDic[(int)DayInfo.DayIndex] = WeekPartyDayInfo; } else { WeekPartyDayInfoDic.Add((int)DayInfo.DayIndex, WeekPartyDayInfo); } } GetDayNow();//获取当前天数 SetRedPoint(); if (WeekPartyDayInfoUpdate != null) { WeekPartyDayInfoUpdate(); } } public void WeekPartyInfo(HAA0A_tagMCWeekPartyInfo info) { ResetType = info.ResetType; string[] dateArray = info.StartDate.Split('-'); if (dateArray != null && dateArray.Length == 3) { TimeDayClass TimeDay = new TimeDayClass(); TimeDay.Year = int.Parse(dateArray[0].Trim()); TimeDay.Month = int.Parse(dateArray[1].Trim()); TimeDay.Day = int.Parse(dateArray[2].Trim()); TimeDay.TimeStr = info.StartDate; TimeDayBeginAndOver[0] = TimeDay; } string[] dateArrayO = info.EndtDate.Split('-'); if (dateArrayO != null && dateArrayO.Length == 3) { TimeDayClass TimeDay = new TimeDayClass(); TimeDay.Year = int.Parse(dateArrayO[0].Trim()); TimeDay.Month = int.Parse(dateArrayO[1].Trim()); TimeDay.Day = int.Parse(dateArrayO[2].Trim()); TimeDay.TimeStr = info.EndtDate; TimeDayBeginAndOver[1] = TimeDay; } LimitLV = info.LimitLV; for (int i = 0; i < info.DayCnt; i++) { int Index = i; var DayInfo = info.DayInfoList[i]; WeekPartyDayClass WeekPartyDay = new WeekPartyDayClass(); WeekPartyDay.TemplateList = new int[DayInfo.ActCnt]; for (int k = 0; k < DayInfo.ActCnt; k++) { WeekPartyDay.TemplateList[k] = DayInfo.TemplateList[k]; } WeekPartyDay.WeekPartyItem = new WeekPartyItemClass[DayInfo.PCount]; for (int p = 0; p < DayInfo.PCount; p++) { WeekPartyItemClass WeekPartyItem = new WeekPartyItemClass(); var Item = DayInfo.PItemInfo[p]; WeekPartyItem.NeedPoint = Item.NeedPoint; WeekPartyItem.ItemID = (int)Item.ItemID; WeekPartyItem.ItemCnt = (int)Item.ItemCnt; WeekPartyItem.IsBind = (int)Item.IsBind; WeekPartyDay.WeekPartyItem[p] = WeekPartyItem; } if (WeekPartyDayDic.ContainsKey(Index)) { WeekPartyDayDic[Index] = WeekPartyDay; } else { WeekPartyDayDic.Add(Index, WeekPartyDay); } }// 每天模板 for (int i = 0; i < info.TCount; i++) { var ActionInfo = info.ActionInfo[i]; WeekPartyActionClass WeekPartyAction = new WeekPartyActionClass(); WeekPartyAction.TemplateID = (int)ActionInfo.TemplateID; WeekPartyAction.ActionType = (int)ActionInfo.ActionType; WeekPartyAction.TotalTimes = (int)ActionInfo.TotalTimes; WeekPartyAction.SingleTimes = (int)ActionInfo.SingleTimes; WeekPartyAction.Point = (int)ActionInfo.Point; WeekPartyAction.WeekPartyItem = new WeekPartyItemClass[ActionInfo.Count]; for (int z = 0; z < ActionInfo.Count; z++) { var item = ActionInfo.ItemInfo[z]; WeekPartyItemClass WeekPartyItem = new WeekPartyItemClass(); WeekPartyItem.ItemID = (int)item.ItemID; WeekPartyItem.ItemCnt = (int)item.ItemCnt; WeekPartyItem.IsBind = item.IsBind; WeekPartyItem.NeedPoint = 0; WeekPartyAction.WeekPartyItem[z] = WeekPartyItem; } if (WeekPartyActionDic.ContainsKey((int)ActionInfo.TemplateID)) { WeekPartyActionDic[(int)ActionInfo.TemplateID] = WeekPartyAction; } else { WeekPartyActionDic.Add((int)ActionInfo.TemplateID, WeekPartyAction); } }// 活动模板信息 GetDayNow(); SetRedPoint(); if (WeekPartyUpdate != null) { WeekPartyUpdate(); } } public int GetRewardNumber(int Day, int ID)//获取领奖次数 { int Num = -1; if (WeekPartyDayInfoDic.ContainsKey(Day)) { var WeekPartyDay = WeekPartyDayInfoDic[Day]; for (int i = 0; i < WeekPartyDay.ActionType.Length; i++) { var ActionType = WeekPartyDay.ActionType[i]; if (ID == ActionType.TemplateID) { Num = ActionType.GotTimes; } } } return Num; } public int GetCarryOutNum(int Day, int ID)//获取已完成次数 { int Num = 0; if (WeekPartyDayInfoDic.ContainsKey(Day)) { var WeekPartyDay = WeekPartyDayInfoDic[Day]; for (int i = 0; i < WeekPartyDay.ActionType.Length; i++) { var ActionType = WeekPartyDay.ActionType[i]; if (ID == ActionType.TemplateID) { Num = ActionType.CurTimes; } } } return Num; } public int GetPoint(int day)//获取某一天的积分 { int Point = 0; if (WeekPartyDayInfoDic.ContainsKey(day)) { Point = WeekPartyDayInfoDic[day].Point; } return Point; } public void GetDayNow()//获取活动第几天 { int Day = 0; var time = TimeDayBeginAndOver[0]; if (TimeDayBeginAndOver.Length <= 0 || time == null) { return; } int hour = 0; if (ResetType == 0) { hour = 0; } else { hour = 5; } DateTime time1 = new DateTime(time.Year, time.Month, time.Day, hour,0,0); DateTime time2 = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second); TimeSpan ts = time2.Subtract(time1); Day = (int)ts.TotalDays; DebugEx.LogError("输出当前的天数" + Day); DayNow = Day; } public void SendGetWeekParty(int day, int temdayplateID)//领取周狂欢活动奖励 { CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward(); getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_WeekPartyAct; getReward.DataEx = (uint)day; string StrID = temdayplateID.ToString(); getReward.DataExStrLen = (byte)StrID.Length; getReward.DataExStr = StrID; GameNetSystem.Instance.SendInfo(getReward); } public void SendGetWeekPartyPoint(int day, int point)//领取周狂欢积分奖励 { CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward(); getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_WeekPartyPoint; getReward.DataEx = (uint)day; string StrID = point.ToString(); getReward.DataExStrLen = (byte)StrID.Length; getReward.DataExStr = StrID; GameNetSystem.Instance.SendInfo(getReward); } public bool IsDayReward(int day, int index)//是否领取奖励 { bool _bool = false; int AwardRecord = 0; foreach (var key in WeekPartyDayInfoDic.Keys) { if (key == day) { AwardRecord = WeekPartyDayInfoDic[key].AwardRecord; } } _bool = MathUtility.GetBitValue((uint)AwardRecord, (ushort)index); return _bool; } private void SetRedPoint()//红点设置 { SetRedPointId(); foreach (var key in RedPointDic.Keys) { RedPointDic[key].state = RedPointState.None; } foreach (var key in RedPointDic.Keys) { RedPointDic[key].state = SetRedPointState(key); } } private void SetRedPointId()//设置红点ID { if (RedPointDic.Count > 0) { return; } foreach (var key in WeekPartyDayInfoDic.Keys) { int RedPoint = Redpoint_key1 * 10 + key; if (!RedPointDic.ContainsKey(key)) { Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPoint); RedPointDic.Add(key, redPointMountStare); } } } private RedPointState SetRedPointState(int day)//红点状态设置 { if (!WeekPartyDayDic.ContainsKey(day) || !WeekPartyDayInfoDic.ContainsKey(day)) { return RedPointState.None; } WeekPartyDayClass WeekPartyDay = new WeekPartyDayClass(); int point = WeekPartyDayInfoDic[day].Point; foreach (var key in WeekPartyDayDic.Keys) { if (key == day) { WeekPartyDay = WeekPartyDayDic[key]; } } for (int i = 0; i < WeekPartyDay.WeekPartyItem.Length; i++)//积分奖励 { var item = WeekPartyDay.WeekPartyItem[i]; int type = i; bool IsBool = IsDayReward(day, type); if (point >= item.NeedPoint && !IsBool) { return RedPointState.Simple; } } for (int i = 0; i < WeekPartyDay.TemplateList.Length; i++) { var TemplateID = WeekPartyDay.TemplateList[i]; if (WeekPartyActionDic.ContainsKey(TemplateID)) { var WeekPartyAction = WeekPartyActionDic[TemplateID]; int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes; int rewardNum = GetRewardNumber(day, TemplateID);//已领奖次数 int carryOutNum = GetCarryOutNum(day, TemplateID);//已完成次数 int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes; } if (TaypeNumber > 0) { return RedPointState.Simple; } } } return RedPointState.None; } public int GetWeekDay(int dayIndex)//获取周几 { int weekDay = 1; var time = TimeDayBeginAndOver[0]; if (TimeDayBeginAndOver.Length <= 0 || time == null) { return weekDay; } DateTime time1 = new DateTime(time.Year, time.Month, time.Day); var time2= time1.AddDays(dayIndex); var dt = time2.DayOfWeek.ToString(); switch (dt) { case "Monday": weekDay = 1; break; case "Tuesday": weekDay = 2; break; case "Wednesday": weekDay = 3; break; case "Thursday": weekDay = 4; break; case "Friday": weekDay = 5; break; case "Saturday": weekDay = 6; break; case "Sunday": weekDay = 0; break; } return weekDay; } public void GetIsOpen() { var time1 = TimeDayBeginAndOver[0]; var time2 = TimeDayBeginAndOver[0]; if (TimeDayBeginAndOver.Length <= 0 || time1 == null || time2 == null) { return; } int hour = 0; if (ResetType == 0) { hour = 0; } else { hour = 5; } DateTime timeStar = new DateTime(time1.Year, time1.Month, time1.Day, hour,0,0); DateTime timeEnd = new DateTime(time2.Year, time2.Month, time2.Day, hour, 0, 0); DateTime timeNow= new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second); int PlayerLv = PlayerDatas.Instance.baseData.LV; if (PlayerLv >= LimitLV && timeNow >= timeStar && timeNow < timeEnd && !_IsOpen) { _IsOpen = true; if (IsOpenEvent != null) { IsOpenEvent(); } } if (timeNow > timeEnd && _IsOpen) { _IsOpen = false; if (IsOpenEvent != null) { IsOpenEvent(); } } } } System/OpenServerActivity/OpenServiceAchievementModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 47b6c129d29b8ca468b66b208c1da32c timeCreated: 1546914598 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/OpenServiceAchievementWin.cs
New file @@ -0,0 +1,357 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, January 07, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using EnhancedUI.EnhancedScroller; namespace Snxxz.UI { //开服成就 [XLua.Hotfix] public class OpenServiceAchievementWin : Window { [SerializeField] ScrollerController m_ScrollerController1;//天 [SerializeField] ScrollerController m_ScrollerController2;//列表 [SerializeField] Button m_CloseBtn; [SerializeField] Text m_TextIntegral;//当前积分 [SerializeField] GameObject m_One; [SerializeField] GameObject m_Two; [SerializeField] OpenServiceItem m_OpenServiceItemA; [SerializeField] OpenServiceItem m_OpenServiceItemA1; [SerializeField] OpenServiceItem m_OpenServiceItemB1; #region Built-in OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } } DailyQuestModel dailymodel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } List<int> SortList = new List<int>(); List<WeekPartyItemClass> ItemDayList = new List<WeekPartyItemClass>(); protected override void BindController() { m_ScrollerController1.OnRefreshCell += OnRefreshGridCell_1; m_ScrollerController2.OnRefreshCell += OnRefreshGridCell_2; } protected override void AddListeners() { m_CloseBtn.AddListener(() => { Close(); }); } protected override void OnPreOpen() { model.SelectedNow = model.DayNow; SetTextIntegral(); OnCreateGridLineCell1(m_ScrollerController1); OnCreateGridLineCell2(m_ScrollerController2); } protected override void OnAfterOpen() { model.WeekPartyDayInfoUpdate += WeekPartyDayInfoUpdate; } protected override void OnPreClose() { model.WeekPartyDayInfoUpdate -= WeekPartyDayInfoUpdate; } protected override void OnAfterClose() { } private void WeekPartyDayInfoUpdate()//列表刷新 { m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见 m_ScrollerController2.m_Scorller.RefreshActiveCellViews();//刷新可见 } #endregion void OnCreateGridLineCell1(ScrollerController gridCtrl) { gridCtrl.Refresh(); foreach (var key in model.WeekPartyDayDic.Keys) { gridCtrl.AddCell(ScrollerDataType.Header, key); } gridCtrl.Restart(); } private void OnRefreshGridCell_1(ScrollerDataType type, CellView cell) { int Index = cell.index; ButtonEx Btn = cell.GetComponent<ButtonEx>(); GameObject SelectedObj = cell.transform.Find("Image_XZ").gameObject;//选中 GameObject SelectedObj1 = cell.transform.Find("Image_XZ1").gameObject;//选中 GameObject Unselected = cell.transform.Find("Image_WXZ").gameObject;//未选中 ImageEx UnselectedIm = Unselected.GetComponent<ImageEx>(); GameObject Lock = cell.transform.Find("Lock").gameObject;//锁 GameObject IsNotGary = cell.transform.Find("Obj1").gameObject; Text IsNotGary_text = IsNotGary.transform.Find("DayText").GetComponent<Text>(); GameObject Gary= cell.transform.Find("Obj2").gameObject; Text Gary_text = Gary.transform.Find("DayText").GetComponent<Text>(); RedpointBehaviour redPoint = cell.transform.Find("RedPoint").GetComponent<RedpointBehaviour>();//红点 if (model.RedPointDic.ContainsKey(Index)) { redPoint.redpointId = model.RedPointDic[Index].id; } if (Index <= model.DayNow) { Unselected.SetActive(true); UnselectedIm.gray = false; SelectedObj.SetActive(false); SelectedObj1.SetActive(false); Lock.SetActive(false); IsNotGary.SetActive(true); Gary.SetActive(false); IsNotGary_text.text = (Index + 1).ToString(); } else { Unselected.SetActive(true); UnselectedIm.gray = true; SelectedObj.SetActive(false); SelectedObj1.SetActive(false); Lock.SetActive(true); IsNotGary.SetActive(false); Gary.SetActive(true); Gary_text.text = (Index + 1).ToString(); } if (Index == model.SelectedNow) { SelectedObj.SetActive(true); SelectedObj1.SetActive(true); Unselected.SetActive(false); Lock.SetActive(false); IsNotGary.SetActive(true); Gary.SetActive(false); IsNotGary_text.text = (Index + 1).ToString(); } Btn.SetListener(() => { if (Index != model.SelectedNow && Index<= model.DayNow) { model.SelectedNow = Index;//选中天 SetTextIntegral(); OnCreateGridLineCell2(m_ScrollerController2); m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见 } }); } private string InDayStr(int Day) { string DaySte = string.Empty; DaySte = Language.Get("SignIn_4", Day); return DaySte; } //------------------------------- void OnCreateGridLineCell2(ScrollerController gridCtrl) { ToAddSorting();//排序 GetPointRewardObj();//获取积分领奖信息 gridCtrl.Refresh(); for (int i = 0; i < SortList.Count; i++) { gridCtrl.AddCell(ScrollerDataType.Header, SortList[i]); } gridCtrl.Restart(); } private void OnRefreshGridCell_2(ScrollerDataType type, CellView cell) { } private void ToAddSorting() { SortList.Clear(); int Weekday = model.GetWeekDay(model.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 model.WeekPartyDayDic.Keys) { if (key == model.SelectedNow) { for (int i = 0; i < model.WeekPartyDayDic[key].TemplateList.Length; i++) { var TemplateId = model.WeekPartyDayDic[key].TemplateList[i]; var config = Config.Instance.Get<WeekPartyConfig>(TemplateId); if (config == null) { return; } if (config.DailyQusetId != 0) { if (dailyIdlist.Contains(config.DailyQusetId)) { SortList.Add(TemplateId); } // var Dailyquse = Config.Instance.Get<DailyQuestConfig>(TemplateId); } else { SortList.Add(TemplateId); } } } } SortList.Sort(Compare); } int Compare(int x, int y)//数组排列 { bool havex1 = IsReceive(x); bool havey1 = IsReceive(y); if (havex1.CompareTo(havey1) != 0) { return -havex1.CompareTo(havey1); } bool havex2 = Undone(x); bool havey2 = Undone(y); if (havex2.CompareTo(havey2) != 0) { return -havex2.CompareTo(havey2); } bool havex3 = Completed(x); bool havey3 = Completed(y); if (havex3.CompareTo(havey3) != 0) { return -havex3.CompareTo(havey3); } int havex4 = SizeId(x); int havey4 = SizeId(y); if (havex4.CompareTo(havey4) != 0) { return havex4.CompareTo(havey4); } return 1; } private bool IsReceive(int ID)//可领取 { bool Bool = false; if (model.WeekPartyActionDic.ContainsKey(ID)) { var WeekPartyAction = model.WeekPartyActionDic[ID]; int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes; int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数 int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数 int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes; } if (TaypeNumber > 0) { Bool = true; } } return Bool; } private bool Undone(int ID)//未完成 { bool Bool = false; if (model.WeekPartyActionDic.ContainsKey(ID)) { var WeekPartyAction = model.WeekPartyActionDic[ID]; int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes; int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数 int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数 int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes; } if (TaypeNumber <= 0) { Bool = true; } } return Bool; } private bool Completed(int ID)//已领取 { bool Bool = false; if (model.WeekPartyActionDic.ContainsKey(ID)) { var WeekPartyAction = model.WeekPartyActionDic[ID]; int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes; int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数 int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数 if (rewardNum > number) { Bool = true; } } return Bool; } private int SizeId(int ID) { int index = 1; var config = Config.Instance.Get<WeekPartyConfig>(ID); if (config != null) { index = config.order; } return index; } private void SetTextIntegral()//获取当前积分 { int Point = model.GetPoint(model.SelectedNow); m_TextIntegral.text = Point.ToString(); } private void GetPointRewardObj() { ItemDayList.Clear(); foreach (var key in model.WeekPartyDayDic.Keys) { if (key == model.SelectedNow) { for (int i = 0; i < model.WeekPartyDayDic[key].WeekPartyItem.Length; i++) { ItemDayList.Add(model.WeekPartyDayDic[key].WeekPartyItem[i]); } } } if (ItemDayList.Count > 1) { m_One.SetActive(false); m_Two.SetActive(true); m_OpenServiceItemA1.SetReward(model.SelectedNow, ItemDayList[0],0); m_OpenServiceItemB1.SetReward(model.SelectedNow, ItemDayList[1],1); } else { m_One.SetActive(true); m_Two.SetActive(false); m_OpenServiceItemA.SetReward(model.SelectedNow, ItemDayList[0], 0); } } } } System/OpenServerActivity/OpenServiceAchievementWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: a3ac1f2d21d751d44b6ccc8660a4514d timeCreated: 1546852387 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/OpenServiceItem.cs
New file @@ -0,0 +1,69 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, January 09, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { [XLua.Hotfix] public class OpenServiceItem : MonoBehaviour { [SerializeField] Text m_Text_A; [SerializeField] Image m_BGM; [SerializeField] Image m_ImageShow; [SerializeField] Text m_TextPoint; [SerializeField] Button m_ReceiveBtn; [SerializeField] GameObject m_IsReachImage; [SerializeField] GameObject m_IsDrawImage; OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } } public void SetReward(int day, WeekPartyItemClass item, int index) { int Point = model.GetPoint(day); m_TextPoint.text = Language.Get("OSA_3", item.NeedPoint); bool IsBool = model.IsDayReward(model.SelectedNow, index); if (model.SelectedNow > model.DayNow) { m_ReceiveBtn.gameObject.SetActive(false); m_IsReachImage.SetActive(false); m_IsDrawImage.SetActive(false); } else { if (Point >= item.NeedPoint && !IsBool)//可领 { m_ReceiveBtn.gameObject.SetActive(true); m_ReceiveBtn.SetListener(() => { model.SendGetWeekPartyPoint(model.SelectedNow, item.NeedPoint); }); m_IsReachImage.SetActive(false); m_IsDrawImage.SetActive(false); } else if (Point >= item.NeedPoint && IsBool)//已领 { m_ReceiveBtn.gameObject.SetActive(false); m_IsReachImage.SetActive(false); m_IsDrawImage.SetActive(true); } else if (item.NeedPoint > Point) { m_ReceiveBtn.gameObject.SetActive(false); m_IsReachImage.SetActive(true); m_IsDrawImage.SetActive(false); } } } } } System/OpenServerActivity/OpenServiceItem.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 0b9e5e0dad0ffd24c91131cd43d537a2 timeCreated: 1547014454 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/WindowBase/ModelCenter.cs
@@ -219,6 +219,7 @@ RegisterModel<GatherSoulDungeonModel>(); RegisterModel<KingTreasureModel>(); RegisterModel<CrossServerBossModel>(); RegisterModel<OpenServiceAchievementModel>(); RegisterModel<FashionDressModel>(); inited = true; } Utility/EnumHelper.cs
@@ -1199,7 +1199,9 @@ Def_RewardType_WishingWell = 16,// 许愿池奖励16 Def_RewardType_OpenFunc = 17,//功能预告奖励 Def_RewardType_TotalRecharge = 18,//累计充值奖励 Def_RewardType_IceLodeStar, //冰晶矿脉星级奖励19 Def_RewardType_IceLodeStar=19, //冰晶矿脉星级奖励19 Def_RewardType_WeekPartyAct=20, //领取周狂欢活动奖励20 Def_RewardType_WeekPartyPoint=21,// 领取周狂欢积分奖励21 }