From ceb2cdf78faf09d07b41b61abd1773aa9ff1f534 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 一月 2021 15:53:45 +0800
Subject: [PATCH] 8710 【开发】【主干】【BT2】根据世界等级配置奖励(每日礼包奖励支持按世界等级配置);

---
 ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py          |   12 +++++++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py |   13 +++++++++----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py               |    4 +++-
 ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py                                    |    4 +++-
 4 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
index 0ef4888..58e0646 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldActionControl.py
@@ -582,6 +582,7 @@
         if not isReload and preState == state:
             #已经是这个状态了
             continue
+        GameWorld.Log("运营活动变更: actName=%s,preState=%s,state=%s,dictName=%s" % (actName, preState, state, dictName))
         #更新字典值
         gameWorld.SetDict(dictName, state)
         sendMapServerMsgDict = mapServerInfoDict.get(actName, {})
@@ -590,11 +591,13 @@
         curActID = sendMapServerMsgDict.get(ShareDefine.ActKey_ID)
         dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
         if curActID and PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey) != curActID:
+            GameWorld.Log("    dbActID变更,dbActID=%s,curActID=%s" % (PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey), curActID))
             PlayerDBGSEvent.SetDBGSTrig_ByKey(dbOperationActIDKey, curActID)
             if actName in ShareDefine.NeedWorldLVOperationActNameList:
                 #记录开启时世界等级
                 worldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv)
                 PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName, worldLV)
+                GameWorld.Log("    记录活动开启时世界等级: worldLV=%s" % (worldLV))
                 
             #此处为活动开启时
             if actName == ShareDefine.OperationActionName_BossReborn:
@@ -614,11 +617,14 @@
                 #限时抢购重置购买次数 本次活动每场不能重复
                 #dayIndex = sendMapServerMsgDict.get(ShareDefine.ActKey_DayIndex, 0)
                 PlayerStore.ResetFlashSaleBuyCnt(ipyData)
-                
+        else:
+            GameWorld.Log("    dbActID不变或无活动: dbActID=%s,curActID=%s" % (PlayerDBGSEvent.GetDBGSTrig_ByKey(dbOperationActIDKey), curActID))
+            
         if actName in ShareDefine.NeedWorldLVOperationActNameList:
             actWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OActWorldLV % actName)
             sendMapServerMsgDict[ShareDefine.ActKey_WorldLV] = actWorldLV
-        
+            GameWorld.Log("    活动开始时世界等级: actWorldLV=%s" % (actWorldLV))
+            
         if actName == ShareDefine.OperationActionName_ExpRate:
             if isReload and ipyData:
                 Sync_OperationAction_ExpRate(ipyData)
@@ -654,7 +660,7 @@
         sendMapServerMsgDict[ShareDefine.ActKey_State] = state
         GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_OperationActionInfo % actName, sendMapServerMsgDict)
         
-        GameWorld.Log("运营活动变更: actName=%s,preState=%s,state=%s,dictName=%s, %s" % (actName, preState, state, dictName, sendMapServerMsgDict))
+        GameWorld.Log("    sendMapServerMsgDict: %s" % (sendMapServerMsgDict))
     return
 
 def Sync_OperationAction_ExpRate(ipyData, curPlayer=None):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 820ffd7..27b26b5 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -242,7 +242,9 @@
                                    OperationActionName_NewFairyCeremony, OperationActionName_FlashSale,
                                    OperationActionName_BossReborn, OperationActionName_TotalRecharge, OperationActionName_TotalRecharge2,
                                    OperationActionName_CostRebate, OperationActionName_FlashGiftbag,
-                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure]
+                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
+                                   OperationActionName_DailyGiftbag,
+                                   ]
 
 #跨服运营活动表名定义
 CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
index e5c0d30..875c692 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDailyGiftbag.py
@@ -113,8 +113,8 @@
             DataRecordPack.DR_CTGError(curPlayer, "DailyGiftbag giftbagType=%s giftbagID=%s can not found!" 
                                        % (giftbagType, giftbagID), addDRDict)
         return
-    
-    giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob())
+    actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
+    giftItemList = __GetJobItemList(giftbagIpyData.GetGiftItemList(), curPlayer.GetJob(), actWorldLV)
     addDRDict.update({"giftbagType":giftbagType, "giftbagID":giftbagID, "giftItemList":giftItemList})
     buyCountLimit = giftbagIpyData.GetBuyCountLimit()
     buyCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DailyGiftbagBuyCount % giftbagID)
@@ -140,8 +140,12 @@
     OnPlayerOrderDailyGiftbag(curPlayer, giftbagID, addDRDict, False)
     return
 
-def __GetJobItemList(itemList, job):
+def __GetJobItemList(giftItemInfo, job, worldLV):
     jobItemList = []
+    if isinstance(giftItemInfo, dict):
+        itemList = GameWorld.GetDictValueByRangeKey(giftItemInfo, worldLV, [])
+    else:
+        itemList = giftItemInfo
     for itemID, itemCnt, isBind in itemList:
         if type(itemID) == int:
             jobItemList.append([itemID, itemCnt, isBind])
@@ -193,6 +197,7 @@
     if not giftbagIpyDataList:
         return
     
+    actWorldLV = actInfo.get(ShareDefine.ActKey_WorldLV, 0)
     # 取玩家APPID,混服使用
     appID = GameWorld.GetPlayerPlatform(curPlayer)
     
@@ -210,7 +215,7 @@
         giftBag.BuyCountLimit = giftIpyData.GetBuyCountLimit()
         giftBag.RMB = 0 if not orderIpyData else CommFunc.RMBToCoin(orderIpyData.GetPayRMBNum())
         giftBag.ItemInfo = []
-        for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob()):
+        for itemID, itemCount, isBind in __GetJobItemList(giftIpyData.GetGiftItemList(), curPlayer.GetJob(), actWorldLV):
             item = ChPyNetSendPack.tagMCDailyGiftbagItem()
             item.ItemID = itemID
             item.ItemCount = itemCount
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 820ffd7..27b26b5 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -242,7 +242,9 @@
                                    OperationActionName_NewFairyCeremony, OperationActionName_FlashSale,
                                    OperationActionName_BossReborn, OperationActionName_TotalRecharge, OperationActionName_TotalRecharge2,
                                    OperationActionName_CostRebate, OperationActionName_FlashGiftbag,
-                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure]
+                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure,
+                                   OperationActionName_DailyGiftbag,
+                                   ]
 
 #跨服运营活动表名定义
 CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜

--
Gitblit v1.8.0