| | |
| | | import ItemCommon
|
| | | import GameWorld
|
| | | import ChConfig
|
| | | import CommFunc
|
| | |
|
| | | def GetTemplateID(cfgID, dayIndex, actNum):
|
| | | if cfgID == None or dayIndex == None:
|
| | |
| | | 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()
|
| | |
| | | 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):
|
| | |
| | | ## 检查玩家累计充值活动数据信息
|
| | |
|
| | | 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)
|
| | |
|
| | |
| | | if awardRecord & pow(2, awardIndex):
|
| | | continue
|
| | |
|
| | | needGold = ipyData.GetNeedGold()
|
| | | needGold = CommFunc.RMBToCoin(ipyData.GetNeedGold())
|
| | | if curRechargeGold < needGold:
|
| | | continue
|
| | | awardRecord |= pow(2, awardIndex)
|
| | |
| | | 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)
|
| | |
| | | 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
|
| | |
| | | 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)
|
| | |
| | | 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)
|
| | |
|
| | |
| | |
|
| | | 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])
|
| | |
| | |
|
| | | 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
|
| | |
|
| | |
| | | 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
|
| | |
|
| | |
| | | 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:
|