xdh
2019-06-11 fb96193c327bcd8bca652018034f457d7ce6bf9b
7203 【2.0】【后端】周卡、月卡功能
3个文件已修改
61 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -5115,10 +5115,11 @@
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]
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -49,6 +49,7 @@
import PlayerActTotalRecharge
import OpenServerCampaign
import PlayerWeekParty
import PlayerGoldInvest
import ItemCommon
import time
@@ -214,7 +215,7 @@
        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:
@@ -257,7 +258,7 @@
    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)
    
@@ -305,6 +306,9 @@
    #开服活动
    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
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGoldInvest.py
@@ -77,19 +77,19 @@
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
@@ -107,8 +107,6 @@
    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
@@ -116,10 +114,26 @@
    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:
@@ -128,6 +142,8 @@
    
        
    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)