From 6ed7fdf75d8bfcdbde5e8eaf0f5698a45e359076 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 13 十二月 2021 14:16:58 +0800 Subject: [PATCH] 9293 【BT5】【后端】新增绝版礼包 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py | 3 +++ PySysDB/PySysDBPY.h | 1 + ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py | 20 +++++++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h index 3e0eb5c..70bebc7 100644 --- a/PySysDB/PySysDBPY.h +++ b/PySysDB/PySysDBPY.h @@ -1402,6 +1402,7 @@ WORD AdvanceMinutes; //前端提前X分钟展示活动 WORD LVLimit; //限制等级 BYTE IsDayReset; //是否每天重置 + BYTE IsJueban; //是否绝版礼包 dict GiftbagTypeList; //礼包类型列表 char MailKey; //活动更新时发送邮件key list MailItemPrize; //活动更新时发送邮件奖励物品 diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py index 64cdfe4..c463af9 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py +++ b/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 # 活动更新时发送邮件奖励物品 diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py index 31c25c8..2e22b00 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFlashGiftbag.py +++ b/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: -- Gitblit v1.8.0