From ee0976feabc604ac91bdc86fc368941cf85d97b7 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 12 二月 2019 11:39:51 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py
index 2e31217..dedd5c9 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py
@@ -73,7 +73,8 @@
     if TotalRechargeID == playerTotalRechargeID:
         #GameWorld.DebugLog("累计充值活动ID不变,不处理!", curPlayer.GetPlayerID())
         return
-    
+    actWorldLV = actTotalRechargeInfo.get(ShareDefine.ActKey_WorldLV, 0)
+    playerWorldLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalRechargeWorldLV)
     templateID = GetTemplateID(actTotalRechargeInfo.get(ShareDefine.ActKey_CfgID, 0), actTotalRechargeInfo.get(ShareDefine.ActKey_DayIndex, 0))
     playerTemplateID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalRechargeTemplateID)
     
@@ -81,10 +82,11 @@
                        % (TotalRechargeID, playerTotalRechargeID, state, templateID, playerTemplateID), playerID)
     
     # 未领取的奖励邮件发放
-    __SendTotalRechargeMail(curPlayer, playerTemplateID)
+    __SendTotalRechargeMail(curPlayer, playerTemplateID, playerWorldLV)
     
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalRechargeID, TotalRechargeID)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalRechargeTemplateID, templateID)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalRechargeWorldLV, actWorldLV)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalRechargeGold, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TotalRechargeAwardRecord, 0)
     
@@ -92,7 +94,7 @@
     Sync_TotalRechargeInfo(curPlayer)
     return True
 
-def __SendTotalRechargeMail(curPlayer, playerTemplateID):
+def __SendTotalRechargeMail(curPlayer, playerTemplateID, playerWorldLV):
     # 未领取的奖励邮件发放
     
     if not playerTemplateID:
@@ -120,7 +122,7 @@
             continue
         awardRecord |= pow(2, awardIndex) 
         
-        awardItemList = ipyData.GetAwardItem().get(str(job), [])
+        awardItemList = __GetItemList(ipyData.GetAwardItem(), job, playerWorldLV)
         batchPlayerIDList.append([playerID])
         batchAddItemList.append(awardItemList)
         batchParamList.append([needGold])
@@ -130,6 +132,21 @@
         PlayerControl.SendMailBatch("TotalRechargeMail", batchPlayerIDList, batchAddItemList, batchParamList)
         
     return
+
+def __GetItemList(itemDict, job, worldLV):
+    #{世界等级范围:[(物品ID,个数,是否绑定), ...]},若物品ID要区分职业则配{世界等级范围:[({职业:物品ID,..},个数,是否绑定), ...]}
+    itemList = []
+    itemInfoList = GameWorld.GetDictValueByRangeKey(itemDict, worldLV, [])
+    for itemInfo in itemInfoList:
+        if type(itemInfo[0]) == dict:
+            itemID = itemInfo[0].get(job)
+            if not itemID:
+                GameWorld.ErrLog('累计充值奖励未配置该职业itemDict=%s,job=%s'%(itemDict, job))
+                continue
+        else:
+            itemID = itemInfo[0]
+        itemList.append([itemID, itemInfo[1], itemInfo[2]])
+    return itemList
 
 def AddTotalRechargeGold(curPlayer, addGold):
     if addGold <= 0:
@@ -194,7 +211,8 @@
         return
     
     needGold = awardIpyData.GetNeedGold()
-    awardItemList = awardIpyData.GetAwardItem().get(str(curPlayer.GetJob()), [])
+    actWorldLV = actTotalRechargeInfo.get(ShareDefine.ActKey_WorldLV, 0)
+    awardItemList = __GetItemList(ipyData.GetAwardItem(), curPlayer.GetJob(), actWorldLV)
     
     curRechargeGold = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TotalRechargeGold)
     if curRechargeGold < needGold:

--
Gitblit v1.8.0