| | |
| | | GoldInvestType_Gold, # 仙玉投资
|
| | | GoldInvestType_Gold2, # 仙玉投资2
|
| | | GoldInvestType_Gold3, # 仙玉投资3
|
| | | ) = range(1,5+1)
|
| | | GoldInvestType_Week, # 周卡投资
|
| | | ) = range(1,6+1)
|
| | |
|
| | | #可以循环投资的类型
|
| | | CanRepeatInvestType = [GoldInvestType_Month, GoldInvestType_VIP]
|
| | | CanRepeatInvestType = [GoldInvestType_Week, GoldInvestType_Month, GoldInvestType_VIP]
|
| | | #仙玉投资类型
|
| | | InvestGoldTypeList = [GoldInvestType_Gold, GoldInvestType_Gold2, GoldInvestType_Gold3]
|
| | |
|
| | |
| | | import PlayerActTotalRecharge
|
| | | import OpenServerCampaign
|
| | | import PlayerWeekParty
|
| | | import PlayerGoldInvest
|
| | | import ItemCommon
|
| | |
|
| | | import time
|
| | |
| | | DataRecordPack.DR_CTGError(curPlayer, "The orderInfo is useless!", addDRDict)
|
| | | return
|
| | |
|
| | | DoCTGLogic(curPlayer, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, notifyMark)
|
| | | DoCTGLogic(curPlayer, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, notifyMark, ipyData)
|
| | |
|
| | | #充值成功主动查询一次,无充值数量就不会继续查询
|
| | | if orderID:
|
| | |
| | | Sync_CoinToGoldCountInfo(curPlayer, [recordID])
|
| | | return addGold, prizeGold, giveItemList, notifyMark
|
| | |
|
| | | def DoCTGLogic(curPlayer, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, notifyMark=''):
|
| | | def DoCTGLogic(curPlayer, orderCoin, addGold, prizeGold, giveItemList, isAddBourseMoney, eventName, addDRDict, notifyMark='', ipyData=None):
|
| | | goldBefore = curPlayer.GetGold()
|
| | | bourseMoneyBefore = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney)
|
| | |
|
| | |
| | | #开服活动
|
| | | OpenServerCampaign.AddOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_Recharge, orderCoin)
|
| | | PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Recharge, addVIPExp)
|
| | | #投资
|
| | | if ipyData:
|
| | | PlayerGoldInvest.InvestByCTG(curPlayer, ipyData.GetCTGID()) |
| | | GameWorld.Log("Billing: eventName=%s, %s" % (eventName, addDRDict), curPlayer.GetPlayerID())
|
| | | return
|
| | |
|
| | |
| | |
|
| | | def __CheckInvestReset(curPlayer):
|
| | | ##检查vip投资重置 超过28天或28天奖励已领取可重置
|
| | | investType = ChConfig.GoldInvestType_VIP
|
| | | investGoldRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType)
|
| | | if not investGoldRecord:
|
| | | return
|
| | | curDay = __GetInvestCurDay(curPlayer, investType)
|
| | | investMaxDayDict = IpyGameDataPY.GetFuncEvalCfg('InvestMaxDay')
|
| | | maxDay = investMaxDayDict.get(str(investType), 0)
|
| | | if curDay > maxDay or __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, maxDay)):
|
| | | __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Time % investType, 0)
|
| | | __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType, 0)
|
| | | for i in xrange(1, maxDay+1):
|
| | | __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, i), 0)
|
| | | Sync_GoldInvestInfo(curPlayer, investType, isForce=True)
|
| | | for investType in ChConfig.CanRepeatInvestType:
|
| | | investGoldRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType)
|
| | | if not investGoldRecord:
|
| | | return
|
| | | curDay = __GetInvestCurDay(curPlayer, investType)
|
| | | investMaxDayDict = IpyGameDataPY.GetFuncEvalCfg('InvestMaxDay')
|
| | | maxDay = investMaxDayDict.get(str(investType), 0)
|
| | | if curDay > maxDay or __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, maxDay)):
|
| | | __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Time % investType, 0)
|
| | | __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType, 0)
|
| | | for i in xrange(1, maxDay+1):
|
| | | __SetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_GotRewardValue % (investType, i), 0)
|
| | | Sync_GoldInvestInfo(curPlayer, investType, isForce=True)
|
| | | return
|
| | |
|
| | | #// A5 40 投资理财 #tagCMGoldInvest
|
| | |
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | investType = clientData.InvestType
|
| | | investGold = clientData.InvestGold
|
| | | |
| | | GameWorld.DebugLog("投资理财:investType=%s,investGold=%s" % (investType, investGold))
|
| | | investCostDict = IpyGameDataPY.GetFuncEvalCfg('InvestCost')
|
| | | if str(investType) not in investCostDict:
|
| | | return
|
| | |
| | | if investGold not in costList:
|
| | | GameWorld.DebugLog(' 投资理财 投资额度不存在 investGold=%s, investType=%s'%(investGold, investType))
|
| | | return
|
| | | |
| | | awardData = costList.index(investGold) + 1
|
| | | if investType == ChConfig.GoldInvestType_VIP:
|
| | | awardData = __GetInvestLVData(curPlayer)
|
| | | __DoLogicInvest(curPlayer, investType, investGold, awardData)
|
| | | return
|
| | |
|
| | | def InvestByCTG(curPlayer, ctgID):
|
| | | ## 充值投资
|
| | | ctgInvestDict = IpyGameDataPY.GetFuncEvalCfg('InvestCost', 3, {})
|
| | | for investType, ctgIDList in ctgInvestDict.items():
|
| | | if ctgID in ctgIDList:
|
| | | __DoLogicInvest(curPlayer, int(investType), ctgID, 1)
|
| | | GameWorld.Log('投资理财 investType=%s,ctgID=%s'%(investType, ctgID), curPlayer.GetID())
|
| | | break
|
| | | return
|
| | |
|
| | |
|
| | | def __DoLogicInvest(curPlayer, investType, investGold, awardData):
|
| | | GameWorld.DebugLog("投资理财:investType=%s,investGold=%s, awardData=%s" % (investType, investGold, awardData))
|
| | | |
| | | needVIPLVDict = IpyGameDataPY.GetFuncEvalCfg('InvestCost', 2, {})
|
| | | needVIPLV = needVIPLVDict.get(str(investType), 0)
|
| | | if curPlayer.GetVIPLv() < needVIPLV:
|
| | |
| | |
|
| | |
|
| | | deductGold = investGold
|
| | | if str(investType) in IpyGameDataPY.GetFuncEvalCfg('InvestCost', 3, {}):
|
| | | deductGold = 0 #充钱的不用扣仙玉
|
| | | investGoldRecord = __GetPDictValue(curPlayer, ChConfig.Def_PDict_GoldInvest_Gold % investType)
|
| | | if investGoldRecord:
|
| | | curDay = __GetInvestCurDay(curPlayer, investType)
|