| | |
| | | __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
|
| | | #---------------------------------------------------------------------
|