337 lines
9.2 KiB
C#
337 lines
9.2 KiB
C#
|
/********************************************************************
|
|||
|
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();
|
|||
|
}
|
|||
|
}
|