7385 【2.0】【后端】超值礼包修改(充值表增加字段配置是否允许重置次数、总限购次数)
3个文件已修改
41 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -1161,6 +1161,8 @@
struct tagCTG
{
    BYTE        _RecordID;        //记录ID
    BYTE        CanResetBuyCount;    //是否允许重置次数
    BYTE        TotalBuyCount;    //总限购次数
    BYTE        DailyBuyCount;    //每日限购次数
    WORD        GainGold;    //获得仙玉数
    WORD        GainGoldPrize;    //赠送仙玉数
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -924,6 +924,8 @@
                "CTG":(
                        ("BYTE", "RecordID", 1),
                        ("BYTE", "CanResetBuyCount", 0),
                        ("BYTE", "TotalBuyCount", 0),
                        ("BYTE", "DailyBuyCount", 0),
                        ("WORD", "GainGold", 0),
                        ("WORD", "GainGoldPrize", 0),
@@ -3346,6 +3348,8 @@
    
    def __init__(self):
        self.RecordID = 0
        self.CanResetBuyCount = 0
        self.TotalBuyCount = 0
        self.DailyBuyCount = 0
        self.GainGold = 0
        self.GainGoldPrize = 0
@@ -3355,6 +3359,8 @@
        return
        
    def GetRecordID(self): return self.RecordID # 记录ID
    def GetCanResetBuyCount(self): return self.CanResetBuyCount # 是否允许重置次数
    def GetTotalBuyCount(self): return self.TotalBuyCount # 总限购次数
    def GetDailyBuyCount(self): return self.DailyBuyCount # 每日限购次数
    def GetGainGold(self): return self.GainGold # 获得仙玉数
    def GetGainGoldPrize(self): return self.GainGoldPrize # 赠送仙玉数
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -97,6 +97,8 @@
    for i in xrange(ipyDataMgr.GetCTGCount()):
        ipyData = ipyDataMgr.GetCTGByIndex(i)
        recordID = ipyData.GetRecordID()
        if not ipyData.GetCanResetBuyCount():
            continue
        totalBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % recordID)
        todayBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TodayCTGCount % recordID)
        if not totalBuyCount and not todayBuyCount:
@@ -234,26 +236,37 @@
        DataRecordPack.DR_CTGError(curPlayer, "Can not find CTG ipyData!", addDRDict)
        return
    
    dailyBuyCount = ipyData.GetDailyBuyCount()
    addDRDict.update({"recordID":recordID})
    totalBuyCountLimit = ipyData.GetTotalBuyCount()
    totalBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % recordID)
    if totalBuyCountLimit:
        addDRDict.update({"totalBuyCountLimit":totalBuyCountLimit, "totalBuyCount":totalBuyCount})
        if totalBuyCount >= totalBuyCountLimit:
            DataRecordPack.DR_CTGError(curPlayer, "Pay count limit total!totalBuyCount=%s" % totalBuyCount, addDRDict)
            return
    dailyBuyCountLimit = ipyData.GetDailyBuyCount()
    todayBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TodayCTGCount % recordID)
    if dailyBuyCount:
        addDRDict.update({"dailyCanBuyCount":dailyBuyCount, "todayBuyCount":todayBuyCount})
        if todayBuyCount >= dailyBuyCount:
    if dailyBuyCountLimit:
        addDRDict.update({"dailyBuyCountLimit":dailyBuyCountLimit, "todayBuyCount":todayBuyCount})
        if todayBuyCount >= dailyBuyCountLimit:
            DataRecordPack.DR_CTGError(curPlayer, "Pay count limit today!todayBuyCount=%s" % todayBuyCount, addDRDict)
            return
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TodayCTGCount % recordID, todayBuyCount + 1)
    if totalBuyCountLimit:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGGoodsBuyCount % recordID, totalBuyCount + 1)
        addDRDict.update({"totalBuyCountUpd":(totalBuyCount + 1)})
    if dailyBuyCountLimit:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TodayCTGCount % recordID, todayBuyCount + 1)
        addDRDict.update({"todayBuyCountUpd":(todayBuyCount + 1)})
    giveItemList = ipyData.GetGainItemList()
    addGold = ipyData.GetGainGold() # 获得仙玉数
    gainGoldPrize = ipyData.GetGainGoldPrize() # 赠送仙玉数,首次充值赠送仙玉时,此仙玉不给
    firstGoldPrize = ipyData.GetFirstGoldPrize() # 首次充值赠送的仙玉
    notifyMark = ipyData.GetNotifyMark()
    totalBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CTGGoodsBuyCount % recordID)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CTGGoodsBuyCount % recordID, totalBuyCount + 1)
    prizeGold = firstGoldPrize if (not totalBuyCount and firstGoldPrize) else gainGoldPrize
    addDRDict.update({"totalBuyCount":(totalBuyCount + 1)})
    
    Sync_CoinToGoldCountInfo(curPlayer, [recordID])
    return addGold, prizeGold, giveItemList, notifyMark