5767 【前端】【1.5】新增8-14天活动功能(制作成7日运营活动的模板)
| | |
| | |
|
| | |
|
| | |
|
| | | public class DTCAA0A_tagMCWeekPartyInfo : DtcBasic {
OpenServiceAchievementModel model { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
|
| | | public override void Done(GameNetPackBasic vNetPack) {
|
| | | 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)
|
| | | {
|
| | |
| | | public class HAA0A_tagMCWeekPartyInfo : GameNetPackBasic {
|
| | | public string StartDate; // 开始日期 y-m-d
|
| | | public string EndtDate; // 结束日期 y-m-d
|
| | | public ushort AdvanceMinutes; // 提前显示分钟
|
| | | public byte IsDayReset; //是否每天重置
|
| | | public byte ResetType; // 重置类型,0-0点重置;1-5点重置
|
| | | public ushort LimitLV; // 限制等级
|
| | |
| | | public override void ReadFromBytes (byte[] vBytes) {
|
| | | TransBytes (out StartDate, vBytes, NetDataType.Chars, 10);
|
| | | TransBytes (out EndtDate, vBytes, NetDataType.Chars, 10);
|
| | | TransBytes (out AdvanceMinutes, vBytes, NetDataType.WORD);
|
| | | TransBytes (out IsDayReset, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out ResetType, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out LimitLV, vBytes, NetDataType.WORD);
|
| | |
| | | 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].TotalTimes, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out ActionInfo[i].Point, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE);
|
| | |
| | | public struct tagMCWeekPartyAction {
|
| | | public uint TemplateID; // 模板ID
|
| | | public ushort ActionType; // 活动类别
|
| | | public byte TotalTimes; // 可完成的总次数,0表示不限次数
|
| | | public uint TotalTimes; // 可完成的总次数,0表示不限次数
|
| | | public uint SingleTimes; // 单次领奖需要的次数
|
| | | public uint Point; // 单次领奖积分
|
| | | public byte Count; // 物品数
|
| | |
| | | limitedTimePackageItemModel.UpdateLimitedTimePackageItem += UpdateLimitedTimePackageItem;
|
| | | impactRankModel.inImpactRankUpdate += InImpactRankUpdate;
|
| | | OpenServerModel.IsOpenEvent += IsOpenEvent;
|
| | | OpenServerModel.IsPreviewTimeUpdate += IsOpenEvent;
|
| | | }
|
| | |
|
| | | public void Unit()
|
| | |
| | | limitedTimePackageItemModel.UpdateLimitedTimePackageItem -= UpdateLimitedTimePackageItem;
|
| | | impactRankModel.inImpactRankUpdate -= InImpactRankUpdate;
|
| | | OpenServerModel.IsOpenEvent -= IsOpenEvent;
|
| | | OpenServerModel.IsPreviewTimeUpdate -= IsOpenEvent;
|
| | | }
|
| | |
|
| | | private void IsOpenEvent()
|
| | |
| | | public Redpoint redPointStre1 = new Redpoint(214, Redpoint_key1);
|
| | | private int _SelectedNow = 0;
|
| | | private int ResetType = 0;// 重置类型,0-0点重置;1-5点重置
|
| | | public event Action IsOpenEvent;
|
| | | private int AdvanceMinutes = 0;//提前显示分钟
|
| | | private bool isPreviewTime = false;
|
| | | private bool isOpenNow = false;
|
| | | public event Action IsOpenEvent;//功能是否开启
|
| | | public event Action IsPreviewTimeUpdate;//功能是否提前开启
|
| | | private int _JumpIndex = -1;//跳转选中值
|
| | | public int JumpIndex
|
| | | {
|
| | |
| | |
|
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | isOpenNow = false;
|
| | | isPreviewTime = false;
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | |
| | |
|
| | | private void secondEvent()
|
| | | {
|
| | | bool _bool = IsPreviewTime();
|
| | | if (_bool && !isPreviewTime)
|
| | | {
|
| | | isPreviewTime = true;
|
| | | _IsOpen = true;
|
| | | if (IsPreviewTimeUpdate != null)
|
| | | {
|
| | | IsPreviewTimeUpdate();
|
| | | }
|
| | | }
|
| | | GetIsOpen();//判断功能是否开启
|
| | |
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | |
| | | TimeDayBeginAndOver[1] = TimeDay;
|
| | | }
|
| | | LimitLV = info.LimitLV;
|
| | |
|
| | | AdvanceMinutes = info.AdvanceMinutes;
|
| | | for (int i = 0; i < info.DayCnt; i++)
|
| | | {
|
| | | int Index = i;
|
| | |
| | | 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;
|
| | | if (Day <= 0)
|
| | | {
|
| | | Day = 0;
|
| | | }
|
| | | DebugEx.LogError("输出当前的天数" + Day);
|
| | | DayNow = Day;
|
| | | }
|
| | |
| | | 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)
|
| | | if (PlayerLv >= LimitLV && timeNow >= timeStar && timeNow < timeEnd && !isOpenNow)
|
| | | {
|
| | | isOpenNow = true;
|
| | | _IsOpen = true;
|
| | | if (IsOpenEvent != null)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | }
|
| | | if (timeNow > timeEnd && _IsOpen)
|
| | | if (timeNow > timeEnd && isOpenNow)
|
| | | {
|
| | | isOpenNow = false;
|
| | | _IsOpen = false;
|
| | | if (IsOpenEvent != null)
|
| | | {
|
| | |
| | | }
|
| | | return Isbool;
|
| | | }
|
| | |
|
| | | public bool IsPreviewTime()//是否再预览时间
|
| | | {
|
| | | bool _bool = false;
|
| | | var time1 = TimeDayBeginAndOver[0];
|
| | | var time2 = TimeDayBeginAndOver[1];
|
| | | if (TimeDayBeginAndOver.Length <= 0 || time1 == null || time2 == null)
|
| | | {
|
| | | return _bool;
|
| | | }
|
| | | int hour = 0;
|
| | | if (ResetType == 0)
|
| | | {
|
| | | hour = 0;
|
| | | }
|
| | | else
|
| | | {
|
| | | hour = 5;
|
| | | }
|
| | | DateTime timeStar = new DateTime(time1.Year, time1.Month, time1.Day, hour, 0, 0);
|
| | | var TimeStar2 = timeStar.AddMinutes(-AdvanceMinutes);
|
| | | DateTime timeNow = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute, TimeUtility.ServerNow.Second);
|
| | |
|
| | | if (timeNow >= TimeStar2 && timeNow < timeStar)
|
| | | {
|
| | | _bool = true;
|
| | | }
|
| | | return _bool;
|
| | | }
|
| | | } |
| | | |
| | | |
| | |
| | | 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)
|
| | | bool IsOpenPreviewTime = model.IsPreviewTime();
|
| | | if (model.SelectedNow > model.DayNow || IsOpenPreviewTime)
|
| | | {
|
| | | m_ReceiveBtn.gameObject.SetActive(false);
|
| | | m_IsReachImage.SetActive(false);
|