8716 【主干】【后端】【BT2】H.活动-节日祈愿(增加节日充值领奖);
9个文件已修改
192 ■■■■ 已修改文件
PySysDB/PySysDBG.h 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBG.h
@@ -620,6 +620,22 @@
    BYTE        IsDayReset;    //是否每天重置
};
//累计充值活动表3 - 节日充值
struct tagActTotalRecharge3
{
    DWORD        _CfgID;    //配置ID
    char        ActMark;    //活动组标记
    list        PlatformList;    //活动平台列表["平台A", "平台A", ...],配[]代表所有
    list        ServerGroupIDList;    //服务器ID列表
    char        StartDate;    //开启日期
    char        EndDate;    //结束日期
    dict        NotifyInfoStart;    //全服提示信息 - 相对开始时间
    dict        NotifyInfoEnd;    //全服提示信息 - 相对结束时间
    list        NotifyInfoLoop;    //全服提示信息 - 循环广播[间隔分钟, 广播key]
    BYTE        IsDayReset;    //是否每天重置
};
//跨服分区表通用
struct tagCrossZoneComm
PySysDB/PySysDBPY.h
@@ -1612,6 +1612,18 @@
    BYTE        PrizeCountLimit;    //最大赠送次数
};
//累计充值活动表3 - 节日充值
struct tagActTotalRecharge3
{
    DWORD        _CfgID;    //配置ID
    char        StartDate;    //开启日期
    char        EndDate;    //结束日期
    WORD        LVLimit;    //限制等级
    BYTE        IsDayReset;    //是否每天重置
    list        TemplateIDList;    //模板ID列表
};
//累计充值活动表2
struct tagActTotalRecharge2
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -517,6 +517,19 @@
                        ("BYTE", "IsDayReset", 0),
                        ),
                "ActTotalRecharge3":(
                        ("DWORD", "CfgID", 1),
                        ("char", "ActMark", 0),
                        ("list", "PlatformList", 0),
                        ("list", "ServerGroupIDList", 0),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("dict", "NotifyInfoStart", 0),
                        ("dict", "NotifyInfoEnd", 0),
                        ("list", "NotifyInfoLoop", 0),
                        ("BYTE", "IsDayReset", 0),
                        ),
                "CrossZoneComm":(
                        ("char", "CrossZoneName", 1),
                        ("BYTE", "ZoneID", 1),
@@ -1698,6 +1711,33 @@
    def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key]
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
# 累计充值活动表3-节日充值
class IPY_ActTotalRecharge3():
    def __init__(self):
        self.CfgID = 0
        self.ActMark = ""
        self.PlatformList = []
        self.ServerGroupIDList = []
        self.StartDate = ""
        self.EndDate = ""
        self.NotifyInfoStart = {}
        self.NotifyInfoEnd = {}
        self.NotifyInfoLoop = []
        self.IsDayReset = 0
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetActMark(self): return self.ActMark # 活动组标记
    def GetPlatformList(self): return self.PlatformList # 活动平台列表["平台A", "平台A", ...],配[]代表所有
    def GetServerGroupIDList(self): return self.ServerGroupIDList # 服务器ID列表
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetNotifyInfoStart(self): return self.NotifyInfoStart # 全服提示信息 - 相对开始时间
    def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # 全服提示信息 - 相对结束时间
    def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # 全服提示信息 - 循环广播[间隔分钟, 广播key]
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
# 跨服分区表通用
class IPY_CrossZoneComm():
    
@@ -2157,6 +2197,8 @@
        self.ipyActTotalRechargeLen = len(self.ipyActTotalRechargeCache)
        self.ipyActTotalRecharge2Cache = self.__LoadFileData("ActTotalRecharge2", IPY_ActTotalRecharge2)
        self.ipyActTotalRecharge2Len = len(self.ipyActTotalRecharge2Cache)
        self.ipyActTotalRecharge3Cache = self.__LoadFileData("ActTotalRecharge3", IPY_ActTotalRecharge3)
        self.ipyActTotalRecharge3Len = len(self.ipyActTotalRecharge3Cache)
        self.ipyCrossZoneCommCache = self.__LoadFileData("CrossZoneComm", IPY_CrossZoneComm)
        self.ipyCrossZoneCommLen = len(self.ipyCrossZoneCommCache)
        self.ipyCrossZonePKCache = self.__LoadFileData("CrossZonePK", IPY_CrossZonePK)
@@ -2447,6 +2489,8 @@
    def GetActTotalRechargeByIndex(self, index): return self.ipyActTotalRechargeCache[index]
    def GetActTotalRecharge2Count(self): return self.ipyActTotalRecharge2Len
    def GetActTotalRecharge2ByIndex(self, index): return self.ipyActTotalRecharge2Cache[index]
    def GetActTotalRecharge3Count(self): return self.ipyActTotalRecharge3Len
    def GetActTotalRecharge3ByIndex(self, index): return self.ipyActTotalRecharge3Cache[index]
    def GetCrossZoneCommCount(self): return self.ipyCrossZoneCommLen
    def GetCrossZoneCommByIndex(self, index): return self.ipyCrossZoneCommCache[index]
    def GetCrossZonePKCount(self): return self.ipyCrossZonePKLen
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -214,6 +214,7 @@
OperationActionName_WishingWell = "ActWishingWell" # 许愿池活动
OperationActionName_TotalRecharge = "ActTotalRecharge" # 累计充值活动
OperationActionName_TotalRecharge2 = "ActTotalRecharge2" # 累计充值活动
OperationActionName_TotalRecharge3 = "ActTotalRecharge3" # 累计充值活动 - 节日充值领奖
OperationActionName_WeekParty = "ActWeekParty" # 周狂欢活动
OperationActionName_LoginAward = "ActLoginAward" # 登录奖励活动
OperationActionName_FeastWeekParty = "ActFeastWeekParty" # 节日巡礼狂欢活动
@@ -228,7 +229,7 @@
#节日活动类型列表 - 该类型无视开服天,日期到了就开启
FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
                                OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
                                OperationActionName_FeastLogin,
                                OperationActionName_FeastLogin, OperationActionName_TotalRecharge3,
                                ]
#所有的运营活动列表,含节日活动
OperationActionNameList = [OperationActionName_ExpRate, OperationActionName_CostRebate, 
@@ -250,9 +251,15 @@
                                   OperationActionName_DailyGiftbag, OperationActionName_GrowupBuy,
                                   OperationActionName_WeekParty,
                                   OperationActionName_CollectWords, OperationActionName_CollectWords2,
                                   OperationActionName_FeastLogin,
                                   OperationActionName_FeastLogin, OperationActionName_TotalRecharge3,
                                   ]
#所有的累计充值活动
OperationActionName_TotalRechargeDict = {
                                         1:OperationActionName_TotalRecharge,
                                         2:OperationActionName_TotalRecharge2,
                                         3:OperationActionName_TotalRecharge3,
                                         }
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1275,6 +1275,15 @@
                        ("BYTE", "PrizeCountLimit", 0),
                        ),
                "ActTotalRecharge3":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
                        ("char", "EndDate", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("list", "TemplateIDList", 0),
                        ),
                "ActTotalRecharge2":(
                        ("DWORD", "CfgID", 1),
                        ("char", "StartDate", 0),
@@ -4305,6 +4314,25 @@
    def GetGoldPrize(self): return self.GoldPrize # 返利仙玉数
    def GetPrizeCountLimit(self): return self.PrizeCountLimit # 最大赠送次数
# 累计充值活动表3-节日充值
class IPY_ActTotalRecharge3():
    def __init__(self):
        self.CfgID = 0
        self.StartDate = ""
        self.EndDate = ""
        self.LVLimit = 0
        self.IsDayReset = 0
        self.TemplateIDList = []
        return
    def GetCfgID(self): return self.CfgID # 配置ID
    def GetStartDate(self): return self.StartDate # 开启日期
    def GetEndDate(self): return self.EndDate # 结束日期
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetTemplateIDList(self): return self.TemplateIDList # 模板ID列表
# 累计充值活动表2
class IPY_ActTotalRecharge2():
    
@@ -5466,6 +5494,8 @@
        self.ipyActRechargePrizeLen = len(self.ipyActRechargePrizeCache)
        self.ipyRechargePrizeTemplateCache = self.__LoadFileData("RechargePrizeTemplate", IPY_RechargePrizeTemplate)
        self.ipyRechargePrizeTemplateLen = len(self.ipyRechargePrizeTemplateCache)
        self.ipyActTotalRecharge3Cache = self.__LoadFileData("ActTotalRecharge3", IPY_ActTotalRecharge3)
        self.ipyActTotalRecharge3Len = len(self.ipyActTotalRecharge3Cache)
        self.ipyActTotalRecharge2Cache = self.__LoadFileData("ActTotalRecharge2", IPY_ActTotalRecharge2)
        self.ipyActTotalRecharge2Len = len(self.ipyActTotalRecharge2Cache)
        self.ipyActTotalRechargeCache = self.__LoadFileData("ActTotalRecharge", IPY_ActTotalRecharge)
@@ -5976,6 +6006,8 @@
    def GetActRechargePrizeByIndex(self, index): return self.ipyActRechargePrizeCache[index]
    def GetRechargePrizeTemplateCount(self): return self.ipyRechargePrizeTemplateLen
    def GetRechargePrizeTemplateByIndex(self, index): return self.ipyRechargePrizeTemplateCache[index]
    def GetActTotalRecharge3Count(self): return self.ipyActTotalRecharge3Len
    def GetActTotalRecharge3ByIndex(self, index): return self.ipyActTotalRecharge3Cache[index]
    def GetActTotalRecharge2Count(self): return self.ipyActTotalRecharge2Len
    def GetActTotalRecharge2ByIndex(self, index): return self.ipyActTotalRecharge2Cache[index]
    def GetActTotalRechargeCount(self): return self.ipyActTotalRechargeLen
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py
@@ -35,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()
@@ -43,25 +43,16 @@
    return templateID
def OnPlayerLogin(curPlayer):
    # 活动1
    actNum = 1
    for actNum, actName in ShareDefine.OperationActionName_TotalRechargeDict.items():
    isReset = __CheckPlayerTotalRechargeAction(curPlayer, actNum)
    if not isReset:
        actTotalRechargeInfo = PyGameData.g_operationActionDict.get(ShareDefine.OperationActionName_TotalRecharge, {})
            actTotalRechargeInfo = PyGameData.g_operationActionDict.get(actName, {})
        # 活动中同步活动信息
        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)
    return
def RefreshTotalRechargeActionInfo(actNum):
@@ -78,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)
    
@@ -166,10 +156,10 @@
    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)
@@ -202,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)
@@ -279,10 +269,11 @@
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
@@ -294,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
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -427,8 +427,8 @@
    PlayerNewFairyCeremony.OnFCRecharge(curPlayer)
    PlayerGoldGift.OnPlayerChargeGold(curPlayer)
    #累积充值X元
    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, 1)
    PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, 2)
    for actNum in ShareDefine.OperationActionName_TotalRechargeDict.keys():
        PlayerActTotalRecharge.AddTotalRechargeGold(curPlayer, orderCoin, actNum)
    PlayerFairyCeremony.AddFCCTGRMB(curPlayer, orderCoin)
    PlayerNewFairyCeremony.AddFCCostGold(curPlayer, orderCoin)
    #开服活动
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -1343,10 +1343,11 @@
                
            elif actionName == ShareDefine.OperationActionName_CostRebate:
                PlayerCostRebate.RefreshCostRebateActionInfo()
            elif actionName == ShareDefine.OperationActionName_TotalRecharge:
                PlayerActTotalRecharge.RefreshTotalRechargeActionInfo(1)
            elif actionName == ShareDefine.OperationActionName_TotalRecharge2:
                PlayerActTotalRecharge.RefreshTotalRechargeActionInfo(2)
            elif actionName in ShareDefine.OperationActionName_TotalRechargeDict.values():
                for actNum, actName in ShareDefine.OperationActionName_TotalRechargeDict.items():
                    if actionName == actName:
                        PlayerActTotalRecharge.RefreshTotalRechargeActionInfo(actNum)
                        break
            elif actionName == ShareDefine.OperationActionName_SpringSale:
                PlayerSpringSale.RefreshSpringSaleActionInfo()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -214,6 +214,7 @@
OperationActionName_WishingWell = "ActWishingWell" # 许愿池活动
OperationActionName_TotalRecharge = "ActTotalRecharge" # 累计充值活动
OperationActionName_TotalRecharge2 = "ActTotalRecharge2" # 累计充值活动
OperationActionName_TotalRecharge3 = "ActTotalRecharge3" # 累计充值活动 - 节日充值领奖
OperationActionName_WeekParty = "ActWeekParty" # 周狂欢活动
OperationActionName_LoginAward = "ActLoginAward" # 登录奖励活动
OperationActionName_FeastWeekParty = "ActFeastWeekParty" # 节日巡礼狂欢活动
@@ -228,7 +229,7 @@
#节日活动类型列表 - 该类型无视开服天,日期到了就开启
FeastOperationActionNameList = [OperationActionName_FeastWeekParty, OperationActionName_FeastRedPacket,
                                OperationActionName_RechargeRebateGold, OperationActionName_GrowupBuy,
                                OperationActionName_FeastLogin,
                                OperationActionName_FeastLogin, OperationActionName_TotalRecharge3,
                                ]
#所有的运营活动列表,含节日活动
OperationActionNameList = [OperationActionName_ExpRate, OperationActionName_CostRebate, 
@@ -250,9 +251,15 @@
                                   OperationActionName_DailyGiftbag, OperationActionName_GrowupBuy,
                                   OperationActionName_WeekParty,
                                   OperationActionName_CollectWords, OperationActionName_CollectWords2,
                                   OperationActionName_FeastLogin,
                                   OperationActionName_FeastLogin, OperationActionName_TotalRecharge3,
                                   ]
#所有的累计充值活动
OperationActionName_TotalRechargeDict = {
                                         1:OperationActionName_TotalRecharge,
                                         2:OperationActionName_TotalRecharge2,
                                         3:OperationActionName_TotalRecharge3,
                                         }
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜