hxp
2021-02-20 71a5b8c236d7538053a3a893adccaa0d59798521
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py
@@ -27,6 +27,7 @@
import ItemCommon
import GameWorld
import ChConfig
import CommFunc
def GetTemplateID(cfgID, dayIndex, actNum):
    if cfgID == None or dayIndex == None:
@@ -34,7 +35,7 @@
    if actNum == 1:
        ipyData = IpyGameDataPY.GetIpyGameData("ActTotalRecharge", cfgID)
    else:
        ipyData = IpyGameDataPY.GetIpyGameData("ActTotalRecharge2", cfgID)
        ipyData = IpyGameDataPY.GetIpyGameData("ActTotalRecharge%s" % actNum, cfgID)
    if not ipyData:
        return 0
    templateIDList = ipyData.GetTemplateIDList()
@@ -42,25 +43,16 @@
    return templateID
def OnPlayerLogin(curPlayer):
    # 活动1
    actNum = 1
    isReset = __CheckPlayerTotalRechargeAction(curPlayer, actNum)
    if not isReset:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge, {})
        # 活动中同步活动信息
        if actTotalRechargeInfo.get(ShareDefine.ActKey_State):
            Sync_TotalRechargeActionInfo(curPlayer, actNum)
            Sync_TotalRechargeInfo(curPlayer, actNum)
    # 活动2
    actNum = 2
    isReset = __CheckPlayerTotalRechargeAction(curPlayer, actNum)
    if not isReset:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge2, {})
        # 活动中同步活动信息
        if actTotalRechargeInfo.get(ShareDefine.ActKey_State):
            Sync_TotalRechargeActionInfo(curPlayer, actNum)
            Sync_TotalRechargeInfo(curPlayer, actNum)
    for actNum, actName in ShareDefine.OperationActionName_TotalRechargeDict.items():
        isReset = __CheckPlayerTotalRechargeAction(curPlayer, actNum)
        if not isReset:
            actTotalRechargeInfo = PyGameData.g_operationActionDict.get(actName, {})
            # 活动中同步活动信息
            if actTotalRechargeInfo.get(ShareDefine.ActKey_State):
                Sync_TotalRechargeActionInfo(curPlayer, actNum)
                Sync_TotalRechargeInfo(curPlayer, actNum)
    return
def RefreshTotalRechargeActionInfo(actNum):
@@ -77,11 +69,10 @@
    ## 检查玩家累计充值活动数据信息
    
    playerID = curPlayer.GetPlayerID()
    if actNum == 1:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge, {})
    else:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge2, {})
    if actNum not in ShareDefine.OperationActionName_TotalRechargeDict:
        return
    actName = ShareDefine.OperationActionName_TotalRechargeDict[actNum]
    actTotalRechargeInfo = PyGameData.g_operationActionDict.get(actName, {})
    TotalRechargeID = actTotalRechargeInfo.get(ShareDefine.ActKey_ID, 0)
    state = actTotalRechargeInfo.get(ShareDefine.ActKey_State, 0)
    
@@ -135,7 +126,7 @@
        if awardRecord & pow(2, awardIndex):
            continue
        
        needGold = ipyData.GetNeedGold()
        needGold = CommFunc.RMBToCoin(ipyData.GetNeedGold())
        if curRechargeGold < needGold:
            continue
        awardRecord |= pow(2, awardIndex) 
@@ -143,7 +134,7 @@
        awardItemList = __GetItemList(ipyData.GetAwardItem(), job, playerWorldLV)
        batchPlayerIDList.append([playerID])
        batchAddItemList.append(awardItemList)
        batchParamList.append([needGold])
        batchParamList.append([str(ipyData.GetNeedGold())]) # 钱支持小数,显示参数传字符串
        
    if batchPlayerIDList:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalRechargeAwardRecord % actNum, awardRecord)
@@ -165,11 +156,11 @@
    if addGold <= 0:
        return
   
    if actNum == 1:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge, {})
    else:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge2, {})
    if actNum not in ShareDefine.OperationActionName_TotalRechargeDict:
        return
    actName = ShareDefine.OperationActionName_TotalRechargeDict[actNum]
    actTotalRechargeInfo = PyGameData.g_operationActionDict.get(actName, {})
    if not actTotalRechargeInfo.get(ShareDefine.ActKey_State):
        GameWorld.DebugLog("累计充值活动当前未开启! actNum=%s" % actNum)
        return
@@ -201,10 +192,10 @@
        return
    playerID = curPlayer.GetPlayerID()
    
    if actNum == 1:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge, {})
    else:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge2, {})
    if actNum not in ShareDefine.OperationActionName_TotalRechargeDict:
        return
    actName = ShareDefine.OperationActionName_TotalRechargeDict[actNum]
    actTotalRechargeInfo = PyGameData.g_operationActionDict.get(actName, {})
                
    TotalRechargeID = actTotalRechargeInfo.get(ShareDefine.ActKey_ID, 0)
    state = actTotalRechargeInfo.get(ShareDefine.ActKey_State, 0)
@@ -236,7 +227,7 @@
        GameWorld.DebugLog("找不到该返利活动档位索引奖励!actNum=%s,templateID=%s,awardIndex=%s" % (actNum, templateID, awardIndex), playerID)
        return
    
    needGold = awardIpyData.GetNeedGold()
    needGold = CommFunc.RMBToCoin(awardIpyData.GetNeedGold())
    actWorldLV = actTotalRechargeInfo.get(ShareDefine.ActKey_WorldLV, 0)
    awardItemList = __GetItemList(ipyData.GetAwardItem(), curPlayer.GetJob(), actWorldLV)
    
@@ -257,7 +248,7 @@
    
    notifyKey = awardIpyData.GetNotifyKey()
    if notifyKey:
        PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), needGold])
        PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), str(awardIpyData.GetNeedGold())]) # 钱支持小数,显示参数传字符串
        
    for itemID, itemCount, _ in awardItemList:
        ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
@@ -278,11 +269,12 @@
def Sync_TotalRechargeActionInfo(curPlayer, actNum):
    ## 通知累计充值活动信息
    if actNum == 1:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge, {})
    else:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge2, {})
    if actNum not in ShareDefine.OperationActionName_TotalRechargeDict:
        return
    actName = ShareDefine.OperationActionName_TotalRechargeDict[actNum]
    actTotalRechargeInfo = PyGameData.g_operationActionDict.get(actName, {})
    if not actTotalRechargeInfo:
        return
    
@@ -293,7 +285,7 @@
    if actNum == 1:
        ipyData = IpyGameDataPY.GetIpyGameData("ActTotalRecharge", cfgID)
    else:
        ipyData = IpyGameDataPY.GetIpyGameData("ActTotalRecharge2", cfgID)
        ipyData = IpyGameDataPY.GetIpyGameData("ActTotalRecharge%s" % actNum, cfgID)
    if not ipyData:
        return
    
@@ -320,7 +312,7 @@
        for ipyData in ipyDataList:
            awardInfo = ChPyNetSendPack.tagMCTotalRechargeAward()
            awardInfo.AwardIndex = ipyData.GetAwardIndex()
            awardInfo.NeedGold = ipyData.GetNeedGold()
            awardInfo.NeedGold = CommFunc.RMBToCoin(ipyData.GetNeedGold())
            awardInfo.AwardItem = []
            awardItemList = __GetItemList(ipyData.GetAwardItem(), job, actWorldLV)
            for awardItemInfo in awardItemList: