From ae9f73d422020a792b2615d7f094d629d81c5123 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 三月 2019 19:54:27 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py |   62 ++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 10 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
index bfbbed8..97c2873 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerSuccess.py
@@ -42,7 +42,7 @@
 import PlayerRune
 import Operate_EquipStone
 import Operate_EquipWash
-import Operate_EquipSuitCompose
+import PlayerFeastRedPacket
 import PlayerDogz
 import QuestCommon
 import DataRecordPack
@@ -301,6 +301,7 @@
             passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
             DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_PassRuneTower, 1, [passlv])
         elif succType == ShareDefine.SuccType_GodWeapon:
+            ResetSuccessByType(curPlayer, succType)
             maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
             for i in xrange(1, maxType + 1):
                 weaponLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % i)
@@ -319,7 +320,7 @@
             ResetSuccessByType(curPlayer, succType)
             for pType, indexList in ChConfig.Pack_EquipPart_CanPlusStar.items():
                 for i in indexList:
-                    equipPartStarLV = ChEquip.GetEquipPartStarLV(curPlayer, pType, i)
+                    equipPartStarLV = ChEquip.GetEquipPartPlusLV(curPlayer, pType, i)
                     for pluslv in xrange(1, equipPartStarLV+1):
                         DoAddSuccessProgress(curPlayer, succType, 1, [pluslv])
                     
@@ -330,6 +331,7 @@
         elif succType in [ShareDefine.SuccType_InlayGatherSoul, ShareDefine.SuccType_GatherSoulLvUp]:
             PlayerGatherSoul.DoGatherSoulSuccessLogic(curPlayer)
         elif succType == ShareDefine.SuccType_RealmlvUp:
+            ResetSuccessByType(curPlayer, succType)
             UptateSuccessProgress(curPlayer, succType, curPlayer.GetOfficialRank())
         elif succType == ShareDefine.SuccType_PetClassLV:
             ResetSuccessByType(curPlayer, succType)
@@ -351,6 +353,7 @@
         elif succType in [ShareDefine.SuccType_EquipWashLV1,ShareDefine.SuccType_EquipWashLV2,ShareDefine.SuccType_EquipWashLV3]:
             Operate_EquipWash.EquipWashSuccess(curPlayer)
         elif succType == ShareDefine.SuccType_MWSkillUp:
+            ResetSuccessByType(curPlayer, succType)
             skillManager = curPlayer.GetSkillManager()
             for i in range(0, skillManager.GetSkillCount()):
                 curSkill = skillManager.GetSkillByIndex(i)
@@ -358,15 +361,17 @@
                     curSkillLV = curSkill.GetSkillLV()
                     UptateSuccessProgress(curPlayer, succType, curSkillLV, [curSkill.GetSkillTypeID()])
             
-        elif succType == ShareDefine.SuccType_EquipSuit:
-            Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
+#        elif succType == ShareDefine.SuccType_EquipSuit:
+#            Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
         elif succType == ShareDefine.SuccType_FamilyTechLV:
+            ResetSuccessByType(curPlayer, succType)
             techNeedLVDict = IpyGameDataPY.GetFuncEvalCfg('FamilyTechNeedLV', 1, {})
             techIDList = techNeedLVDict.keys()
             for techID in techIDList:
                 techLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTechLV % techID)
                 UptateSuccessProgress(curPlayer, succType, techLV, [techID])
         elif succType == ShareDefine.SuccType_AlchemyLV:
+            ResetSuccessByType(curPlayer, succType)
             alchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
             UptateSuccessProgress(curPlayer, succType, alchemyLV)
         elif succType == ShareDefine.SuccType_VIPLV:
@@ -430,6 +435,29 @@
             SetSuccHasGot(curPlayer, succID, False)
             resetList.append(succID)
             GameWorld.DebugLog("    OnWeek 重置成就类型: succID=%s" % (succID))
+    if resetList:
+        Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
+        Sync_SuccessInfo(curPlayer, resetList, True)
+    return
+
+def DoResetSuccessIDList(curPlayer, resetSuccIDList):
+    ## 重置成就相关数据
+    if not resetSuccIDList:
+        return
+    resetList = []
+    for succID in resetSuccIDList:
+        succData = GetSuccDataMng().GetSuccessData(succID)
+        if not succData:
+            continue
+        succType = succData.succType
+        condition = succData.condition
+        #if not GetSuccFinishValue(curPlayer, succType, condition):
+        #    continue
+        SetSuccFinishValue(curPlayer, succType, condition, 0)
+        SetSuccFinish(curPlayer, succID, False)
+        SetSuccHasGot(curPlayer, succID, False)
+        resetList.append(succID)
+        GameWorld.DebugLog("    重置成就类型: succType=%s,succID=%s" % (succType, succID))
     if resetList:
         Sync_SuccTypeIndexAwardRecord(curPlayer, resetList, True)
         Sync_SuccessInfo(curPlayer, resetList, True)
@@ -534,11 +562,11 @@
         
         itemQuality = curEquip.GetItemQuality()
         classLV = ItemCommon.GetItemClassLV(curEquip)
-        if equipIndex not in [ShareDefine.retWing,ShareDefine.retGuard,ShareDefine.retHorse]:
+        if equipIndex not in [ShareDefine.retWing,ShareDefine.retGuard1,ShareDefine.retGuard2,ShareDefine.retHorse]:
             DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipColorItem, 1, [classLV, itemColor])
-        if equipIndex in ChConfig.BaseEquipPlace_Weapon:
+        if equipIndex in ChConfig.EquipPlace_BaseWeapon:
             DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipWeapon, 1, [itemColor, itemQuality, classLV])
-        elif equipIndex in ChConfig.BaseEquipPlace_Armor:
+        elif equipIndex in ChConfig.EquipPlace_BaseArmor:
             DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_EquipArmor, 1, [itemColor, itemQuality, classLV])
         
         elif equipIndex == ShareDefine.retWing:
@@ -554,6 +582,9 @@
 def UptateSuccessProgress(curPlayer, successType, newCnt, condition=[]):
     if successType not in ShareDefine.SuccessTypeList:
         return
+    if successType in ShareDefine.FeastRedPackSuccessTypeList:
+        if not PlayerFeastRedPacket.GetFeastRedPacketState():
+            return
     succInfoList = GetSuccDataMng().GetSuccDataByType(successType)
     if not succInfoList:
         return
@@ -575,6 +606,11 @@
     succID = succDataObj.succID
     cond = succDataObj.condition
     
+    if successType in ShareDefine.FeastRedPackSuccessTypeList:
+        todayFeastSuccIDList = PlayerFeastRedPacket.GetTodayFeastSuccIDList()
+        if not todayFeastSuccIDList or succID not in todayFeastSuccIDList:
+            #GameWorld.DebugLog("    非今日节日红包成就,不增加进度! succID=%s,todayFeastSuccIDList=%s" % (succID, todayFeastSuccIDList))
+            return
     isUnDownCheck = successType in ShareDefine.UnDownCheckSuccessTypeList
     isContain = successType in ShareDefine.ContainSuccessTypeList
     # 已完成的不再检查
@@ -645,7 +681,14 @@
 def DoAddSuccessProgress(curPlayer, successType, addCnt, condition=[], delayCalc=True):
     #GameWorld.DebugLog("DoAddSuccessProgress type=%s,addCnt=%s,condition=%s" 
     #                   % (successType, addCnt, condition), curPlayer.GetPlayerID())
-
+    if GameWorld.IsCrossServer():
+        return
+    
+    if successType in ShareDefine.FeastRedPackSuccessTypeList:
+        if not PlayerFeastRedPacket.GetFeastRedPacketState():
+            #GameWorld.DebugLog("非节日红包活动时间,不增加成就!successType=%s" % successType)
+            return
+        
     playerID = curPlayer.GetID()
     if delayCalc and successType not in ShareDefine.NeedResetSuccessTypeList:
         if playerID not in PyGameData.g_delaySuccessDict:
@@ -968,8 +1011,7 @@
     # 给物品
     if isGiveItem:
         for itemID, itemCnt in itemDict.items():
-            isPutIn = ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 1,
-                                                   [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere], True)
+            isPutIn = ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem, IPY_GameWorld.rptAnyWhere])
        
     #给钱
     for moneyType, value in succData.moneyDict.items():

--
Gitblit v1.8.0