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