From 223d88c4b42d4541ed743b83cce2bbd4e1bdac59 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 04 一月 2019 21:06:29 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(屏蔽部分日志)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 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 a43d19e..bb71268 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PetControl.py
@@ -381,6 +381,7 @@
     rolePet.SetMinAtk(PlayerControl.GetPetMinAtk(curPlayer))
     rolePet.SetMaxAtk(PlayerControl.GetPetMaxAtk(curPlayer))
     rolePet.SetSkillAtkRate(PlayerControl.GetPetSkillAtkRate(curPlayer))
+    GameObj.SetPetDamPer(rolePet, GameObj.GetPetDamPer(curPlayer))
     #rolePet.SetMAtkMin(curPlayer.GetMAtkMin())
     #rolePet.SetMAtkMax(curPlayer.GetMAtkMax())
     rolePet.SetHit(curPlayer.GetHit())
@@ -523,6 +524,41 @@
         __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)
 
     return
 #---------------------------------------------------------------------

--
Gitblit v1.8.0