From a5cf53b0a6d7a70ba03023c7a76853a8d4bfedf3 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 25 九月 2019 21:06:12 +0800
Subject: [PATCH] 8281 【后端】【恺英】封魔坛每日刷新

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py |   72 ++++++++++++++++++++---------------
 1 files changed, 41 insertions(+), 31 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
index 4de6d95..45284b8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerRecover.py
@@ -70,6 +70,7 @@
     playerLV = curPlayer.GetLV()
     if playerLV <= 1: #刚创角不增加次数
         return
+    RecoverMaxDay = 2 # 最多可找回X天总次数
     lostOnDayNum = __GetLastRecoverPastDay(curPlayer)
     lostOnDayNum = max(0, lostOnDayNum - 1)
     GameWorld.DebugLog('    增加可找回次数 lostOnDayNum=%s'%lostOnDayNum)
@@ -105,8 +106,8 @@
                 continue
 
             remainInfo, limitInfo = FBCommon.GetFBDetailCntInfo(curPlayer, dataMapID)
-            rCommonCnt, rExtraCnt, rBuyCnt, rItemAddCnt, noBuyCnt = remainInfo
-            rCommonCntlimit, rExtraCntlimit, rBuyCntlimit, rItemAddCntlimit, noBuyCntlimit = limitInfo
+            rCommonCnt, rRegainFbCnt, rExtraCnt, rBuyCnt, rItemAddCnt, noBuyCnt = remainInfo
+            rCommonCntlimit, rRegainFbCntLimit, rExtraCntlimit, rBuyCntlimit, rItemAddCntlimit, noBuyCntlimit = limitInfo
             if max(remainInfo) == 0 and not lostOnDayNum:
                 continue
             #限时活动判断当天是否有开启
@@ -118,11 +119,11 @@
             else:
                 addCommonCnt = rCommonCnt + lostOnDayNum * rCommonCntlimit
             
+            addRegainCnt = rRegainFbCnt + lostOnDayNum * rRegainFbCntLimit
             addExtraCnt = rExtraCnt + lostOnDayNum * rExtraCntlimit
             addBuyCnt = rBuyCnt
             addItemAddCnt = rItemAddCnt #使用物品增加的次数
             addnoBuyCnt = noBuyCnt + lostOnDayNum * noBuyCntlimit
-            
             
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverGainData % index, historyMaxLine)
             if dataMapID == ChConfig.Def_FBMapID_MunekadoTrial:
@@ -131,22 +132,31 @@
             
             #更新可找回次数
             curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0)
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index,
-                                               min(addCommonCnt + curCommonCnt, rCommonCntlimit * 2))
+            addCommonCnt = min(addCommonCnt + curCommonCnt, rCommonCntlimit * RecoverMaxDay)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index, addCommonCnt)
+            
+            curRegainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBRegainCnt % index, 0)
+            addRegainCnt = min(addRegainCnt + curRegainCnt, rRegainFbCntLimit * RecoverMaxDay)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBRegainCnt % index, addRegainCnt)
+            
             curExtraCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBExtraCnt % index, 0)
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBExtraCnt % index,
-                                               min(addExtraCnt + curExtraCnt, rExtraCntlimit * 2))
+            addExtraCnt = min(addExtraCnt + curExtraCnt, rExtraCntlimit * RecoverMaxDay)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBExtraCnt % index, addExtraCnt)
+            
             curBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBBuyCnt % index, 0)
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBBuyCnt % index,
-                                               min(addBuyCnt + curBuyCnt, rBuyCntlimit * 2))
+            addBuyCnt = min(addBuyCnt + curBuyCnt, rBuyCntlimit * RecoverMaxDay)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBBuyCnt % index, addBuyCnt)
+            
             curItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBItemAddCnt % index, 0)
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBItemAddCnt % index,
-                                               min(addItemAddCnt + curItemAddCnt, rItemAddCntlimit * 2))
+            addItemAddCnt = min(addItemAddCnt + curItemAddCnt, rItemAddCntlimit * RecoverMaxDay)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBItemAddCnt % index, addItemAddCnt)
+            
             curnoBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, 0)
-            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBNoBuyCnt % index,
-                                               min(addnoBuyCnt + curnoBuyCnt, noBuyCntlimit * 2))
-            GameWorld.DebugLog('增加找回次数index=%s,addCommonCnt=%s,addExtraCnt=%s,addBuyCnt=%s,addItemAddCnt=%s,addnoBuyCnt=%s'
-                               % (index, addCommonCnt, addExtraCnt, addBuyCnt, addItemAddCnt, addnoBuyCnt))
+            addnoBuyCnt = min(addnoBuyCnt + curnoBuyCnt, noBuyCntlimit * RecoverMaxDay)
+            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, addnoBuyCnt)
+            
+            GameWorld.DebugLog('增加找回次数index=%s,addCommonCnt=%s,addRegainCnt=%s,addExtraCnt=%s,addBuyCnt=%s,addItemAddCnt=%s,addnoBuyCnt=%s'
+                               % (index, addCommonCnt, addRegainCnt, addExtraCnt, addBuyCnt, addItemAddCnt, addnoBuyCnt))
             
             
             recoverNumList.append(index)
@@ -161,14 +171,6 @@
             elif dailyID is ShareDefine.DailyActionID_WorldBOSS:
                 canKillCnt, dayTimesLimit = BossHurtMng.GetCanKillBossCnt(curPlayer, 0)
                 curDayTimes = dayTimesLimit - canKillCnt
-            elif dailyID is ShareDefine.DailyActionID_SealDemon:
-                #找回前先立即刷新一次
-                FBCommon.RegainFBCntProcess(curPlayer)
-                beyondTimes = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FbCntRegainOverTime % ChConfig.Def_FBMapID_SealDemon)
-                recoverInterval = IpyGameDataPY.GetFuncCfg('FBCntRegainInterval')
-                dayTimesLimit = 24*3600/recoverInterval
-                curDayTimes = dayTimesLimit - beyondTimes
-                lostOnDay = 0
             if curDayTimes >= dayTimesLimit and not lostOnDay:
                 continue
             addCommonCnt = (dayTimesLimit - curDayTimes) + lostOnDay * dayTimesLimit
@@ -176,7 +178,7 @@
                 continue
             curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0)
             PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index,
-                                               min(addCommonCnt + curCommonCnt, dayTimesLimit * 2))
+                                               min(addCommonCnt + curCommonCnt, dayTimesLimit * RecoverMaxDay))
             recoverNumList.append(index)
             GameWorld.DebugLog('增加找回次数index=%s,addCommonCnt=%s'
                                % (index, addCommonCnt))
@@ -362,23 +364,25 @@
 def __GetCanRecoverCnt(curPlayer, index):
     #获取可找回普通次数,vip次数
     curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0)
+    curRegainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBRegainCnt % index, 0)
     curExtraCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBExtraCnt % index, 0)
     curBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBBuyCnt % index, 0)
     curItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBItemAddCnt % index, 0)
     curnoBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, 0)
-    return curCommonCnt + curExtraCnt + curBuyCnt + curItemAddCnt, curnoBuyCnt
+    return curCommonCnt + curRegainCnt + curExtraCnt + curBuyCnt + curItemAddCnt, curnoBuyCnt
 
 def __SetRecoverNum(curPlayer, recoverCntDict):
     #更新找回次数
-    #每日刷新次数>Vip买回来没用的次数>卷轴加的没用的次数>Vip额外次数>Vip可购买但未买次数
-
+    #每日刷新次数>Vip买回来没用的次数>卷轴加的没用的次数>每日恢复次数>Vip额外次数>Vip可购买但未买次数
+    
     for index, recoverCnt in recoverCntDict.items():
         curCommonCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBCommonCnt % index, 0)
+        curRegainCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBRegainCnt % index, 0)
         curExtraCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBExtraCnt % index, 0)
         curBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBBuyCnt % index, 0)
         curItemAddCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBItemAddCnt % index, 0)
         curnoBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, 0)
-        cntList = [curCommonCnt, curBuyCnt, curItemAddCnt, curExtraCnt, curnoBuyCnt]
+        cntList = [curCommonCnt, curBuyCnt, curItemAddCnt, curRegainCnt, curExtraCnt, curnoBuyCnt]
         newCntList = copy.deepcopy(cntList)
         
         sumCnt = 0
@@ -387,13 +391,19 @@
             newCntList[i] = max(0, sumCnt - recoverCnt)
             if recoverCnt <= sumCnt:
                 break
-        newCommonCnt,newBuyCnt,newItemAddCnt,newExtraCnt,newnoBuyCnt = newCntList
- 
+        newCommonCnt, newBuyCnt, newItemAddCnt, newRegainCnt, newExtraCnt, newnoBuyCnt = newCntList
+        
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBCommonCnt % index, newCommonCnt)
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBRegainCnt % index, newRegainCnt)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBBuyCnt % index, newBuyCnt)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBItemAddCnt % index, newItemAddCnt)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBExtraCnt % index, newExtraCnt)
         PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RecoverFBNoBuyCnt % index, newnoBuyCnt)
+        GameWorld.DebugLog("资源找回次数: index=%s,recoverCnt=%s" % (index, recoverCnt))
+        GameWorld.DebugLog("    curCommonCnt=%s,curBuyCnt=%s,curItemAddCnt=%s,curRegainCnt=%s,curExtraCnt=%s,curnoBuyCnt=%s" 
+                           % (curCommonCnt, curBuyCnt, curItemAddCnt, curRegainCnt, curExtraCnt, curnoBuyCnt))
+        GameWorld.DebugLog("    newCommonCnt=%s,newBuyCnt=%s,newItemAddCnt=%s,newRegainCnt=%s,newExtraCnt=%s,newnoBuyCnt=%s" 
+                           % (newCommonCnt, newBuyCnt, newItemAddCnt, newRegainCnt, newExtraCnt, newnoBuyCnt))
         if index != Def_TJGRecoverID:
             #1:找回了普通  2:找回了vip  3:2个都有找回  
             recoverData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HaveRecover % index, 0)
@@ -404,7 +414,7 @@
                 elif recoverData == 0:
                     updData = 1
             else:
-                if max(curCommonCnt, curBuyCnt, curItemAddCnt, curExtraCnt) == 0:
+                if max(curCommonCnt, curBuyCnt, curItemAddCnt, curRegainCnt, curExtraCnt) == 0:
                     if recoverData == 0:
                         updData = 2
                     elif recoverData == 1:

--
Gitblit v1.8.0