From 0c227b568dceb8124cf1e8611df0fb27c6efa6ac Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 三月 2019 21:35:46 +0800
Subject: [PATCH] 6385 【后端】【2.0】五行灵根开发(优化洗点)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActTotalRecharge.py | 30 ++++++++++++++++++++++--------
1 files changed, 22 insertions(+), 8 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..462c1f3 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,16 @@
PlayerControl.SendMailBatch("TotalRechargeMail", batchPlayerIDList, batchAddItemList, batchParamList)
return
+
+def __GetItemList(itemDict, job, worldLV):
+ #{世界等级范围:{职业:[(物品ID,个数,是否绑定), ...]}}
+ itemInfoDict = GameWorld.GetDictValueByRangeKey(itemDict, worldLV, {})
+ if str(job) not in itemInfoDict:
+ GameWorld.ErrLog('累计充值奖励未配置该职业itemDict=%s,job=%s'%(itemDict, job))
+ return []
+ else:
+ return itemInfoDict[str(job)]
+
def AddTotalRechargeGold(curPlayer, addGold):
if addGold <= 0:
@@ -194,7 +206,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:
@@ -216,7 +229,7 @@
PlayerControl.WorldNotify(0, notifyKey, [curPlayer.GetPlayerName(), needGold])
for itemID, itemCount, isBind in awardItemList:
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
addDataDict = {"TemplateID":templateID, "NeedGold":needGold, "AwardIndex":awardIndex,
"ItemList":str(awardItemList)}
@@ -249,6 +262,7 @@
if not templateIDList:
return
job = curPlayer.GetJob()
+ actWorldLV = actTotalRechargeInfo.get(ShareDefine.ActKey_WorldLV, 0)
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
actInfo = ChPyNetSendPack.tagMCActTotalRechargeInfo()
actInfo.StartDate = GameWorld.GetOperationActionDateStr(ipyData.GetStartDate(), openServerDay)
@@ -268,8 +282,8 @@
awardInfo.AwardIndex = ipyData.GetAwardIndex()
awardInfo.NeedGold = ipyData.GetNeedGold()
awardInfo.AwardItem = []
- awardItemDict = ipyData.GetAwardItem()
- for itemID, itemCount, isBind in awardItemDict.get(str(job), []):
+ awardItemList = __GetItemList(ipyData.GetAwardItem(), job, actWorldLV)
+ for itemID, itemCount, isBind in awardItemList:
awardItem = ChPyNetSendPack.tagMCTotalRechargeAwardItem()
awardItem.ItemID = itemID
awardItem.ItemCount = itemCount
--
Gitblit v1.8.0