From dda28ddebeae34b17da2632bd8131dbeff5ae1de Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 05 六月 2024 14:07:49 +0800
Subject: [PATCH] 10173 【主干】【香港】【越南】BOSS凭证(购买次数礼包活动增加折扣信息及免费次数礼包)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActBuyCountGift.py |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActBuyCountGift.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActBuyCountGift.py
index 7e56d35..5f0a463 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActBuyCountGift.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActBuyCountGift.py
@@ -86,7 +86,8 @@
     ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID)
     if not ipyData:
         return
-    resetCTGIDList = ipyData.GetCTGIDList()
+    ctgIDInfo = ipyData.GetCTGIDInfo()
+    resetCTGIDList = ctgIDInfo.keys()
     PlayerCoin.DoResetCTGCountByIDList(curPlayer, "ActBuyCountGift", resetCTGIDList)
     return
 
@@ -108,12 +109,19 @@
     ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID)
     if not ipyData:
         return
-    CTGIDList = ipyData.GetCTGIDList()
+    CTGIDInfo= ipyData.GetCTGIDInfo()
+    CTGIDList = CTGIDInfo.keys()
     CTGCountAwardInfo = ipyData.GetCTGCountAwardInfo()
     if buyCount not in CTGCountAwardInfo:
         GameWorld.DebugLog("购买次数礼包没有该次数礼包奖励! actNum=%s,cfgID=%s,buyCount=%s" % (actNum, cfgID, buyCount), playerID)
         return
     awardItemList = CTGCountAwardInfo[buyCount]
+    
+    awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BuyCountGiftAward % actNum)
+    if awardRecord & pow(2, buyCount):
+        GameWorld.Log("购买次数礼包活动已经领取过该奖励! actNum=%s,cfgID=%s,buyCount=%s,awardRecord=%s" 
+                      % (actNum, cfgID, buyCount, awardRecord), playerID)
+        return
     
     totalBuyCount = 0
     for ctgID in CTGIDList:
@@ -122,12 +130,6 @@
     if totalBuyCount < buyCount:
         GameWorld.Log("购买次数礼包活动累计购买次数不足,无法免费领取! actNum=%s,cfgID=%s,CTGIDList=%s,totalBuyCount=%s < %s" 
                       % (actNum, cfgID, CTGIDList, totalBuyCount, buyCount), playerID)
-        return
-    
-    awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BuyCountGiftAward % actNum)
-    if awardRecord & pow(2, buyCount):
-        GameWorld.Log("购买次数礼包活动已经领取过该奖励! actNum=%s,cfgID=%s,buyCount=%s,awardRecord=%s" 
-                      % (actNum, cfgID, buyCount, awardRecord), playerID)
         return
     
     # 检查背包
@@ -166,6 +168,7 @@
     ipyData = IpyGameDataPY.GetIpyGameData("ActBuyCountGift", cfgID)
     if not ipyData:
         return
+    CTGIDInfo = ipyData.GetCTGIDInfo()
     CTGCountAwardInfo = ipyData.GetCTGCountAwardInfo()
     
     startDateStr, endDateStr = GameWorld.GetOperationActionDateStr(ipyData)
@@ -177,10 +180,15 @@
     actInfo.LimitLV = ipyData.GetLVLimit()
     actInfo.IsDayReset = ipyData.GetIsDayReset()
     actInfo.ResetType = ipyData.GetResetType()
-    actInfo.CTGIDList = ipyData.GetCTGIDList()
-    actInfo.CTGIDCount = len(actInfo.CTGIDList)
-    actInfo.BuyCountGiftList = []
+    actInfo.CTGIDInfoList = []
+    for ctgID, discount in CTGIDInfo.items():
+        ctg = ChPyNetSendPack.tagMCActBuyCountCTGID()
+        ctg.CTGID = ctgID
+        ctg.Discount = discount
+        actInfo.CTGIDInfoList.append(ctg)
+    actInfo.CTGIDCount = len(actInfo.CTGIDInfoList)
     
+    actInfo.BuyCountGiftList = []
     for buyCount, awardItemList in CTGCountAwardInfo.items():
         giftbag = ChPyNetSendPack.tagMCActBuyCountGift()
         giftbag.NeedBuyCount = buyCount
@@ -192,9 +200,8 @@
             giftItem.IsBind = isAuctionItem
             giftbag.AwardItemList.append(giftItem)
         giftbag.Count = len(giftbag.AwardItemList)
-        
         actInfo.BuyCountGiftList.append(giftbag)
-        
     actInfo.GiftCount = len(actInfo.BuyCountGiftList)
+    
     NetPackCommon.SendFakePack(curPlayer, actInfo)
     return

--
Gitblit v1.8.0