hch
2019-05-09 0eadbbeaefe189774a3bbbb3f3a2cb138f8895d1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -44,9 +44,11 @@
import ShareDefine
import PlayerFlashGiftbag
import PlayerFairyCeremony
import PlayerNewFairyCeremony
import PlayerGoldGift
import PlayerActTotalRecharge
import OpenServerCampaign
import PlayerWeekParty
import ItemCommon
import time
@@ -59,11 +61,11 @@
def GetCoinRate(): return IpyGameDataPY.GetFuncCfg("PayRMB")
def OnLogin(curPlayer):
    DoResetCTGCount(curPlayer)
    Sync_CoinToGoldCountInfo(curPlayer)
    if not DoResetCTGCountByTime(curPlayer):
        Sync_CoinToGoldCountInfo(curPlayer)
    return
def DoResetCTGCount(curPlayer):
def DoResetCTGCountByTime(curPlayer):
    # 重置充值次数
    ctgResetTimeYMD = IpyGameDataPY.GetFuncCfg("CTG", 1)
    if not ctgResetTimeYMD:
@@ -72,7 +74,7 @@
        GameWorld.ErrLog("充值重置时间配置必须是数值格式,不能包含符号!")
        return
    curTime = int(time.time())
    playerID = curPlayer.GetPlayerID()
    #playerID = curPlayer.GetPlayerID()
    resetTime = GameWorld.ChangeTimeStrToNum(str(ctgResetTimeYMD), "%Y%m%d")
    if curTime < resetTime:
        #GameWorld.DebugLog("还未到达充值充值次数时间!curTime=%s < resetTime=%s" % (curTime, resetTime), playerID)
@@ -83,6 +85,13 @@
        return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGCountResetTime, resetTime)
    
    DoResetCTGCount(curPlayer, ctgResetTimeYMD)
    return True
def DoResetCTGCount(curPlayer, resetEvent):
    # 重置充值次数
    playerID = curPlayer.GetPlayerID()
    ipyDataMgr = IpyGameDataPY.IPY_Data()
    for i in xrange(ipyDataMgr.GetCTGCount()):
        ipyData = ipyDataMgr.GetCTGByIndex(i)
@@ -93,11 +102,12 @@
            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,
        drDict = {"PlayerID":curPlayer.GetPlayerID(),"AccID":curPlayer.GetAccID(), "ResetEvent":resetEvent,
                  "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)
        GameWorld.Log("重置充值次数: resetEvent=%s,recordID=%s,totalBuyCount=%s,todayBuyCount=%s"
                      % (resetEvent, recordID, totalBuyCount, todayBuyCount), playerID)
    Sync_CoinToGoldCountInfo(curPlayer)
    return
@@ -165,6 +175,9 @@
    orderInfo = chargeInfo.GetOrderInfo() # 商品编号
    orderID = chargeInfo.GetOrderID() #订单号,兑换成功后清除
    isAddBourseMoney = chargeInfo.GetIsAddBourseMoney()
    if orderID:
        curPlayer.SendDBFinishRecharge(orderID)
    appID = chargeInfo.GetAppID()
    if not appID:
        appID = GameWorld.GetPlayerPlatform(curPlayer)
@@ -205,7 +218,7 @@
    
    #充值成功主动查询一次,无充值数量就不会继续查询
    if orderID:
        curPlayer.SendDBFinishRecharge(orderID)
        #curPlayer.SendDBFinishRecharge(orderID)
        # 充值成功回报客户端,SDK等会用到
        Sync_CoinToGoldReport(curPlayer, orderID, orderCoin)
        
@@ -261,7 +274,7 @@
            PlayerControl.SendMailByKey("", [curPlayer.GetPlayerID()], giveItemList)
        else:
            for itemID, itemCount, isBind in giveItemList:
                ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem],
                ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem],
                                             event=[ChConfig.ItemGive_CTG, True, addDRDict])
        if notifyMark:
            mainItemID = giveItemList[0][0]
@@ -285,11 +298,13 @@
    #---充值成功后逻辑---
    #仙界盛典-充值大礼
    PlayerFairyCeremony.OnFCRecharge(curPlayer)
    PlayerNewFairyCeremony.OnFCRecharge(curPlayer)
    PlayerGoldGift.DayChargeRedPackAward(curPlayer)
    #累积充值X元
    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin/100)
    #开服活动
    OpenServerCampaign.AddOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_Recharge, orderCoin)
    PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Recharge, addVIPExp)
    GameWorld.Log("Billing: eventName=%s, %s" % (eventName, addDRDict), curPlayer.GetPlayerID())
    return