ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -46,7 +46,10 @@
import PlayerFairyCeremony
import PlayerGoldGift
import PlayerActTotalRecharge
import OpenServerCampaign
import ItemCommon
import time
#---------------------------------------------------------------------
#注意: GetChangeCoinPointTotal 充值点和赠送点总和
@@ -56,29 +59,47 @@
def GetCoinRate(): return IpyGameDataPY.GetFuncCfg("PayRMB")
def OnLogin(curPlayer):
    # 重置充值次数
    if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_CTGDoublePrize):
        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_CTGDoublePrize, 1)
        ipyDataMgr = IpyGameDataPY.IPY_Data()
        for i in xrange(ipyDataMgr.GetCTGCount()):
            ipyData = ipyDataMgr.GetCTGByIndex(i)
            recordID = ipyData.GetRecordID()
            totalBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % recordID)
            todayBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TodayCTGCount % recordID)
            if not totalBuyCount and not todayBuyCount:
                continue
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGGoodsBuyCount % recordID, 0)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TodayCTGCount % recordID, 0)
            drDict = {"PlayerID":curPlayer.GetPlayerID(),"AccID":curPlayer.GetAccID(), "totalBuyCount":totalBuyCount, "todayBuyCount":todayBuyCount, "recordID":recordID}
            DataRecordPack.SendEventPack("ResetCTGCount", drDict, curPlayer)
            GameWorld.Log("重置充值次数: recordID=%s,totalBuyCount=%s,todayBuyCount=%s"
                          % (recordID, totalBuyCount, todayBuyCount), curPlayer.GetPlayerID())
    else:
        GameWorld.DebugLog("已经重置过充值次数!")
    DoResetCTGCount(curPlayer)
    Sync_CoinToGoldCountInfo(curPlayer)
    return
def DoResetCTGCount(curPlayer):
    # 重置充值次数
    ctgResetTimeYMD = IpyGameDataPY.GetFuncCfg("CTG", 1)
    if not ctgResetTimeYMD:
        return
    if not isinstance(ctgResetTimeYMD, int):
        GameWorld.ErrLog("充值重置时间配置必须是数值格式,不能包含符号!")
        return
    curTime = int(time.time())
    playerID = curPlayer.GetPlayerID()
    resetTime = GameWorld.ChangeTimeStrToNum(str(ctgResetTimeYMD), "%Y%m%d")
    if curTime < resetTime:
        #GameWorld.DebugLog("还未到达充值充值次数时间!curTime=%s < resetTime=%s" % (curTime, resetTime), playerID)
        return
    playerResetTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGCountResetTime)
    if playerResetTime == resetTime:
        #GameWorld.DebugLog("已经重置过充值次数!resetTime=%s" % resetTime, playerID)
        return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGCountResetTime, resetTime)
    ipyDataMgr = IpyGameDataPY.IPY_Data()
    for i in xrange(ipyDataMgr.GetCTGCount()):
        ipyData = ipyDataMgr.GetCTGByIndex(i)
        recordID = ipyData.GetRecordID()
        totalBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % recordID)
        todayBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TodayCTGCount % recordID)
        if not totalBuyCount and not todayBuyCount:
            continue
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGGoodsBuyCount % recordID, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TodayCTGCount % recordID, 0)
        drDict = {"PlayerID":curPlayer.GetPlayerID(),"AccID":curPlayer.GetAccID(), "ResetTimeYMD":ctgResetTimeYMD,
                  "totalBuyCount":totalBuyCount, "todayBuyCount":todayBuyCount, "recordID":recordID}
        DataRecordPack.SendEventPack("ResetCTGCount", drDict, curPlayer)
        GameWorld.Log("重置充值次数: ResetTimeYMD=%s,recordID=%s,totalBuyCount=%s,todayBuyCount=%s"
                      % (ctgResetTimeYMD, recordID, totalBuyCount, todayBuyCount), playerID)
    return
def OnDay(curPlayer):
    syncRecordIDList = []
@@ -267,6 +288,8 @@
    PlayerGoldGift.DayChargeRedPackAward(curPlayer)
    #累积充值X元
    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin/100)
    #开服活动
    OpenServerCampaign.AddOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_Recharge, orderCoin)
    GameWorld.Log("Billing: eventName=%s, %s" % (eventName, addDRDict), curPlayer.GetPlayerID())
    return