|  |  |  | 
|---|
|  |  |  | import IpyGameDataPY | 
|---|
|  |  |  | import PlayerAttrFruit | 
|---|
|  |  |  | import GameMap | 
|---|
|  |  |  | import OpenServerCampaign | 
|---|
|  |  |  | import PlayerMagicWeapon | 
|---|
|  |  |  | import PassiveBuffEffMng | 
|---|
|  |  |  | import CalcNoLineEffect | 
|---|
|  |  |  | 
|---|
|  |  |  | PetControl.DoLogic_PlayerPetLearnSkillList(rolePet, learnSkillList) | 
|---|
|  |  |  | RefreshPetItemAddAttr(curPlayer, True) | 
|---|
|  |  |  | SetPetSkillFightPower(curPlayer)    # 技能战力重算 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 开服活动数据 | 
|---|
|  |  |  | OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_PetLV, GetTotalPetLV(curPlayer)) | 
|---|
|  |  |  | return True | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | SetPetSkillFightPower(curPlayer)    # 技能战力重算 | 
|---|
|  |  |  | RefreshPetItemAddAttr(curPlayer, True) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 开服活动数据 | 
|---|
|  |  |  | OpenServerCampaign.UpdOpenServerCampaignRecordData(curPlayer, ShareDefine.Def_Campaign_Type_PetLV, GetTotalPetLV(curPlayer)) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_PetClassLV, 1, [petNPCID, updClassLV + 1]) | 
|---|
|  |  |  | extraInfoDict = {"petItemIndex":PetItemIndex, "petNPCID":petNPCID} | 
|---|
|  |  |  | extraInfoDict.update(eval(petDataItem.GetUserData())) | 
|---|
|  |  |  | DataRecordPack.DR_ClassUpSystem(curPlayer, "PetClassUp", updClassLV, extraInfoDict) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #EventReport.WriteEvent_pet_class(curPlayer, petNpcData.GetName(), classLV, petClassExp, updClassLV, newClassExp) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | def GetTotalPetLV(curPlayer): | 
|---|
|  |  |  | totalPetLV = 0 | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | classLV = petItem.GetUserAttr(ShareDefine.Def_IudetPet_ClassLV) + 1 | 
|---|
|  |  |  | petIpyData = GetPetIpydata(petItemNPCID) | 
|---|
|  |  |  | if not petIpyData: | 
|---|
|  |  |  | continue | 
|---|
|  |  |  | totalPetLV += classLV | 
|---|
|  |  |  | return totalPetLV | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ## 刷新宠物数据物品增加的属性 | 
|---|
|  |  |  | def RefreshPetItemAddAttr(curPlayer, isUpdBillboard): | 
|---|