hxp
2021-10-12 6ed7fdf75d8bfcdbde5e8eaf0f5698a45e359076
9293 【BT5】【后端】新增绝版礼包
3个文件已修改
24 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -1402,6 +1402,7 @@
    WORD        AdvanceMinutes;    //前端提前X分钟展示活动
    WORD        LVLimit;    //限制等级
    BYTE        IsDayReset;    //是否每天重置
    BYTE        IsJueban;    //是否绝版礼包
    dict        GiftbagTypeList;    //礼包类型列表
    char        MailKey;        //活动更新时发送邮件key
    list        MailItemPrize;        //活动更新时发送邮件奖励物品
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -1123,6 +1123,7 @@
                        ("WORD", "AdvanceMinutes", 0),
                        ("WORD", "LVLimit", 0),
                        ("BYTE", "IsDayReset", 0),
                        ("BYTE", "IsJueban", 0),
                        ("dict", "GiftbagTypeList", 0),
                        ("char", "MailKey", 0),
                        ("list", "MailItemPrize", 0),
@@ -4218,6 +4219,7 @@
        self.AdvanceMinutes = 0
        self.LVLimit = 0
        self.IsDayReset = 0
        self.IsJueban = 0
        self.GiftbagTypeList = {}
        self.MailKey = ""
        self.MailItemPrize = []
@@ -4231,6 +4233,7 @@
    def GetAdvanceMinutes(self): return self.AdvanceMinutes # 前端提前X分钟展示活动
    def GetLVLimit(self): return self.LVLimit # 限制等级
    def GetIsDayReset(self): return self.IsDayReset # 是否每天重置
    def GetIsJueban(self): return self.IsJueban # 是否绝版礼包
    def GetGiftbagTypeList(self): return self.GiftbagTypeList # 礼包类型列表
    def GetMailKey(self): return self.MailKey # 活动更新时发送邮件key
    def GetMailItemPrize(self): return self.MailItemPrize # 活动更新时发送邮件奖励物品
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py
@@ -127,7 +127,9 @@
        if not state:
            continue
        
        giftbagTypeList = GetGiftbagTypeList(actInfo.get(ShareDefine.ActKey_CfgID, 0), actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
        cfgID = actInfo.get(ShareDefine.ActKey_CfgID, 0)
        giftbagTypeList = GetGiftbagTypeList(cfgID, actInfo.get(ShareDefine.ActKey_DayIndex, 0), actInfo.get(ShareDefine.ActKey_WorldLV, 0))
        if not giftbagTypeList:
            continue
        actGiftbagType = giftbagTypeList[-1] if state > len(giftbagTypeList) else giftbagTypeList[state - 1]
@@ -143,6 +145,18 @@
        if not giftbagIpyData:
            continue
        
        flashGiftbagIpyData = IpyGameDataPY.GetIpyGameData("ActFlashGiftbag", cfgID)
        if not flashGiftbagIpyData:
            continue
        isJueban = flashGiftbagIpyData.GetIsJueban()
        if isJueban:
            for ipyData in giftbagIpyDataList:
                juebanGiftbagID = ipyData.GetGiftbagID()
                juebanBuyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FlashGiftbagBuyCount % (actNum, juebanGiftbagID))
                if juebanGiftbagID not in giftbagIDList and juebanBuyCount > 0:
                    DataRecordPack.DR_CTGError(curPlayer, "FlashGiftbag JueBan pay limit! have already bought other giftbagID=%s" % juebanGiftbagID, addDRDict)
                    return
        giftbagID = giftbagIpyData.GetGiftbagID()
        giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob()) 
        addDRDict.update({"giftbagID":giftbagID, "giftItemList":giftItemList})
@@ -171,8 +185,8 @@
        PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_GiftBag, actGiftbagType, False)
        
        canBuy = True
        GameWorld.DebugLog("    购买限时礼包: actNum=%s,actGiftbagType=%s,giftbagID=%s,buyCount=%s"
                           % (actNum, actGiftbagType, giftbagID, buyCount + 1))
        GameWorld.DebugLog("    购买限时礼包: actNum=%s,actGiftbagType=%s,giftbagID=%s,buyCount=%s,isJueban=%s"
                           % (actNum, actGiftbagType, giftbagID, buyCount + 1, isJueban))
        break
    
    if not canBuy: