From 8b0c819702a1b7863a9bcd2a5054a1ef862e7d34 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 20 六月 2022 16:00:05 +0800
Subject: [PATCH] 9553 【yn_1.0.1】【后端】新增下载奖励(完整包下载奖励支持配置递增编号重复领取)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |   43 ++++++++++++++++++-------------------------
 1 files changed, 18 insertions(+), 25 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index cdf62cb..2802cc7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -6051,38 +6051,33 @@
     ## 发放下载补丁包奖励
     playerID = curPlayer.GetPlayerID()
     patchAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 4)
-    if patchAwardNum >= 100000000:
-        GameWorld.ErrLog("GiveDownloadPatchAward patchAwardNum error! >= 100000000")
-        return
-    
-    awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState)
-    curPatchAwardNum = awardState / 10
-    
-    if curPatchAwardNum >= patchAwardNum:
-        GameWorld.DebugLog("已发放下载补丁包奖励! curPatchAwardNum(%s) >= patchAwardNum(%s)" % (curPatchAwardNum, patchAwardNum), playerID)
+    curAwardNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadPatchAward)
+    if curAwardNum == patchAwardNum:
+        GameWorld.DebugLog("已发放下载补丁包奖励! curAwardNum(%s) == patchAwardNum(%s)" % (curAwardNum, patchAwardNum), playerID)
         return
     
     awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward', 3)
     if not awardItemList:
         return
     
-    downloadAwardState = awardState % 10
-    updateAwardState = patchAwardNum * 10 + downloadAwardState
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, updateAwardState)
-    GameWorld.DebugLog("发放补丁包下载奖励: awardState=%s,curPatchAwardNum=%s,patchAwardNum=%s,updateAwardState=%s" % 
-                       (awardState, curPatchAwardNum, patchAwardNum, updateAwardState), playerID)
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadPatchAward, patchAwardNum)
+    GameWorld.DebugLog("发放补丁包下载奖励: curAwardNum=%s,patchAwardNum=%s" % (curAwardNum, patchAwardNum), playerID)
     PlayerControl.SendMailByKey("DownloadPatchAward", [playerID], awardItemList)
     return
 
 def GetDownloadAward(curPlayer, dataEx):
     ##分包下载奖励 dataEx 0直接领取 1发邮件
-    awardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState)
-    downloadAwardState = awardState % 10
-    if downloadAwardState:
-        GameWorld.Log('    分包下载奖励已领取,不可重复领取!', curPlayer.GetID())
+    playerID = curPlayer.GetPlayerID()
+    downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 5)
+    curAwardNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState)
+    if curAwardNum == downloadAwardNum:
+        GameWorld.DebugLog("已领取分包奖励! curAwardNum(%s) == downloadAwardNum(%s)" % (curAwardNum, downloadAwardNum), playerID)
         return
     
-    awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward')
+    awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward', 1)
+    if not awardItemList:
+        return
+    
     # 检查背包
     if dataEx == 0:
         needSpace = len(awardItemList)
@@ -6091,11 +6086,8 @@
             PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
             return
         
-    curPatchAwardNum = awardState / 10
-    updateAwardState = curPatchAwardNum * 10 + 1
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, updateAwardState)
-    GameWorld.DebugLog("领取分包下载奖励: awardState=%s,curPatchAwardNum=%s,updateAwardState=%s" % 
-                       (awardState, curPatchAwardNum, updateAwardState), curPlayer.GetPlayerID())
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, downloadAwardNum)
+    GameWorld.DebugLog("领取分包下载奖励: curAwardNum=%s,downloadAwardNum=%s" % (curAwardNum, downloadAwardNum), playerID)
     if dataEx == 1:
         PlayerControl.SendMailByKey('SubpackageDownload', [curPlayer.GetID()], awardItemList)
     else:
@@ -6106,9 +6098,10 @@
 
 def SyncPackDownloadAward(curPlayer):
     #分包下载奖励记录通知
+    downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 5)
     sendPack = ChPyNetSendPack.tagMCPackDownloadRecord()
     sendPack.Clear()
-    sendPack.Record = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState) % 10
+    sendPack.Record = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState) == downloadAwardNum
     NetPackCommon.SendFakePack(curPlayer, sendPack)
     return
 

--
Gitblit v1.8.0