From 4f2f03dba59e59672a0eb5333ca53eb0b84b3aa9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 08 十月 2018 15:05:51 +0800
Subject: [PATCH] 2091 【后端】优化拾取导致的报错;       去除国庆时部分玩家装备传奇属性bug的临时处理代码;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
index 37d3df5..632f29d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerActivity.py
@@ -69,7 +69,9 @@
     if onEventType == ShareDefine.Def_OnEventTypeEx:
         # 重置完成次数
         for i in xrange(ipyDataMgr.GetDailyQuestCount()):
-            key = ChConfig.Def_PDict_Activity_FinishCnt % (i+1)
+            ipyData = ipyDataMgr.GetDailyQuestByIndex(i)
+            
+            key = ChConfig.Def_PDict_Activity_FinishCnt % ipyData.GetID()
             curPBCnt = __GetPDictValue(curPlayer, key) #单次进度值
             if curPBCnt:
                 __SetPDictValue(curPlayer, key, 0)
@@ -373,6 +375,9 @@
     activityNum = GetActivityNum(RelatedType_1, dailyID)
     dailyQuestData = IpyGameDataPY.GetIpyGameDataNotLog('DailyQuest', activityNum)
     unLimitCnt = dailyQuestData and not dailyQuestData.GetTotalActiveValue()
+    funcID = dailyQuestData.GetUnLockFuncID() if dailyQuestData else 0
+    if funcID and not GameFuncComm.GetFuncCanUse(curPlayer, funcID):
+        return
         
     updDayTimes = 0
     if dayTimesLimit:
@@ -381,15 +386,17 @@
         if not unLimitCnt and curDayTimes >= dayTimesLimit:
             return
         updDayTimes =  curDayTimes+addCnt if unLimitCnt else min(dayTimesLimit, curDayTimes+addCnt)
+        addCnt = updDayTimes - curDayTimes
         PlayerControl.NomalDictSetProperty(curPlayer, key, updDayTimes)
         GameWorld.DebugLog('增加日常活动完成次数 dailyID=%s, curDayTimes=%s, updDayTimes=%s'%(dailyID, curDayTimes, updDayTimes))
-    
+    updWeekTimes = 0
     if weekTimesLimit:
         key = ChConfig.Def_PDict_DailyActionWeekTimes%dailyID
         curWeekTimes = curPlayer.NomalDictGetProperty(key)
         if not unLimitCnt and curWeekTimes >= weekTimesLimit:
             return
         updWeekTimes =  curWeekTimes+addCnt if unLimitCnt else min(weekTimesLimit, curWeekTimes+addCnt)
+        addCnt = updWeekTimes - curWeekTimes
         PlayerControl.NomalDictSetProperty(curPlayer, key, updWeekTimes)
         GameWorld.DebugLog('增加日常活动完成次数 dailyID=%s, curWeekTimes=%s, updWeekTimes=%s'%(dailyID, curWeekTimes, updWeekTimes))
 
@@ -397,7 +404,7 @@
     
     #对应的日常任务表ID
     updTimes = updDayTimes or updWeekTimes
-    if updTimes and dailyQuestData:
+    if addCnt and updTimes and dailyQuestData:
         AddActivityFinishCnt(curPlayer, activityNum, updTimes, addCnt)
     return True
 

--
Gitblit v1.8.0