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