Files
JJBB/Assets/Project/Script/Player/UserData/PayActivityData.cs

337 lines
9.2 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
/********************************************************************
created: 2014/07/31
created: 31:7:2014 16:43
filename: PayActivityData.cs
author: Tangyi
purpose: <EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*********************************************************************/
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using GCGame.Table;
using Module.Log;
using System;
public enum FLAGTYPE
{
//<2F><>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>ٶ<EFBFBD>Ӧ <20><>Ҫͬʱ<CDAC>޸<EFBFBD>
FLAG_FIRSTTIME = 0, //<2F>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD> <20>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_MONTHCARD = 1, //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD> <20>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_MONTHCARD_TODAY = 2, //<2F>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD> <20>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_GROWUP = 3, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> <20>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ<EFBFBD><C8A1>
FLAG_GROWUP_40 = 4, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> 40<34><30><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_GROWUP_50 = 5, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> 50<35><30><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_GROWUP_60 = 6, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> 60<36><30><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_GROWUP_70 = 7, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> 70<37><30><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_GROWUP_80 = 8, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> 80<38><30><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_GROWUP_90 = 9, //<2F>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD> 90<39><30><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ
FLAG_NUM = 16,
}
public struct PayActivityData
{
/// <summary>
/// <20>׳<EFBFBD><D7B3><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsFirstTimeFlag()
{
return m_Flags[(int)FLAGTYPE.FLAG_FIRSTTIME];
}
/// <summary>
/// <20>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsMonthCardFlag()
{
return m_Flags[(int)FLAGTYPE.FLAG_MONTHCARD];
}
/// <summary>
/// <20>¿<EFBFBD><C2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsMonthCardTodayFlag()
{
return m_Flags[(int)FLAGTYPE.FLAG_MONTHCARD_TODAY];
}
/// <summary>
/// <20>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsGrowUpFlag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP];
}
/// <summary>
/// 40<34><30><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
/// <returns></returns>
public bool IsGrowUp40Flag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP_40];
}
/// <summary>
/// 50<35><30><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
/// <returns></returns>
public bool IsGrowUp50Flag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP_50];
}
/// <summary>
/// 60<36><30><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
/// <returns></returns>
public bool IsGrowUp60Flag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP_60];
}
/// <summary>
/// 70<37><30><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
/// <returns></returns>
public bool IsGrowUp70Flag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP_70];
}
/// <summary>
/// 80<38><30><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
/// <returns></returns>
public bool IsGrowUp80Flag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP_80];
}
/// <summary>
/// 90<39><30><EFBFBD>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ȡ
/// </summary>
/// <returns></returns>
public bool IsGrowUp90Flag()
{
return m_Flags[(int)FLAGTYPE.FLAG_GROWUP_90];
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsFirstWeekOver()
{
if (m_StartServerDays >= 7 || m_StartServerDays < 0)
{
return true;
}
return false;
}
//
public int GetMonthCardLeftDay()
{
if (m_Flags[(int)FLAGTYPE.FLAG_MONTHCARD] && m_MonthCardBeginTime != 0)
{
DateTime startTime = new DateTime(1970, 1, 1);
//<2F><>ʼʱ<CABC><CAB1>
DateTime MonthCardBegin = new DateTime(startTime.Ticks + (long)m_MonthCardBeginTime * 10000000L, DateTimeKind.Utc);
MonthCardBegin = MonthCardBegin.AddHours(8); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//MonthCardBegin = MonthCardBegin.ToLocalTime();
//<2F><>ǰʱ<C7B0><CAB1>
DateTime NowData = new DateTime(startTime.Ticks + (long)GlobalData.ServerAnsiTime * 10000000L, DateTimeKind.Utc);
NowData = NowData.AddHours(8); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//NowData = NowData.ToLocalTime();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TimeSpan span = NowData.Subtract(MonthCardBegin);
return 30 - span.Days;
}
return 0;
}
/// <summary>
/// <20>¿<EFBFBD><C2BF>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsMonthCardOver()
{
if (m_Flags[(int)FLAGTYPE.FLAG_MONTHCARD] && m_MonthCardBeginTime != 0)
{
DateTime startTime = new DateTime(1970, 1, 1);
//<2F><>ʼʱ<CABC><CAB1>
DateTime MonthCardBegin = new DateTime(startTime.Ticks + (long)m_MonthCardBeginTime * 10000000L, DateTimeKind.Utc);
MonthCardBegin = MonthCardBegin.AddHours(8); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//MonthCardBegin = MonthCardBegin.ToLocalTime();
//<2F><>ǰʱ<C7B0><CAB1>
DateTime NowData = new DateTime(startTime.Ticks + (long)GlobalData.ServerAnsiTime * 10000000L, DateTimeKind.Utc);
NowData = NowData.AddHours(8); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//NowData = NowData.ToLocalTime();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TimeSpan span = NowData.Subtract(MonthCardBegin);
if (span.Days >= 29)
{
return true;
}
}
return false;
}
/// <summary>
/// <20>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <returns></returns>
public bool IsGrowUpOver()
{
if (m_Flags[(int)FLAGTYPE.FLAG_GROWUP])
{
if (m_Flags[(int)FLAGTYPE.FLAG_GROWUP_40] &&
m_Flags[(int)FLAGTYPE.FLAG_GROWUP_50] &&
m_Flags[(int)FLAGTYPE.FLAG_GROWUP_60] &&
m_Flags[(int)FLAGTYPE.FLAG_GROWUP_70] &&
m_Flags[(int)FLAGTYPE.FLAG_GROWUP_80] &&
m_Flags[(int)FLAGTYPE.FLAG_GROWUP_90])
{
return true;
}
}
return false;
}
public void CleanUp()
{
m_Flags = new bool[(int)FLAGTYPE.FLAG_NUM];
for (int i = 0; i < (int)FLAGTYPE.FLAG_NUM; i++)
{
m_Flags[i] = false;
}
m_MonthCardBeginTime = 0;
m_MonthCardYBTotal = 0;
m_StartServerDays = -1;
m_RebateOpen = false;
m_RebateRate = 0.0f;
m_OldServerRate = 0.0f;
}
private bool[] m_Flags;
//<2F>¿<EFBFBD><C2BF><EFBFBD>ʼʱ<CABC><CAB1>
private int m_MonthCardBeginTime;
public int MonthCardBeginTime
{
get { return m_MonthCardBeginTime; }
set { m_MonthCardBeginTime = value; }
}
//<2F>¿<EFBFBD><C2BF>ۼ<EFBFBD><DBBC><EFBFBD>ȡԪ<C8A1><D4AA><EFBFBD><EFBFBD>
private int m_MonthCardYBTotal;
public int MonthCardYBTotal
{
get { return m_MonthCardYBTotal; }
set { m_MonthCardYBTotal = value; }
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private int m_StartServerDays;
public int StartServerDays
{
get { return m_StartServerDays; }
set { m_StartServerDays = value; }
}
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
private bool m_RebateOpen;
public bool RebateOpen
{
get { return m_RebateOpen; }
set { m_RebateOpen = value; }
}
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private float m_RebateRate;
public float RebateRate
{
get { return m_RebateRate; }
set { m_RebateRate = value; }
}
//<2F>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private float m_OldServerRate;
public float OldServerRate
{
get { return m_OldServerRate; }
set { m_OldServerRate = value; }
}
public void HandlePacket(GC_SYNC_PAY_ACTIVITY_DATA packet)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
int flagCount = packet.flagsCount;
for (int i = 0; i < flagCount && i < (int)FLAGTYPE.FLAG_NUM; i++)
{
m_Flags[i] = (packet.GetFlags(i)) > 0 ? true : false;
}
m_MonthCardBeginTime = packet.Monthcardbegin;
m_MonthCardYBTotal = packet.Monthcardyb;
m_StartServerDays = packet.Startserverdays;
m_RebateOpen = (packet.Rebateopen == 1);
m_RebateRate = (float)packet.Rebaterate / 10;
if (packet.HasOldserverrebate)
{
m_OldServerRate = (float)packet.Oldserverrebate / 10;
}
}
public void HandlePacket(GC_ASK_PAY_ACTIVITY_PRIZE_RET packet)
{
}
public void SendMonthCardPacket()
{
if (m_Flags[(int)FLAGTYPE.FLAG_MONTHCARD] == false)
{
return;
}
if (m_Flags[(int)FLAGTYPE.FLAG_MONTHCARD_TODAY])
{
return;
}
if (IsMonthCardOver())
{
return;
}
CG_ASK_PAY_ACTIVITY_PRIZE msg = (CG_ASK_PAY_ACTIVITY_PRIZE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_PAY_ACTIVITY_PRIZE);
msg.SetPrizetype((int)CG_ASK_PAY_ACTIVITY_PRIZE.PrizeType.PRIZE_MONTHCARD);
msg.SetPrizepram1(0);
msg.SetPrizepram2(0);
msg.SendPacket();
}
public void SendGrowUpPacket(int level)
{
if (m_Flags[(int)FLAGTYPE.FLAG_GROWUP] == false)
{
return;
}
if (IsGrowUpOver())
{
return;
}
if (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < level)
{
return;
}
CG_ASK_PAY_ACTIVITY_PRIZE msg = (CG_ASK_PAY_ACTIVITY_PRIZE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_ASK_PAY_ACTIVITY_PRIZE);
msg.SetPrizetype((int)CG_ASK_PAY_ACTIVITY_PRIZE.PrizeType.PRIZE_GROWUP);
msg.SetPrizepram1(level);
msg.SetPrizepram2(0);
msg.SendPacket();
}
}