From 71ea04a0d2f445b3b3947175bacc6829a5996af9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 25 三月 2019 21:26:48 +0800
Subject: [PATCH] 6385 【后端】【2.0】五行灵根开发(修复洗点报错 )

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py |   59 +++++++++++++++++------------------------------------------
 1 files changed, 17 insertions(+), 42 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
index bb71268..f042785 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
@@ -517,48 +517,23 @@
 def DoLogic_PetInfo_OnLogin(curPlayer, tick):
    
     petMgr = curPlayer.GetPetMgr()
-
-    for index in range(0, petMgr.PetList_Cnt()):
-        rolePet = petMgr.PetList_At(index)
-        #刷新宠物信息并通知客户端
-        __RefreshAndSyncPetInfo(rolePet)
-        #自动出战宠物
-        __AutoSummonPet_OnLogin(curPlayer, rolePet)
-    
-    if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet):
-        GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_Pet, 1)
-        #等级不能超上限,技能删了重新学
- 
-        petPackIndex = ShareDefine.rptPet
-        petPack = curPlayer.GetItemManager().GetPack(petPackIndex)
-        for i in range(petPack.GetCount()):
-            petItem = petPack.GetAt(i)
-            if petItem.IsEmpty():
-                continue 
-            petItemNPCID = petItem.GetUserAttr(ShareDefine.Def_IudetPet_NPCID)
-            curClassLV = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV) + 1
-            petIpyData = PlayerPet.GetPetIpydata(petItemNPCID)
-            if not petIpyData:
-                continue
-            maxLV = petIpyData.GetMaxRank()
-            if curClassLV > maxLV:
-                petItem.SetUserAttr(ShareDefine.Def_IudetPet_ClassLV, max(0, maxLV - 1))
-                petItem.SetUserAttr(ShareDefine.Def_IudetPet_Exp, 0)
-                GameWorld.Log('   老号宠物等级超过上限,宠物ID=%s,原LV=%s,重置为=%s'%(petItemNPCID, curClassLV, maxLV))
-                curClassLV = maxLV
-            petItem.ClearUserAttr(ShareDefine.Def_IudetPet_Skill)
-            petSkillList = petIpyData.GetSkillID()
-            petSkillUnLockList = petIpyData.GetSkillUnLock()
-            for i, skillid in enumerate(petSkillList):
-                limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级
-                if curClassLV < limitPetClassLV:
-                    continue
-                petItem.AddUserAttr(ShareDefine.Def_IudetPet_Skill, skillid)
-        if ReCallFightPet(curPlayer):
-            PlayerPet.AutoSummonPet(curPlayer)
-        # 重刷战力
-        PlayerPet.SetPetSkillFightPower(curPlayer)    # 技能战力重算
-        PlayerPet.RefreshPetItemAddAttr(curPlayer, True)
+    if GameWorld.IsCrossServer():
+        ''' 0435宠物出现包同步的ID是根据宠物的列表位置来的,比如在第2位发的就是2,而地图的可能是1,会导致ID不一致
+                            所以跨服服务器登录时先清除出战宠物列表,确保登录地图成功后都是从1开始的即可
+        '''
+        petList = []
+        for index in range(0, petMgr.PetList_Cnt()):
+            rolePet = petMgr.PetList_At(index)
+            petList.append(rolePet)
+        for rolePet in petList:
+            petMgr.PetList_SetFree(rolePet.GetRolePet().PetID)
+    else:
+        for index in range(0, petMgr.PetList_Cnt()):
+            rolePet = petMgr.PetList_At(index)
+            #刷新宠物信息并通知客户端
+            __RefreshAndSyncPetInfo(rolePet)
+            #自动出战宠物
+            __AutoSummonPet_OnLogin(curPlayer, rolePet)
 
     return
 #---------------------------------------------------------------------

--
Gitblit v1.8.0